Trainz/tags/trainz-build tags

< Trainz‎ | tags
(Redirected from Trainz/TB)
Fundamentals for Trainz Trainees

Introductory Trainz — page by page instruction
TOC | BeginningsFun | AM&C | Creation | InBook Refs ORP Refs:  • Index • Containers • Kinds • Tags | Appendixes  • Vers
 Mouse use
Trainz 1.0 was released (2001) with three Service Packs by June 2002, making the version commonly referred to as Trainz 1.3.
* Assets with older Trainz-build numbers are not built to take advantage of new Trainz features that did not exist in their original version of Trainz (that the asset was built in and for), and the oldest such used design approaches which in some cases, have been entirely abandoned.[note 1]
For the new Trainz users:' the moral of this story is to examine trainz-build tags (versions) ASAP after importing new content into CM and provide human intelligence as to whether to delete, keep the asset, or set it aside[note 2]
* As a general rule, before fixing a fault, use the Versions tool to get the most recent version on the DLS, and if it's legal for your install, download that instead. Deleting the old faulty one then will satisfy your dependent assets on your system, and a 'subsequent download and then delete the obsolete asset' process costs little in time and avoids much frustrations. Conversely, if you desire to create assets, fixing assets manually is a great way to learn how they are made. In this case, fixing an obsolete faulty asset has value too.

Trainz-build tag number(s)


The trainz-build tag (TBV or TB) is an very important single decimal digit floating point number that is applied to any new asset created under the installations particular technology level. When you create a cloned session or route, the version number of your install will assign the matching TBV to any new assets Surveyor or CM creates for you. (But NOT it's code build or build number, which is different).

  • This quantity is often also referred to as the Trainz Version, naturally, as various benchmark TBV's start or end a named retail release version, which names are common to all it's service packs—which normally increment the base TBV value assigned the version before the Service Pack(s)[note 3]
The word version is used in Trainz to refer to three different technological concepts:
  • There is the Trainz Retail Version or 'Release', which generally has a book title style 'marketing name' and its user community's shorthand nicknames for the same [note 4];
  • the Trainz-build Version (TB, TBV, or more correctly, the trainz-build); is an often seen number indicating the technology level standard criteria under which the asset was produced and supposedly satisfies. In loading, the tag's value is used to choose which fault checking is used in reading the asset data into the data base. With a product continually evolving, some ways of doing things and the lists of key words have changed from time to time—yet by and large, backwards compatibility is so high that most assets made in 2000-2004 still function amazingly well without alteration. About half that generation need a few fairly minor adjustments.
  • and the Trainz Build version, or most clearly, the Code Build Number, also known as the build code number or code version, or code build version. This is a technical serial number that comes out of the compiler unique to the set of source code files aggregated by the make file on a specific date.[note 5]

  • The Trainz Retail Version is a text string for a product release in "marketing speak", such as Trainz Simulator 2009: World Builder Edition, or "Ultimate Trainz Collection" (which was way premature!). These are quickly abbreviated to use names everyone understands like TS2009, TS10, TC3, or UTC.
  • The Trainz version (TB or TBV) is a decimal numeric code, a value, (e.g. 2.4 or 3.6) which is 'most always' incremented for each major software upgrade release[note 6], formally defined by Trainz software for any new asset. This code is updated whenever a significant change to the Trainz data model processing is made by a code build release. Sometimes this, in fact, reflects changes to the data model such as a new mandatory requirement above TBV x.y that such and such an asset KIND must henceforth define a specific tag value or container parameter value[note 7], and ...
Furthermore: Most service packs (which introduce significant functionality changes) will have a new trainz-build assigned, but lesser software upgrades, the hotfixes (which do not introduce significant functionality changes) do not generate a Trainz version number change[note 8]. BOTH upgrade types generate new code build values (changes)— sometimes several times over, as a series of such upgrade code builds, for example, such an upgrade that affects each 'internationalization' editions; non-English language code builds released early in a retail products {{|TL|TLCP|life cycle}}. Different language versions of the same product will however generally share the same 'asset-oriented' Trainz Version/trainz-build code, so the TBV is for asset compatibility, and the code build is for functional compatibility, and software troubleshooting needs[note 9].
  • The Trainz Code Build Number is a unique number (e.g. 44653 or 58414) that identifies an individual Trainz release. All releases (including minor changes and language translations) have a different Code Build Number. The lowest known in 'the editor's collection'[note 10] is a code build of '10' in the Trainz 1.1 CDROM release.
  • The Trainz-build tag value uses the Trainz Version numeric code, and after TS2009-SP3, the content manager Windows title bar repeats this value for ease of reference. Assets each report a value reflecting the technology (coding of the data model version) they were meant to comply with.
  • Note that several (or many) code build releases (each having a unique code build number identifying it's exact mix of component software) will share and have the same trainz-build value (TBV)) or 'version number'. The 'build' or 'build codes' or 'code build numbers' are sometimes also spoke of as versions or 'code versions, and many of those increment based on the readiness and availability of internationalization releases–versions customized a bit with translations in built-in content for readers of non-English languages. Code versions, trainz-build versions, retail versions... Context counts!
  • Theoretically, from a newly created asset's point of view, the content manager assigned trainz-build tag number also indicates the minimum Trainz Code Version required to use the asset.

When assigned, a trainz-build tag number supposedly indicates the minimum technology level (code version) needed... which in pratcie in gross terms will be the first TBV of the first retail released version in the group's development cycle. This is because data model changes to types and operations are defined in advance of any coding needed to implement the feature. The feature itself may not appear until several Service Packs progress the technology changes to the whole suite. In the early days of a release, such planned advancements take a back seat to priority troubleshooting and bug fix repair edits. Once the version is stable, development resumes for the targeted features. Hence a great majority of assets aimed to vett successfully at TBV 3.2 will work fine at V2.9 or V3.0 if the TBV value is appropriately reduced. However, if the newer TBV release(s) contains software dependent 'new features' those will not work in the earlier tech level install(s). Hence Speed Trees will not work in TS10 TBVs 2.9-3.0 but do in V3.2-3.3, both later Service Pack updates.

Lack of processing software mirrors also a release's 'designed intentions' in comparable versions—while TS09 will not generate errors for speedtree assets, neither will it display them; even in the final software release V3.3, identical with TS10's last TBV level. They are effective as an obsolete asset--never seen, never used, taking up disk space. The feature was never supposed to be part of TS09 so it is not enabled or perhaps not included in the software at all. Many assets readily can be converted to lower TBV values with such a simple one decimal digit edit. [note 11]. Conversely, assets with a lower Trainz-build version should be compatible with the later more modern install, albeit with an occasional need to tweak and update the data model of the asset.  

Editor's note: Key Tip: If you have a problem, N3V Game's Help Desk will want the Code Build, not the TBV! This is displayed in the Launcher menu screens in most N3V releases, and always has been on the Loader screen (aka Main Menu, allows loading Railyard, Surveyor, or Driver GUI modes)—in each case the code build number 'shows discretely' in the bottom right corner of the screen.


Trainz-build codes and Code Build Ranges

TB in Assets: The asset's TBV is the version in which it was designed, uploaded in, or forced[note 12] into by N3V's artificially narrowed upload's gate-keeper software[note 13] and the TLCP.
The current highest trainz-build (TB) 'version number' is 4.2.
The TB mapping to official Trainz release versions are as follows:
'trainz-build' By retail release's shorthand titles: code build range
TrainzTrainz 1.3,
counts 3 service packs total[note 14].
(the original Trainz Community Edition)[note 15]
English - no service packs applied CDROM
distributed and published by Strategy First in North America
code build 10[3]
tbdl code build 263[4]
tbdl code build: 277[4]
a non-Trainz utility (PaintShed)
Spanish Language release of TB V1.3
Trainz UTC, or Ultimate Trainz Collection
Released in November 2002
for Christmas sales bump.
English - no service packs applied: build 327
Arguably, this was just a fourth service pack to Trainz 1.0, which added content and improvements.
Ultimate Trainz Collection-SP1 English - SP1, code build 404.
English with SP1 pre-installed as part of Trainz: The Complete Collection Omnibus edition (2008): build TBDL.
Unused, skipped unless were possible Internationalization releases or one was used for Trainz Routes which installs as a patch, so makes no registry entry.
TRS2004 initial release or SP0 no-CD English release: build 668
- United Kingdom - no service packs: build 686
TRS2004-SP1 by Web Upgrade
Updated Versions with SP1 applied are TBV 2.1:
Australia and North America:
                build 690
United Kingdom: build ???
French:         build 745
Australia and North America:
                build 753 - probable hotfix
German:         build 756,
                  and 761 - probable hotfix
Spanish:        build 835
Czech:          build 889
Updated Versions with SP1 applied are TBV 2.1:
Australia and North American markets:
                build 2035
United Kingdom: build 2036
French:         build 2037
German:         build 2038
Australia and North American markets:
                build 2040
            and build 2042 - probable hotfix
German:         build 2200
United Kingdom: build 2285
TRS2004-SP2 -'Passenger Edition' CDROM releases
Versions with SP2 for TRS2004 applied are TBV 2.2:
Australia and North American markets:
                 build 2145
United Kingdom:  build 2146
Spanish:         build 2161
German:          build 2163
French:          build 2176
TRS2004 Versions after SP3 applied are TBV 2.3:
Australia and North American markets:
                build 2283
United Kingdom: build 22??
German:         build 2288
French:         build 2289
Spanish:        build 2290
TRS2004-SP4 - this version made Trainz, Trainz![note 16]

TRS2004 Versions with SP4 pre-installed are TBV 2.4:
Upgrades by download of pre SP4 releases: Australia and North American markets: build 2350, United Kingdom[4]: build 2357
"Trainz 2004: Deluxe Edition" CDROM

TBV 2.4 by CDROM boxed sets; also bundled with Trainz: The Complete Collection (Trainz TCC) distributed by Paradox Interactive:
Australia and North American markets:
                build 2365[5]
Czech:          build 2367
United Kingdom: build 2370
German:         build 2388
French:         build 2390
Trainz Classics 1&2
Trainz Classics 3
TS2009-SP2 / TS2009-SP3
TS2010 / TS2010-SP1
TS2010-SP2 / TS2010-SP3 / TS2009-SP4
TS12 and Trainz Simulator Mac
Trainz Simulator Mac2
Trainz Simulator Mac2-SP
One of these
wild beta test!


Asset compatibility


It is important for an asset to list the correct Trainz-build in the config.txt file. It specifies the version of Trainz the asset was intended to be used with. An earlier version of Trainz will refuse to load the asset. A later version of Trainz will enable appropriate backwards compatibility workarounds (e.g. using different validation requirements) as required.  

A correctly-constructed asset built for an older version will usually function in a newer version of Trainz. However, while Trainz content validation has improved over time, and newer versions of Trainz detect errors that older versions did not pick up on, many errors are useless make work caused by callous and rapacious programmer and management practices. Often, content may be detected as 'faulty' in a current Trainz version that was missed in the version it was originally created for, but the most frequent issues are missing thumbnail images which have nothing to do with the functionality of the asset, or obsoleted tag names.

Or that is the official party line per N3V, which ignores the fact there are errors they could just fix in parsing, such as ignoring legacy tag names like type, region, asset-filename, or name-xx, etc. and similarly could convert in situ older forms to newer container forms of data, then test for faults. They do neither putting the time cost of their unprofessionalism onto the customers who must one by one correct errors their software should be handling.  

It should be noted that content that is uploaded to the Download Station is validated for faults by the most recent version of Trainz—and may be rejected if an more stringent newer fault or error test has been put in place.[6]

This depends on the version of Trainz that you are running, and if we've updated the DLS error checking. I can make content that shows no errors in TS2009, but will be rejected from the DLS under the current error checking due to issues that TS2009 could not detect. This is essentially the same here. The DLS error checking is updated regularly, and may be more strict than the error checking in TS12 SP1. OTOH, TS:Mac2 is a newer release and will have most of the updates to the error checking.

We have stated many, many, many, many, many, times over the last 12 months that the error checking on the DLS is generally ahead of that in Trainz. Hence, if you are given a rejection notice with actual errors in it, you'll need to correct these.
—N3V spokesman ZecMurphy at, May 11th, 2014.[6]

Assets generated under a perfectly valid currently supported version of Trains, using the validation compatibility for the trainz-build specified by the asset, may still be rejected by the Download Station Software.


If Content Creator Plus CCP is used to modify an asset, it will automatically update the trainz-build version in the config.txt file to the current Trainz version it came with. This is problematic and contrary to the greatest interests of the most members in the Trainz community, as the lowest trainz-build code is desired from the standpoint of giving the asset the most Trainz users access to the new product (asset). Prior to V3.2, such codes could then be manually back-dated to a lower trainz-build, but the error checking in versions since requires exporting the asset-open-for-edit by copying the folder, reverting it, deleting it, editing the trainz-build code change in the copy, then re-importing it—a discourteous number of extra steps-in-the-dance for content creators, and yet another friction point with Trainz programmers. If Using CCP to fault fix and update, often this version with the invincibility of naive programmers forcing others to toe their line and if the asset specs have changed significantly, many other changes to the config.txt file will probably be required, as CCP wants to promote the asset to the current Trainz-build version.

If you don't want to spend all of your Trainz time patching assets with the user unfriendly interface of CCP and it's demands on your entries, learn to master manually editing and committing to keep the edits down to only those actually necessary.

Assets which are manually edited will need the appropriate version entered. If the line is omitted entirely, the lowest possible version is assumed. This is currently Trainz-build 1.3.Ø  

Obsolete Versions


Trainz-build numbers up to and including 2.8 are considered obsolete as of September 2012 and can no longer be uploaded to the Download Station. See the Trainz Life-Cycle Policy for additional details.

Notes and references



  1. * The trainz-build tag itself was totally unknown until Trainz UTC (v1.5) and many CC's of that era and for a few years into even the TRS2004 era never assigned a TB code in the config.txt files. TRS2006's through TC3 'new fancy-schmancy CMPs' advances, didn't even list TBVs as one of it's data columns!
    • Newer Trainz releases do their best to translate these older technologies into the newer releases standards (data organization and graphical tech) but some significant percentage of older assets cannot be auto-converted; not because it's not possible, but because N3V's programmers decided to retroactively impose new more stringent data model fault testing; whereas the TRS2006 era's (and spin-offs) handled such conversions readily. Most of these can be fixed easily by adding a mesh-table, thumbnails container and/or bogeys container to the config.
  2. For the new Trainz users:' trying to use an asset with faults does not actually risk breaking Trainz for while, and most versions won't let you place faulty content until CM is happy with the asset. So experiment away. That's how many a good asset got created in the first place!
    • Most newer content can be retrograded to work in earlier Trainz releases, at least as scenery items since those with newer script files may use features not present in older Trainz releases. More recently published Routes and Sessions cannot. The programmer's changed the formatting of the session and kind map files, to support more flexible sessions and layers in TS2010 and up.
  3. For example: TS09 (no SPs, so TS09-SP0) had a benchmark TBV of 2.9. After four service packs the family of code builds, had a version number (or TBV) of 3.3, with each added service pack having an incremented TBV version number in between the two end values, so TS09 has TBVs/version numbers 2.9–3.3 overall.
  4. Shorthand names: The user community in forums typically shortens the Trainz Release Name in line with the TRS2004-TRS2006 products which utilized those names as the *.exe files for the launcher program. Hence TS2009, TS09 ('TS-Oh-nine'), and TS10 are all common shorthand 'use' names. All forms as seems apropos to the material are used in these pages and will link to the long retail version named pages herein.
    • Unlike the TRS's, excepting the TC's, N3V developed versions have used 'Trainz.exe' for both launcher and loader modules (..\bin\trainz.exe) which is inconvenient when playing in the Windows registry.
  5. Each set of co-dependent files of a code version are saved together as a unit which makes up an install, or install version—a fourth use of a 'version concept' in this user note. An install implicitly includes some specific location (folder name and path and computer ID). It is a data set likely recorded in your computer's registry as its component software's folder pathspecs.
  6. On TBV incrementing: Virtually all service packs will increment the TBV for that code build, but a notable exception was the overlapping TBV's in the four service packs added to each version of TS2009 and TS2010 which were in concurrent development, focused on advancing different parts of the technologies behind Trainz for newer multicore microprocessors and advances in graphics cards.
     • One upgrade service pack or the other kept the TBV of the prior number so that in the end,
     • both products with four service packs applied had the same TBV of 3.3, and together they span the TBVs from v2.9 to v3.3 (instead of v2.9–v3.9!),
     • with the final releases code sharing all the new features of the newly revised and evolved data model and capabilities, save for only the multiplayer beta test capabilities first available in TS2010's last hotfix type of software upgrade.
     • Further, TS10 had as built-in contents, a superset of all the assets built-in to TS2009 plus new content from Auran/N3V including the newer tutorial series continued in TS12. TS10, was in fact, the product advertised by N3V Games over-optimistically using the new JET 3 game engine, multicore processing, and better graphics cards, but way later than they'd anticipated. As a result, they issued the incremental improvements ready in late 2008 as TS2009.
  7. About " such and such an asset KIND must henceforth define a specific tag value or container parameter value"—the new Trainz data model instituted by N3V's programmers for TS2009 has proven remarkably stable and consistent. Subsequent changes, normally limited to that of a single tag or two, have required once defaulted values be defined explicitly, after a threshold TBV level. Several such occur after TBV 3.4 for example. Such explicit references updates are not always reflected in fault messages from a CM, notably those 3.4 notes in the Trainz Wiki, have no analog in testing in TS12's CM 3.6 and CM 3.7, so the definitions are more guidelines than enforced hard and fast rules. But, they are most likely enforced in uploading to the DLS, for that testing is kept far more current, as many CC experiences have shown—requiring a fix and a re-submission to upload.
  8. On Hotfixes generating TBV changes... The editor cannot identify any case when a hotfix generates a TBV increment, but there may be an exception, particularly in the various non-English language code builds which most often, come somewhat later in time.
  9. When you need an odd problem checked out, the first thing the programmer's want to do, is duplicate the problem so they can use a code debugger to see what is causing the problem. Hence, Customer Service, when taking a problem report want the code build, and could care less about the Trainz version—the code build tells them everything, the version number is far more ambiguous.
  10. See first image, on page Trainz
  11. As of mid-August 2015, N3V announced a new DLS software downloading interface that is supposed to prevent a user from updating to an inappropriate asset version. Experience upto early 2020 says this works in TS10--TS12 and TANE. It was found early on that as feared this new operation mode also blocked downloads of older assets to older versioned, no longer supported installs, especially TR2004 but after a while, capability was restored to CMP and TS09. Those older versions cannot see whatever blocking code is generated by the server and they will blithfully download even TANE and TRS19 TBV'd kuids. For the oldest Trainz releases, Trainz 1.o through TR04-SP4, the desired kuid, if it be new or old are still be downloadable manually by using the FTP method via the Trainz Download Station Webpage(s) using the newer whitepages url.
  12. Trainz-build (TB) value 'creep' or 'inflation' has been forced upon the user community by the Trainz Life-cycle Policy and establishment of stricter testing of uploads to the DLS. There has been much controversy about this between the many CCs and the N3V Management culminating in some heated discussions since the CCs necessarily want the lowest TB so the new asset is available to the greatest number of Trainzers while the N3V management wants the highest to motivate more users to upgrade to newer Trainz.
     • Minimum TBV's upon uploading, whether the asset functionality needs said TBV level or not, has proved to be N3V Games club. This has diminished the utility of the TBV as a measure of Tech-level, to one that is artificially inflated and so less useful with little relation to the actual technical needs of what the asset requires.
     • CCs, having put months or years into an asset's generation understandably want to assign as low a TB as possible so more legacy Trainz owners can use it.
     • N3V whether for mercenary and pecuniary motives, certainly not based on technical grounds, adopted the TLCP to force uploaders to comply with the last 'supported Trainz' release's minimum build code, itself an controversial policy forced on the community, many of whom feel the four year cycle is ridiculously short with the backward compatibility of a Trainz product.
  13. The point is many newer uploads have been forced to adopt what started as a tech-level measure, that don't need a high TB, and can't upload it, unless the TB is inflated. This is particularly harsh on a Route Builder CC who may have spent 5-6 years on a TS09 masterwork— who must now revise a lot of terrain and re-evaluate a long list of assets to make sure the route is nearly Trainz/Trainz Highest compliant.
  14. In point of fact, in both timing and feature sets, the Trainz UTC release is in reality a fourth service pack of Trainz 1.0 with extra content added—the first nine scenarios as built-in assets and more maps.
  15. Auran/N3V management reissued the term 'community edition' in mid-fall of 2014 for the earliest incomplete TANE release. In the event, this proved as many feared, a premature beta-test on a wide scale, including a iMAC release for the Christmas 2014 sales cycle.
  16. TRS2004 made Trainz, Trainz!: The only thing missing was TR06's CMP and that's the only really important difference from the TRS's series that follows V2-5 to V2-8 but for some relatively minor features and tweaks.


  1. Build Code of '1' (0001) is an unconfirmed surmise of the software download version of Trainz 1.0
  2. Appearing briefly on one of the loading screens, is formally Trainz 1.1.1, the North American release by Strategy First and the first widely distributed CDROM version.
  3. By value recorded in the Windows registry and the record matching that odd 'Trainz 1.1.1' notation appearing briefly on one of the loading screens of the North American release by Strategy First distributed CDROM version.
  4. a b c Unconfirmed
  5. Confirmed by registry entry, code build 2365 is "Trainz 2004: Deluxe Edition"
  6. a b [Can-a-new-tag-be-made-for-Trainz], ZecMurphy, Auran Community Assistant, May 11th, 2014, 09:02 PM