FText variables are saved with a Package Namespace stored inside them, that keeps track of the package they were created for. This allows the translation key to stay consistent over time. Blueprint-added variables and literal pins work correctly.

Function input parameter package namespaces are not correctly updated when a blueprint is duplicated, so you can end up with two identical FText keys with different values. This can cause data loss when changing the original package's value. I found this will using the blueprint diff tool to compare duplicated packages

Local variables are saved without a package namespace, which means every time you change the local variable it gets a unique key without package information, which can make it hard to translate

Steps to Reproduce
  1. Create a new blueprint and add a function to it
  2. Add an input parameter of type Text and set the value to something
  3. Add a local variable of type Text and set the value to something
  4. Compile and save
  5. Duplicate the blueprint, close the editor and reopen
  6. Open both old and new blueprint in the editor side by side
  7. Mouse over the input parameter text value on the right and notice they have the same package namespace despite being different packages
  8. Mouse over the local variable text value on the left and notice that they have an empty package namespace

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-74609 in the post.

Login to Vote

ComponentUE - Gameplay - Blueprint
Affects Versions4.194.23
Target Fix4.23
Fix Commit6592854
Main Commit6835252
CreatedMay 14, 2019
ResolvedMay 21, 2019
UpdatedAug 2, 2019
View Jira Issue