When I upgraded my project to 4.20 I realized that the experimental RichTextBlock in the engine (that I was using via this discontinued plugin) no longer functioned as it did previously.
Developers used to be able to add <span> tags inline around sections of text changing their font, size, color, and emphasis.
As of 4.20, the new RichTextBlock functions differently by default in that developers must statically pre-define all of their styles in a data table, then use inline tags to determine which style should apply to different sections of text. This is great for defining reusable styles which can be used across a project, but not so great when the styling needs to be generated dynamically.
It didn’t take me too long to figure out how to re-purpose the old decorator logic and make it compatible with the new RichTextBlock in 4.20, but I did notice a few others also missing the old logic and wondering what happened to it.
So here’s a free plugin that takes Epic’s original decorator from before 4.20 and exposes it to be usable with the new 4.20 RichTextBlock. Simply install the plugin and add the decorator class to any RichTextBlock widgets that you wish to use it with.
You’re welcome! Not too much effort to wrap up what I already had in a plugin.
I think there are good parts. Generally the style table seems useful to avoid repeating the same markup all over the place, and being able to add on extra decorators makes the whole thing very extensible and allows me to make this plugin, as well as opening up many other possibilities for more functionality.
The only question I have is why the old decorator wasn’t kept around as optional like how it is in this plugin, in addition to the new stuff - I know it was experimental so developers were using it at their own risk, but it can still do things that the style table cannot.
texture from the table we can make a wavy line, a dotted line, and even a background for the text - system filled="(texture id from table) (color = 0 to not texture update color) (fill or left or center or rinht) (fill or up or center or down) (0=before text or 1=behind text)"
<span color="#ffffffff" size=“20” filled=“texture #ffffffff fill fill 0” hower=“color=”#ffffffff" size=“20” filled=“texture #ffffffff fill fill 1"” >fill fill texture0=before text.</>
<span color="#ffffffff" size=“20” filled=“texture #ffffffff fill up 0”>fill up texture 0=before text.</>
<span color="#ffffffff" size=“20” filled=“texture #ffffffff fill center 1”>fill center texture 1 =behind text.</>
<span color="#ffffffff" size=“20” filled=“texture #ffffffff fill down 1”>fill down texture 1 =behind text.</>
<span color="#ffffffff" size=“80” filled=“texture #ffffffff cencer fill 0”>center fill texture0=before text.</>
Create an empty c ++ project, drop the plugin into it and delete the Intermediate folder in the plugin and Binaries delete the sln file in the project root. right-click on uproject to select the new sln generation in the menu. Just run uproject should crash everything.
Oh sorry, I did not immediately understand that you are trying to old content. In general, the plugin is recompiled in the above way. I created an alternative to Bp which is easier to understand than with ++. My alternative allows you to solve all the problems of the original. My system is adaptable for updates! That is, they won’t fix the text, we can implement our own underline and strikethrough, and so on.
Doing this I looked into the pulgin’s uproject file, changed engine version 4.21 to 4.22 and now works perfectly, thank you.
That would be interesting, for my project purpose I only need it to change color in the same text but my designer is looking for alternatives with more text formats, he makes text in photoshop with a lot of detail but in Unreal it’s so basic, maybe I’m missing something.