| |||
|
|||
|
About this page
editThis 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.
Wiki vs. Wiki
editFor 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).
|
Data Model evolution
editTake 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
editIllustrative 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
editEvolutionarily, 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.0—TR06 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.
|
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
editThe 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
editBefore 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!
Kinds of KINDs
editAll 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.
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- 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.
- 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.
- 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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
editTag 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 |
This Trainz/Refs/Index of Tags & Containers section is a stub placeholder, an outline or marker that this section of the book is otherwise incomplete. You can help the Wikibooks Trainz project by expanding it with fuller discussion of the topic. Work needed:
|
Notes, Footnotes & References
editConfig.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
- ↑ 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.
- ↑ 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.)
- ↑ 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.
- ↑ The 'kind consist' is not often seen directly, it sort of only lives in menus and the Content Manager lists.
Footnotes
- ↑ KIND Engine spec], N3V Wiki
- ↑ KIND Steam-engine N3V Wiki
- ↑ KIND Engine spec], N3V Wiki
- ↑ KIND Steam-engine N3V Wiki
- ↑ KIND Engine spec], N3V Wiki
- ↑ KIND Steam-engine N3V Wiki
References
- Trainz printed or pdf file Manuals, applicable version - usually in the ..\extras or ..\extras\manuals folder
- TrainzOnline Wiki Config.txt file page and various other pages
- TrainzOnline Wiki: Content Creator's Guide pages (various)
- Various CCG and Auran websites
This reference page is adapted from the TrainzOnline Wiki under the CC-BY-SA 3.0 License. This page will likely include more textual explanations, exposition, history, and/or examples than the source page on the same topic. The TrainzOnline Wiki is for the most part maintained by the programmers or knowledgeable content creators and may have newer more up-to-date information on the current trainz-build code standards, which have some tendency to change as features are added to the software. |