Thank you for getting back to me so quickly! The ‘remove from parent’ optimization worked like a charm. I also checked the boxes you showed me for the variables.
As for reading the variable, I tried passing the variable from the interactable actor through a blueprint interface (the function has only inputs). Then, I call the blueprint interface function as an event in the target blueprint, and read the variable from the outputs there.
I apologize- I didn’t realize at the time that the character blueprint was defining the variable that the widget was initiating with. When the widget was created on screen, the character BP was defining the value of the variable in the widget blueprint. SO, I made the interactables use the BPI function to record its variable, then I called the event when that function fired to feed the variable into the character BP, then the character BP took that variable and defined the value of the variable in the widget when it creates it.
Interactable actor > Interface > Character BP > Widget
That’s roughly how I understand this setup to flow. In the end, my widget, actor, and character BPs look like this: