Items added from the Designer view in a widget blueprint can not be selected to be Instance Editable in the Event Graph. If you click the eye to make the variable public, the menu will flicker and your project will need to be recomplied but nothing changes. You can however create and set varibles in the event graph to be public or not. This issue appears to only affect items added from the Designer view.
To recreate:
User Interface > Widget Blueprint > User Widget > add an item from the Palette (Image box for example) > Event Graph > Try to make it public (Instance Editable)
Edit: I went into UE 5.0.3 and tried to recreate this and I am getting the exact oposite of this issue. The Image box’s variable’s Instance Editable option is stuck on. Clicking the eye and or recompiling does nothing.
Hey there @B3P! Welcome back to the community! I believe the reason it’s not instance editable is due to it being a part of a different system. The widget designer side passes bind info back and forth, but if your goal is to make the variable public, you can already access widget variables natively with a cast to it’s class.
here is a image comparing form unreal 5,03 and blow vs the unreal 5.1.1 look like the verbal Icons also are missing but the main thing is that when check the is variable it set it make it a privet variable. were in the older models it set it to public variable
Is your use case just changing the image in it’s instances?
Yea pretty much. Learning to build inventory systems and I would like to be able to change the Texture2D associated with the Image in the Widget.
I’ll try this method as a work around when I get the chance and report back. I just figured something was askew as the widget bluprint is making objects (Images, text boxs, etc) a variable by default but it is unable to be changed within the widgets event graph; Only referenced. But like I said, I’m learning so if this is setup this way for a reason Its not known to me.
I’m unsure if it is intentional, but the logic behind why it’s occurring this way is that the variable is generated by the designer not the event graph and hardlinked to the reference so there’s no way to change the reference, however that reference should still be visible/accessible, just unable to change the hardlinked reference itself.
From what I could discern from the source it does definitely seem like unintended behavior and it seems like it’s persisted. Here’s the bug reporting sheet if you need it!
I’m running into the same issue, but suspect it’s not a bug - so much as it is a depreciation of an old and very useful function (to be able to swap in and out user-widget objects as variables).
UE5 seems to be heading towards a more strict way of writing code as a means to force users to write code more efficiently. This will however make the engine harder to learn and less user friendly, as everyone in this thread is finding.
@SupportiveEntity’s answer is correct, and we don’t have to like it, it is the way it is.
You’ll be expected to know how to use classes, and “soft references”.
This behaviour seems to be persistent in 5.3.2.
You can get and set the text variable using the SetText node as one possible workaround for this. See an eg below: