[UE5.2, Bug report] Good job, you broke SetValue on the slider this time

First off, see all my other UE5 UI bug reports. How the hell am I so support the latest three engine versions for products if the latest 3 versions are broken beyond words! What are you thinking?!

Now this does NOT trigger USlider::OnValueChanged, breaking my delegates!

USlider::SetValue(float InValue) 

The only time OnValueChanged broadcasts is when you drag the handle with a cursor device. So what, no we are not allowed to Set the value when using a gamepad?? Bloody hell fire your drunks! Test your changes properly and make an LTS version of the ■■■■ engine.

Slate classes are supposed to hold state like the value of the slider. Someone decided the wrapping UMG classes often also hold state, a copy or simply desynchronised value. This was a bad design choice in the first place. Additionally, if you create a UserWidget using a slider you don’t want a THIRD copy of such state. Instead you should read and write to the slider. If the slider changes state by SetValue, I am expected it to shout “my value changed” so my UserWidget can handle the situation. It does not. Just ridiculous design.

This engine is treated and written like someone’s school project. It’s not. Need q.u.a.l.i.t.y. control not quantity.

Hi, I’m now on last 5.2 and I have spend hours to try to figure out why the value is not visually updating. Smth. like this SpinBox_Pitch->SetValue(0.0f);
float TempCheck = SpinBox_Pitch->GetValue();
C_LOG(Warning, TEXT(“ImageGenWidget; ResetPitch; EngineBug: %f”), TempCheck); the value is set but the text value on the spin box , visually hasn’t moved. I do imagine it will be smth. inside : void CommitValue : around line 1054 : // Update the cache of the external value to what the user believes the value is now.
const NumericType CurrentValue = ValueAttribute.Get();
if (CachedExternalValue != CurrentValue || bCachedValueStringDirty)
{
CachedExternalValue = ValueAttribute.Get();
CachedValueString = Interface->ToString(CachedExternalValue);
bCachedValueStringDirty = false;
} … but this is really above my paygrade. So I’am wondering if you are more comfortable with the engine code and you have found some solution how to rewrite engine code? Many thanks for your time.

I am very sorry for not responding earlier, I did not see a notification. Similar things to what you are describing is currently happening on other widgets as well (5.2, UEditableTextBox). > [Bugs bugs bugs] Slate widget synchronization - #3 by Roy_Wierer.Seda145

I don’t make engine modifications myself. It’s EPICs job to not make a mess of their releases because we all suffer from it. No one can make marketplace products for a custom engine version which only few people might use. We have to wait for a fix from EPICs side on a next release, or in the worst case stick with an older version for a while.