Trainz/refs/Index of Tags & Containers

[[Category:Trainz threaded|]]
logo
Fundamentals for Trainz Trainees

Trainz Annotated Reference Pages
TOC | BeginningsFun | AM&C | Creation | InBook Refs ORP Refs:  • Index • Containers • Kinds • Tags | Appendixes  • Vers


[e]
KINDs (type asset groups)
and containers


About this page

edit

This is meant to be a comprehensive list of tags and containers, past and present, and (eventually) where possible linked to the TrainzOnline detail page which covers the data element, or hopefully here to an expanded and extended data detail page here that covers the same topic in depth, with examples, discussion, and with suitable background and introductory materials.

The 'Kinds of KINDs table' from in the TrainzBaseSpec (TBS) is re-listed below in section 4 before the long table of tags and containers that starts in section 5 for your convenience and reference, and a later generation (editorially newer) navigation link template sidebar now occupies the right hand column in the upper part of this reference, which also links to individual containers. This document then concludes with a large cross-reference table that unlike the Trainz Wiki, will also have links to pertinent data definitions references.

Unlike the Trainz Wiki, this page will list obsolete tags and occasionally link to pages explaining how to replace them and their dated related elements with appropriate references, sometimes to the TrainzOnline TC3 TrainzOnline TC3 Content Creator's Guide as well, and the newer Trainz data model elements where the N3V Wiki often limits the scope of the N3V Wiki in their coverages.

Wiki vs. Wiki

edit

For example, the N3V Wiki and the N3V programmers and staff who make the majority of alterations therein, aggressively purges references to older tags and obsoleted containers, while here the Wikibook mentions them, their role, and their replacement data structures, since readers here need primer background material and scope in order to understand how to repair or upgrade an desirable older asset to shut up warnings and errors in a current Trainz Content Manager. So Wikibook coverage of topics keeps THAT COMMON reality in mind in our explanations and expositions, and is not just a corporate reference stating data associations in dry programerese (i.e. Geek-speak).

In truth, new users need to understand that the Trainz data model is an evolving set of data model plateaus, specific portions and only those portions, changing a little bit with each major Trainz Release; and which then stay stable for long periods thereafter post-change. So by and large, Trainz Releases are backwards compatible with respect to data, no matter how many warnings a versions Content Manager gives, what that means is in any new software major release, a 'Trainz version', there are a few things added or augmented which change in the way some type of object (or objects) is defined from now on. These are almost always ways of implementing something the world wide Trainz Community has requested, in some way.


Data Model evolution

edit

Take speed and complexity of object generation as a example. From the y-2k release of Trainz 1.0 to the Christmas release of TRS2006 (SP0) in 2005, a six year span—Trainz object components definitions necessarily followed a fixed file placement schema; this was an open data storage system under the '\World subroot folder' of those early Trainz Installs utilizing the now obsolete tag 'asset-filename' to link the data subfolders which had requisite suffixes. That tag was actually the name of the mesh, or in the case of a pure texture asset, the texture defining the asset.[note 1] But that technique left complex data objects such as a steam locomotive with the unenviable task of making a perfect mesh with all the pertinent detail, or coming up with another scheme, with the flexability to have sub-meshes. Together the mesh-table container and effects-container satisfy that requirement.

In those early Trainz, the complete library of open asset folders and subfolders was then compressed into various '.chump' base files placed into other cache subfolders of the root folder, which were the quick load files for the run-time GUI modules. This proved a time problem once a users asset library swelled to contain a lot of added content. There were only a handful of Chump files combining data kinds for ease of reference in Surveyor, but which meant large data files needed traversed each time a route and session were loaded.

The Demise of Useful Filters

edit

Illustrative of how users points of view and needs differ from the programmers is how the utility of certain tags is exploited or not. In these early schemes (they evolved, obviously) the surveyor-important type, and region tags and the name-xx tags, to provide internationalization names displayed like origin and company tags in the Railyard gallery GUI. To the world builder content creators the type and region tags were useful group bundling sorting criteria defined by their asset content creator's as permanent group member filters for prioritizing the list of names one sees placing assets in Surveyor. These also sped up the access of a new tool or asset menu when toggling between F-key modes in Surveyor. Once you get a fair number of added assets into their data base, even TANE and TRS19 stagger noticably because they lack this sort of prefiltering. With such a filter selection, one could select groups of related assets, for example: UK versus USA tracks, buildings, or signals; or commercial or industrial or residential buildings; or German Commercial buildings—groups all before presenting a list of menu based selections. The menu of everything was a targeted menu. Some CC's defined special types, like 4-Poly Tree groupings, or by large club organizations such as "TrainzProRoutes" (TPR) or the German club "Blue-Sky International"; both of which had many prolific member content creators building the assets available in early Trainz releases. In fact many of those are still very popular, and can be considered core Trainz assets. But the type and region (misnamed in actual fact) pre-filters vanished with TS2009's arrival. Regardless of how organized or disjointed such filters were logically—all of such groupings (however disjointed or poorly considered) formed additional memory associations other than kuid, author, and names helping and enabling an experienced route builder to quickly reaccess the data element sought. It also gave two pre-filter criteria a user could customize for associations in the way his or her mind works. Wikibook explains such to the new Trainzer. WELCOME ABOARD!

Those two pre-filters, type and region, were often quite handy when world building, and the open storage scheme (One always knew where an assets config and other files were located... if an author's name, type, or region choice was an annoyance, one could change them easily enabling an easy way to regroup the pre-filtering tags. Alas, the implementation and keywords used for defining the later two was not well standardized, and many a content creator or group of CC's used them to group narrowly focused assets.[note 2]

Evolution, Both Useful and The Stupid

edit

Evolutionarily, the arrival of CMP in 2005 'did in' the open storage scheme for non-built-in assets when for speed, it adopted hash code calculated file associations and saved all assets in one of 256 subfolders, but one could still open the asset and customize—you now had to open the asset for edit and alter the compressed data. Worse, the bone-headed programmers of N3V decided they were never useful, and that those and other legacy tags—those now and thereafter termed by them in their arrogance, as 'Obsolete'. This obviously breaks thousands of assets produced under the predecessor rules of modeling for Trainz. Having made this monumental change without consulting the user community the N3V programmer team of N3V arranged for the Surveyor Module of TS2009 to no longer have the two related click-windows which allowed quick selection of an item under a particular branch of the asset placement tools in surveyor. In point of fact, they'd eliminated one (region) in the TC releases, which aside from skin color, is the primary difference of V2.7 and V2.8 Content Managers compared to Trainz 1.0TR06 releases.

By the end of the Trainz-Classics (TCs) releases, the new programmers were accustomed to ignoring objections of the users, and continued to make unilateral decisions on usefulness of tags, they chose not to just ignore—despite ample proof that few were users and had little understanding of what Trainz users actually did and needed as tools. It's as if they had a paranoia about a few extra bytes in a config file in a day when computer memory and processor speeds was growing tremendously in power and availability almost daily! In the TCs, enginespecs in particular were given a tag-trim and regrouping and spline based data objects began undergoing a similar shift in 'how-to construction needs'; this process continued into TS09 and concluded when all spline objects became definable as sub-types of KIND Track with various tags steering the software to generate the proper characteristics (not the former KIND Spline, Kind bridge, kind Tunnel, and even double tracked Track sub-type ... their understanding of classification and relations and formal logic is clearly lacking!). In point of fact, this is another faux-advance. Whilst appearing to advance the data model, the processing necessity for each sub-type remains. Again, something they could have incorporated as a pre-processing translation stage, maintaining full backwards compatibility was instead chosen to maintain run-time processes, but annoy the users requiring manual changes and use of a different set of definitions.

Worse, N3V's programmer's under the guise of 'obsolete' chose not to just pre-process such lines of data pairs as 'vaporware', but to call them out instead as errors or faults in all subsequent Trainz code releases. Stated another way, instead of the easy, simple path of just ignoring such old data forms—and a few others such as the ability to comment in-file, they created tens of hours of unnecessary demands upon the time of their users for almost any legacy asset in reading the file in (pre-processing stage), including ones previously built-in and 'made perfectly to the 'current data model' of the day.

That is, and apparently will forever be a drag and glassiness fact of Trainz-life for each such non-built-in assets which still must be processed a bit differently based on the setting of its Trainz-Build tag value (TBV) anyway.

The inexperienced new Trainzer should take note that downloading virtually any route or session from the DLS will create a situation of 'Missing Dependencies, formerly dozens or hundreds, but the situation has been under steady improvement since 2014! Importing one TR04 route into TC3 generated 197 unresolved, unrecognized assets. Importing a 3rd-party route not sourced from the DLS is likely to have dozens of assets from others in that Content Creators group, those that host that website—and in 2020, despite loosing some prominent ones, there are still over 800 such Trainz 3rd party sites hosting content. Since mid-TANE days, the DLS will not accept a asset wherein its component dependents (Listed in each kuid's kuid-list table/container) unless they are all on the DLS too.


Change the TBV—you change the pre-processing and tag interpretation process, so change the errors or 'nominal faults' (actually: 'faux-faults') shown by Content Managers... and so the list of 'legal tags' vs. 'illegal tags' the content manager processing will tolerate. (Hmmm, sounds like something easy to automatically never bother a user about, n'est pas?  A competent management and programmer team would strive to eliminate frictions caused by their product, wouldn't they? Ha!)  Guess what still works?  Guess who still must invest their time to fiddle with 3rd-party assets to satisfy this artificial barrier?  Bottom line, the programmers took the speed out of any users ease of use of legacy assets.
 

Evolutions for Speed and Function

edit

The initial Trainz versions used what is called a Progressive Mesh (.pm file) but Auran in the largest re-cast of their data definitions as they evolved Trainz UTC data set/data model for the new power of interactive industries and customizable Driver Sessions, they also introduced the slightly simpler 'Indexed Mesh' (.im file) and LOD during the overhaul of the Trainz UTC data models for the much more powerful TRS2004 original release.

It is clear, at that point, at least internally, the TrainzBaseSpec still governing Trainz asset creation was defined and formalized as the flexibility of TR04 took shape. Mentions of this externally are missing—at least until N3V Games decided their first sole-developed evolutionary release, TRS2009: World Builders Edition tried to rely on the fancy new TrainzOnline Wiki for documentation. That is still unfinished, and doesn't give the least heed to making older data models comprehensible — which is where the importance of the Content Creators Guide(s) to old and new users enters the story.

The Wise and the Unwise Janus of Programming

edit

Before it arrived in the community, Auran, the operating company and software house would
 • 1) First loose Greg Lane, genius head-programmer responsible for Trainz, UTC, TR04, and Trainz 2006,
 • 2) overextend spending millions developing another (unsuccessful) computer game,
 • 3) go into bankruptcy and reorganization laying off essentially everyone
 • 4) Even loose the DLS data base, probably to sabotage by a disgruntled unemployeed personage, or management decision—the Trainz Community suddenly lost its forum server and the DLS for several months.
 • 5) Undergo the indignity of having to give-over operations control to a new court-ordered partner, Tony Hilliam and the others invested in N3V Games. 2006-2008 were not happy times for Auran, which ended up reorganized as a holding company owning certain Trainz rights, but N3V Games and a new, much smaller team of employees (Five or Six compared to 32-35 of Auran!) was in charge of Trainz operations (i.e. version licensing and releasing) and further developments since 2007, which became permanent in 2008.

Computers were rapidly changing at the time as well—both disc drives and internal RAM memory soared to unheard of uncounted gobs of storage, numbers unthinkable just a handful of years earlier—and values which seem sedate today with phones having similar power and flexibility! But TR04 was buggy initially, so it had FOUR service pack releases and a host of patches and hot-fixes over several years. Many considered that the best Trainz release ever, well into the teething troubles of TS12 (1 SP) (i.e. through TS09 (4 SPs), TS10 (also 4 SPs) and finally peaking in 2014 with TANE and the beckoning power promised by the 64-bit CPU-World beyond. TRS2006 came out introducing ContentManager Plus but its run-time software packages, as are the coding of TC1&2 (V2.7) and TC3 (V2.8) are the same JET 2 game engine and operate with little evident differences. Surveyor and Driver operate and display the same way. CMP and TS2006—TC3 sometime crash in Windows 10, but otherwise run fine— save the TR06 'Intro-video' is best disabled when launching. Turning off internet access seems to minimize their run-time packages causing crashing—which normally happens when exiting the program or Alt-TAB switching to another App without pausing Driver... CMP and the new local file storage scheme (Hash-Code folder names) are offsetting changes—users lost easy access to the raw data files, but gained in DLS operations. One can still open an 3rd-party asset for edit and fiddle at need. CMP did many of the things 3rd-party 'TrainzObjectz' had given the community, but not all; it did combine other independent tools for uploading, downloading, archiving, and fault checking into one package, but TrainzObjectz caught more relevant basic faults, specifically missing attachment points and textures for years—undoubtedly a large reason many Content Creators stayed with models developed first for TR04 and TR06, even into the current post-TANE era. The promised land is just a service pack or new release version away has become an over-familiar and much-undelivered refrain from N3V.

None-the-less, there was the data model, and a new head strong inexperienced TS2009 gave their users the time-wasting shitload of artificial faults, including new 'fault tests' on mesh data, ones threatening to kill .PM file defined assets entirely (While hypocritically maintaining them in the built-in data base cabinet files (.ja files-'Jet Archive files). They also eliminated a couple of engine-spec sound tags (breaking legacy Loco definitions—they'd require them again in TS12 and after!), and introduced the LOD files system, requiring an asset to have multiple meshes (near, middle, far) or generate a fault. Even assets without meshes had to have a mesh container in certain circumstances! Logic, is not an N3V programmer's long-suite, but they have a lock on bone-headed programming decisions and stubbornness adverse to the communities needs!

We expect to add much HowTo about converting older forms of the data model to the new Trainz minimum uploadable trainz-build needs, at the least, and a lot more examples of digital model types in general. Trainzers maintain these pages, not programmers!

Kinds of KINDs

edit

All Trainz defined data (content) has three required elements: A config.txt file to organize the data, an identity meaning a kuid (username alone will do you no good, a legal asset however can be created without a name!) and last, a legally defined kind tag. The kind is in charge, the conductor of the orchestra, the Platoon Sargeant or CEO giving directions — setting up the requirements for everything that gets processed after. In short, the kinds' value, a small select tightly defined members-only group — tells Trainz software what is to be rendered and displayed in the virtual worlds we create, and how (or where) to find the other parts needed to make those parts of the asset linked together in that config.txt file.
  Each of the below Child Classes are considered to have the TrainzBaseSpec as their 'Parent Class' of data.[note 3] A few kinds listed below, those which are underlined, are legacy kinds antedating changes to the Trainz data model in the release of TS2009 (i.e. since late 2008), with only gradual (incremental) changes imposed since by the N3V programmers.
  Details for fixing assets based on these legacy kinds can currently be found in the Content Creator's Guide section of the N3V Trainz Wiki TrainzOnline site here with illuminating examples of legacy Kinds here. Perusal of the CCG is highly recommended to any users of the Trainz Download Station or anyone contemplating creating content. The insights gained from understanding of the background history of how older content was defined can then be contrasted with the current TrainzOnline coverage of the same data type and compared, for often this kind of then-vs.-now provides valuable insights to fixing, altering and customizing assets. More to the point, the writing in the CCG was professionally produced and is far more tautological—it will often give you insights as to extended effects if this or that is altered, which the Trainz Wiki just doesn't provide. The CCG put up on TrainzOnline is the TC1&2/TC3 version — the last published of several booklets printed dating back to Trainz in 1999; the TC3 CCG contains the altered Enginespecs Locomotive assets from the TRS2004/TRS2006 AND UTC data models need to be properly updated.

TrainzBaseSpec Child Class KINDs (type asset groups)

 

  The above table from the TrainzBaseSpec is a list of current KINDs, but does not include the obsolescent KIND classes antedating N3V's reorganization of the Trainz data model between the release of TC1&2 / TC3 (2007) and TS2009 (2008).

Notations

edit
  1. Containers or subcontainers are set off by at least one whitespace character and a following open-curly-brace, and the second column of the tables following identify that one is a part, sometimes a repeating part of the other.
  2. Containers have scope in more than one KIND context, whereas subcontainers, so far as we as editors can discern, do not, and are married uniquely to and within their particular container parent, including KINDs as well. Recall: Both Trainz data types are computer-science containers.
  3. Terms below ending with -ID are 'variables'— string identifiers (i.e. keywords) and set up by the content creator. Some are arbitrary and unimportant, but many are handles and specific to interfacing with GameScript software files in their run time interactions. (For example, if an config.txt file is defining a rule which takes identifiers and input of data parameters, such '-ID' terms represent variables that the script code has to match up with.)
Navigable Click-table as Table of Contents

Words beginning with strings between...

 aa-ar as-at au-az ba-bo br-cg ch-cz da-dz ea-ez fa-gz ha-hz ia-iz ka-kz la-lz ma-mz na-nz oa-oz pa-pz qu-rz sa-sz ta-tz ua-vz wa-zz 


aa-ar

edit
Tag or Container Data Type Parent Applies to Description
accel float,float smoke { smoke block Acceleration. First number is Gravity effect, second is wind effect. Default is 0,0.
adhesion ? motor { engine ?
air-drag-coefficient ? motor { engine ?
alias kuid config.txt file general Kuid of the asset to be referenced as a basis for the new asset. For example TRS Traincars can reference archived locomotive mesh assets for use with custom textures. This process is done by aliasing the KUID of the archived traincars.
alias kuid config.txt file paintshed-skin the kuid of the paintshed template the paintshed reskin is based on
allowed-categories { subcontainer queues-ID { industry The allowed product categories in this queue.
allowed-products { subcontainer queues-ID { industry The allowed products in this queue.
allows-mixing boolean config.txt file product Products with this tag may be combined in a single queue along with other products of the same category. Eg. Lumber and 20ft Container on a flatcar. By default, allows-mixing is set to 0. Therefore by default, a queue will only allow one product-category at a time. To look at allows-mixing from another angle, liquid products should never have allows-mixing enabled. Otherwise you have the potential to mix petrol with oil within the same tanker.
altitude ? config.txt file region altitude of this region
ambient boolean soundscript-ID { mesh object 0 or 1, default 0 is off. Ambient sounds have no 3D “position” and may be stereo. Non-ambient (positional) sounds are positioned on the object and must be mono - see attachment above
amount float inputs-ID { industry Amount required as input.
amount float outputs-ID { industry Amount to output.
angle float list degrees config.txt file turntable Specifies the angles at which the turntable stops. Not used if the turntable is set up as animation.
angles float list mesh-table-ID { interior Rotational boundaries in radians relative to its attachment point.
anim [path/]filename.kin config.txt file pantograph The “anim.kin” animation file for the pantograph
anim [path/]filename.kin effects-ID { animation effect Reference to the animation file (.kin)
anim [path/]filename.kin mesh-table-ID { mesh object The animation file (.kin) exported from 3dsmax.
animated-mesh mesh-table-ID { queues-ID { industry Animated mesh which changes as the queue becomes full.
animation-loop-speed float mesh-table-ID { mesh object This tag must be here if the asset is to animate when placed. If this tag is not here when placed the animation will not play by default, but may play if controlled by script. A different value (e.g. 0.5, 2.0) may be used in the tag to play the animation at a different speed from that created in 3dsmax.
animdist float config.txt file bogey Leave this tag out if the bogey is not animated. The distance traveled in meters by the bogeys in 1 second (30 frames) of animation. Bogey animations (exported from 3ds Max) are called “anim.kin”.

as-at

edit
Tag or Container Data Type Parent Applies to Description
asset-filename string config.txt file general Obsolete from v2.5 on
att helper attached-trigger-ID { industry Attachment point (stored in the mesh file)
att helper effects-ID { effects-ID { The effect insertion point. The attachment point must be orientated correctly in 3dsmax.
att helper mesh-table-ID { mesh object The mesh (and animation if present) is inserted at a mesh attachment point rather than the origin (without this line the mesh is placed relative to the origin of the parent model).
attached-track { container config.txt file scenery with track Auto-generated spline track. Generated through attachment points located within the default mesh. Attached-tracks update automatically to the spline track connected to it. You may over-ride this auto-update feature by adding useadjoiningtracktype 0 Note. Correct track end attachment orientation is essential. The Y axis must point ‘out’ at the correct angle. The Z axis must point ‘up’.
attached-track-ID { subcontainer attached-track { scenery with track User supplied identifier
attached-trigger { container config.txt file industry A Trigger is a point along an attached track with a specified radius. When a compatible rollingstock item enters this radius it triggers a set of commands,controlled through its script.
attached-trigger-ID { User supplied identifier attached-trigger { industry User supplied identifier
attachment helper smoke# { smoke block The attachment point (stored in the mesh file) to place the smoke effect.
attachment helper soundscript-ID { mesh object Attachment point on the object to which the sound is attached. Default: The sound will attach to the origin of parent object (not used for ambient sound)
attachment-points { subcontainer queues-ID { industry List of attachment points for this queue on which products are visualised. (Use this, OR animated-mesh)
att-parent mesh-table-ID { mesh-table-ID { mesh object The tag tells Trainz in which mesh the attachment point is located. The insertion attachment point is located within the mesh ‘name’ , as listed in the config.txt.

au-az

edit
Tag or Container Data Type Parent Applies to Description
author string config.txt file general Author, contact-email and contact-website are useful information, particularly if a user has a question on your models or would like to offer help or suggestions.
autobrakecylinder ? volume { engine ?
autobrakecylinder_start ? pressure { engine ?
autobrakecylindervent ? flowsize { engine ?
auto-create boolean mesh-table-ID { mesh object The model is generated automatically when placed, or when you load a map which includes the model. In some instances you don’t want the mesh visible (as this may be controlled through script). If auto-create is 0 the mesh will not be visible when placed.
autoname boolean config.txt file general When enabled, automatically assigns a unique name to this object as it is placed.
autopilotmode boolean driver-settings { activity AI driver setting. (off, on)
auxreservoir ? volume { engine ?
auxreservoir_autobrakecylinder ? flowsize { engine ?
auxreservoir_no3 ? flowsize { engine ?
auxreservoir_start decimal pressure { engine Auxiliary reservoir pressure on loading the game.
auxreservoir_trainbrakepipe ? flowsize { engine ?
auxreservoirvent ? flowsize { engine ?
axle-count ? motor { engine ?

ba-bo

edit
Tag or Container Data Type Parent Applies to Description
backdrop boolean config.txt file scenery Specifies whether the object is treated as a backdrop or not. (stays visible even when far from the camera)
bendy boolean config.txt file splines Switches how track is bent on corners, set as 1 allows the mesh to be deformed as the spline is bend around corners.
bogey kuid bogeys-ID {
bogey-0 {
bogey-1 {
bogey-2 {
bogey-3 {...
traincar Sub-table identifier tag (subcontainers 0-4) holding the Kuid and orientation of bogey asset. The subcontainer is the newer method of specifying bogey kuid software interactions and togetherness. Each corresponds to an attachment point on the traincar body mesh. Subcontainers have two optional Boolean modifier tags that need not be specified unless needed. Both default to 'FALSE', defined as the 0 digit.
   reversed                     0 - animation synch
   sideplay-permitted           1 - long Loco's have center bogeys which pivot and slide off center.
bogey kuid config.txt file traincar The bogey KUID number (default for a.bog0 and a.bog1)
bogey kuid tracksound { Tracksound The bogey to which this sound will apply.
bogey-# kuid config.txt file traincar The bogey KUID number for a.bog# (Used only if different to a.bog0)
bogey-#-r kuid config.txt file traincar Used instead of ‘bogey’ and bogey-1. The bogey will have reversed orientation. Note: This will cause bogey animation to play in reverse unless the attachment point for the bogey is also rotated 180 degrees in 3dmax.
bogey-r kuid config.txt file traincar Used instead of ‘bogey’ and bogey-1. The bogey will have reversed orientation. Note: This will cause bogey animation to play in reverse unless the attachment point for the bogey is also rotated 180 degrees in 3dmax.
bogeys { container config.txt file traincar The bogey container stores the bogeys used for the loco\rollingstock item. For consistency, it should have been better differentiated like similar tables as 'bogey-table' vice the confusable 'bogeys' outside tag. The bogeys container only holds bogey subcontainers designated so numerically they map to the same attachment points generated by GMAX or big expensive brother 3ds Max. This in fact, is a great illustration as to how attachment point designations are transposed and mapped onto the asset coding creating software-linkages. The odd difference with bogeys is the old fashioned tags bogey-r, bogey-#-r which are totally NOT PART of the newer bogeys container scheme directly. Instead the subcontainers have an allowable tag 'reversed'--A BOOLEAN VALUED tag, meaning legal values are just {v: 0, 1) zero or 1. The tag defaults to zero, so need not be listed for most assets, so is only needed when the bogey look and bogey animation are oriented differently in the axis of the bogey attachment point in the traincar body mesh which marrys the bogeys mesh. In the great majority of cases, both front and rear (up to all four) bogeys of a traincar will normally be identical kuid references.
bogeys-ID { subcontainer bogeys { traincar User supplied identifier relative to mesh standards

reversed 0

   sideplay-permitted 1
boiler-to-piston-flow ? steam { steam-engine ?
boiler-volume ? steam { steam-engine ?

br-cg

edit
Tag or Container Data Type Parent Applies to Description
brakefull decimal pressure container { engine Brake pipe pressure in grams/m³ after full service reduction (for self lapping brakes).
brakeinitial decimal pressure container { engine Brake pipe pressure in grams/m³ after initial service reduction (for self lapping brakes).
brakepipe decimal pressure container { engine Brake pipe pressure in grams/m³ when fully charged.
brakeratio ? motor { engine ?
bridgetrack kuid config.txt file splines Kuid of the track type to be used.
buffer-speed float metres/second config.txt file trackside Used for buffers; specifies the maximum speed up to which the buffer will stop a train.
burn-rate decimal steam { steam-engine How much coal in kg/s is consumed when the loco is operating at the test parameters
burn-rate-idle decimal steam { steam-engine How much coal in kg/s is consumed when the loco is idle, purely to keep the fire burning
cabinsway float config.txt file traincar Cabin sway multiplier. Eg -2.
camera# float list cameralist { interior A camera contains 5 numeric coordinates that determine the placement and orientation of the camera. These are: 0,0,0,0,0 =left/right, front/back, up/down, yaw, pitch To determine these variables add -freeintcam to the trainzoptions.txt. Pan around the interior using arrow keys and mouse. Co-ordinates are displayed at bottom-left of screen. industry asset’s script file.
cameradefault integer config.txt file interior The in-cab camera view Trainz defaults to when entering the cab.
cameralist { container config.txt file interior List of camera viewpoints
car# kuid config.txt file map Each of these tags stores the kuid of a car to be used on the roads.
car# kuid config.txt file region Each of these tags stores the kuid of a car to be used on the roads.
carrate float seconds config.txt file splines Defines traffic density on road (minimum seconds between each car generated). 0 = No traffic. Number must be greater than 3.
casts_shadows boolean config.txt file splines Toggles whether the shadow model is displayed.
category-class class code config.txt file general The class code for this asset.
category-era era code config.txt file general Era code list.
category-era-# era list config.txt file general Era code.
category-keywords keyword list config.txt file general Keyword list
category-region region list config.txt file general A list of REGION codes or REGION GROUP codes,
category-region-# region code config.txt file general A REGION code or REGION GROUP code.

ch-cz

edit
Tag or Container Data Type Parent Applies to Description
changeability 0/1/2 driver-settings { activity Propensity for weather to change. (none, periodic, extreme)
chunky_info float list config.txt file splines These values (in metres) define the shape of the mesh created for the track.
chunky_mesh folder config.txt file splines Name of texture to apply to rail. The texture must be within a directory of the same name (ie. “textureName\textureName.texture.txt”). The chunky_mesh value will simply be the name of this directory (ie. “textureName”).
class string config.txt file general This refers to the class of asset within the script file (the class must match that stated in the script).
clutter-mesh kuid config.txt file groundtexture Ground textures can now reference a mesh and insert the mesh automatically as the ground is painted. Painting over a clutter-mesh ground texture effectively deletes clutter meshes and texture. The mesh it refers to is can be standard scenery object kind mesh. Clutter-meshes must have only one Max material assigned to it only. Polycounts must be very low.
collate-meshes ? config.txt file trackside Enables clutter-mesh support (eg. fast trees)
collision-parent mesh-table-ID { mesh-table-ID { interior For collision-proxy meshes in an interior mesh-table, this specifies the parent object to be proxied. is 3.
color rgb value smoke# { smoke block The R,G,B color value of the effect.
company string config.txt file traincar The Locomotive or car owner
compressor integer flowsize { engine Flowsize of the compressor
compressor decimal pressure { engine Compressor maximum pressure in grams/m³
conesize ? smoke# { smoke block ?
conflicts-with queues { subcontainer queues-ID { industry This queue and the conflicting queue(s) cannot be used simultaneously.
consists { container config.txt file industry The consists tag stores information on consists that can be generated by the industry.
consists-ID { subcontainer consists { industry User supplied identifier
consists-vehicle-ID { subcontainer consists-ID { industry User supplied identifier
contact-email string config.txt file general Author, contact-email and contact-website are useful information, particularly if a user has a question on your models or would like to offer help or suggestions.
contact-website string config.txt file general Author, contact-email and contact-website are useful information, particularly if a user has a question on your models or would like to offer help or suggestions.
controlmethod 0/1 driver-settings { activity Driver control setting. (dcc, cabin)
coupling-mask boolean consists-ID { industry Coupling mask that applies to the consist. 0 will block off all coupling activity while “1” will mean you can couple with a vehicle.
critical-animation boolean mesh-table-ID { mesh object When enabled, this forces the animation to continue playing when off screen. Impacts performance when enabled.
custom-attachments ? queues-ID { industry Not used.

da-dz

edit
Tag or Container Data Type Parent Applies to Description
decoupling-mask boolean consists-ID { industry Coupling mask that applies to the consist. 0 will mean you can’t decouple vehicles in the train while 1 means you can decouple vehicles.
default { subcontainer mesh-table { mesh object Main mesh of the asset
defaultjunction kuid config.txt file region Default type of junction in this region.
default-mesh kuid effects-ID { attachment effect The KUID of the attached mesh.
default-night { subcontainer mesh-table { mesh object ‘Main’ night window mesh on scenery and industry and traincar assets. Modeled to the same 3d space as the default mesh and is inserted at the default mesh origin.
default-night-forward { subcontainer mesh-table { mesh object The name for a submesh attached to a locomotive, to show a beam of light for example, in the direction of movement of the locomotive. Trainz recognises the name and turns on the correct mesh depending on the running direction.
default-night-reverse { subcontainer mesh-table { mesh object The name for a submesh attached to a locomotive, to show a beam of light for example, in the direction of movement of the locomotive. Trainz recognises the name and turns on the correct mesh depending on the running direction.
deraillevel 0/1/2 driver-settings { activity Derail setting. (none, arcade, realistic)
description tag string config.txt file general English language description of the asset.
description-XX tag string config.txt file general Translated description of the asset in the language specified by localization code XX.
dighole float length, width config.txt file scenery Specifies the number of grid segments (length, width) to be removed from the surveyor grid to accommodate the turntable pit.
direct-drive boolean config.txt file bogey When direct-drive is present, the bogey animation is linked to the steam piston and physics system. If this tag is not included the piston and steam sounds will not work!
direction vector smoke# { smoke block The vector at which the smoke travels.
directional boolean effects-ID { corona effect The default for coronas is to be aligned to the attachment point to face the NEGATIVE Z direction. This is especially useful for Traincars.
disable-extra-track-sounds boolean config.txt file traincar Disables the “click-clack” tracksounds. (0, 1)
distance min, max metres soundscript-ID { mesh object 2 numbers (meters) 1st number is the distance at which the sound is played 100% 2nd number is the cut-off distance. Doesn’t affect the volume of the sound (Default: 50m, 150m)
ditch_color rgb value config.txt file traincar RGB ditch light color. Eg. 255,255,255.
divider folder config.txt file splines Name of the model to use as the middle bridge section. Placed in subfolder with same name.
don’t-flip-terminator boolean config.txt file splines Terminator model isn’t mirrored on one side.
driver-settings { container config.txt file activity Specify the settings of this scenario, similar to Driver’s settings screen
duration float process-ID { industry Length of time (in seconds) that the process runs for.
dynamic-brake { container dynamic-brake container engine A sequence of numeric subcontainer data structures referring to a specific throttle notch and specifying the speed (m/s) and a braking force (kN) value which together define a braking force graph for that throttle notch

ea-ez

edit
Tag or Container Data Type Parent Applies to Description
effects { subcontainer mesh-table-ID { mesh-table-ID { Optional mesh-table variations
effects { subcontainer mesh-table-ID { mesh object Optional mesh-table variations
effects-ID { subcontainer effects { effects { User supplied identifier
enabled boolean smoke# { smoke block Specifies whether the effect is enabled.
endcolor rgb value smoke# { smoke block The final color the smoke effect shifts to.
endlength float metres config.txt file splines Length in meters of the initiator and terminator models.
engine boolean config.txt file traincar States type of traincar. 0 for Rolling stock, 1 for Locomotive.
enginesound kuid config.txt file traincar References the KUID number for the traincar’s sound.
enginespec kuid config.txt file traincar References the engine KUID number. This specifies the driver physics boundaries for the traincar.
epreservoirpipe decimal flowsize { engine Flowsize of the electric pneumatic braking
epreservoirpipe decimal volume { engine For electro pneumatic braking. Not currently in use, generally leave this setting
epreservoirpipe_autobrakecylinder decimal flowsize { engine Flowsize of the electro pneumatic automatic brake cylinder reservoir.
epreservoirpipe_start ? pressure { engine For electro pneumatic braking. Not currently in use, generally leave this setting.
equaliser decimal volume { engine Equalising reservoir volume.
equaliser_mainreservoir decimal flowsize { engine Flowsize of the equaliser main reservoir
equaliser_start decimal pressure { engine Equalising Reservoir pressure on loading Trainz
equaliservent decimal flowsize { engine Flowsize of the equaliser vent
equaliserventemergency decimal flowsize { engine Flowsize of the emergency equaliser vent
equaliserventhandleoff decimal flowsize { engine Flowsize of the equaliser to the atmosphere when in the "handle off" position
extensions { container config.txt file all Asset specific data.

fa-gz

edit
Tag or Container Data Type Parent Applies to Description
faces camera/motion/down smoke# { smoke block The direction the smoke effect faces.
face-texture [path/]filename.texture config.txt file drivercharacter This is the driver icon used in TRS. Must be 64x64 pixels
facing boolean consists-vehicle-ID { industry Indicates the direction of the vehicle.
file [path/]filename.tfx smoke# { smoke block The twinkle file to be used (optional).
firebox-efficiency decimal (0.0 -> 1.0) steam { steam-engine Efficiency of the firebox (higher is more efficient)
firebox-to-boiler-heat-flow decimal steam { steam-engine Rate of heat flow from firebox to boiler
firebox-to-boiler-heat-flow-idle decimal steam { steam-engine Rate of heat flow from firebox to boiler when idle
firebox-volume steam { steam-engine Physical volume of firebox in litres
flowsize { container config.txt file engine Flowsize settings specify the rate of flow through the pipes.
fontcolor rgb value effects-ID { corona effect The color of the sign text in r.g.b.
fonts integer config.txt file traincar Indicates how many types of numbering fonts used.
fontsize float metres effects-ID { corona effect The size of the sign text
fonts-path folder config.txt file traincar Replaces asset-filename usage for ‘fonts’.
frame-rate float frames/second config.txt file turntable Generally make this 30 (frames per second)
frequency float effects-ID { corona effect This variable specifies the flash frequency in Hz, e.g. 1 for once per second, 0.5 for once every 2 seconds, 2 for twice per second.
fuel decimal mass { engine Fuel level, not currently in use
fuel-energy decimal steam { steam-engine Relative energy in kilojoules per kilogram of coal
function 'TrackSignal' config.txt file trackside Must be set to 'TrackSignal'
grounded float metres config.txt file splines Height in meters for the road to be offset from terrain.

ha-hz

edit
Tag or Container Data Type Parent Applies to Description
height float metres config.txt file splines Height from the track level to the base. Must be a negative value in order to raise the bridge above the ground.
height integer thumbnails-ID { all Image height
height negative metres config.txt file scenery Height from the track level to the base. Should be negative.
height-range min,max metres config.txt file scenery height-range min, max eg: height-range –10, 100. Where min and max are values in meters.
hidden boolean config.txt file splines Prevents the spline from being rendered.
highspeedexhauster decimal pressure { engine For vacuum braking - not currently in use
highspeedexhauster_vacuumbrakepipe decimal flowsize { engine For vacuum braking
hornsound kuid config.txt file traincar References the KUID number for the traincar horn sound.

ia-iz

edit
Tag or Container Data Type Parent Applies to Description
icon0 kuid config.txt file general Deprecated. Use thumbnails container
icon1 kuid config.txt file general Deprecated. Use thumbnails container
icon2 kuid config.txt file general Deprecated. Use thumbnails container
icon3 kuid config.txt file general Deprecated. Use thumbnails container
icon-texture [path/]filename.texture config.txt file product The in-game representation of the product when specifying the load type for a compatible rollingstock item (driver) Should be a 64x64 TGA.
image [path/]filename thumbnails-ID { all Image filename
indbrakefull ? pressure { engine ?
independantbrakecylinder ? volume { engine ?
independantbrakecylinder_start ? pressure { engine ?
info-page [path/]filename.html config.txt file profile Filename of the HTML information page for the session.
inherit-velocity ? smoke# { smoke block ?
initial-boiler-temperature ? steam { steam-engine ?
initial-count integer queues-ID { industry The initial number of items in the queue.
initiator folder config.txt file splines Name of model to use at start of bridge, placed in subfolder with same name.
inputs { subcontainer processID { industry Input process list
inputs-ID { subcontainer inputs { industry User supplied identifier
instance-type 'instance'/'resource' config.txt file product Instance-type: 'resource' is used when there is no mesh, or one only mesh is referenced in the mesh table (Ie Liquids, Bulk loads etc). 'instance' is used when more than one mesh is in the mesh table Ie: Passengers, General Goods. 200 max.‘size’ per Asset.
interior kuid config.txt file traincar References the KUID number for the traincar interior cab view.
interpolate ? smoke# { smoke block ?
invisible boolean config.txt file splines Specifies whether the object is invisible.
isroad boolean config.txt file splines Isroad/Istrack. Two boolean tags detailing the behavior of the bridge. If the isroad is set to true, then cars are placed on the bridge. Both values should not be set to true.
istrack boolean config.txt file splines Isroad/Istrack. Two boolean tags detailing the behavior of the bridge. If the isroad is set to true, then cars are placed on the bridge. Both values should not be set to true.
istunnel boolean config.txt file splines Disables smoke effects for trains on track with this tag set. Useful for tunnels, engine houses, snow sheds - anywhere you don't want smoke going through the roof of a structure.
junction-lever-mesh subcontainer junction-vertices-ID { fixed track The mesh (selected from the mesh table) to be used as a junction lever.
junction-vertex helper junction-vertices-ID { fixed track The attachment point (located in mesh file) at which to place the lever.
junction-vertices { container config.txt file fixed track The Junction-Vertices Container contains the tags needed to handle the lever portions of a fixed track.
junction-vertices-ID { container junction-vertices { fixed track User supplied identifier

ka-kz

edit
Tag or Container Data Type Parent Applies to Description
keyframes integer list config.txt file turntable Specifies where on the animation the turntable is to stop.
kind 'animation' effects-ID { effects-ID { This effect is used when a mesh has a variety of animations. Usually the animations will be controlled by a script related to the asset.
kind 'attachment' effects-ID { effects-ID { In TRS we now have the ability to attach a mesh into another mesh by referencing it’s KUID through a meshtable.
kind 'corona' effects-ID { effects-ID { A corona is a ‘glow’ light effect. It is a simple texture that is inserted at an attachment point within the mesh. Coronas can be added to any asset that uses a meshtable.
kind interior object kind mesh-table-ID { interior The type of interior object the particular mesh is. Affects the behavior of the mesh in game. Kinds: lever (Levers, switches, dials etc), animated-lever (Animated Levers etc Eg. in steam cabs), collision-proxy (Mouse collisions for animated levers), needle (Gauge needles, Speedo, brake pres.), pullrope (Pull rope horn as in the F7), light (Wheelslip light)
kind kind config.txt file general Asset kind.
kind 'name' effects-ID { effects-ID { Some assets may have editable signs. When you set an asset’s name in surveyor through the Edit Properties icon (‘?’ icon) the signage can be set-up to automatically update. The variables can be set for each sign.
kind 'texture-replacement' effects-ID { effects-ID { This effect was created for rolling stock items to swap the visible texture of bulk loads (such as coal or woodchips).
kuid kuid config.txt file general Asset kuid
kuid-table { container config.txt file all List of all required dependencies.
kuid-table-ID { kuid kuid-table { all User supplied identifier

la-lz

edit
Tag or Container Data Type Parent Applies to Description
latitude ? config.txt file region latitude of this region
left-passenger-door { subcontainer mesh-table { mesh object Predefined submesh identifier. Left side passenger doors.
length float metres config.txt file splines Length of track segment in meters
levels { subcontainer tracksound { Tracksound Relative sound levels. The sound is silent until 0.1 m/s, ramping up in volume until 10.0 m/s, constant maximum after that. Note, a value below 0.1 will not play a sound.
licence string config.txt file general User licence details
lifetime float smoke# { smoke block Time in seconds that smoke particles exist for. Default is 3.
light boolean config.txt file scenery Sets lighting to be used for object to be ambient or directional. 0 sets ambient lighting and object is light by general light value, 1 sets directional light which is affected by the position of the sun.
light boolean mesh-table-ID { mesh object Sets lighting to be used for object to be ambient or directional. 0 sets ambient lighting and object is light by general light value, 1 sets directional light which is affected by the position of the sun.
light_color rgb value config.txt file traincar RGB headlight color. Eg. 255,255,255.
lights { container config.txt file mosignal Signal lighting container. A list of coronas attached to each light point. Coronas are stored in each signal object’s directory alongside it’s textures.
lights-ID { subcontainer lights { mosignal Light point identifier.
limits float list mesh-table-ID { interior Mathematical boundaries Trainz uses determine the objects function. These values vary as different objects use different mathematical units.
longitude ? config.txt file region longitude of this region
loop float seconds smoke# { smoke block Time in seconds to loop the smoke sequence. Only valid if mode is set to time.
loopdelay float seconds smoke# { smoke block Delay (in seconds) before the effect is played again.
looped boolean effects-ID { animation effect Looped 1 (optional) Use only if the animation is looping (repeating). Default 0 (i.e. not looped).
looping boolean config.txt file turntable specifies that the turntable can go all the way around, rather than stopping at a certain point.

ma-mz

edit
Tag or Container Data Type Parent Applies to Description
mainreservoir ? pressure { engine ?
mainreservoir ? volume { engine ?
mainreservoir_ep ? flowsize { engine ?
mainreservoir_start ? pressure { engine ?
main-reservoir-volume ? steam { steam-engine ?
map-kuid kuid config.txt file profile Kuid of the map attached to this session.
mass float kg config.txt file product The physical mass of the product. For Containers and Passengers this is calculated in kilograms/unit, while for Liquid and Bulk loads this is calculated in kilograms/litre.
mass integer kg config.txt file traincar Mass in kilograms
mass { container config.txt file engine ?
max-accel ? motor { engine ?
max-coupler-gap float metres config.txt file traincar maximum gap expected between couplers of this type
max-decel ? motor { engine ?
max-distance float tracksound { Tracksound Maximum distance at which the sound is played. Eg 1000
max-fire-coal-mass ? steam { steam-engine ?
max-fire-temperature ? steam { steam-engine ?
maximum-volume ? steam { steam-engine ?
maxrate float smoke# { smoke block The maximum rate at which particles are emitted.
maxsize float smoke# { smoke block ?
maxspeed ? motor { engine ?
maxspeedkph float smoke# { smoke block ?
maxvoltage ? motor { engine ?
mesh [path/]filename.im mesh-table-ID { mesh object The mesh name. This may include a sub-path. ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows.
mesh [path/]filename.lm mesh-table-ID { mesh object The mesh name. This may include a sub-path. ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows.
mesh [path/]filename.pm mesh-table-ID { mesh object The mesh name. This may include a sub-path. ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows.
mesh kuid config.txt file drivercharacter This refers to the kuid of the mesh asset inserted in to the locomotive mesh at a.driver0 (when in the Driver Module).
mesh-table { container config.txt file mesh object This is the new and preferred method of asset mesh placement for most mesh asset types. It gives huge control over mesh placement and animations. There are some asset types that cannot use a meshtable. These include all Bridges, Tunnels, Rails, Pantographs and other Spline Objects (eg. Fences or Catenaries).
mesh-table-ID { subcontainer mesh-table { mesh object User supplied identifier
mesh-table-ID { subcontainer mesh-table { interior User supplied identifier
min-distance float tracksound { Tracksound Minimum distance at which the sound is played. Eg 0.
minimum-volume ? steam { steam-engine ?
minrate float smoke# { smoke block The minimum rate at which particles are emitted.
minsize float smoke# { smoke block ?
mode speed/anim/timeofday/time smoke# { smoke block speed | anim | timeofday).
mode0 { subcontainer mesh-table { trackside Mesh showing lever in first position
mode0 { subcontainer mesh-table { mesh object Predefined submesh identifier. Mesh showing lever in first position
mode1 { subcontainer mesh-table { trackside Mesh showing lever in second position
mode1 { subcontainer mesh-table { mesh object Predefined submesh identifier. Mesh showing lever in second position
motor { container config.txt file engine ?
mousespeed float mesh-table-ID { interior This controls the use of the mouse on screen. Use this to control the mouse speed and push/pull direction for levers and dials. • mousespeed -1 Inverts mouse direction. • mousespeed 2 Doubles mouse speed in default direction. • mousespeed -0.5 Inverts mouse direction and halves the speed.
moving-friction-coefficient ? motor { engine ?

na-nz

edit
Tag or Container Data Type Parent Applies to Description
name <blank> effects-ID { name effect Leave blank to allow the name to be inserted by script without an initial default.
name 'name' effects-ID { name effect When name name is specified, it uses the asset’s changeable name. Changed through the Edit Properties icon (the ‘?’ icon) in Surveyor.
name string effects-ID { name effect The default text when placed. If name Graceland (for example) was used, the sign would never be able to be changed even though the user may have changed the asset’s name in Surveyor.
night [path/]filename.tga  ↓config.txt file environment Name of image file for night sky. File should be 256 x 256 pixel 24bit tga. The file extension should be excluded inside config.txt, ie “QLD_Sky” rather than "qLD_Sky.texture.txt”.
night-mesh-base mesh-table-ID { mesh-table-ID { mesh object The mesh to which 'default-night' is linked. If the 'night-mesh-base' is hidden then 'default-night' will not be displayed.
nightmode home/lamp/constant  ↓config.txt file scenery Only add this tag if you reference a default-night mesh in the mesh-table. Values: home, lamp or constant.
no3pipe  float (Decimal)  ↓ flowsize container {  ↓ kind KIND engine The Flowsize container is used by KIND Engine[1] (Enginespec) and KIND Steam-engine[2] (Steam Enginespec) assets.
no3pipe  float (Decimal)  ↓volume container {  ↓ engine  The Volume container is a top-level config.txt file entry used by kind Enginespec and kind Steam Enginespec assets.
no3pipe_autobrakecylinder  float (Decimal)  ↓ flowsize {  ↓ engine The Flowsize container is used by KIND Engine[3] (Enginespec) and KIND Steam-engine[4] (Steam Enginespec) assets.
no3pipe_mainreservoir  float (Decimal)  ↓ flowsize {  ↓ engine  ibid
no3pipe_start  float (Decimal)  ↓pressure {  ↓ engine  detail needed TBDL-pressure
no3pipevent  float (Decimal)  ↓ flowsize {  ↓ engine The Flowsize container is used by KIND Engine[5] (Enginespec) and KIND Steam-engine[6] (Steam Enginespec) assets.
no4pipe  float (Decimal)  ↓ flowsize {  ↓ engine  ibid
no4pipe  float (Decimal)  ↓volume container {  ↓ engine  The Volume container is a top-level config.txt file entry used by kind Enginespec and kind Steam Enginespec assets.
no4pipe_start  float (Decimal)  ↓pressure container {  ↓ engine  tbdl
normal [path/]filename.tga  ↓config.txt file environment Name of image file for normal sky. File should be 256 x 256 pixel 24bit tga. The file extension should be excluded here, i.e. “QLD_Sky” rather than "qLD_Sky.texture.txt”.
nostartdelay boolean soundscript-ID { mesh object 0 or 1, default 0 If not set, the sound will have a short delay before playing, this stops flanging (flanging is a really nasty sound caused when several copies of the same sound are played at once).
notches  float (list) mesh-table-ID { interior The position of notches within the angle boundaries. These are represented as decimal points between and including 0 and 1.
notchheight  float (list) mesh-table-ID { interior The size of the notches specified.

oa-oz

edit
Tag or Container Data Type Parent Applies to Description
object-size float metres effects-ID { corona effect Size of the corona on the object when viewed up close Defaults to 0.15 (i.e. 0.15m)
obsolete-table { container config.txt file all The obsolete-table describes the asset’s revision history.
ontheright boolean config.txt file region Cars drive on the right side of the road.
opacity 0..1 mesh-table-ID { mesh object Controls the opacity of the mesh. Zero (invisible, not recommended) or one (solid).
opacity 0..1 mesh-table-ID { interior Usually used for the window mesh to give transparency (and the impression of reflection).
organisation string config.txt file general Organisation name will show in Trainz in Railyard as the organisation for the model, for instance if you use Joe’s Trainz or Cripple Creek Logging Company.
origin string config.txt file traincar The Country Abbreviation.
outputs { subcontainer process-ID { industry Output process list
outputs-ID { subcontainer outputs { industry User supplied identifier

pa-pz

edit
Tag or Container Data Type Parent Applies to Description
paintshed-skin-used kuid config.txt file paintshed-skin Kuid of the paintshed skin used. (if applicable)
paintshed-skin-used kuid config.txt file paintshed-template Kuid of the paintshed skin to be used for this template.
paintshed-template-used kuid config.txt file paintshed-skin Kuid of the paintshed template used. (if applicable)
pantograph kuid config.txt file traincar The pantograph kuid number inserted at a.pant0, a.pant1, etc. Use this tag only when needed.
passenger-height float metres config.txt file industry This value sets the height of the passenger asset in metres, to suit the platform model height. (Doesn't work)
passenger-queue boolean queues-ID { industry Defines this as a passenger station queue.
period ? smoke# { smoke block The usage of period depends on the value of the mode tag. If the mode is set to time, period is the duration of time this effect will remain active.
permit-commit boolean privileges { all Allows the end-user to commit changes to this asset.
permit-edit boolean privileges { all Allows the end-user to open this asset for editing
permit-listing boolean privileges { all Allows the end-user to view this object in the surveyor pickers (if it is of an appropriate kind.) Does not affect the visibility of the asset within the CMP asset list.
piston-angular-offsets ? steam { steam-engine ?
piston-area ? steam { steam-engine ?
piston-to-atmosphere-flow ? steam { steam-engine ?
piston-volume-max ? steam { steam-engine ?
piston-volume-min ? steam { steam-engine ?
pressure { container config.txt file engine ?
preview-mesh-kuid kuid mesh-table-ID { mesh object The mesh to be used in the surveyor preview area. This is useful when an asset has a large bounding box. Ie the "Airport” with it’s jet animation.
preview-scale float mesh-table-ID { mesh object Scale of the preview mesh.
priority float, 0 = highest tracksound { Tracksound The priority of the sound versus other sounds to be played. Lower values indicate a higher priority.
privileges { container config.txt file all Limited content protection applies only to built-in (JArchived) assets.
processes { container config.txt file industry Processes (required) The input and output settings of the industry. You can specify the amount of input and output for each queue referenced product as well as the duration (or rate) in seconds for that process to take place. All queues and processes are linked through the industry asset’s script file.
process-ID { subcontainer processes { industry User supplied identifier
product-category kuid config.txt file product Kuid of applicable category for this product
product-id ? config.txt file paintshed-skin For paintshed support.
product-kuid kuid queues-ID { industry The product type used to fill ‘initial-count’
product-texture [path/]filename.texture config.txt file product The texture to be used with load ‘texture-replacement’. Ie When a hopper loads woodchips instead of it’s default load of coal.
product-type ? config.txt file paintshed-skin For paintshed support.
product-version ? config.txt file paintshed-skin For paintshed support.

qu-rz

edit
Tag or Container Data Type Parent Applies to Description
queue queues-ID { inputs-ID { industry queue from which to take input.
queue queues-ID { outputs-ID { industry queue in which to place output.
queues { container config.txt file industry The queues container states which product or products the industry can use. It contains the size of each product, the initial count when placed, and can refer to its visual load state whether through a load animation or attachment.
queues-ID { subcontainer queues { industry User supplied identifier
radius float attached-trigger-ID { industry Radius (in meters) of the trigger.
radius float mesh-table-ID { interior The notch position relative to the attachment point.
random-color-high-hsb hsb value config.txt file scenery For clutter-mesh objects, specifies a color range for tinting purposes. HSB color space.
random-color-low-hsb hsb value config.txt file scenery For clutter-mesh objects, specifies a color range for tinting purposes. HSB color space.
rate float particles/second smoke# { smoke block The rate of emission in particles per second for modes time, speed, and timeofday, or the number of particles to emit over the animation period for anim mode. Default is 4.
region
(depreciated)
region code config.txt file general
(obsolescent)
Trainz 1.x legacy tag; the country region to which this asset belongs. This should be one of the Auran-supplied region names, but older content has shown full names.
repeat-delay random [min,max] seconds soundscript-ID { mesh object 1 or 2 numbers (min, max, in sec) time to delay between the end of the sound playing, and playing it again randomised between(min .. max) default min is 0, default max is equal to min Notes: Repeat-delay now has two values rather than one. When upgrading old assets, make sure there is a repeat delay for both values or the sound will loop endlessly when triggered.
repeats integer config.txt file splines The number of times the mesh is placed between spline points
resistance ? motor { engine ?
reversed boolean bogeys-ID { traincar Affects the direction of the bogey.
rgb rgb value config.txt file splines This value should be left as default.
right-passenger-door { subcontainer mesh-table { mesh object Predefined submesh identifier. Right side passenger doors.
rollstep float degrees config.txt file scenery Where n is a value in degrees. Used in conjunction with rotate-yz-range, rollstep lets you specify the step size of roll angles for this object. Other example values are 1, 5, 20 etc. The default rollstep is 1.0.
rotate boolean config.txt file scenery Where n is 0 or 1 (default). This lets you disable rotation on a scenery object. 0 to disable, 1 to enable (default).
rotate-yz-range min,max degrees config.txt file scenery Where min and max are values in degrees. This tag lets you set the roll / yz rotation range (normal object rotation is an xy rotation). If you want your scenery object to support rolling then use this tag to set the minimum and maximum roll range. By default, objects have a min/max roll range of 0 to 0.
rotstep float degrees config.txt file general Where n is a value in degrees. This lets you specify the step size of rotation angles for this object. Other example values are 1, 10, 20, 90, 180 etc. The default rotstep is 1.0
running-number string consists-vehicle-ID { industry Running number of the vehicle.

sa-sz

edit
Tag or Container Data Type Parent Applies to Description
safety-valve-high-flow ? steam { steam-engine ?
safety-valve-high-pressure ? steam { steam-engine ?
safety-valve-low-flow ? steam { steam-engine ?
safety-valve-low-pressure ? steam { steam-engine ?
scale ? smoke# { smoke block ?
scale ? mass { engine ?
scale ? pressure { engine ?
scale ? volume { engine ?
script [path/]filename.gs config.txt file general This refers to the name of the script file.
search-limit ? config.txt file trackside Not required. For internal use only.
shadow { subcontainer mesh-table { mesh object Predefined submesh identifier. Shadow mesh.
shadows ? config.txt file splines Undocumented
shift ? smoke# { smoke block ?
shovel-coal-mass ? steam { steam-engine ?
showhelp boolean driver-settings { activity Show Driver Help. (off, on)
show-in-consist-menu boolean consists-ID { industry Boolean flag that dictates whether this train appears in the consist menu (0 - false, 1 - true). The consist menu was along the bottom of the screen in the original Trainz and UTC but is no longer present. It effectively stopped a user from getting access to an AI train. Redundant for most uses except for legacy/scenario usage.
signals { container config.txt file mosignal Sets out which aspects the signal is capable of displaying, and also which light points are activated when each state is displayed.
signals-ID { subcontainer lights { mosignal Signal point identifier.
size integer queues-ID { industry Size of queue.
smoke_fastlife float config.txt file traincar Longevity of smoke particles at normal speed.
smoke_fastspeed ? config.txt file traincar ?
smoke_height float config.txt file traincar How hard particles are pushed out of the stack.
smoke_random float config.txt file traincar Level of particle excitation.
smoke_shade float config.txt file traincar Smoke opacity. (0 - 1)
smoke_slowlife float config.txt file traincar Longevity of smoke particles at low speed.
smoken { container config.txt file smoke block ?
snapgrid float metres config.txt file scenery Where n is a value in meters. This lets you specify the size of the grid the object snaps to. We recommend factors/fractions of 720 as this is the size of a base board and the positioning may do funny things across section borders. e.g. 1, 2, 5, 10, 20, 30, 40, 45, 60, 80, 90, 120, 180, 240, 360, 720. The default snapgrid is 10.
snapmode 0/1/2 config.txt file scenery Where n is either 0 (default) , 1 or 2. Use snapmode to enable snapping of a scenery object to the snap grid. 0 will disable grid snapping (default), 1 will enable grid snapping, 2 will enable an offset grid snapping. Offset grid snapping will cause objects to be snapped to the grid but will also offset the object’s position by ½ the grid size – essentially positioning the object in between the normal grid lines.
sound { subcontainer soundscript-ID { mesh object List of .wav files to play (randomly picked)
soundscript { container config.txt file mesh object Controls the looping sound made by the object.
soundscript-ID { subcontainer soundscript { mesh object User supplied identifier
speed float effects-ID { animation effect Speed factor of the animation. Default 1, 2 for double speed, 0.5 for half speed
speedlimit float metres/second config.txt file trackside This value is the maximum speed allowed in meters per second
start ? smoke# { smoke block The usage of stard depends on the value of the mode tag. If the mode is set to time, start is a set of time values in seconds after the creation of this effect’s parent object when this phase of the effect will start. If the mode is set to speed, start is a speed in meters per second (m/s) and period is not used. (Note: 1 m/s = 3.6 km/hr.) All other sequence attributes (rate, velocity, lifetime, minsize, maxsize) are interpolated so there are smooth transitions between phases. If the mode is set to anim, start is a value from 0.0 to 1.0 which describes the start time into the object’s animation cycle. If the mode is set to timeofday, start is a value from 0.0 to 1.0 which describes the time of day when this effect will start. Values range as follow: 0 - midnight, 0.25 - 6am, 0.5 - midday, 0.75 6pm, 1.0 - midnight.
start-enabled boolean process-ID { industry Specifies whether the process starts enabled.
startingtime 0..1 driver-settings { activity Time of day. Range is from 0 to 1 (0.5 - midday).
steam { container config.txt file steam-engine ?
storm [path/]filename.tga config.txt file environment Name of image file for stormy sky. File should be 256 x 256 pixel 24bit tga. The file extension should be excluded here, ie “QLD_Sky” rather than "qLD_Sky.texture.txt”.
string-table { container config.txt file all The string table stores a list of text strings to be used by the industry script.
string-table-## { container config.txt file all These alternative string tables store translated strings
supports-null-driver-character boolean config.txt file drivercommand Command can be executed without a driver present in the selected loco.
surface-area ? motor { engine ?
surveyor-name-label boolean config.txt file general Specifies whether this item has floating name label text.
surveyor-only boolean config.txt file general Adding this means the attached mesh will only be visible in Surveyor and not Driver.
surveyor-only boolean effects-ID { attachment effect Adding this means the attached mesh will only be visible in Surveyor and not Driver.

ta-tz

edit
Tag or Container Data Type Parent Applies to Description
tender boolean config.txt file traincar Specifies that the traincar is a tender.
terminator folder config.txt file splines Name of model to use at end of bridge, placed in subfolder with same name.
test-collisions boolean mesh-table-ID { interior Mouse cannot be used for this mesh. Collision mesh used instead. Ie animated-levers.
texture [path/]filename.texture config.txt file general An image texture file.
texture [path]/filename.texture effects-ID { texture-replacement effect Texture reference denoting the texture file to be swapped by this effect.
texture kuid smoke# { smoke block Kuid of the texture to be used for the effect.
texture-kuid <blank> effects-ID { corona effect If the texture-kuid tag is not present the corona will use the default yellow/orange texture in TRS.
texture-kuid kuid effects-ID { corona effect Add this tag only when you want to specify your own texture for the corona. It specifies the KUID of a kind texture asset. See KIND TEXTURE.
textures { container config.txt file texturegroup The textures container stores a list of additional textures to be used in the texture group.
three-part boolean config.txt file hornsound Specifies that the hornsound has a beginning, middle and ending sound.
throttle-notches ? motor { engine ?
throttle-power { container config.txt file engine ?
thumbnails { container config.txt file all Any asset may specify a thumbnail or preview image.
thumbnails-ID { subcontainer thumbnails { all User supplied identifier
timerate float driver-settings { activity Time progression. (1 - real-time, 2 - double speed etc.)
track kuid attached-track-ID { scenery with track Kuid of the track to be used.
track kuid tracksound { Tracksound The track type to which this sound will apply
track trackID attached-trigger-ID { industry The track name which the train must be on to trigger.
trackmark boolean config.txt file trackside Specifies that the object is a trackmark.
trackoffsets float list, metres config.txt file splines Distance in meters the rail/s are attached to the center of the spline. Any number of tracks can be attached to the spline, only splines with the same track offsets can be connected together.
track-parent kuid tracksound { Tracksound The parent (eg. bridge/industry/tunnel) of the track to which this sound will apply.
trackdirections float metres config.txt file splines ?
trackside float metres config.txt file trackside This is a value that is the distance in meters the object is placed relative to the center of the track. Negative values will put the object on the left side of the track, and positive values will appear on the right.
track-sound kuid tracksound { Tracksound The kuid of the tracksound object to be used.
tracksound { container config.txt file Tracksound A sound asset that is referenced by track or bogeys to play a different sound from the default track/train sound (for example when a train travels over a bridge or through a tunnel).
trainbrakepipe ? flowsize { engine ?
trainbrakepipe ? volume { engine ?
trainbrakepipe_reservoir ? flowsize { engine ?
trainbrakepipe_start ? pressure { engine ?
trainbrakepipevent ? flowsize { engine ?
trainz-build build code config.txt file general The Trainz build is the version number for which this asset was created.
trigger boolean config.txt file trackside Specifies that the object is a trigger.
trigger string soundscript-ID { mesh object A trigger may be used in an event file (.evt) associated with an animation. It plays at selected key frames of animation as defined in the event file. Sound files may triggered in this manner, and from scripting. Used in the mojunction example (switch lever) the “toggle” action is automatically triggered when the lever is operated and the sound plays.
turntable { mesh-table-ID { mesh-table { turntable Predefined submesh identifier
turntable { subcontainer mesh-table { mesh object Predefined submesh identifier.
two-part boolean config.txt file hornsound Indicates that the Railyard and Driver hornsounds are different. The Driver hornsound is looping. If this tag is not present, the hornsound defauts to UTC equivalent non-looping format.
type string config.txt file scenery Specify a type for the model that will be used in the Surveyor menu drop down menu for Track or Object type.

ua-vz

edit
Tag or Container Data Type Parent Applies to Description
uncached_alphas boolean config.txt file splines This is used in certain situations to improve alpha sorting. This should only be set to 1 for tracks that use an alpha texture and are always placed flat
unit_mesh folder config.txt file splines For mesh-reducing track, the filename of the long mesh, which must be placed in a subdirectory of the same name as the mesh. Only the file name is entered, not the directory name nor the file extension. For example, the full pathname and extension is “rockwall/rockwall.im”. Enter only “rockwall” in the text input box.
upright boolean config.txt file splines Specifies whether the bridge “legs” point vertically, or perpendicular to the spline.
useadjoiningtracktype boolean attached-track-ID { scenery with track Indicates whether the track type should change to match that of the first track joined to the object.
use-gradient-track boolean config.txt file scenery This means to use the spline gradient rather than following the ground height.
use-parent-bounds boolean mesh-table { mesh object Specifies that the mesh should use the bounds of the parent object for visibility culling. Use with caution.
username string config.txt file general The human-readable English name of this asset.
username-## string config.txt file general The human-readable translated name of this asset.
vacuumbrakecylinder ? volume { engine ?
vacuumbrakecylinder_start ? pressure { engine ?
vacuumbrakecylinder_vacuumbrakepipe ? flowsize { engine ?
vacuumbrakepipe ? volume { engine ?
vacuumbrakepipe ? flowsize { engine ?
vacuumbrakepipe_start ? pressure { engine ?
vacuumbrakepipereleasevent ? flowsize { engine ?
vacuumbrakepipevent ? flowsize { engine ?
vacuumbrakereservoir ? volume { engine ?
vacuumbrakereservoir_start ? pressure { engine ?
vacuumbrakereservoir_vacuumbrakepipe ? flowsize { engine ?
value-range min,max time of day soundscript-ID { mesh object 2 numbers, currently used only for day/night sound effects. Midnight is 0.5, midday = 0.0 or 1.0 Where the numbers are not the same, this sets the start and end times for the sound to play. Default 0,0 (off)
vehicle kuid consists-vehicle-ID { industry The kuid of the vehicle to be used.
velocity float smoke# { smoke block The initial speed of emitted smoke particles. Default is 1.
vertices { subcontainer attached-track-ID { scenery with track Attachment points at which to place track.
visible-on-minimap boolean config.txt file splines Specifies whether the object\track is displayed on the minimap.
volume 0..1 soundscript-ID { mesh object Gain of the sound Default 1.0 = 100%
volume { container config.txt file engine ?

wa-zz

edit
Tag or Container Data Type Parent Applies to Description
water kuid config.txt file map Undocumented
watercolor rgb value config.txt file region RGB color value of the water for the region.
water-injector-rate ? steam { steam-engine ?
wave-shift ? effects-ID { corona effect Affects the flashing intensity pattren on the corona.
weather 0..7 driver-settings { activity Weather setting. (clear, cloudy, drizzle, rain, stormy, light snow, medium snow, heavy snow)
westinghouse-volume ? steam { steam-engine ?
width float metres config.txt file splines Width of track mesh in meters.
width integer thumbnails-ID { all Image width
workingscale ? config.txt file map Undocumented
workingunits ? config.txt file map Undocumented
world-origin container config.txt file map Undocumented,
latitude, longitude, and altitude

   

Notes, Footnotes & References

edit

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.  

Notes

  1. While the olde schema required specific subfolders, Trainz UTC incorporated pretty much all of the most common containers, KINDs, and tags of today in TBV V1.5 along with the first wave of these, the mesh-table and bogey containers which were added by Trainz's third service pack, evolving into the staple Trainz 1.3. UTC also introduced the trainz-build tag and KUID2 versioning systems, and the core structures defined then, have been relatively stable ever since, ignoring the obsoleting of various 'nicity tags', and consolidation of KINDS.
  2. Examples: 'Rails' (sparsely populated by a few tracks, whilst others used other type defs to group others), 'railroad building' (with accessories to same like lamp poles, benches, telephone booths, and such scenery), 'Trackside' (found in one group, Objects, which would have been better used in several, from spline objects to Trackside accessories such as speed limit signs, signals, and so forth.)
  3. Note: This list is 'wikified' on the N3V TrainzOnline Wiki, meaning the first letter has been capitalized after the word 'KIND', whereas actual data tag names in config.txt files are all lower case text. That wiki also uses double quotes in quite a few terms, a practice which we'll spare you from experiencing herein.
  4. The 'kind consist' is not often seen directly, it sort of only lives in menus and the Content Manager lists.

 

Footnotes

 

References