Trainz Annotated Reference Pages

Trainz Asset Maintenance and Creation
TOC | BeginningsFun | AM&C | Creation | InBook Refs ORP Refs:  • Index • Containers • Kinds • Tags | Appendixes  • Vers

TBS Standard definitionsEdit

These tags and containers are standard definitions which are likely found in nearly all assets. Some tags are optional, and may not be defined by content creators, as their choice. Tags are keywords, and have a single assigned key-value or containers such as a string-array or '{' ... '}' bounded enclosed tag-value pairs or sub-containers. (Everything declared in Trainz config files is in pairs, for even '{' ... '}' is considered a 'key-value'.

  • Containers are collections of 'key' and 'key-value' pairs and 'upper-level containers' in the TBS (as opposed to sub-containers such as those within the thumbnails container) are generally suffixed by '-table'.
 kind    "'string-value'"
 trainz-build 'float', 1 digit decimal value
 kuid  <Kuid coded value>
 username    username "'string-value'"
 username-XX    username-XX "'string-value'"
 description    description "'string-value'"
 description-XX    description-XX "'string-value'"
 kuid-table (container)

  { A list of dependencies
  by kuids }

 A key-value table listing all assets upon which this asset is dependent.
 obsolete-table (container)
 kuids list this asset replaces (makes obsolete)
 normally none (empty)[note 1]
 string-table (container)
 key-value list of strings and messages used in the asset
Generally empty, large only in routes and sessions.
 string-table (container[s])
    {  Non-English
    language text }
 list of translated strings matching onto the mandatory English string-table
 category-region tag enumerated codes  category-region "'string-array'"  
 category-class tag  category-class "'enumerated string-value'
 category-era tag  category-era "'constrained string-array'"  decades
 category-keyword "'string-array'" max length of 64 bytes    category-keyword tag natural language searching keywords
  (replaces type, region)
 script interfacing feature
 DRM string array
 DRM string array
 privileges (container)
 More DRM
 thumbnails (container)
 thumbnails container
 script (filename)    "'string-value'"
 class (script asset class)    "'string-value'", must synch with script specification class.
 (container listing library scripts)
 extensions (container)
 formal script extensions also used by asset
 license "'string-value'"  Asset creator's copyrights statement
 author    "identity 'string-value'"
 organisation    "3rd party group identity 'string-value'"
 contact-email    "email addy 'string-value'"
 contact-website    "authors/groups web url 'string-value'"
 member-of-groups (container)
 A list of KIND Asset-group assets to which this asset belongs.



Notes, Footnotes & ReferencesEdit

Config.txt files are endemic and ever present in Trainz assets, for no asset can be defined without this type of Computer Science container. The keyword-value_of_key pairing must always be kept in mind in editing or creating Trainz content. The TrainzBaseSpec contains values and containers which are most common in asset defining config.txt files.  


  1. The obsolete-table must be used with care, and is most commonly seen in Auran authored assets. The table replaces an older kuid with a newer, and most content creators properly use the Kuid2 form of the kuid to supplant an older version. N3V by contrast, over uses the obsolete-table for new release 'upgraded' built-in assets, which can lead to much confusion, and a failure to get what one expects to see. (e.g. many nice 'Flip-trees' were obsoleted in TS10 and TS12 in favor of Speedtrees which affected many Routes wherein Speedtrees were NOT WANTED nor Desired by the creator. Across installs, this also causes missing dependencies until the asset containing the obsolete-table can be located.
     • FURTHER, only one obsolete entry per kuid is supported in the Assets.tdx data base indexing, and obsoleting a kuid with a Kuid2 version can lead to problems (i.e. which will you see?)
     • One excellent use of an obsolete-table is to upgrade a series of assets using a particular part, especially bogeys. Adding a mix of kuids to be replaced by an newer good bogey can dramatically improve the appearance of a route or session with a single edit (provided the bogey, for example, is compatible and sized properly!)