Operations Note: Clicking on a footnote ([2]) or note tag ([note 12]) in the main body of text will navigate you (position the page) to the exact text for the entry. • Then: Clicking there on the ? symbol, will return you back to read on from where you started.
About this page
This is 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 too an expanded and extended page here that covers the same topic in depth, with suitable background and introductory materials. The Kinds of KINDs table from the TrainzBaseSpec is listed after the table tags and containers. 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 to the TC3 Content Creator's Guide and the newer Trainz data model elements N3V limits the scope of the N3V Wiki in their coverage. In truth, the Trainz data model is an evolving set data models, changing a little bit with each major Trainz Release. Since 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.
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 definitions followed a fixed file placement schema; this was an open data storage system under the World root folder of the Trainz Install utilizing the now obsolete tag 'asset-filename' to link the data base compressed into various '.chump' files to the root folder, and the surveyor-important name-xx, type, and region tags to provide internationalization names displayed to the world builder and type and region were grouping sorting criteria defined by the content creator as permanent filters for prioritizing the list of names one sees placing assets in Surveyor.
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 1]
Evolutionarily, the arrival of CMP in 2005 'did in' the open storage scheme for non-built-in assets, but one could still open the asset and customize. Worse, the bone-headed programmers of N3V decided they were never useful, and that other legacy tags—those now and thereafter termed by them in their arrogance, as 'Obsolete'. Having made this monumental change without consulting the user community the 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.
By the end of the Trainz-Classic 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. 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 regrouping and spline based data objects were undergoing a similar shift in how-to construction; this process continued into and concluded in TS09 when all spline objects became definable as subtypes of kind Track (not kind Spline, sub-type track... 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 assinine 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, probably dozens or hundreds! 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 the Content Creators group that hosts that website—and in 2020, despite loosing some prominent ones, there are still over 800 such Trainz 3rd party sites hosting content.
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
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) 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). 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
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 2] 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
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.)
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.
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.
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
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.
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”.
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).
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’.
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.
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.
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.
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.
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.
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”).
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.
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.
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
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.
‘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.
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.
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)
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
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.
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.
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.
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.
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)
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).
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.
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.
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.
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.
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.
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
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
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.
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.
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
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)
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.
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.
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.
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 it’s 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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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”.
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.
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.
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).
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.
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.
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
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.
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.
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:
TBDL - should have something here about things discarded, moved and used differently version to version.
Notes, Footnotes & References
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
↑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.
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.