Last modified on 30 July 2014, at 07:11

Trainz/AM&C/Fixing Assets

Trainz Asset Maintenance and Creation

Trainz Annotated Reference Pages
Trainz | Introductory Trainz | Trainz AM&C | Creation | Appendixes |  References • Containers • Kinds • Tags • Index
 Mouse use

If you begin exploring Trainz as a building tool, crafting or modifying a route, or venture boldly forth onto the DLS and acquire one of the 2500+ routes uploaded in the last decade— you will indubitably end up facing the learning curve of 'fixing assets'. If you are going to make headway fixing assets, you will need to understand where to look things up. The Hierarchy Of Assets and config.txt files Asset fixing is something of a misnomer except in rare cases—most widely used assets need fixing by updating to new technology levels—because they have become out of date relative to updates in the game engine's data needs. Alas, there are some actual errors in downloadable content from not only the DLS but from otherwise reputable 3rd party content creators such as Mocrossing pack (zip file) pack—the fixing of which is covered in a forthcoming tutorial. Many times these are simple typos, some are misspellings (not every contributor speaks English as a native tongue, nor as their first language) and pre-TS08 error checking was far more lenient... leading to the fatal crash of Trainz or worse, Blue Screen of Death errors.


Some small numbers of "Bad Assets" can (with decreasing frequency of occurrences thanks to the systematic efforts to 'Clean Up the DLS'), and when these are found in a route many of their ills can also be fixed. Most can be graded as misuse of key words, and misspellings, missing quotes and the like. Minor repairs anyone can fix with a text editor like Notepad or Notepad++. An occasional asset will be missing a component—either a texture or a mesh (the wire frame which gets 'decorated' by textures to make a virtual object. The one is a surface, the other the skeleton of the underlying shape.) By far the majority of these have shown themselves susceptible to easy fixes by adjustment of file pathspecs, installation of a newer container style data structure in the config.txt file or adjusting file folder contents (e.g. pre-V2.4 processing of assets were able to look up and down for a primary texture or mesh (im) file which processing was abandoned in TS2009 and above) by copying up or down relevant files into the necessary folder.

Various techniques have been adopted requiring different data, or a difference in the way data is organized. Most of these changes are handled automatically within the software. When they cannot be, they generate an error, a good thing. Having an error appear in an asset is far better than having a flaw in an asset create a program crash—an all-too-frequent occurrence in the early days of TRS2006 when the first elevated measure of basic error testing was built into the CMP software with its Service Pack 1.


Acquiring and Installing PEVs toolsEdit

PEVs tools in a power-users C:\Downloads folder (Yours will likely be somewhere else).

PEV's tools will be maintained by the community on one website or another as they are invaluable. Peter Villaume (PEV) is a really talented programmer (engineer, actually) situated on the opposite (or Sydney) side of Australia from N3V & Auran Holding's small town location on the Gold Coast near Brisbane, but ceased hosting his tools on his own website in mid-2013 when the task was taken over by Trainz forum guru Shane Turner on his help site here.

  1. Locate PEVs tools on Shane's site and their accompanying .pdf file manuals where given.
  2. See PEVtools for a procedure and tips on where to put things.
  3. See PEVtools for some operating tips, tutorial links, and advanced setup in a local.


Part II
  1. Once you've learned to walk through some 10-20 errors and seen how repetitively they can be, find the Asset-X FAQ on the forum, and start gradually working on that learning curve while regularly, steadily, fixing any additional faulty assets that come your way.
    1. Much of the How-to with Asset-X is in the Windows style help file built into the product. This can be read directly in the folder, or by Loading Asset-X and clicking on Help.
  2. Before doing so, you must have a understanding of the basic Trainz data configurations, and fixing 20-30 errors the long way with PEV tools and an engaged brrain will give you mastery enough to fly Asset-X
  3. Also, it is a really good idea to set up a side folder of example asset types and fill it in with copies of things you had to edit, but fixed up so they pass without even warnings. These can be compared to others of the kind, and keep you from getting stuck. That exercise will stand you in good base knowledge, and build confidence giving future asset patching much greater speed. In the end, you'll be way ahead on time save building good base knowledge of How to fix faults.

List of one-to-one replacementsEdit

  1. Engine spec <kuid:35837:51002> can be replaced by <kuid:44090:51016>

Content Manager Warning MessagesEdit

and what to do about them...

Content Manager validates assets when they are committed, and also includes an option to display the errors and warning for any installed asset. Below are set out some of the error messages that CM will display when it validates an asset, with a brief description. This list is based on CM v3.7.

Warning: Aliased meshes cannot currently be verified by Trainz.Edit

The asset does not contain its own mesh but refers to another asset as the source of the mesh. CM is advising that the other asset is not validated as part of the process of validating this asset, and therefore this asset cannot be confirmed as error free. This asset might not work in game even though it is listed as available.

Warning: Required tag '<tag name>' was missing and has been set to default.Edit

The tag should be added to config.txt with a suitable value.

Warning: This asset uses an obsolete trainz-build number. Trainz-build numbers below <build number> are no longer supported.Edit

The validation tests applied to an asset depend on the asset's build number. This message is indicating that the asset is considered obsolete and therefore the latest standards have not been applied. If the build number of the asset is updated, there may be more errors detected.

Warning: Tag '<tag name>' in the container '<container name>' is obsolete.Edit

That tag is no longer supported and will be ignored. It is possible that the tag function has been replaced by a container, as in the case of the tags 'category-era-n' which are replaced by the container 'category-era'.

Warning: Required container 'thumbnails' is missing.Edit

A thumbnails container should be added to config.txt

Warning: This asset requires a shadow mesh, but the mesh table does not contain one.Edit

A shadow mesh should be created for the asset and the mesh table updated.

Warning: The texture '<texture name>' is a uniform color.Edit

Uniform textures should not be used for new assets, but for older assets that would require a change to the mesh. In this case the textures should be resized to 4x4, or at least one pixel changed to a varying colour (however slight the variation). Large uniform textures are a waste of resources: do not adjust the image colour to avoid the warning without also resizing it to a suitable small size - 16x16 or smaller.

Build 61388 does not appear to care about the size being less than 64 pixels, but it cares only that there is a change of colour in ONE of those pixels! PEV's Images2tga works well.

Warning: An asset must be specified for tag 'texture-kuid'.Edit

The texture-kuid tag is used by some containers (eg, a corona effect container) to reference a texture name. If it is used, the texture name should be specified.

Warning: Progressive meshes are no longer supported by TrainzEdit

Full message
Warning: Progressive meshes are no longer supported by Trainz. Though these meshes may work in Trainz, it is recommended that you switch to a LOD mesh.
Related message
Warning: Progressive meshes are no longer supported by Trainz. Though these meshes may work in Trainz, it is recommended that you switch to a IM mesh. (Until 2008's publication of TC3 introduced the LOD technology.)

Progressive meshes (.pm) can be converted to a Indexed mesh (.im) using the PEVtools utilities. LOD meshes do not currently have a tool which can scale a mesh to the set of meshes in an LOD series (typically four meshes with less and less polygons, the farther from the camera locus the face of the object. This mimics loosely the way the eye-brain sees less details the farther an object is from the eye. In computing terms, LOD meshes reduce the processing for most objects, but preserve the ability to build fine details into an object seen up close where there can be denser polygons and mesh pairings defining surface feature details.

  • There is no solution for older assets short of editing the mesh and removing vertices to define new LOD .lm files, which are a series indexed mesh files all of the same boundaries.

Content Manager Error MessagesEdit

Acquiring assets means running a gauntlet of error in older content, and these faults can usually be fixed with a series of simple edit changes and PEVtools. This is a guideline to do such, and why such and such an error is occurring. AssetX and TARDIS scripts can be used to automate fixing many of these, but this page is about the bare knuckles approach when only Pev's tools are at hand.

See Setting up PEVtools for some useful tricks and methods.


Error: The Tag 'discription' is not permitted within a container of typeEdit

Text contributor: fabartus — (fabartus)
  • 'Error: The Tag 'discription' is not permitted within a container of type... '
  • Perhaps the easiest error to handle. The word description is mis-spelled 'D-I-S...' not the correct 'D-E-S...',
    so correct the spelling.


  • 'Error: The Tag 'origin' is not permitted within this container.'
  • Delete the line, the tag is no longer part of the allowed KIND specification. A good practice is to make any double quotes into single quotes, and move the whole line into the description field within a notice of fixes (a Change Record—see example below).
P train grey.png

Example recommended Change Record style embedded in description tag
as a very 'good programming practices' for Trainzers:

description "Barnboard rural style rough shed with galvanized corrugated roof texture. Nonetheless, asset makes a good scenic accessory.
- ----------- ---------- ----------

Rev-A 2014-0226 by Fabartus - upgraded to v2.9 from v1.3 by installing screenshots, and using PEVs tools: shadows, pm2im, imgages2TGA, etc.
A.1) Changed original username Blockhaus, new asset name: Blockhaus, Shed Barnboard
A.2) Updated:trainz-build 1.3 to 2.9
A.3) Deleted obsolete tags:

asset-filename 'Blockhaus'
region 'Low_Poly_Objekts'
type 'Buildings residential' "
origin "Germany"


  • 'Error: The Tag '?' is not permitted within a container of type 'engine'.'
This mysterious message, common and often seen in older content, is not because of '?' (?, searching for '?' won't find such!) but because of the underscores (___) left behind by GMAX or another utility antedating TRS2004 (which content does not show this problem) which created the page.
This mysterious message, common and often seen in older content, is not because of '?' (?, searching for '?' won't find such in the config.txt file!) but because of the underscores (___) left behind by GMAX or another utility antedating TRS2004 (which content does not show this problem) which created the page.
  • This one crops up in older v1.3 content, especially engines. Delete the line(s) with underscores. These are said to be GMAX artifacts, which occurs a lot in early Trainz Content.


P train grey.png

The N3V programmers don't know how to skillfully discard things they can test for.

  • So thousands of us have to put up with fixing trivial parsing issues like this idiocy


Error: Filename '<filename>' contains illegal charactersEdit

  • Example: Error: Filename '$hirsch-tga_converted (512^2).jpg' contains illegal characters
Remove the offending hat-character by editing both the reference and the filename— exponents not allowed in Trainz names, even in screenshots!


Error: Tag '<tag-name>' in the container '<kind>' is obsolete.Edit

These three faults Frequently found together
these messages occur after assets are upgraded to V2.9 and above (TS09 Trainz and versions after).
  • Error: Tag 'region' in the container 'scenery' is obsolete.
  • Error: Tag 'type' in the container 'scenery' is obsolete.
  • Error: Tag 'asset-filename' in the container 'scenery' is obsolete.
  • If a trainz-build tag is under V2.9 then these three depreciated tags present a Warning instead.
  • The asset can be brought into compliance by deleting the lines. 'asset-filename' has


Error: Could not commit <'asset_username'>. The asset was not open for edit. You may need to open it for edit firstEdit

A rare, oopsie message. Don't forget computers do exactly what you tell them to, even if YOU think you tole' them something else entirely.


Error: Unable to read config file for asset at <location>Edit

[[Trainz/Unable to read config file for asset at <location>|Unable to read config file for asset at <location>]]

The config.txt file could not be found or could not be read. This usually indicates that the asset is corrupted, or that it does not exist at the location where it was expected. This can happen if the asset is deleted but the cache has not been updated. The asset should be restored from a backup source, or reverted.


Error: This asset has a trainz-build number which is not recognized by this toolEdit

Text contributor: fabartus — (fabartus)
CM will input Versions too advanced, this content is trainz-build tags +0.2 versions after the Content Manager (note the version code in the title bar).

trainz-build tags or asset version numbers are built into every Trainz item as a mandatory entry in the a|p=Trainz-build tagsssets TrainzBaseSpec data definitions in it's config.txt file.

As a mandatory data field, it literally defines to the CMP/CM reading the file the tech level of the asset allowing the game software to appropriately translate data from older dated formats to newer more demanding technologies.

  • It is the secret which keeps Trainz compatibility version to version and why Trainz 1.3 assets are still found in new routes and session content.
  • If the asset is properly defined, the trainz-build code tells the software how to interpret the data, if the data structures are older.
  • This message was generated because the data item just imported had a tech level over the head of the v3.2 Content Manager.
TS2010-SP3 allowed Fabartus to degrade the Trainz-build tag value, so drop it back and annotate the description with a notation you've done so. Afterwards, the asset committed fine.
  • MOST assets will work fine, unless they take advantage of newer software advances. Specifically, beware assets involving scripts... these may need the newer trainz-build versions to work properly. Meshes, Textures, kuid references, and other such guts elements should render fine from Trainz 2009 (SP0) and up if taken backwards. Some assets — e.g. those with AlphaMask= statements in their texture.txt files — will need that line deleted if the asset is taken back to TRS2006 versions. (TC3 introduced?Ø).


Error: Unable to load mesh file: '<mesh filename>'Edit

The mesh file could not be loaded. Perhaps it is misspelled in config.txt, perhaps it is missing, perhaps it is the wrong format, or perhaps it is corrupted and unreadable.

  1. Run PM2IM and see if there is an IM file generated, or Pevs Tool generates a similar error. If the latter, ask on the forum for advice and assistance.
  2. If an IM file has been generated by the same name, check the folder/pathspec entry in the asset's mesh-table and verify both the PATH (many older assets had a 'asset-name'+'_body' sub-folder, the convention until mid-TRS2004 versions, so likely in any v1.3-v2.4 asset), AND the filenamespec (including EXTENSION) are correct.
    1. In such older assets, where the pathspec is correct, there is no mesh-table installed. Adding one (at least after v2.0) will (surprisingly, as it's a TRS2006 introduced standard) be accepted by Trainz TS09-TS12, and is likely in TR06 too.
    2. Example mesh-table boilerplate (adjust pathspec and filenames to match your folders contents):
mesh-table {
  default {
    mesh               ""
    auto-create        1
  shadow {
    mesh               ""


Error: Attachment point 'numeric_name' in 'container-name' was not found.Edit

Text contributor: fabartus — (fabartus)

Error: Attachment point 18 (a.passoff) in 'queues\passengers_off_0\attachment-points' was not found. Error: Attachment point 61 (a.passoff112) in 'queues\passengers_on_1\attachment-points' was not found.

There are two possible causes for this error

  1. The attachment point name is wrong, so the mesh and container listing the data point mismatch.
  2. The attachment point is missing, so again the mesh and container listing the datum mismatch.


  1. The nineteenth attachment point named '18' in the mesh referenced by the queues container in the sub-container passengers_off_0 is missing. ('18' is a placeholder reference and could be 'xy', 'glops' or anything, so long as it occurs on the 19th line of the container (data table).)
By convention, sub-elements in Trainz are normally given number placeholders, but in most cases any entry interpretable as a string will work. (As placeholder parameters, the numbers are interpreted as strings, without weight or value, just like a tag name.) The important thing is something be inside the {...} pair, the inside lines of which each also expects keywords (or placeholders) paired with values, as is universally true in Trainz. [Even {...} pair is paired with a kind or container name.]
Error: Attachment point 'numeric_name' in 'container-name' was not found
 • These are manufactured errors (by adding 3 lines of false data to the container), after fixing the first error message.
 • BOTH instances give the same error message syntax... one missing correct name, the others missing the attachment points.
There are three common fixes...
    • An attachment point might be added to the platform using the PEVsoft tool Attachment Maker with the name 'a.passoff', if is truly missing.
    • However, on the basis of the name "a.passoff", the line likely has a missing suffix—nobody wastes time giving a generic attachment point on a train platform (of which there may be hundreds) a fancy name—such are usually numerically suffixed; so the message is probably issued because the container name is missing its numeric suffix, and since the placeholder sequence is:
      00  → a.passoff01,
      01  → a.passoff02,
      02  → a.passoff03, ...
      so at the entry ##-1   → a.passoff##, add the correct suffix '##+1',
      thus in the given example adding 19 to the line of the #18 placeholder should fix the problem. (This was indeed the case for three such assets by the same creator when documenting this error.)
    • If failing the rename, the line can just be deleted.


Error: Attachment point '<attachment point name>' in '<effect name>' must be found in mesh '<mesh name>'.Edit

Text contributor: Fabartus — (Fabartus)

An attachment point is referred to in config.txt but it does not exist in the default mesh <mesh name>. This can often happen when a config.txt has been copied from another asset, and the attachment deleted from the mesh. For instance, a crossing gate has had a lamp attachment removed from the mesh, but the corona effect <effect name> still refers to the missing attachment point. Example (with associate companion error):

Error: Attachment point 'a.lite121' in '133' must be found in mesh ''.
Error: The attachment point 'a.lite121' must belong to the parent mesh of the effect (mesh=malt.IM).

Theory/Background: The effects container is generally an array of duplicate items, such a for instance, the number of windows in a building that are 'back lighted' and different from those that are 'dark'. Another attachment point series frequently encountered are many people on a Trainz platform, or perhaps a tree in a 'tree group'. Solution: The general solution is to delete the container or tag creating the error.

P train grey.png

Notice the "fix" documented as follows:

kind                                    "scenery"
category-class                          "BC"
description                             "Large Grain Conglomerate, so I have built it in sections for easier
placement. located in Vancouver, by the BNSF yard.

Rev-A by Fabartus -- 2014-0508 Repaired these 'lights' faults by removing the #133 container to below:
Error: Attachment point 'a.lite121' in '133' must be found in mesh ''.
Error: The attachment point 'a.lite121' must belong to the parent mesh of the effect (mesh=malt.IM).
Removed/Deleted lines:
        kind                            'corona'
        att                             'a.lite121'
        texture-kuid                    <kuid:-3:10111>
        object-size                     0.21


Error: The attachment point '<attachment point name>' must belong to the parent mesh of the effect <mesh name>.Edit

This often occurs in conjunction with the previous message. Not only was the attachment point not found in the mesh, it was not found in the parent mesh to which the effect is attached. It occurs for the same reasons as the previous message.


Error: The *.texture.txt file is missing for texture resource '<texture name>'.Edit

A texture name used in a mesh file cannot be found, or could not be loaded. A valid texture.txt file should be created with a suitable associated image file. It is possible to search the user data folder for a texture of the same name, which might or might not be suitable for the asset. It is also possible to create a new texture.txt file and an arbitrary image - this might reveal what the image needs to be, or it might reveal that the texture doesn't matter and any image will serve to get rid of the error.

If the missing file is a 'digit_xx.texture' then any image can be used to remove the error. These files are not actually used because they are substituted with the selected digit image as part of the running number creation.


Error: The texture 'graphics_file_name' failed to loadEdit

Text contributor: fabartus — (fabartus)

Example= Error: The texture 'column1.bmp' failed to load. Clearing this error may be extremely simple. The texture file is likely not a square patch sized by a power of 2n bytes.

  • If MS Paint or other graphics application can load the file, this is the most likely case. Resize the image to one of 8x8, 16x16, 32x32 pixels. Re-save and retest the errors and warnings.
Modified AlhpaMask to fix asset giving only one, needing three. All three affect light patterns cast by lenses of a in-world simulated spotlight source. The base pattern can be discerned under quick and dirty 'hack' introducing individuality to this AlphaMask, and so to the lamps using it on the yard light tower asset to which it provides definition.


Error: Unable to load alpha 'texture filename' for texture file 'filespec.texture.txt'.Edit

Error: Unable to load alpha texture 'subfoldername/alphamaskfile.bmp' for texture file 'subfoldername/alphamaskfile.texture.txt'.


Error: Unable to load alpha texture 'night/licht1.bmp' for texture file 'night/white-licht1.texture.txt'.
Error: Unable to load alpha texture 'night/lichta.bmp' for texture file 'night/white-lichta.texture.txt'.
P train grey.png

The original early Trainz asset did not require the tight definitions of today's assets and may not have used more than one AlphaMask for the three different .tga files mimicking light sources.

i.e. PEVTools may have created the texture.txt files correctly to the newer standard, and an alternative and simpler fix to that given below would be to just use the one .bmp file for all three by changing the newly generated texture.txt file entries.
(That 'fix' would take the fun out of experimenting though! Using 3 gives added customization ability! -ed.)
It is important to understand that prior to V2.7, TRS2004 and TRS2005 had no explicit allowable lines for AlphaMask mode changes. Every thing was a default mode. These were added later to extend the facility, so this pair of messages gives some insights into evolution of data in that era.
It may be TRS2004 assets and earlier didn't even use texture.txt files, being based on the older folders with suffixes organization. (Suspicion, ed.)Ø
  1. The above error pair of messages occurred in a v1.3 yard tower-style floodlight asset, where only one of three greyscale .bmp files were used to alter the dimness and characteristics of each light on the tower, giving them individuality and a bit of uniqueness. Arrayed beside other spotlights in the yard light tower asset, the three differing shadow masks would realistically duplicate actual attributes of individual lights in the prototype.
  2. The general fix, when a graphic file is missing entirely is to replace the file with something that will do the job.
    1. In the above case only one of three AlphaMasks were present, so that was copied, and altered to duplicate the desired individuality and satisfy the 'texture.txt' include files. (See image above and right)
  3. Other faults of this type are often because earlier Trainz would read the folder(s) contents entirely, and indiscriminately index each file and put it in a memory block—this enabled a reference to the .bmp or other supporting file anywhere in the asset folder hierarchy (including those in the asset root above).
    1. But the older method sometimes ran the risk of creating subtle problems if the content item used the same filename with differing data.
    2. The newer Trainz do not find things the same way, relying on an specified pathspec and the texture.txt files are used to make sure a correct pathspec/filenamespec is explicitly specified. When the subfolder or asset root folder had a file specified in a filename.texture.txt file. This creates the spinoff error effect... files easily found in Trainz 1.3--TRS2006 suddenly were pathspec disconnected breaking assets.

Error: Unable to load image file '<image filename>' for texture '<texture filename>' while validating mesh '<mesh filename>'Edit

Text contributor: fabartus — (fabartus)
Note this and the following error (unable to load Primary Texture) often occur together...

The image referred to in the texture.txt file could not be loaded. It might be missing, the name might be misspelled in the texture.txt file, the image file might be the wrong format (for instance, compressed TGA), the image sizes might not be a power of two (where required) or the image file might be corrupted. It is possible that the image file is not really missing, but the texture file exists, and is not required. Check the required lists of textures using Assetx - if the texture name is not listed then the texture.txt file can be removed and the error will disappear. example: Error: Unable to load image file 'shadow.bmp' for texture while validating mesh

  • Solution: ...See narrative following...


Error: Unable to load primary texture '<image filename>' for texture file '<texture filename>'.Edit

Note this and the preceding error (Unable to load image file) often (if not always will) occur together...

The primary image referred to in the texture.txt file could not be loaded. It might be missing, the name might be misspelled in the texture.txt file, the image file might be the wrong format (for instance, compressed TGA) or the image file might be corrupted. example-1: Error: Unable to load primary texture 'shadow.bmp' for texture file 'shadow.texture.txt'.

  • Solution: Used a shadow.bmp archived in folder textures library built while fixing assets.
  • Alternative. Could have taken a black.tga, or made a new dark tga file of 4x4, 8x8, or 16x16 to serve as this shade.

  example-2: Error: Unable to load primary texture 'greyhound_stop_1_nightwindows/bussstatin1.tga' for texture file 'greyhound_stop_1_nightwindows/bussstatin1.texture.txt'.

  • Solution: Key was focusing on the key words "primary texure" ('/bussstatin1.tga'), BUT... the file was in the root of the asset folder and needed to be copied down, whereas the night mode texture.txt file was in the '..\greyhound_stop_1_nightwindows' folder below the root. It was with a 'greyhound_stop_1_nightwindows.tga' and 'greyhound_stop_1_nightwindows.bmp'which was in fact an AlphaMask image for the illuminated windows and signs.


Image file '<image filename>' is incorrectly used as both a texture.txt source file and a raw image file.Edit

The asset includes a texture.txt file that refers to an image file, but that image file is referred to directly from config.txt. This applies to image files that are used as thumbnails. Either change the thumbnail reference to the texture.txt file, or (preferably) delete the texture.txt file.


Error: Binary conversion failed for texture resource '<texture filename>'.Edit

The image referred to in the texture.txt file could not be processed for some reason. See previous.


Error: The primary and alpha texture are not the same size for 'texture.txt file'Edit

Example Problems:

Example & case-1
Error shows up as being in an art subfolder
  • Error: Unable to load alpha texture 'gondola4axlebn521555ant_art/gondola4axlebn521555ant_512.tga' for texture file 'gondola4axlebn521555ant_art/gondola4axlebn521555ant_art_512.texture.txt'.
  • Error: The primary and alpha texture are not the same size for 'gondola4axlebn521555ant_art/gondola4axlebn521555ant_art_512.texture.txt'
  • I can see both the primary and the alpha textures in PEVSoft Images2TGA for the texture but can't figure out how to resize them to fix the error.
  • What I have is one texture file that, when opened in PEVTool Images2TGA, I can see the image and its alpha CHANNEL. I take it that the error message is telling me that these two things, WITHIN the texture file, are not the same size. Can I resize the alpha channel to get it to match the image size WITHIN the texture file?


Text contributor:  — (rweber95)

The art files are only for viewing the thumbnail pictures and the alpha channel is used to block out the background so only the object shows. In this respect the alpha channel is not necessary for using or enjoying the asset. Consequently, if I have such a problem as this, I edit the texture.txt files in the art folder to delete the alpha line to get rid of the error so I can use the asset. Correcting thumbnail alpha channel problems is a waste of time.[1] // Bob

Example & case-2
Error: The primary and alpha texture are not the same size for 'kansascitysouthernsd40-2_body/reflectstrip1f-window-dark.texture.txt'
  • In this case use Irfanview, or GIMP to reconcile the images sizes in pixels which should match height and width, and each dimension be a power of 2.

Error: The Tag '<tag name>' is not permitted within a container of type '<kind>'.Edit

"Error: The Tag 'thumbnail' is not permitted within a container of type 'scenery'."

The tag is not recognized as valid for this type of asset. The tag might be a comment (earlier versions of CM ignored comments) in which case it can be deleted. It might be misspelled, in which case it can be changed to the correct spelling. It might be a valid tag that was meaningful and useful for the asset, but is no longer valid. An example is the tags used by some scripts to provide information, such as running number range. These custom tags are no longer allowed as top-level tags in config.txt - they must be moved to a container within the extensions container, and the script must be modified to find them at their new location in the file. The details depend on the script.

  Post V3.6 retrofit Examples:

  1. Error: The Tag 'engine-sound-ramp-down-durations' is not permitted within a container of type 'enginesound'.
  2. Error: The Tag 'engine-sound-ramp-down-durations' is not permitted within a container of type 'enginesound'.[2]

These two errors occur when a content creator 'back-dates' a v3.6 or above engine asset creation without testing the lower trainz-build code (for example, V2.8 of TC3 — where many enginespecs were evolved) in the asset; or should one try to retrograde such an asset to an earlier Trainz.

Solution: - delete (or move the two lines into the description field change record) the lines in the retrograded asset or increase the trainz-build to 3.6 or above.


Error: The tag 'tag name' in '<container name>' points to a nonexistent file: '<filename>'.Edit

This error occurs when a tag references a file and the file cannot be found.

For instance, named subcontainers in the thumbnails container have an 'image' tag that can point to a texture.txt file or to an image file. If the image file is not found - perhaps the name is misspelled, or the file is missing - this message will be logged. Similarly, the 'info-page' in a 'maps' container should point to a .htm file. If the file cannot be found the error will be logged.


Error: This asset has a trainz-build number which is not recognised by this tool.Edit

This error occurs when you import an asset with a trainz-build tag higher than the current Trainz version.

  • Try demoting the asset to your trainz-build version. Most assets (not routes or sessions post TS10-SP2) can be retrograded and work fine. Otherwise, delete it or fiddle with the asset as pleases you.

Error: Incorrect number of values for the tag '<tag name>', expected <x> values, found <y>.Edit

Where a tag requires a list of values, there may be a required minimum or maximum number of entries in the list. If the correct number of entries is not provided, this error will be logged. Add or remove entries from the tag list as required.


Error: Unable to load animation file '<animation file name>' (no resource).Edit

The animation file was not found in the asset. It may be possible to search for the file in user data and find it - a file of the same name might or might not work with this asset. If the file has been left out of the asset because it's not actually needed, then any animation file will work.


Error: Required container '<container name>' is missing.Edit

This can also be a warning in some cases, even though it says 'required'. It indicates that the asset type requires a particular container but that container has not been included in the cofig.txt file. The fix for this depends on the container (some containers can be easily created, some can't) and the asset type.


Error: The kuid '<kuid>' specified in '<container>' is not of the correct type.Edit

When a kuid is required within a container it must be a kuid of the type that is appropriate for that container. For instance, the allowed-categories container (within a queues container) requires one or more KIND product-category assets. A different type of asset (such as a product) will generate this error. —

Error: The kuid '<kuid:-3:10044>' specified in 'product-kuid' is not of the correct type.

This is a subtle error, as:

  1. Searching the N3V wiki and making an examination of 'product-kuid' says 'product-kuid' is only legal inside the queues container, where we find it by text search...
  2. that further the product '<kuid:-3:10044>' is a legal value as well...
  3. and since 'product-kuid' belongs in the queues container, and the location of the line appears correct:
    size                                75000
    initial-count                       0
    product-kuid                        <kuid:-3:10044>
      0                                 <kuid2:30671:92807001:1>
      16                                <kuid2:30671:9271390:1>

It seems hard to figure what to do next. The fine print, once read in the 'product-kuid' section says it is always paired with 'initial-count' of a load product, so again seems correct. However, examining KIND_Products we see <kuid:-3:10044> is designed to define a product, and assign it to one of the (only) four basic product categories defined in KIND Product-category— all built-in base assets which have an Auran defined kuid.

From That datum we see <kuid:-3:10044> is misused, it is not a product (which would also be listed in the allowed-products sub-container, but the category under which all those in that allowed-products list are classified by... bulk loads, liquid loads, containers or passengers! These tell the simulation software the type of processing a loading or unloading operation will need to display properly!) that could be a load in this traincar, giving us reason to re-examine the situation. It is not defining a product, but is a fundamental dependency' specifying the category for all the loads of that gross type that might defined by KIND Products. Paired with an initial count of 0 seems alright, but it's not a product, but a product category! It is the general, not the specific, which must be paired with the initial count.


To try to repair...
but get: 'Error: The Tag 'product-kuid' is not permitted within a container of type 'queues'.', so that's not a workable fix, despite it being a valid tag name associated with queues and load containers.
  • Just try Deleting the misplaced line (and unwelcome) ' product-kuid <kuid:-3:10044>' and find that works. This makes sense from the above reasoning. A category of behaviors used to define products is not a product.
  • Alternatively, the line can be moved into the kuid table, where it might be best if listed in any event, though the four types are always built-in base assets. The car is dependent upon it's definition after all—one level removed via the various products, and though it is always built and this becomes unnecessarily redundant. (It will work without warnings or errors however).

We/you should end up with this form:

    size                                75000
    initial-count                       0

And while you may have your head spinning from the process used to figure out the error or the explanation, you have perhaps a better appreciation for making sure everything is in the right place.

This situation has a parallel case to consider--what happens if the product spec line: Template:CO is not listed in the allowed-products container? A trial test generated NO ERRORS!  

Error: Failed to load sound file '<sound file name>', please ensure this is a valid wav file.Edit

The sound file could not be loaded. Perhaps the file is missing - it may be possible to search for the file in user data and find it. It might be corrupted or in the wrong format. If the file has been left out of the asset because it's not actually needed, then any sound file will work, at least to get the asset installed so that the function of the sound file can be determined and a suitable replacement located. For historical reasons this error can also occur in assets that are upgraded from an earlier build number - the file exists and the config.txt file entry appears to match the filename, but the warning persists. In this case ensure that the file name in config.txt is enclosed in quote marks (") - trailing spaces or tabs can confuse CM when quotes are not used.


Error: Script class does not match asset kind (<kind>).Edit

In simple terms, the error means the asset script is attempting to use a class not appropriate for the asset type (kind). An extreme example is trying to use a Locomotive class for a scenery asset.

More InformationEdit

Trainz scripts are software extensions to the Trainz native code to add extra functionality to an asset. These scripts use programming code somewhat similar to the C/C++ programming language and each script will have a class to identify the extra behaviour required of the asset. The class is invariably derived from a parent class associated with the asset Kind. This is called subclassing. For example, the statement "class My_Loco isclass Locomotive" means that this script will be an extension (subclass) to the existing Locomotive class. Not all asset kinds can have a script and it is not possible to subclass a class not normally associated with a asset kind.


Error: TADCompileAsset unable to determine asset KUIDEdit

literal: Error: TADCompileAsset unable to determine asset KUID

Circumstances: Got trying to add thumbnail to built-in Auran asset <kuid:-1:110000> when specified alternate form: <kuid2:-1:110000:0>.

Error: Unable to commit changes to asset <kuid:xxx:yyy> as the config file contains the wrong KUIDEdit

Text contributor: fabartus — (fabartus)

This is a DRM policing error (and an attempt to force users to update assets via Content Creator Plus, versus manual edit) that is generated because a kuid was manually adjusted. For example, an asset is upgraded to newer standard data type forms.

  • Further, this error will ONLY happen when an attempt is made to commit the asset with a changed kuid.


Error: Unable to commit changes to asset <kuid:497853:1451> as the config file contains the wrong KUID

(The above was an effort to update my session after a minor edit to <kuid2...:1> to keep it fixed across Trainz installs. Hence the DRM policing is particularly inappropriate!)

The solution is straight forward:

  0. Validate the asset to check for errors and warnings. (Should have been completed, since an attempt was made to commit)
  1. Copy the entire asset folder to a nearby utility directory (e.g. from ..\UserData\editing to \UserData\temp)
  2. Select the asset in CM/CMP and type CTRL+R
  3. To be completed with photos 'sometime later today'//FrankB 13:54, 13 April 2014 (UTC)




  1. [ -and-Alpha-Texture-are-not-the-same-size Asset Fix: Primary and Alpha Texture are not the same size], June 11th, 2010, 05:51 PM, rweber95
  2. Spotted in TS10 with V2.8 asset config.txt including the header lines: kuid <kuid2:60238:53042:1> username "Green Goat GENSET Engine Sounds Startup" kind "enginesound" category-class "ZS" engine-sound-ramp-up-durations 0,2.396,2.317,2.267,2.701,2.626,2.374,2.175 engine-sound-ramp-down-durations 0,2.396,2.317,2.267,2.701,2.626,2.374,2.037 category-region "US" trainz-build 2.8 category-era "2000s;2010s"