String tables only referenced by ini settings do not get packaged

I have some FText members referenced in Game/Config/DefaultGame.ini. These FText members are referencing entries in a String Table that is not referenced by any other assets. When creating a packaged build, the String Table does not get packaged. Is it expected behavior that asset references in a .ini settings file will not cause those assets to be packaged?

If this is expected, is there a recommended solution to this? I can move the String Table to a directory that is always cooked, but that seems like a brittle solution - I would need to double check that an String Table referenced by a .ini is in a directory that is always cooked.

[Attachment Removed]

Steps to Reproduce

  1. Create a class in C++ that derives from UDeveloperSettings with an FText member property.
  2. Write C++ code to display the localized string for that FText member property.
  3. In the Editor, set that FText member property to a String Table entry.
  4. Ensure the String Table is not referenced by any other assets or by code.
  5. Create a packaged build - the String Table will not be packaged.
    [Attachment Removed]

Hi,

That’s expected, as we won’t have any direct references we can trace to determine that the string table should be included in the packaged build. The typical approach here would be to keep all of those string tables in a directory and add it to “Additional Asset Directories to Cook” in your packaging settings. If you’re creating many string tables and want to ensure they get moved to the proper directory, you could create a Data Validator that runs when the table is saved to check it’s current location and throw a warning if there’s some risk of it not being cooked.

[Attachment Removed]

Thank you for the recommendation! I will be sure to follow that advice for future string tables.

[Attachment Removed]