How to properly create a long skill/item descriptions?

As you can see, this is probably not the best option to set up skill/item descriptions (or dialogues, etc.). Typing more and more just increases length of this node and Enter don’t move it to another line. I’ve also tried with Text variable but it behaves in the same way. It will be nice to have some text field node or something similar - or maybe there is a better option for creating long text variables for our games? I just can’t figure out any other workflow for this.

You should definitly not use set node for that, more descriptive/meta data should be set in default tab, all varables are there and you can set default values of them all in one place

25064-samehere.png

I know, but it behaves in the same way - only one line and very limited editing space.
BTW. imho ‘Set’ node with some ‘Append’ nodes will be necessary to compose e.g. skill description with scaleable damage values (dependent on skill level, player stats, etc.)
I’m curious about how it’s usually done in games - imagine, for example, in-game books. Tons of text, often with player’s name (or other variables) in the middle.

The only reasonable solution I’ve found is to store long text (dialogues, descriptions, etc.) in Data Tables. Cells in Excel (with wrapping text) seems OK to put long text values there. Sadly, there is a problem with special characters after importing Data Table to Unreal: Import CSV to DataTable right characters - Character & Animation - Unreal Engine Forums

you can write your text data in notepad, then copy/paste it into the defaults of a variable. if you have an array of text, or an array of string, you can paste the contents of the entire array, if you follow the format:

(“item1”,“item2”,“item3”)

or

("item1"
,"item2"
,"item3"
)

so you could write it out like this:

(
"I can write really long strings of data in a text editor, like notepad, then copy all of that data into a string really easily.",
"This will cause the game to load all of this data into ram for the lifetime of the object that owns the string",
"so for a game with a ton of dialogue data, it might get expensive",
"so maybe there is a better solution that can load fewer strings at a time...",
"But for most games, this would probably work just fine.",
"The TextDump from Twighlight Princess was only 200 kilobytes, so i doubt it would cause any problems",
"and you could always lorem ipsum stress test it...",
"and if you needed to, you could even separate the text by game area, so each level would have an object that is created when the level loads, and it can hold an array of text, which you can set by copy pasting from a notepad .txt file with a syntax like this comment, into the default value of the text array.",
"i like this method, because editing text in notepad is really easy compared to editing values in the editor, and if for some reason your blueprint gets corrupted or you delete the data by accident, you have a backup in the txt file.",
"just don't forget to use a comma after every quote",
"unless its the last quote, then you should use a close parenthesis"
)

then you can right click on the array default value and paste that in.

I’ve already set up my ‘workflow’ to store all text in Google Sheets documents and import them into DataTable, which works fine along with item IDs, etc. :slight_smile: But thanks, that’s an another good way to do this! +1