Text Component not updating inside Retainer Box

Hello!

I am having an issue where Text is not getting updated / rendered inside a Retainer Box.

I have a Retainer Box for a “Curved” UI effect by applying a Material, and I have Text Components attached to it, this used to work just fine back in UE4, but in UE5 Text never gets updated, for example Health Counters, Ammo Counters, none of them get updated if they are inside the Retainer Box, if I move them out of the Retainer Box they all work just fine… so it is not my Blueprints, I do have Render on Phase enabled, so it should render it every frame but it is not doing that, is there any solution to this? or any other way to have a curved UI effect without a Retainer Box?

I am having this problem specifically in UE5, I tried it on 4.27.2 and it does not occur there.
I can attach a Sample Project if needed.
Thanks!

1 Like

I’m having the exact same issue and cannot find a solution. Were you able to figure it out?

Actually, even without any material applied to the retainer box it still doesn’t update text.

Hey! The good news is I did submit an issue and they are have a target to fix this in Unreal Engine 5.1!

Link to issue: Unreal Engine Issues and Bug Tracker (UE-150807)

Well, thank you for the info!

I thought I was going mad lol, thank you for posting this.

If you need a quick fix, put your updating function into the tick and add very slight delay, it will keep updating the text.

1 Like

I found a work around until fix is in you can request render from retainer box and do that on event tick or a timer and it will update the UI elements and is more performant and easier than putting the functions in the event tick

3 Likes

Came here with the same issue, and reading above i found that there is an even simpler (but still equally stupid) solution: just add a delay of 0,0 before the Set Text in whatever ticking event you want to use.

Additionally you can also increase the Phase Count from 1 to 2 which halfs the update rate to achieve the same result.

Beware, adding the Request Render inside a binding for a widget crashes the engine entirely.

1 Like

This totally worked for me!

I had this issue with everything updating inside a retainer box, not only text.
This is extremly weird, but I hope they fixed so it will work properly by default.

Still happening in 5.1

1 Like

Thanks so much! This did it for me as well!

The bug tracker link posted back in May - where the user said that the target fix was 5.1 - has been updated recently with a new target fix of 5.4.

So we expect this to be an issue for some time, Epic clearly don’t think it’s important.

Unfortunately the above fixes aren’t working for me in 5.1, luckily (I guess) this only affects one part of my HUD which I’ve had to just disable for now. Extremely frustrating and I’m regretting updating our project to 5.x now.

1 Like

Had this bug too in 5.1. However, if I set Phase Count to 2, inner components suddenly get updated properly.

image

Just experienced the same issue after putting a Text Component in a Retainer Box. Updating the text wasn’t updating the appearance.

I tried everything in this thread, and 1) Calling Request Render on the Retainer Box did nothing. 2) Setting Phase Count to 2 makes it update, but inconsistently (sometimes it updates when the text changes, sometimes it doesn’t)

Finally, I found a solution. Call the ForceLayoutPrepass function on the Text Component (not the Retainer Box) after updating the text contents and this should cause it to update.

Render Rules are set to Retain Render (true), Render on Invalidation (false), Render on Phase (true), Phase (0), and Phase Count (1).

By the way, another issue I noticed is that the visual appearance can vary significantly when Retain Render is on compared to when it’s off. The solution in the following thread of adding gamma adjustment to the Retainer Box’s material worked for me, although it looks like in the latest UE version (5.1) you might get better results by taking the power to a value between 0 and 1, and maybe also including some multiplication to adjust the appearance as appropriate.

The easiest fix for this is to set the text to SimpleTextMode = true. Target fix for the bug is 5.4 but go add some votes in to the problem so it gets solved Unreal Engine Issues and Bug Tracker (UE-150807)

4 Likes

Thanks for this solution! :slight_smile: it’s really the easiest one :smiley:

Amazing, thanks so much!