Trainz/file types by extensions
Trainz File Types
In addition to the following list of file types, Trainz also makes extensive use of several common file types one might observe in any Windows installation set up for office or home use without the Trainz simulator, but especially various common image file formats such as .bmp, .jpg, .png, and for textures: the less common .TGA standardized file types. Most non-image file types are of the .txt (plain text) format which trainz uses extensively as ini files to control texturing and for config.txt files found within every asset self-definition folder.
These common file types will often be set off by links to the apropos en.Wikipedia articles. The following list attempts to be comprehensive, so also includes file extensions of older/obsolete as well as current file types used in the newer graphics models. Trainz major data model transitions took place during Trainz 2004, Trainz 2009, and Trainz 2012. Prior to TRS2004 config.txt files were coded BOM, and many assets will still have a BOM on the first line.
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 files — Bookmark. Used to track and record the current camera position in Surveyor when defined, or to return to the same view when used.
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 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 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 files — Used to store the program's configuration details. This is a widely used file type, but the format is specific to each program.
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).
- TS10–TS12 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 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.
- 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.
- 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 files — GameScript DRM security encoded file. Uneditable save by originator.
GSL files — GameScript library file.
GST files — GameScript template file.
IM files — Indexed 3D mesh.
JA files — Jet Archive. Contains compressed copies of multiple assets.
KIN files — Kinematics. Associated with animations such as pantographs.
OBS files — ?
PM files — Progressive 3D mesh. Obsolescent after Trainz UTC–TRS2004, 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 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.
- 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 files — Usually found with a .GND file, contains information about the trackwork of a layout.
TSO files — Trackside Object. The variations in a layout that are required for a specific scenario, for example extra trackmarks and triggers.