String ID

From Dragon Age Toolset Wiki
Jump to: navigation, search

For consistency and ease of localization, Dragon Age makes extensive use of a table of string constants called a talk table. Each string constant in the talk table has an associated integer string ID.

Many of the tools in the toolset make automatic usage of the talk table. For example, the lines of dialogue in conversations or the descriptions of items are automatically converted into talk table strings and stored there. In scripting, however, you will often come upon situations where string IDs need to be explicitly referenced, and you may need to add strings to the talk table manually. The string editor is the tool used for this purpose.

You may also use string literals in scripting if you aren't concerned with localization to different languages.

Sharing between Builders

When loading a builder to builder package, you will have the option of keeping the string ID numbers of the loaded resources the same or of assigning new string ID numbers to them. The toolset's behavior when handling of this option is currently being changed to deal with problems that have been caused by conflicts between imported and existing string IDs, but for now the safest approach is to generate new string IDs.

Normally, it's not a good idea for two builders to work with the same string ID range, because conversations and other resources they make will use the same string ids for different text, resulting in conflict in the Builder-to-Builder process.

However, VO and FaceFX files are not renumbered to the new string IDs by the Builder-to-Builder load (because they are art resources), so loading a conversation to a new string ID range causes these features to fail. The choices are

  • Generate VO and FaceFX after Builder-to-Builder.
  • Renumber the VO and FaceFX files to match the new string IDs in the conversation.
  • If the target builder is only working on cutscenes (or other aspects that don't generate new strings), consider the Use Theirs option for string IDs. In view of a known bug, the target module's string id range probably needs to be identical to the source module for this to work. Copying the module.cif file across first achieves this.

Language: English  • русский