# Trainz/terminology

 Fundamentals for Trainz Trainees Trainz Asset Maintenance and Creation
 | ORP Refs:

## File Types in Trainz

### ANIM file

ANIM files — Animation, for example a steam locomotive's connecting rod movements, or water movement on a river or lake. Those wheels you see rotating under the train or that lever you can throw in the CAB all involve dynamic positioning of graphic elements.

• The range and appearance of those motions are defined in an animation file by the CC
• who also determines whether they are triggered by script interaction[note 1]
• or free running (asynchronous). However, even Free running animations don't run chaotically consuming computing resources, but instead have a friendly and benificent CC set up a triggered radius within which range a camera must occur for the animation to begin repeating it's asynchronous loop.[note 2]

### BMK file

BMK filesBookmark. Used to track and record the current camera position in Surveyor when defined, or to return to the same view when used.

### CDP file

CDP files — Content Dispatcher Pack. A file used by Auran and some other content creators to distribute additional assets. A CDP file can contain one or more assets.

### CDPA file

CDPA files — Content Dispatcher Pack Archive. An archive version of the CDP format, used by Auran to place an asset off the main database into axillary data bases controlled by the user, while keeping the asset in a loadable form. Archived assets are no longer selectable when building a route or session, but because they are still indexed, an asset which needs the dependency can still load it. Use primarily to put aside assets needed in something you want to run, but would never use in creation. Example: A North American Trainzer might archive all the Non-American rolling stock and locos, or signs or architectures not likely useful in any route he may build.

### CDP2 file

CDP2 files — Content Dispatcher Pack 2. A new version of the CDP format, used by Auran and some other content creators to distribute additional assets for Trainz Classics.

### CFG file

CFG files — Used to store the program's configuration details. This is a widely used file type, but the format is specific to each program.

### CHUMP files

A CHUMP file — Trainz pre-processed ready to load (cached) asset file. These are generated by CMP when an asset is committed to the database, and the data file is the actual storage locale of the asset data. Where each Trainz version keeps committed asset files has changed somewhat with major technology releases:

• Before TRS2006, a folder hierarchy schema using asset kind-groups (types) stored together in pre-defined root locations held asset's data filed under KUIDS-named folders.
• With Content Manager Plus's introduction, the rest of The TR's used a hash-coded folder naming system to store data under the install's root folder in ..\local. The assets.tdx file acted as an index into this linear architecture.
• The data arrangement of TS09–TS09-SP3 followed that of the TR's until the last TS09 changes created TS09-SP4 trainz-build, which rearranged the file structure to match that developed in TS10 (often under concurrent development with TS09's software updates).
• TS10TS12 in the TS's arranged all non-JA file data in ..\UserData folder, using a scaffold of 256 sub-folders (Hexadecimal coded ('00'-'FF') directories names) to increase speed of access to the asset's data folder, once again stored under the KUIDs code as a folder name. The assets.tdx file was retained, but had other stored information necessary to operating the database system moved into it.[note 3]
• The TANE file storage architecture is again a new arrangement, part of which was user requested and part which made it more compatible with more recent versions of the Windows OS. It is capable of letting the user put the program and support data files where Windows practices prefer and letting the user put the game data files in a directory chosen by the user. This arrangement of the facility allows the user to switch between local data groups so a route building content creator can run on one folder setup that includes payware and non-DLS items, and can test versus another 'standard items' data set to verify only items on the DLS are used in a route and session. In the long run, this can result in a set of cleaned up routes on the DLS giving far less hassles to downloading users, provided N3V polices and enforces requirements on uploads to exclude routes and sessions (kind map & kind profile) with non-DLS items. Hopefully N3V will also enforce similar policy with respect to payware, which assets many of us do not want contaminating a normal installation.

### GND file

GND files — The terrain file that contains the topographic details of a map. This is the file that is produced and replaced when creating a map from DEM data.

### GS file

GameScript is a C-like computer language which generate GS files— Gamescript source files for inclusion in assets and the game's script libraries.

Many interactive assets depend on these script files to interface with the Trainz run time modules. Script updates account for a common reason an interactive or animated asset becomes obsolescent or may not function, as the script libraries from release to release (including updates like hotfixes and service packs) usually evolve a few of the library files. The other main effect of this version drift is the sometimes impossible difficulty of taking an asset using an advanced TBV with a need for such a script update to an earlier version of Trainz, such as TS2009, the TC's, or even TRS2004/TRS2006. In general, most assets can be retrograded, but when they can't, a script language feature in the code build and it's successors is the main reason such an asset cannot.

Example
In the summer of 2014, Andi06 published a new set of assets depending upon TS2012's service pack 1 and the fourth hotfix in the series. TS2012-SP1+hf3 COULD NOT ever work with the new diamond crossing assets. The software hooks needed in the runtime modules surveyor and Driver just didn't exist before hotfix 4 for TS12. This is also an example (one of many) where the programmers responded to a request from the users and improved Trainz by granting our wish. Most such improvements have been user demand generated. A good reason to stay active monitoring the Auran forums.

### GSE file

GSE files — GameScript DRM security encoded file. Uneditable save by originator.

### GSL file

GSL files — GameScript library file.

### GST file

GST files — GameScript template file.

### IM file

IM files — Indexed 3D mesh.

### JA file

JA files — Jet Archive. Contains compressed copies of multiple assets.

### KIN file

KIN files — Kinematics. Associated with animations such as pantographs.

OBS files — ?

### PM file

PM files — Progressive 3D mesh. Obsolescent after Trainz UTCTRS2004, but because depreciation was not enforced, is still in many older DLS assets generated into the early TRS2006 era. With TRS2006-SP1, a warning message was generated educating content creators to convert to the newer im file/.im/.im file/.im file 'indexed mesh' format. Today, .pm files and references to .pm files are most often seen in 'aliased assets', those re-skinned items of rolling stock referencing an older era's traincars. New Users are advised to obtain PEV's 'PEVSoft' utility tools or PEVtools, available from a number of Trainz user sites. PM2IM.exe will convert to the newer IM format. Mesh references will need be updated in the config, or a utility like FNR.exe can be incorporated in a PM2IM.bat launcher file to do it automatically.

Like this
@echo off
echo Running PM2IM.bat on %1%
"C:\Tools\pm2im\PM2IM.exe" -trawl -close %1%
"C:\Tools\fnr.exe" --cl --dir %1% --fileMask "*.txt"  --excludeFileMask "*.dll, *.exe" --includeSubDirectories --find ".pm" --replace ".im" >NUL
:DONE
echo PM2IM.bat %1%  >> ..\Asset_files.txt
@dir %1 /N/OGNE/L/S >> ..\Asset_files.txt[note 4]

Or this combo batch file
@echo off
echo Running 'PM2IM+Imgs2TGA.bat'
"C:\Tools\pm2im\PM2IM.exe" -trawl -close %1%
"C:\Tools\fnr.exe" --cl --dir %1% --fileMask "*.txt"  --excludeFileMask "*.dll, *.exe"  --includeSubDirectories --find ".pm" --replace ".im" >NUL
"C:\Tools\Images2TGA\Images2TGA.exe" -trawl -close -fixcolour %1%
:DONE
echo \$_PM2IM+Imags2TGA.bat %1%  >> ..\Asset_files.txt
@dir %1 /N/OGNE/L/S >> ..\Asset_files.txt


Such tools work in TANE and TRS19 as well as UTC, TR04 and TR06 with a few procedural wrinkles... firstly lets understand what is happening. A file is either built-in (in a .JA file or added. Trainz discriminates files added from local drives, previous installs in other folders, and from third party cdp files or those opened and modified (Fixed!) as 'Modified'. These are given residence in the ..\local sub-folders, whilst those download from the DLS are placed in the ..\original sub-folders. If you peek in such sub-folders, you will find most data compressed into a Trainz .chump file. Opening an asset for edit unpacks these in part. Images2TGA unpacks the textures, and the instructions files for applying such textures (.texture.txt files) into

Written for TS2009 data changes, which included graphics enhancement capabilities, when it unpacks compressed data from .texture files Images2TGA will generate AlphaHint='something' lines that give indigestion to Trainz UTC through TC3.
• Just edit the line out, or insert a double-hack ('//') at the beginning of such lines so you can restore the AlphaHint if you port the asset to a newer Trainz release. Secondarily, these older Trainz will be intolerant of the very existence of the .texture (source) files, so they should be deleted
TANE and TRS19 will boot such batch files out of the tane editting directory during any auto-updates... so they should be kept in an utility folder.

### SRT file

SRT Files are the mesh files for displaying SpeedTree items such as trees or grass.

SpeedTree was developed by IDVInc. N3V Games are licensed by IDVInc to use the SpeedTree format in TS2010 and TS12.
The SRT file contains all of the geometric and texture mapping data needed to render a tree object as well as data for wind movement animation.
N3V Games provides no editing or manipulation programs for SpeedTree files. Third-party SpeedTree creation may be undertaken under license between the content creator and IDV Inc.
• Reverse engineered files from the UDK version of SpeedTree are prohibited for Trainz use under the terms of the IDVInc license.
The game has session-wide adjustments for the wind movement effect in the environment section of Surveyor. This generally needs decreased for better realism.

### TEXTURE file

Not to be confused with texture.txt files which are part of what is compressed in a texture file.

TEXTURE files — A 2D ready-to-load asset texture which is to be applied to a surface of a 3D object by the game engine. Generally BMP, JPG, and most often the preferred TGA file types act as source files for texture.txt control files, both of which are combined by CM into dot-texture files. Files with a *.texture extension will generally be seen only when an asset is opened for editing, and the Trainz is an older release.

### TRK file

TRK files — Usually found with a .GND file, contains information about the trackwork of a layout.

### TSO file

TSO files — Trackside Object. The variations in a layout that are required for a specific scenario, for example extra trackmarks and triggers.

## Other terminology

This part of the Notations and terminology page describes some of the more common train-related, content-creation-related, and general computing terms used in the Trainz environment. Users are encouraged to add their own common terms to this page in a similar fashion. Please keep in mind that this site is dedicated to Trainz content creation, and terms which are meaningless in this context may be removed.

New Trainzers will find a wealth of general knowledge and terminology in the English language Wikipedia Glossary of rail transport terms, the Train and Trainz articles, and on the Trainz Wikibook and it's Trainz Wikibook glossary.
Glossary
HKeys-CM
HKeys-DVR
HKeys-SUR
HKeys-WIN
Mouse use
Notations

## General Train Terminology

A note about general train terminology: even among nations where English is the official language, there are differences in terminology. For example, in England, the part of track known as a "sleeper" is called a "tie" in North America. An English railroader speaking of a "bogey", and an North American railroader speaking of a "truck" are likely talking about the same thing.

• In Advance Of - Signalling term. A signal is said to be 'in advance of' something, if a driver stopped at that signal would have to drive forwards to get there.
• In Rear Of - Signalling term. A signal is said to be 'in rear of' something, if a driver stopped at that signal would have to drive backwards to get there.

## Trainz Terms

### Abbreviations

• TAD - Trainz Asset Database.
• CM - Content Manager.
• LOD - Level-Of-Detail.
• IM - Indexed Mesh file format.
• PM file - Progressive Mesh file format; this is an obsolete mesh file format that is no longer supported.
• LM file - Config file representation of the LM.txt_file a text file format used by Level of Detail meshes.
• TNI - Trainz Native Interface.

### Content Creation

#### Aa to Bz

• Alias - An asset which takes it's mesh from another asset, but replaces one or more of the original textures with locally provided ones. Commonly used to reskin an asset.
• Note: Trainz 2009 (version 2.9) onwards do not accept aliased assets in Content Manager, though they still work in the game.
• Alpha blending - The process of using an opacity setting or texture alpha channel to allow partial transparency. Alpha blending is a hardware operation, however by itself blending does not combine well with a traditional hardware depth-buffer technique.
• The end result is that multiple overlapping layers of alpha blending will not be rendered in the physically correct order without some alternative non-hardware-accelerated techniques. Such techniques should be avoided due to the associated performance losses.
• In short: use alpha blending sparingly, and do not apply an alpha-blended material to polygons which could do without.
• Alpha masking - The process of using a texture alpha channel to "mask out" parts of the texture, allowing arbitrary see-through areas on the texture. Unlike alpha blending, alpha masking does not allow semi-transparent areas - each resultant texel is either fully textured, or fully transparent. Alpha masking is a fully hardware-accelerated technique, and so acceptable.
• Asset - A single item of content in the Trainz environment, consisting of a config.txt file and any associated resource files.
• Sometimes, even frequently,... used (incorrectly) interchangeably with 'content'; technically, content is an asset included in a route or session—until then an asset is an potential content item.
• Each asset is uniquely identified by its KUID. An asset may reference any number of dependencies which are required for correct operation.
• Blender - A free Modeling tool with similar functionality to the commercial MAX software.
• Bogey - Asset type used to represent wheels and suspension components. Used for anything that needs to rotate as the train moves along the track (e.g. wheels), or move (by rotation or translation) to match the angle and position of the track (e.g. subframe and suspension components). In the US this is normally referred to as a truck, and in the UK as a bogie.
• Bump mapping - Another term for Normal mapping.

#### Ca to Md

• Cab / Cabin / Interior - Asset made to represent the inside of an object, typically a Vehicle.
• Content Manager - Program for querying and editing the Trainz Asset Database.
• Dependency - An asset which is required by this asset in order to function properly.
• Dependent - An asset which requires this asset in order to function properly.
• Geometry - A three-dimensional mesh, without any related textures or material properties.
• GMAX -A 3D modeling tool originally produced by Discreet for use in producing game assets. While still available, the software has not been in active development for some time, and is not considered to be a state of the art tool for Trainz asset creation. See also 3DSMax.
• Indices - Each triangle has three indices. Each index is a reference to a vertex. (Vertices can be shared between multiple polygons).
• KUID - Unique identifier for a specific Trainz asset. Consists of Creator ID, Content ID and Version number fields.
• Kuid-table - The kuid-table container of an asset's config.txt file. Used to specify dependencies.
• Level-Of-Detail (LOD) - A technique where an object (typically a mesh) is built with a number of variations which look as close as possible to identical, but which trade off quality as distance from the viewing point increases and that aids rendering performance to differing degrees.
• TheAuran_JET graphics engine selects between the various levels at runtime based on metrics such as distance from the observer.
• For textures, mip-mapping serves a similar purpose without requiring manual attention.
• All medium-to-high-detail meshes should supply LOD variants. LM.txt_files are used for LOD on moving/animated models.
• Material - A named object with a specific material type in combination with its necessary parameters and textures.
• MAX / 3D Studio Max, or obsolescent Gmax once bundled with early Trainz retail releases - The commercial Modeling tool used and supported by Auran.

#### Me to Qz

• Mesh - A three-dimensional model used in the game environment. The word mesh is often used to refer to a specific game file containing the three-dimensional geometry without related properties such as the model's textures.
• Mesh Library - An asset which other assets use. These assets refer to the mesh library by KUID, using a 'mesh-asset' tag in their mesh table. Nothing special is needed for an asset to be a mesh library, it just has to contain mesh files.
• stitching Mesh stitching - A runtime optimization process which combines multiple individual mesh instances into a single draw call for performance reasons. This results in higher performance with no visible changes.
• "mesh-table"_Container Mesh Table container - The mesh-table container of an asset's config.txt file.
• Mip mapping - Process to reduce texture detail for objects in the distance, or at a sharp angle to the camera. Used to avoid problems with aliasing (flicker), which can occur where the texture is of comparable or higher detail than the display equipment.
• Model - A three-dimensional definition of an virtual 3D object, built in a special modeling package such as Blender, Gmax or 3ds Max. The word model is often used to describe the concept of a three-dimensional object including materials, surface reflectance and opacity properties often combined and implemented as attributes of its textures.
• Normal mapping - A more advanced form of texture mapping which allows per-pixel control over the lighting conditions on the target geometry. Among other benefits, this technique allows a content creator to define small bumps and grooves in a surface in addition to simple coloration.
• Obsolete - An asset is obsolete if it has been replaced by a newer version with newer technology models and definitions, breaking the asset in part for a new trainz-build value (version).
• A container type or tag in a KIND is obsolete because the programmers say so—because they have a real need to change the data structure in a new Trainz advance, normally without warning the user community first.
• string-table container - The string-table container of an asset's config.txt file. Used for localization strings (i.e. anything that will be displayed to the user).
• Pixel - One individual point on a texture image, consisting of red, green, blue and alpha components (e.g. a texture size of 512 pixels by 512 pixels). May also refer to one individual point within a display (e.g. a display size of 1024 pixels by 768 pixels).
• Polygons - In modeling terms, a polygon is always a triangle. (Please note, this is different from the 3DSMax definition).

#### Ra to Tq

• Render call / Draw call - A single hardware rendering operation. This is an important concept when performance is a concern, as there is a substantial performance overhead to each draw call. By minimizing the number of draw calls, the same scene can be rendered at a notably higher frame rate. Each draw call associates one material with some quantity of vertices and indices.
• Route / Layout / Map - Asset created in Surveyor, consisting of a textured landscape and one or more Layers containing scenery objects, splines, trackside objects, Vehicles, etc.
• Scenery / Map object - A scenery object is an instance of an asset that is placed in Surveyor at a given location and orientation.
• Session - Asset created in surveyor, which extends a map by placing on it additional layers of objects - commonly Vehicles, but any scenery object, spline, trackside object, etc, can also be added. The Session also contains all the saved script data from any asset in the combination of map and session.
• Specular lighting - Lighting effects that vary dependent on the angle of incident light.
• Spline - A continuous linear 3D model such as a hedge, a fence, a road, or a track. Splines are placed in Surveyor as a series of spline control points and the geometry is built in a smoothed path between the control points.
• Texel - One texture pixel, once mapped onto a 3D Model and rendered in a scene. Does not correspond to one screen pixel.
• Texture - A two-dimensional image used for texture mapping.
• Texture Sharing - When two or more meshes in the same asset (which may be a mesh library, and thus used by many assets) use the same material and texture. Trainz can then use mesh stitching to render them in the same draw call, with corresponding performance improvements.

#### Tr to Zz

• Trackside object - A trackside object is a specialisation of a scenery object that is placed attached to a spline. When the spline is moved, the trackside object is also moved.
• TrainzScript / GameScript - Used interchangeably, these terms refer to the Trainz scripting language.
• Trainz Asset Database - Contains all the metadata information about Trainz content. Editable throughContent_Manager and TrainzUtil.
• TrainzUtil - Command line tool to query and edit the Trainz Asset Database.
• Trainz Native Interface - TBD
• Triangles - Three vertices (or specifically, three indices) form a triangle. The triangle is the basic unit of a mesh geometry.
• Vehicle - All assets which can be placed into a train (consist). Includes locomotives. Not to be confused with road cars, which are actually Trackside objects (as they are attached to roads).
• Vertices - The individual three-dimensional (x, y, z) coordinates that form the corner points of triangles in a mesh geometry.

## Notes and references

1. script 'hooks' and events are also handled in the ubiquitous config.txt file, of course.
2. Sound effects most often work the same way, triggered or by trigger radius.
3. CM's filters (initially kept in the Windows registry) and several small user data configuration files in '..\settings' were moved into the assets.tdx file. Some of these moves were alleged to be because of a security breech ca. 2007-09 wherein some Eastern European users had ripped off the contents of the DLS, set up their own version, and were issuing fake Trainz user-IDs and copied software releases violating copyrights. The breech also altered manual DLS FTP-protocols which had been exploited in the data theft, so now using FTP-protocols have to be conducted one by one. The Fake DLS was supposedly organized with a Cyrillic Alphabet and Russian names as default standards; it took several years for N3V Games to shut it down.
4. Everything after the '>NUL' is logging, and can be left out.