<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.trainzsimulator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pev</id>
	<title>TrainzOnline - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.trainzsimulator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pev"/>
	<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/wiki/Special:Contributions/Pev"/>
	<updated>2026-11-05T06:24:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9792</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9792"/>
		<updated>2017-02-06T04:08:55Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings.&amp;lt;br&amp;gt; &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&amp;lt;br&amp;gt;&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -tokens instruction takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the second parameter of the instruction.&amp;lt;br&amp;gt;&lt;br /&gt;
In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides the kuid string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 for kuid or 6 for kuid2&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if kuid2 OR empty string if kuid&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&amp;lt;br&amp;gt;&lt;br /&gt;
AssetX does not support comparisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.&amp;lt;br&amp;gt;&lt;br /&gt;
So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid2:1111:2222:3&amp;gt; the tokens count is 6.&amp;lt;br&amp;gt;&lt;br /&gt;
So if the token count is 6 then we aleady have a kuid2 with an Update value.&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The update (version) number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.&amp;lt;br&amp;gt;&lt;br /&gt;
The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0.&amp;lt;br&amp;gt;&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -delete|config.txt\temp&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9791</id>
		<title>Trainz Tools by PEV</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9791"/>
		<updated>2017-02-03T22:28:15Z</updated>

		<summary type="html">&lt;p&gt;Pev: Download links changed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TextureTXT==&lt;br /&gt;
&lt;br /&gt;
A simple utility to create *.texture.txt files from image file names and image content. Can scan a folder or folders to make *.texture.txt file for any image files it finds.&lt;br /&gt;
&lt;br /&gt;
Download TextureTXT [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/texturetxt here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Attachment Maker==&lt;br /&gt;
&lt;br /&gt;
A program to add attachment points to existing assets by creating an invisible mesh with those points. Very simple and quick to use; add attachments in minutes.&lt;br /&gt;
&lt;br /&gt;
Download AttachmentMaker [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/attachment-maker here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Images2TGA==&lt;br /&gt;
&lt;br /&gt;
A program to view all image types used in Trainz.  The program can also convert any image to another format, as well as add and manipulate alpha images.  You can attach your favourite image editor to allow opening of images for edit from within Images2TGA. The program handles the DXT compressed textures and allows conversion of these images to other formats.  The trawl feature can be used to convert textures to TGAs. Additionally it can make grey scale images and normal maps. It has recently been updated to view the two versions of textures from Trainz A New Era.&lt;br /&gt;
&lt;br /&gt;
This program supercedes Texture Viewer 2 and Texture2TGA.&lt;br /&gt;
&lt;br /&gt;
Download Images2TGA [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/images2tga here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PM2IM==&lt;br /&gt;
&lt;br /&gt;
A tool program to convert Auran progressive meshes (PM) to indexed meshes (IM). An option is provided to alter specular values that can cause unwanted shine on object surfaces.&lt;br /&gt;
&lt;br /&gt;
This program can also be used to remove unsupported texture types from IM meshes.&lt;br /&gt;
&lt;br /&gt;
Download PM2IM [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/pm2im here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trainz Mesh Viewer 2==&lt;br /&gt;
&lt;br /&gt;
Trainz Mesh Viewer 2 is a program to render textured meshes for Trainz. Also can now render complete train cars on short length of track. The views can be zoomed and rotated to view the object from any angle. If textures are not present the object is rendered in the diffuse colour with shadows. The program includes a facility to make 240x 180 thumbnail images of the object and can display normal mapped objects with a separate display for the bumps. A mesh data display has been added showing poly count and mesh size.  Recent additions allow viewing of complete traincars as well as attachments and individual textures, and creation of a 128x64 consist icon from the train car view.&lt;br /&gt;
&lt;br /&gt;
Download Trainz Mesh Viewer 2 [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/trainz-mesh-viewer-2 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==QuickShadows==&lt;br /&gt;
&lt;br /&gt;
This PEVSoft tool is provided to the Trainz community for the generation of shadow meshes without having to use 3DMax, Gmax or Blender.  Many rolling stock items &lt;br /&gt;
downloaded into Content Manager show errors caused by missing shadow meshes.  Where the shadow mesh is missing a simple rectangular box mesh should be sufficient&lt;br /&gt;
to give the shadow effect and to satisfy the requirements of the Content Manager program for an error-free asset. QuickShadows can create the shadow mesh in the shape of a rectangular box, or a simplified billboard version of the original mesh, or a pologon reduced version of the original mesh, or a black only copy of the original mesh.&lt;br /&gt;
&lt;br /&gt;
Download QuickShadows [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/quickshadows here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PEVs Download Page==&lt;br /&gt;
&lt;br /&gt;
As you can see if you download any of the above you are directed to Shane Turner&#039;s web site. Shane has kindly hosted PEV&#039;s downloads as his original site no longer supports them.  Check out the other tools on offer.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Please Note&#039;&#039;&#039; that these tools are for Windows operating systems only.  All have been compiled and tested in Windows 10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials for PEV&#039;s Tools==&lt;br /&gt;
&lt;br /&gt;
John King&#039;s Trainz Resources NewsLetter published a series of tutorials on PEV&#039;s Trainz Tools.&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PDFs of these are available from Shane&#039;s [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disclaimer==&lt;br /&gt;
&lt;br /&gt;
PEV accepts no liability for damage or lost data arising from the use or misuse of the above software.&lt;br /&gt;
 &lt;br /&gt;
The programs are provided free of charge and in good faith to assist Trainz authors and users.&lt;br /&gt;
&lt;br /&gt;
Some meshes don&#039;t render correctly in AssetX or Trainz Mesh Viewer. All of PEV&#039;s mesh tools (and AssetX) have a bug in INFL chunk based animations as produced by 3DSMax. These are rare as GMax does not support this type of animation. Unfortunately there is no documentation on how this works, and PEV has been unable to get it right by experimentation.&lt;br /&gt;
&lt;br /&gt;
==About PEV==&lt;br /&gt;
&lt;br /&gt;
I am a retired electrical engineer who worked for a major Australian building materials manufacturer for many years. I have two recreational passions, making classical guitars, and Trainz..  I made many software tools when working and now write them when ever I think a problem can be solved with a bit of software.&lt;br /&gt;
&lt;br /&gt;
I hope you find my efforts helpful.&lt;br /&gt;
&lt;br /&gt;
==Exit==&lt;br /&gt;
&lt;br /&gt;
[[Tools|Return to Tools]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9790</id>
		<title>Trainz Tools by PEV</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9790"/>
		<updated>2017-02-03T22:24:57Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TextureTXT==&lt;br /&gt;
&lt;br /&gt;
A simple utility to create *.texture.txt files from image file names and image content. Can scan a folder or folders to make *.texture.txt file for any image files it finds.&lt;br /&gt;
&lt;br /&gt;
Download TextureTXT [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/texturetxt here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Attachment Maker==&lt;br /&gt;
&lt;br /&gt;
A program to add attachment points to existing assets by creating an invisible mesh with those points. Very simple and quick to use; add attachments in minutes.&lt;br /&gt;
&lt;br /&gt;
Download AttachmentMaker [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/attachment-maker here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Images2TGA==&lt;br /&gt;
&lt;br /&gt;
A program to view all image types used in Trainz.  The program can also convert any image to another format, as well as add and manipulate alpha images.  You can attach your favourite image editor to allow opening of images for edit from within Images2TGA. The program handles the DXT compressed textures and allows conversion of these images to other formats.  The trawl feature can be used to convert textures to TGAs. Additionally it can make grey scale images and normal maps. It has recently been updated to view the two versions of textures from Trainz A New Era.&lt;br /&gt;
&lt;br /&gt;
This program supercedes Texture Viewer 2 and Texture2TGA.&lt;br /&gt;
&lt;br /&gt;
Download Images2TGA [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/images2tga here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PM2IM==&lt;br /&gt;
&lt;br /&gt;
A tool program to convert Auran progressive meshes (PM) to indexed meshes (IM). An option is provided to alter specular values that can cause unwanted shine on object surfaces.&lt;br /&gt;
&lt;br /&gt;
This program can also be used to remove unsupported texture types from IM meshes.&lt;br /&gt;
&lt;br /&gt;
Download PM2IM [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/pm2im here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trainz Mesh Viewer 2==&lt;br /&gt;
&lt;br /&gt;
Trainz Mesh Viewer 2 is a program to render textured meshes for Trainz. Also can now render complete train cars on short length of track. The views can be zoomed and rotated to view the object from any angle. If textures are not present the object is rendered in the diffuse colour with shadows. The program includes a facility to make 240x 180 thumbnail images of the object and can display normal mapped objects with a separate display for the bumps. A mesh data display has been added showing poly count and mesh size.  Recent additions allow viewing of complete traincars as well as attachments and individual textures, and creation of a 128x64 consist icon from the train car view.&lt;br /&gt;
&lt;br /&gt;
Download Trainz Mesh Viewer 2 [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/trainz-mesh-viewer-2 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==QuickShadows==&lt;br /&gt;
&lt;br /&gt;
This PEVSoft tool is provided to the Trainz community for the generation of shadow meshes without having to use 3DMax, Gmax or Blender.  Many rolling stock items &lt;br /&gt;
downloaded into Content Manager show errors caused by missing shadow meshes.  Where the shadow mesh is missing a simple rectangular box mesh should be sufficient&lt;br /&gt;
to give the shadow effect and to satisfy the requirements of the Content Manager program for an error-free asset. QuickShadows can create the shadow mesh in the shape of a rectangular box, or a simplified billboard version of the original mesh, or a pologon reduced version of the original mesh, or a black only copy of the original mesh.&lt;br /&gt;
&lt;br /&gt;
Download QuickShadows [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PEVs Download Page==&lt;br /&gt;
&lt;br /&gt;
As you can see if you download any of the above you are directed to Shane Turner&#039;s web site. Shane has kindly hosted PEV&#039;s downloads as his original site no longer supports them.  Check out the other tools on offer.&amp;lt;br&amp;gt;&lt;br /&gt;
Please note that these tools are for Windows operating systems only.  All have been compiled and tested in Windows 10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials for PEV&#039;s Tools==&lt;br /&gt;
&lt;br /&gt;
John King&#039;s Trainz Resources NewsLetter published a series of tutorials on PEV&#039;s Trainz Tools.&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PDFs of these are available from Shane&#039;s [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disclaimer==&lt;br /&gt;
&lt;br /&gt;
PEV accepts no liability for damage or lost data arising from the use or misuse of the above software.&lt;br /&gt;
 &lt;br /&gt;
The programs are provided free of charge and in good faith to assist Trainz authors and users.&lt;br /&gt;
&lt;br /&gt;
Some meshes don&#039;t render correctly in AssetX or Trainz Mesh Viewer. All of PEV&#039;s mesh tools (and AssetX) have a bug in INFL chunk based animations as produced by 3DSMax. These are rare as GMax does not support this type of animation. Unfortunately there is no documentation on how this works, and PEV has been unable to get it right by experimentation.&lt;br /&gt;
&lt;br /&gt;
==About PEV==&lt;br /&gt;
&lt;br /&gt;
I am a retired electrical engineer who worked for a major Australian building materials manufacturer for many years. I have two recreational passions, making classical guitars, and Trainz..  I made many software tools when working and now write them when ever I think a problem can be solved with a bit of software.&lt;br /&gt;
&lt;br /&gt;
I hope you find my efforts helpful.&lt;br /&gt;
&lt;br /&gt;
==Exit==&lt;br /&gt;
&lt;br /&gt;
[[Tools|Return to Tools]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9789</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9789"/>
		<updated>2017-02-03T21:52:17Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings.&amp;lt;br&amp;gt; &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&amp;lt;br&amp;gt;&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -tokens instruction takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the second parameter of the instruction.&amp;lt;br&amp;gt;&lt;br /&gt;
In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides the kuid string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 or 6&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if kuid2 OR empty string if kuid&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&amp;lt;br&amp;gt;&lt;br /&gt;
AssetX does not support comparisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.&amp;lt;br&amp;gt;&lt;br /&gt;
So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid2:1111:2222:3&amp;gt; the tokens count is 6.&amp;lt;br&amp;gt;&lt;br /&gt;
So if the token count is 6 then we aleady have a kuid2 with an Update value.&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The update (version) number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.&amp;lt;br&amp;gt;&lt;br /&gt;
The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0.&amp;lt;br&amp;gt;&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -delete|config.txt\temp&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9788</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9788"/>
		<updated>2017-02-03T21:47:06Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings.&amp;lt;br&amp;gt; &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&amp;lt;br&amp;gt;&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -tokens instruction takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the second parameter of the instruction.&amp;lt;br&amp;gt;&lt;br /&gt;
In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides the kuid string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 or 6&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if kuid2 OR empty string if kuid&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&amp;lt;br&amp;gt;&lt;br /&gt;
AssetX does not support comparisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.&amp;lt;br&amp;gt;&lt;br /&gt;
So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid2:1111:2222:3&amp;gt; the tokens count is 6.&amp;lt;br&amp;gt;&lt;br /&gt;
So if the token count is 6 then we aleady have a kuid2 with an Update value.&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The update (version) number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.&amp;lt;br&amp;gt;&lt;br /&gt;
The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0.&amp;lt;br&amp;gt;&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9787</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9787"/>
		<updated>2017-02-02T11:36:09Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings. &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -Tokens command takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the next parameter in the command.  In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 or 6&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if applicable else empty string&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&lt;br /&gt;
AssetX does not support comaprisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.  So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
If the token count is 6 then we aleady have a kuid2 value&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The version number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment Update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0.&amp;lt;br&amp;gt;&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9786</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9786"/>
		<updated>2017-02-01T08:09:52Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings. &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -Tokens command takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the next parameter in the command.  In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 or 6&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if applicable else empty string&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&lt;br /&gt;
AssetX does not support comaprisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.  So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&lt;br /&gt;
-endif&lt;br /&gt;
&lt;br /&gt;
If the token count is 6 then we aleady have a kuid2 value&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The version number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment Update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&amp;lt;br&amp;gt;&lt;br /&gt;
 -endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0.&amp;lt;br&amp;gt;&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9785</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9785"/>
		<updated>2017-02-01T08:06:07Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings. &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -Tokens command takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the next parameter in the command.  In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 or 6&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if applicable else empty string&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&lt;br /&gt;
AssetX does not support comaprisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.  So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&lt;br /&gt;
-endif&lt;br /&gt;
&lt;br /&gt;
If the token count is 6 then we aleady have a kuid2 value&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The version number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment Update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&amp;lt;br&amp;gt;&lt;br /&gt;
-endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0.&amp;lt;br&amp;gt;&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9784</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9784"/>
		<updated>2017-02-01T06:52:21Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings. &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -Tokens command takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the next parameter in the command.  In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 or 6&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if applicable else empty string&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&lt;br /&gt;
AssetX does not support comaprisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.  So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&lt;br /&gt;
-endif&lt;br /&gt;
&lt;br /&gt;
If the token count is 6 then we aleady have a kuid2 value&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The version number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment Update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&lt;br /&gt;
-endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0.&amp;lt;br&amp;gt;&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9783</id>
		<title>AssetX Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9783"/>
		<updated>2017-02-01T00:08:33Z</updated>

		<summary type="html">&lt;p&gt;Pev: Added Increment KUID Version macro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=AssetX Script Libraries=&lt;br /&gt;
&lt;br /&gt;
As well as being a Help Page, this page is intended to be a source for scripts written for AssetX.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please Note: Any installers on this page must be executed separately, and AssetX opened immediately afterwards.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Ian Woodmore&#039;s TARDIS 2.0 Scripts==&lt;br /&gt;
 &lt;br /&gt;
During the development of AssetX, Ian Woodmore wrote an extensive set of scripts to test the scripting language.&lt;br /&gt;
 &lt;br /&gt;
These TARDIS scripts, in conjunction with Asset X, can perform automated repair. upgrade and up-version of legacy assets to any asset trainz-build TB 2.7 or greater.&lt;br /&gt;
 &lt;br /&gt;
The scripts cover a wide range of common config.txt tags and containers. They work fine for the bulk of early version assets. Any remaining errors must be fixed manually using the Content Manager (CM) as a guide.&lt;br /&gt;
&lt;br /&gt;
TARDIS is a Work in Progress and will evolve as new versions of Trainz and TANE are released.&lt;br /&gt;
 &lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/1bt0ax6g0t710uy/Tardis_3_7_Scripts.exe?dl=0 HERE] and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
==PEV&#039;s Version Upgrade Scripts==&lt;br /&gt;
Also during the development of AssetX, PEV wrote a simple set of version upgrade scripts to test the scripting language.&lt;br /&gt;
&lt;br /&gt;
These are a set of four AssetX scripts that, together, can perform asset version upgrades to TC1/2 (trainzbuild 2.7) or TS2009 (trainzbuild 2.9).&lt;br /&gt;
&lt;br /&gt;
These simple scripts do no error checking, and only cover the common config.txt tags. They work fine for the bulk of early version assets. Those errors that remain must be fixed manually using CM2 or CM3 as a guide.&lt;br /&gt;
&lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/hv94iu1lon6k2nx/PEVs_Updating_Scripts.exe?dl=0 HERE]&lt;br /&gt;
and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Script Code for Sharing=&lt;br /&gt;
==Example==&lt;br /&gt;
If you have written an AssetX script that you think may be useful for the community you can copy and paste it into this section.&lt;br /&gt;
To get the text to appear in a code box, all of the lines must start with a space character.  Here is a simple example:-&lt;br /&gt;
&lt;br /&gt;
 FileName &amp;quot;Username.axm&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -If|config.txt\name!&amp;quot;&amp;quot;&lt;br /&gt;
  -Save|0|config.txt\name&lt;br /&gt;
  -Update|config.txt\username|&amp;quot;*** NEW TAG ***&amp;quot;&lt;br /&gt;
  -Restore|0|config.txt\username&lt;br /&gt;
  -delete|config.txt\name&lt;br /&gt;
 -EndIf&lt;br /&gt;
&lt;br /&gt;
==[[Increment KUID Version]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Corrected Version of Install Superscript.axm=&lt;br /&gt;
This corrects some typos in the file provided with the AssetX installation.  Copy and paste the following and save in the scripts folder as &#039;Install Superscript.axm&#039;&lt;br /&gt;
&lt;br /&gt;
  ;install library and asset stub script&lt;br /&gt;
  -If|kind!traincar&lt;br /&gt;
  	-Info|Script can only be used with kind traincar assets&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Else&lt;br /&gt;
  	-Info|Script requires that Superscript Library &amp;lt;kuid2:122285:508:14&amp;gt; or later must be open in AssetX.&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -If|engine=&lt;br /&gt;
  	-Info|Asset has no engine tag, please correct and re-run script&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -Update|script-include-table\superscript|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Update|kuid-table\codelib|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -If|engine=1&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|lstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|LStub&lt;br /&gt;
  	-Update|class|LStub&lt;br /&gt;
  -Else&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|vstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|VStub&lt;br /&gt;
  	-Update|class|VStub&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;extensions container options&lt;br /&gt;
  -IfQuery||Run in Debug Mode?&lt;br /&gt;
  	-Update|extensions\debug-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  -IfQuery||Change Train Heading via View-Details in Driver?&lt;br /&gt;
  	-Update|extensions\heading-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front mesh&lt;br /&gt;
  -IfQuery||Add Front of Car Marker (used when debugging attachments)?&lt;br /&gt;
  	-Update|mesh-table\front\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\front\mesh|front.im&lt;br /&gt;
  	-Update|mesh-table\front\att|a.limfront&lt;br /&gt;
  	-Update|mesh-table\front\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\front\auto-create|0&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Front of Car? &lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\att|a.headlight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\att|a.headlight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\att|a.taillight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\att|a.taillight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;lamp bodies&lt;br /&gt;
  -IfQuery||Add Lamp Bodies?&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att|a.headlight-0&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att|a.headlight-1&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att|a.taillight-0&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att|a.taillight-1&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;corridors&lt;br /&gt;
  -IfQuery||Add Corridor at Front of Car?&lt;br /&gt;
  	-Update|extensions\corridor-0-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-0\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-0\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att|a.couple0&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Add Corridor at Rear of Car?&lt;br /&gt;
  	-Update|extensions\corridor-1-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-1\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-1\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att|a.couple1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-0\att|a.driver-0&lt;br /&gt;
  	-Update|mesh-table\driver-0\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-0\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;rear driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-1\att|a.driver-1&lt;br /&gt;
  	-Update|mesh-table\driver-1\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-1\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Save Changes to config.txt?&lt;br /&gt;
  	-Sort&lt;br /&gt;
  	-SaveConfig&lt;br /&gt;
  	-MessageBox|Config.txt entries have been made for the options selected.  You can amend attachment point names, corona kuid references etc to suit your model.  Please ensure that the attachment points specified are present within your traincar mesh.&lt;br /&gt;
  -EndIf&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9782</id>
		<title>Increment KUID Version</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Increment_KUID_Version&amp;diff=9782"/>
		<updated>2017-02-01T00:07:23Z</updated>

		<summary type="html">&lt;p&gt;Pev: New page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an AssetX script macro to increment the version number of a kuid.&lt;br /&gt;
&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0 											&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
  -compute|8|^5+1 &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
  -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;br /&gt;
&lt;br /&gt;
===How it Works===&lt;br /&gt;
The first line of the macro is a comment telling us the purpose of the macro.&lt;br /&gt;
Comment lines start with a semicolon &amp;quot; ; &amp;quot;.  The rest of the line is ignored by the script interpreter.&lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
&lt;br /&gt;
AssetX has variables named 0, 1, 2 up to 9 that can store integers, floats or strings. &lt;br /&gt;
These are nominated by the carat &amp;quot; ^ &amp;quot; symbol as shown below in the tokens command.&lt;br /&gt;
To start our macro we firstly save the kuid value as a string into variable 9&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
&lt;br /&gt;
The -Tokens command takes the string stored in variable 9 and divides it into sub strings at the locations nominated by the letters/symbols in the next parameter in the command.  In this case we are dividing the kuid string at the &amp;quot;&amp;lt;&amp;quot;, &amp;quot;:&amp;quot; and &amp;quot;&amp;gt;&amp;quot; locations.&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
divides string into&amp;lt;br&amp;gt;&lt;br /&gt;
variable 0.. number of tokens in the string, in this case 5 or 6&amp;lt;br&amp;gt;&lt;br /&gt;
variable 1.. empty string because &amp;quot;&amp;lt;&amp;quot; is at the beginning of the string.&amp;lt;br&amp;gt;&lt;br /&gt;
variable 2.. &amp;quot;kuid&amp;quot; or &amp;quot;kuid2&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
variable 3.. UserID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 4.. AssetID number&amp;lt;br&amp;gt;&lt;br /&gt;
variable 5.. Update number if applicable else empty string&amp;lt;br&amp;gt;&lt;br /&gt;
variable 6.. empty string&lt;br /&gt;
&lt;br /&gt;
We now need to do a number comparison to determine how to handle the kuid or kuid2 cases.&lt;br /&gt;
AssetX does not support comaprisons of variables so we must place the tokens count into a tag in the config.txt to be able to the do a count comparison with an -if command.  So we create a tag named &amp;quot;temp&amp;quot; and give it the value of tokens count.  &lt;br /&gt;
 -update|config.txt\temp|0  ....create a temporary tag in the config 											&lt;br /&gt;
 -restore|0|config.txt\temp  ...save the tokens count to the temporary tag so we can use it in an &amp;quot;-if&amp;quot; instruction.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;kuid:1111:2222&amp;gt; the tokens count is 5.&lt;br /&gt;
 -if|config.txt\temp=5      ....if tokens count is 5 then do the following up to the next -endif (or -else) statement.&lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 version 1.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
  -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;  ..build string &amp;quot;&amp;lt;kuid2:userID:assetID:1&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 version 1 values.&lt;br /&gt;
-endif&lt;br /&gt;
&lt;br /&gt;
If the token count is 6 then we aleady have a kuid2 value&lt;br /&gt;
 -if|config.txt\temp=6      ....if tokens count is 6 then&lt;br /&gt;
&lt;br /&gt;
The version number is stored in variable 5 so we add 1 to it and save to variable 8.&lt;br /&gt;
 -compute|8|^5+1	   ....increment Update number and save in variable 8 &lt;br /&gt;
&lt;br /&gt;
We have the data available now to make kuid2 any version.  The -combine instruction joins the text and variable values together to make the new kuid string. &lt;br /&gt;
 -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;  ..builds string &amp;quot;&amp;lt;kuid2:userID:assetID:update&amp;gt;&amp;quot; into variable 9&lt;br /&gt;
&lt;br /&gt;
Now we put the new kuid value in to the kuid tag of the config.txt.&lt;br /&gt;
 -restore|9|config.txt\kuid  ..put variable 9 string into kuid tag.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the end of processing for kuid2 for any version number&lt;br /&gt;
-endif&lt;br /&gt;
&lt;br /&gt;
The tag &amp;quot;temp&amp;quot; must be removed.  Trainz does not accept such a tag.&lt;br /&gt;
 -delete|config.txt\temp	   ....delete temporary tag&lt;br /&gt;
&lt;br /&gt;
Save the config.txt with its new kuid.&lt;br /&gt;
 -saveconfig                ......... finished&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro can be made more bullet proof by inserting a few lines below after the line -update|config.txt\temp|0&lt;br /&gt;
This prevents negative userID kuids from being processed.&lt;br /&gt;
 &lt;br /&gt;
 ;increment kuid version&lt;br /&gt;
 -save|9|config.txt\kuid&lt;br /&gt;
 -tokens|^9|&amp;lt;:&amp;gt;&lt;br /&gt;
 -update|config.txt\temp|0&lt;br /&gt;
 -restore|3|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp&amp;lt;0&lt;br /&gt;
   -messagebox|Negative User numbers cannot have kuid2 values&lt;br /&gt;
   -exit&lt;br /&gt;
 -endif&lt;br /&gt;
 -restore|0|config.txt\temp&lt;br /&gt;
 -if|config.txt\temp=5&lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:1&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -if|config.txt\temp=6&lt;br /&gt;
   -compute|8|^5+1 &lt;br /&gt;
   -combine|9|&amp;lt;kuid2:^3:^4:^8&amp;gt;&lt;br /&gt;
   -restore|9|config.txt\kuid&lt;br /&gt;
 -endif&lt;br /&gt;
 -delete|config.txt\temp&lt;br /&gt;
 -saveconfig&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9781</id>
		<title>AssetX Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9781"/>
		<updated>2017-01-30T02:06:35Z</updated>

		<summary type="html">&lt;p&gt;Pev: trainzutil menu moved to AssetX Articles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=AssetX Script Libraries=&lt;br /&gt;
&lt;br /&gt;
As well as being a Help Page, this page is intended to be a source for scripts written for AssetX.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please Note: Any installers on this page must be executed separately, and AssetX opened immediately afterwards.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Ian Woodmore&#039;s TARDIS 2.0 Scripts==&lt;br /&gt;
 &lt;br /&gt;
During the development of AssetX, Ian Woodmore wrote an extensive set of scripts to test the scripting language.&lt;br /&gt;
 &lt;br /&gt;
These TARDIS scripts, in conjunction with Asset X, can perform automated repair. upgrade and up-version of legacy assets to any asset trainz-build TB 2.7 or greater.&lt;br /&gt;
 &lt;br /&gt;
The scripts cover a wide range of common config.txt tags and containers. They work fine for the bulk of early version assets. Any remaining errors must be fixed manually using the Content Manager (CM) as a guide.&lt;br /&gt;
&lt;br /&gt;
TARDIS is a Work in Progress and will evolve as new versions of Trainz and TANE are released.&lt;br /&gt;
 &lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/1bt0ax6g0t710uy/Tardis_3_7_Scripts.exe?dl=0 HERE] and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
==PEV&#039;s Version Upgrade Scripts==&lt;br /&gt;
Also during the development of AssetX, PEV wrote a simple set of version upgrade scripts to test the scripting language.&lt;br /&gt;
&lt;br /&gt;
These are a set of four AssetX scripts that, together, can perform asset version upgrades to TC1/2 (trainzbuild 2.7) or TS2009 (trainzbuild 2.9).&lt;br /&gt;
&lt;br /&gt;
These simple scripts do no error checking, and only cover the common config.txt tags. They work fine for the bulk of early version assets. Those errors that remain must be fixed manually using CM2 or CM3 as a guide.&lt;br /&gt;
&lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/hv94iu1lon6k2nx/PEVs_Updating_Scripts.exe?dl=0 HERE]&lt;br /&gt;
and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Script Code for Sharing=&lt;br /&gt;
If you have written an AssetX script that you think may be useful for the community you can copy and paste it into this section.&lt;br /&gt;
To get the text to appear in a code box, all of the lines must start with a space character.  Here is a simple example:-&lt;br /&gt;
&lt;br /&gt;
 FileName &amp;quot;Username.axm&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -If|config.txt\name!&amp;quot;&amp;quot;&lt;br /&gt;
  -Save|0|config.txt\name&lt;br /&gt;
  -Update|config.txt\username|&amp;quot;*** NEW TAG ***&amp;quot;&lt;br /&gt;
  -Restore|0|config.txt\username&lt;br /&gt;
  -delete|config.txt\name&lt;br /&gt;
 -EndIf&lt;br /&gt;
&lt;br /&gt;
=Corrected Version of Install Superscript.axm=&lt;br /&gt;
This corrects some typos in the file provided with the AssetX installation.  Copy and paste the following and save in the scripts folder as &#039;Install Superscript.axm&#039;&lt;br /&gt;
&lt;br /&gt;
  ;install library and asset stub script&lt;br /&gt;
  -If|kind!traincar&lt;br /&gt;
  	-Info|Script can only be used with kind traincar assets&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Else&lt;br /&gt;
  	-Info|Script requires that Superscript Library &amp;lt;kuid2:122285:508:14&amp;gt; or later must be open in AssetX.&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -If|engine=&lt;br /&gt;
  	-Info|Asset has no engine tag, please correct and re-run script&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -Update|script-include-table\superscript|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Update|kuid-table\codelib|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -If|engine=1&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|lstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|LStub&lt;br /&gt;
  	-Update|class|LStub&lt;br /&gt;
  -Else&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|vstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|VStub&lt;br /&gt;
  	-Update|class|VStub&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;extensions container options&lt;br /&gt;
  -IfQuery||Run in Debug Mode?&lt;br /&gt;
  	-Update|extensions\debug-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  -IfQuery||Change Train Heading via View-Details in Driver?&lt;br /&gt;
  	-Update|extensions\heading-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front mesh&lt;br /&gt;
  -IfQuery||Add Front of Car Marker (used when debugging attachments)?&lt;br /&gt;
  	-Update|mesh-table\front\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\front\mesh|front.im&lt;br /&gt;
  	-Update|mesh-table\front\att|a.limfront&lt;br /&gt;
  	-Update|mesh-table\front\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\front\auto-create|0&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Front of Car? &lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\att|a.headlight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\att|a.headlight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\att|a.taillight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\att|a.taillight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;lamp bodies&lt;br /&gt;
  -IfQuery||Add Lamp Bodies?&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att|a.headlight-0&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att|a.headlight-1&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att|a.taillight-0&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att|a.taillight-1&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;corridors&lt;br /&gt;
  -IfQuery||Add Corridor at Front of Car?&lt;br /&gt;
  	-Update|extensions\corridor-0-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-0\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-0\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att|a.couple0&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Add Corridor at Rear of Car?&lt;br /&gt;
  	-Update|extensions\corridor-1-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-1\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-1\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att|a.couple1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-0\att|a.driver-0&lt;br /&gt;
  	-Update|mesh-table\driver-0\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-0\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;rear driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-1\att|a.driver-1&lt;br /&gt;
  	-Update|mesh-table\driver-1\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-1\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Save Changes to config.txt?&lt;br /&gt;
  	-Sort&lt;br /&gt;
  	-SaveConfig&lt;br /&gt;
  	-MessageBox|Config.txt entries have been made for the options selected.  You can amend attachment point names, corona kuid references etc to suit your model.  Please ensure that the attachment points specified are present within your traincar mesh.&lt;br /&gt;
  -EndIf&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Articles&amp;diff=9780</id>
		<title>AssetX Articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Articles&amp;diff=9780"/>
		<updated>2017-01-30T02:03:03Z</updated>

		<summary type="html">&lt;p&gt;Pev: new page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Add TrainzUtil to your AssetX Menu==&lt;br /&gt;
&lt;br /&gt;
AssetX can use TrainzUtil to verify assets and commit or revert them into the Trainz database.&lt;br /&gt;
&lt;br /&gt;
Please be aware that this process can be slow, and it requires the Trainz Version setting in Options/Paths be set for the target Trainz version (if you have more than one Trainz installation).&lt;br /&gt;
&lt;br /&gt;
The menu installer is available from [https://www.dropbox.com/s/s47adwyw1f5tjxx/TrainzUtil_Menu_Script.exe?dl=0 HERE]&lt;br /&gt;
and will automatically load into your AssetX installation.  This installer loads a &amp;quot;RunOnce&amp;quot; script that will execute automatically when you open AssetX and then the RunOnce will delete itself when finished.  You need to close and re-open AssetX to see the new TrainzUtil menu.&lt;br /&gt;
&lt;br /&gt;
Note that this TrainzUtil menu is designed to run with Version 2.2 of AssetX and may cause earlier versions to stall on a pointer over-run.&lt;br /&gt;
&lt;br /&gt;
If you wish to &#039;&#039;&#039;remove&#039;&#039;&#039; the TrainzUtil Menu use this [https://www.dropbox.com/s/km4msz29z3st8nm/TrainzUtil_Menu_Delete.exe?dl=0 LINK]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This is an example of an AssetX &#039;&#039;&#039;Custom Menu&#039;&#039;&#039;.  Five of these are now provided, Custom A, Custom B, Custom C, Custom D and Custom E.  In this case we have used Custom A.  You can check out how it works by clicking on Options/Configure Tools on the AssetX Main Menu. Select Custom A in the drop-down box labelled Menu.  The program help gives a detailed description of this process.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9779</id>
		<title>AssetX Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9779"/>
		<updated>2017-01-30T02:01:41Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the AssetX WIKI page.&lt;br /&gt;
Latest news will usually be found in the [http://forums.auran.com/trainz/showthread.php?t=63264 AssetX FAQ]&lt;br /&gt;
&lt;br /&gt;
AssetX is now up to Version 3.2.  Get it from [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/assetx HERE].&lt;br /&gt;
&lt;br /&gt;
AssetX uses PEV&#039;s Images2TGA, PM2IM and QuickShadows as part of its toolbox.  Download these from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Links to pages providing support and access to additional materials:&lt;br /&gt;
&lt;br /&gt;
==[[AssetX Scripts]]==&lt;br /&gt;
&lt;br /&gt;
==[[Tutorials for AssetX and PEV Tools]]==&lt;br /&gt;
&lt;br /&gt;
==[[AssetX Articles]]== &lt;br /&gt;
includes more resources&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9778</id>
		<title>AssetX Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9778"/>
		<updated>2017-01-28T12:43:41Z</updated>

		<summary type="html">&lt;p&gt;Pev: Version No changed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the AssetX WIKI page.&lt;br /&gt;
Latest news will usually be found in the [http://forums.auran.com/trainz/showthread.php?t=63264 AssetX FAQ]&lt;br /&gt;
&lt;br /&gt;
AssetX is now up to Version 3.2.  Get it from [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/assetx HERE].&lt;br /&gt;
&lt;br /&gt;
AssetX uses PEV&#039;s Images2TGA, PM2IM and QuickShadows as part of its toolbox.  Download these from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Links to pages providing support and access to additional materials:&lt;br /&gt;
&lt;br /&gt;
==[[AssetX Scripts]]==&lt;br /&gt;
&lt;br /&gt;
==[[Tutorials for AssetX and PEV Tools]]==&lt;br /&gt;
&lt;br /&gt;
==[[Articles]]==&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9777</id>
		<title>AssetX Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9777"/>
		<updated>2017-01-26T22:45:23Z</updated>

		<summary type="html">&lt;p&gt;Pev: Added Custom D and Custom E menus&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=AssetX Script Libraries=&lt;br /&gt;
&lt;br /&gt;
As well as being a Help Page, this page is intended to be a source for scripts written for AssetX.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please Note: Any installers on this page must be executed separately, and AssetX opened immediately afterwards.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Ian Woodmore&#039;s TARDIS 2.0 Scripts==&lt;br /&gt;
 &lt;br /&gt;
During the development of AssetX, Ian Woodmore wrote an extensive set of scripts to test the scripting language.&lt;br /&gt;
 &lt;br /&gt;
These TARDIS scripts, in conjunction with Asset X, can perform automated repair. upgrade and up-version of legacy assets to any asset trainz-build TB 2.7 or greater.&lt;br /&gt;
 &lt;br /&gt;
The scripts cover a wide range of common config.txt tags and containers. They work fine for the bulk of early version assets. Any remaining errors must be fixed manually using the Content Manager (CM) as a guide.&lt;br /&gt;
&lt;br /&gt;
TARDIS is a Work in Progress and will evolve as new versions of Trainz and TANE are released.&lt;br /&gt;
 &lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/1bt0ax6g0t710uy/Tardis_3_7_Scripts.exe?dl=0 HERE] and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
==PEV&#039;s Version Upgrade Scripts==&lt;br /&gt;
Also during the development of AssetX, PEV wrote a simple set of version upgrade scripts to test the scripting language.&lt;br /&gt;
&lt;br /&gt;
These are a set of four AssetX scripts that, together, can perform asset version upgrades to TC1/2 (trainzbuild 2.7) or TS2009 (trainzbuild 2.9).&lt;br /&gt;
&lt;br /&gt;
These simple scripts do no error checking, and only cover the common config.txt tags. They work fine for the bulk of early version assets. Those errors that remain must be fixed manually using CM2 or CM3 as a guide.&lt;br /&gt;
&lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/hv94iu1lon6k2nx/PEVs_Updating_Scripts.exe?dl=0 HERE]&lt;br /&gt;
and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Add TrainzUtil to your AssetX Menu==&lt;br /&gt;
&lt;br /&gt;
AssetX can use TrainzUtil to verify assets and commit or revert them into the Trainz database.&lt;br /&gt;
&lt;br /&gt;
Please be aware that this process can be slow, and it requires the Trainz Version setting in Options/Paths be set for the target Trainz version (if you have more than one Trainz installation).&lt;br /&gt;
&lt;br /&gt;
The menu installer is available from [https://www.dropbox.com/s/s47adwyw1f5tjxx/TrainzUtil_Menu_Script.exe?dl=0 HERE]&lt;br /&gt;
and will automatically load into your AssetX installation.  This installer loads a &amp;quot;RunOnce&amp;quot; script that will execute automatically when you open AssetX and then the RunOnce will delete itself when finished.  You need to close and re-open AssetX to see the new TrainzUtil menu.&lt;br /&gt;
&lt;br /&gt;
Note that this TrainzUtil menu is designed to run with Version 2.2 of AssetX and may cause earlier versions to stall on a pointer over-run.&lt;br /&gt;
&lt;br /&gt;
If you wish to &#039;&#039;&#039;remove&#039;&#039;&#039; the TrainzUtil Menu use this [https://www.dropbox.com/s/km4msz29z3st8nm/TrainzUtil_Menu_Delete.exe?dl=0 LINK]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This is an example of an AssetX &#039;&#039;&#039;Custom Menu&#039;&#039;&#039;.  Five of these are now provided, Custom A, Custom B, Custom C, Custom D and Custom E.  In this case we have used Custom A.  You can check out how it works by clicking on Options/Configure Tools on the AssetX Main Menu. Select Custom A in the drop-down box labelled Menu.  The program help gives a detailed description of this process.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Script Code for Sharing=&lt;br /&gt;
If you have written an AssetX script that you think may be useful for the community you can copy and paste it into this section.&lt;br /&gt;
To get the text to appear in a code box, all of the lines must start with a space character.  Here is a simple example:-&lt;br /&gt;
&lt;br /&gt;
 FileName &amp;quot;Username.axm&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -If|config.txt\name!&amp;quot;&amp;quot;&lt;br /&gt;
  -Save|0|config.txt\name&lt;br /&gt;
  -Update|config.txt\username|&amp;quot;*** NEW TAG ***&amp;quot;&lt;br /&gt;
  -Restore|0|config.txt\username&lt;br /&gt;
  -delete|config.txt\name&lt;br /&gt;
 -EndIf&lt;br /&gt;
&lt;br /&gt;
=Corrected Version of Install Superscript.axm=&lt;br /&gt;
This corrects some typos in the file provided with the AssetX installation.  Copy and paste the following and save in the scripts folder as &#039;Install Superscript.axm&#039;&lt;br /&gt;
&lt;br /&gt;
  ;install library and asset stub script&lt;br /&gt;
  -If|kind!traincar&lt;br /&gt;
  	-Info|Script can only be used with kind traincar assets&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Else&lt;br /&gt;
  	-Info|Script requires that Superscript Library &amp;lt;kuid2:122285:508:14&amp;gt; or later must be open in AssetX.&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -If|engine=&lt;br /&gt;
  	-Info|Asset has no engine tag, please correct and re-run script&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -Update|script-include-table\superscript|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Update|kuid-table\codelib|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -If|engine=1&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|lstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|LStub&lt;br /&gt;
  	-Update|class|LStub&lt;br /&gt;
  -Else&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|vstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|VStub&lt;br /&gt;
  	-Update|class|VStub&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;extensions container options&lt;br /&gt;
  -IfQuery||Run in Debug Mode?&lt;br /&gt;
  	-Update|extensions\debug-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  -IfQuery||Change Train Heading via View-Details in Driver?&lt;br /&gt;
  	-Update|extensions\heading-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front mesh&lt;br /&gt;
  -IfQuery||Add Front of Car Marker (used when debugging attachments)?&lt;br /&gt;
  	-Update|mesh-table\front\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\front\mesh|front.im&lt;br /&gt;
  	-Update|mesh-table\front\att|a.limfront&lt;br /&gt;
  	-Update|mesh-table\front\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\front\auto-create|0&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Front of Car? &lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\att|a.headlight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\att|a.headlight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\att|a.taillight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\att|a.taillight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;lamp bodies&lt;br /&gt;
  -IfQuery||Add Lamp Bodies?&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att|a.headlight-0&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att|a.headlight-1&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att|a.taillight-0&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att|a.taillight-1&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;corridors&lt;br /&gt;
  -IfQuery||Add Corridor at Front of Car?&lt;br /&gt;
  	-Update|extensions\corridor-0-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-0\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-0\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att|a.couple0&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Add Corridor at Rear of Car?&lt;br /&gt;
  	-Update|extensions\corridor-1-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-1\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-1\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att|a.couple1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-0\att|a.driver-0&lt;br /&gt;
  	-Update|mesh-table\driver-0\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-0\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;rear driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-1\att|a.driver-1&lt;br /&gt;
  	-Update|mesh-table\driver-1\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-1\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Save Changes to config.txt?&lt;br /&gt;
  	-Sort&lt;br /&gt;
  	-SaveConfig&lt;br /&gt;
  	-MessageBox|Config.txt entries have been made for the options selected.  You can amend attachment point names, corona kuid references etc to suit your model.  Please ensure that the attachment points specified are present within your traincar mesh.&lt;br /&gt;
  -EndIf&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9744</id>
		<title>Tutorials for AssetX and PEV Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9744"/>
		<updated>2017-01-04T12:06:01Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AssetX Tutorials ==&lt;br /&gt;
&lt;br /&gt;
[[AssetX/Tutorial Define Tools|Defining Tools in AssetX]] - a tutorial on connecting external programs as tools.&lt;br /&gt;
&lt;br /&gt;
AssetX Help Tutorial - the help system in PDF booklet form is available from the [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/assetx AssetX Download Page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PEV&#039;s Tools Tutorials ==&lt;br /&gt;
PEV wrote a series of tutorials for John King&#039;s Trainz Resources NewsLetter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reprints of these are available from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[AssetX Wiki]] page.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9743</id>
		<title>Tutorials for AssetX and PEV Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9743"/>
		<updated>2017-01-04T12:05:28Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AssetX Tutorials ==&lt;br /&gt;
&lt;br /&gt;
[[AssetX/Tutorial Define Tools|Defining Tools in AssetX]] - a tutorial on connecting external programs as tools.&lt;br /&gt;
&lt;br /&gt;
AssetX Help Tutorial - the help system in PDF booklet form is available from the [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/assetx AssetX Downlaod Page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PEV&#039;s Tools Tutorials ==&lt;br /&gt;
PEV wrote a series of tutorials for John King&#039;s Trainz Resources NewsLetter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reprints of these are available from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[AssetX Wiki]] page.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9742</id>
		<title>Tutorials for AssetX and PEV Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9742"/>
		<updated>2017-01-04T12:00:20Z</updated>

		<summary type="html">&lt;p&gt;Pev: Help tutorial link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AssetX Tutorials ==&lt;br /&gt;
&lt;br /&gt;
[[AssetX/Tutorial Define Tools|Defining Tools in AssetX]] - a tutorial on connecting external programs as tools.&lt;br /&gt;
&lt;br /&gt;
[http://trainz.shaneturner.co.uk/3rdparty/AssetX.pdf AssetX Help Tutorial] - the help system in PDF booklet form&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PEV&#039;s Tools Tutorials ==&lt;br /&gt;
PEV wrote a series of tutorials for John King&#039;s Trainz Resources NewsLetter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reprints of these are available from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[AssetX Wiki]] page.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9741</id>
		<title>AssetX Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9741"/>
		<updated>2017-01-04T11:44:07Z</updated>

		<summary type="html">&lt;p&gt;Pev: Download link changed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the AssetX WIKI page.&lt;br /&gt;
Latest news will usually be found in the [http://forums.auran.com/trainz/showthread.php?t=63264 AssetX FAQ]&lt;br /&gt;
&lt;br /&gt;
AssetX is now up to Version 3.0.  Get it from [http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools/assetx HERE].&lt;br /&gt;
&lt;br /&gt;
AssetX uses PEV&#039;s Images2TGA, PM2IM and QuickShadows as part of its toolbox.  Download these from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Links to pages providing support and access to additional materials:&lt;br /&gt;
&lt;br /&gt;
==[[AssetX Scripts]]==&lt;br /&gt;
&lt;br /&gt;
==[[Tutorials for AssetX and PEV Tools]]==&lt;br /&gt;
&lt;br /&gt;
==[[Articles]]==&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9740</id>
		<title>Trainz Tools by PEV</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9740"/>
		<updated>2017-01-02T02:47:29Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Attachment Maker==&lt;br /&gt;
&lt;br /&gt;
A program to add attachment points to existing assets by creating an invisible mesh with those points. Very simple and quick to use; add attachments in minutes.&lt;br /&gt;
&lt;br /&gt;
Download AttachmentMaker [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
==Images2TGA==&lt;br /&gt;
&lt;br /&gt;
A program to view all image types used in Trainz.  The program can also convert any image to another format, as well as add and manipulate alpha images.  You can attach your favourite image editor to allow opening of images for edit from within Images2TGA. The program handles the DXT compressed textures and allows conversion of these images to other formats.  The trawl feature can be used to convert textures to TGAs. Additionally it can make grey scale images and normal maps. It has recently been updated to view the two versions of textures from Trainz A New Era.&lt;br /&gt;
&lt;br /&gt;
This program supercedes Texture Viewer 2 and Texture2TGA.&lt;br /&gt;
&lt;br /&gt;
Download Images2TGA [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PM2IM==&lt;br /&gt;
&lt;br /&gt;
A tool program to convert Auran progressive meshes (PM) to indexed meshes (IM). An option is provided to alter specular values that can cause unwanted shine on object surfaces.&lt;br /&gt;
&lt;br /&gt;
This program can also be used to remove unsupported texture types from IM meshes.&lt;br /&gt;
&lt;br /&gt;
Download PM2IM [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trainz Mesh Viewer 2==&lt;br /&gt;
&lt;br /&gt;
Trainz Mesh Viewer 2 is a program to render textured meshes for Trainz. Also can now render complete train cars on short length of track. The views can be zoomed and rotated to view the object from any angle. If textures are not present the object is rendered in the diffuse colour with shadows. The program includes a facility to make 240x 180 thumbnail images of the object and can display normal mapped objects with a separate display for the bumps. A mesh data display has been added showing poly count and mesh size.  Recent additions allow viewing of complete traincars as well as attachments and individual textures, and creation of a 128x64 consist icon from the train car view.&lt;br /&gt;
&lt;br /&gt;
Download Trainz Mesh Viewer 2 [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==QuickShadows==&lt;br /&gt;
&lt;br /&gt;
This PEVSoft tool is provided to the Trainz community for the generation of shadow meshes without having to use 3DMax, Gmax or Blender.  Many rolling stock items &lt;br /&gt;
downloaded into Content Manager show errors caused by missing shadow meshes.  Where the shadow mesh is missing a simple rectangular box mesh should be sufficient&lt;br /&gt;
to give the shadow effect and to satisfy the requirements of the Content Manager program for an error-free asset. QuickShadows can create the shadow mesh in the shape of a rectangular box, or a simplified billboard version of the original mesh, or a pologon reduced version of the original mesh, or a black only copy of the original mesh.&lt;br /&gt;
&lt;br /&gt;
Download QuickShadows [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PEVs Download Page==&lt;br /&gt;
&lt;br /&gt;
As you can see if you download any of the above you are directed to Shane Turner&#039;s web site. Shane has kindly hosted PEV&#039;s downloads as his original site no longer supports them.  Check out the other tools on offer.&lt;br /&gt;
&lt;br /&gt;
==Tutorials for PEV&#039;s Tools==&lt;br /&gt;
&lt;br /&gt;
John King&#039;s Trainz Resources NewsLetter published a series of tutorials on PEV&#039;s Trainz Tools.&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PDFs of these are available from Shane&#039;s [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disclaimer==&lt;br /&gt;
&lt;br /&gt;
PEV accepts no liability for damage or lost data arising from the use or misuse of the above software.&lt;br /&gt;
 &lt;br /&gt;
The programs are provided free of charge and in good faith to assist Trainz authors and users.&lt;br /&gt;
&lt;br /&gt;
Some meshes don&#039;t render correctly in AssetX or Trainz Mesh Viewer. All of PEV&#039;s mesh tools (and AssetX) have a bug in INFL chunk based animations as produced by 3DSMax. These are rare as GMax does not support this type of animation. Unfortunately there is no documentation on how this works, and PEV has been unable to get it right by experimentation.&lt;br /&gt;
&lt;br /&gt;
==About PEV==&lt;br /&gt;
&lt;br /&gt;
I am a retired electrical engineer who worked for a major Australian building materials manufacturer for many years. I have two recreational passions, making classical guitars, and Trainz..  I made many software tools when working and now write them when ever I think a problem can be solved with a bit of software.&lt;br /&gt;
&lt;br /&gt;
I hope you find my efforts helpful.&lt;br /&gt;
&lt;br /&gt;
==Exit==&lt;br /&gt;
&lt;br /&gt;
[[Tools|Return to Tools]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9739</id>
		<title>AssetX Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=9739"/>
		<updated>2017-01-01T20:54:50Z</updated>

		<summary type="html">&lt;p&gt;Pev: AssetX download site changed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the AssetX WIKI page.&lt;br /&gt;
Latest news will usually be found in the [http://forums.auran.com/trainz/showthread.php?t=63264 AssetX FAQ]&lt;br /&gt;
&lt;br /&gt;
AssetX is now up to Version 3.0.  Get it from [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools HERE].&lt;br /&gt;
&lt;br /&gt;
AssetX uses PEV&#039;s Images2TGA, PM2IM and QuickShadows as part of its toolbox.  Download these from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Links to pages providing support and access to additional materials:&lt;br /&gt;
&lt;br /&gt;
==[[AssetX Scripts]]==&lt;br /&gt;
&lt;br /&gt;
==[[Tutorials for AssetX and PEV Tools]]==&lt;br /&gt;
&lt;br /&gt;
==[[Articles]]==&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9169</id>
		<title>Using Context with Trainzscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9169"/>
		<updated>2016-10-25T23:06:55Z</updated>

		<summary type="html">&lt;p&gt;Pev: TS2010 setup image added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:context_icon.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Context is a freeware programmer&#039;s editor which can be downloaded from http://www.contexteditor.org/downloads.html.&lt;br /&gt;
* Highlighters for script files and for config.txt files can be downloaded by [[Media:TrainzScript.chl.zip|clicking here.]] These are not essential for TRS2006 but are needed for TS2009 onwards. They show keywords, text strings and numbers in different colours and help to show where there might be missing quote marks and other problems with your code. A highlighter for config.txt files is included.&lt;br /&gt;
* Install the program and copy the highlighter files to &#039;&#039;\Program Files\Context\Highlighters.&#039;&#039;&lt;br /&gt;
* To integrate the compiler  select &#039;&#039;Option\Environment Options&#039;&#039; from Context&#039;s menu and then select the &#039;&#039;Execute Keys&#039;&#039; tab.&lt;br /&gt;
* Click on &#039;&#039;Add&#039;&#039; and enter the file extension &#039;&#039;gs&#039;&#039;&lt;br /&gt;
* In the box at the top select one of the function keys and make these entries:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ContextOptions.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click OK to close the dialogue.&lt;br /&gt;
* Close Context.&lt;br /&gt;
* Create a new file called &#039;&#039;compile2006.bat&#039;&#039; in &#039;&#039;C:\Program Files\Auran\&#039;&#039; (use whatever name and location you prefer)&lt;br /&gt;
* Add this text to the batch file, you may need to modify paths or filenames:&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 set gsc=&amp;quot;C:\Program Files\Auran\TRS2006\Bin&amp;quot;&lt;br /&gt;
 set include=&amp;quot;C:\Program Files\Auran\TRS2006\Scripts&amp;quot;&lt;br /&gt;
 %gsc%\gsc.exe %1 -i%include% -pc:\windows\temp&lt;br /&gt;
 set gsc=&lt;br /&gt;
 set include=&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
* Reopen Context and load a script file.&lt;br /&gt;
* Press F11, your script file will be saved and then checked by the compiler, if all has gone well you will see this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:CompiledOK.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If there are any problems with the script details will be given together with the line number of the error.&lt;br /&gt;
* Interpreting these can be something of a black art, don&#039;t worry it will become easier as time passes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for TS2009, TS2010, and TS12==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; is used to compile scripts in TS2009 onwards.&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F10)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have TS2010, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;C:\Program Files\Auran\TS2010\bin\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;c:\Program Files\Auran\TS2010\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Your setup for TS2010 compiling should look as below:-&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ConTEXT_setup_TS2010.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
Now when you press F10 the script should be compiled and error checked by TrainzUtil for TS2010.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for Trainz A New Era==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; can be used to syntax-check scripts in T:ANE.&lt;br /&gt;
&lt;br /&gt;
Please note that the T:ANE launch window must be open for this to work, and that you must set the advanced debugging options as below.&lt;br /&gt;
&lt;br /&gt;
[[Image:TANE_debug_setup_1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also please note that I have T:ANE installed on E: drive (a solid state drive), and that I have moved my user data to that drive.&lt;br /&gt;
The settings below should work for the default locations of the data.&lt;br /&gt;
&lt;br /&gt;
Additionally note that this setup uses an undocumented feature for trainzutil.exe for T:ANE. The compile feature has been unsupported for some time now.  Scripts are now checked by the validation process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a T:ANE trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F11)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have T:ANE, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;E:\N3V Games\Trainz A New Era\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;E:\N3V Games\Trainz A New Era\resources\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F11 the script should be syntax-checked by TrainzUtil for T:ANE.&lt;br /&gt;
&lt;br /&gt;
The image below shows a T:ANE trainz script in ConTEXT.&amp;lt;br&amp;gt;&lt;br /&gt;
Note the different colours for keywords, text, numbers and comments.&amp;lt;br&amp;gt;&lt;br /&gt;
The script has a deliberate error in line 93 to illustrate how the output from the syntax-check is displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:TANE_script_in_ConTEXT.jpg]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=File:ConTEXT_setup_TS2010.jpg&amp;diff=9168</id>
		<title>File:ConTEXT setup TS2010.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=File:ConTEXT_setup_TS2010.jpg&amp;diff=9168"/>
		<updated>2016-10-25T22:59:26Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9167</id>
		<title>Using Context with Trainzscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9167"/>
		<updated>2016-10-25T22:31:43Z</updated>

		<summary type="html">&lt;p&gt;Pev: ScreenShot of ConTEXT added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:context_icon.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Context is a freeware programmer&#039;s editor which can be downloaded from http://www.contexteditor.org/downloads.html.&lt;br /&gt;
* Highlighters for script files and for config.txt files can be downloaded by [[Media:TrainzScript.chl.zip|clicking here.]] These are not essential for TRS2006 but are needed for TS2009 onwards. They show keywords, text strings and numbers in different colours and help to show where there might be missing quote marks and other problems with your code. A highlighter for config.txt files is included.&lt;br /&gt;
* Install the program and copy the highlighter files to &#039;&#039;\Program Files\Context\Highlighters.&#039;&#039;&lt;br /&gt;
* To integrate the compiler  select &#039;&#039;Option\Environment Options&#039;&#039; from Context&#039;s menu and then select the &#039;&#039;Execute Keys&#039;&#039; tab.&lt;br /&gt;
* Click on &#039;&#039;Add&#039;&#039; and enter the file extension &#039;&#039;gs&#039;&#039;&lt;br /&gt;
* In the box at the top select one of the function keys and make these entries:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ContextOptions.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click OK to close the dialogue.&lt;br /&gt;
* Close Context.&lt;br /&gt;
* Create a new file called &#039;&#039;compile2006.bat&#039;&#039; in &#039;&#039;C:\Program Files\Auran\&#039;&#039; (use whatever name and location you prefer)&lt;br /&gt;
* Add this text to the batch file, you may need to modify paths or filenames:&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 set gsc=&amp;quot;C:\Program Files\Auran\TRS2006\Bin&amp;quot;&lt;br /&gt;
 set include=&amp;quot;C:\Program Files\Auran\TRS2006\Scripts&amp;quot;&lt;br /&gt;
 %gsc%\gsc.exe %1 -i%include% -pc:\windows\temp&lt;br /&gt;
 set gsc=&lt;br /&gt;
 set include=&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
* Reopen Context and load a script file.&lt;br /&gt;
* Press F11, your script file will be saved and then checked by the compiler, if all has gone well you will see this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:CompiledOK.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If there are any problems with the script details will be given together with the line number of the error.&lt;br /&gt;
* Interpreting these can be something of a black art, don&#039;t worry it will become easier as time passes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for TS2009, TS2010, and TS12==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; is used to compile scripts in TS2009 onwards.&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F10)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have TS2010, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;C:\Program Files\Auran\TS2010\bin\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;c:\Program Files\Auran\TS2010\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F10 the script should be compiled and error checked by TrainzUtil for TS2010.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for Trainz A New Era==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; can be used to syntax-check scripts in T:ANE.&lt;br /&gt;
&lt;br /&gt;
Please note that the T:ANE launch window must be open for this to work, and that you must set the advanced debugging options as below.&lt;br /&gt;
&lt;br /&gt;
[[Image:TANE_debug_setup_1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also please note that I have T:ANE installed on E: drive (a solid state drive), and that I have moved my user data to that drive.&lt;br /&gt;
The settings below should work for the default locations of the data.&lt;br /&gt;
&lt;br /&gt;
Additionally note that this setup uses an undocumented feature for trainzutil.exe for T:ANE. The compile feature has been unsupported for some time now.  Scripts are now checked by the validation process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a T:ANE trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F11)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have T:ANE, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;E:\N3V Games\Trainz A New Era\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;E:\N3V Games\Trainz A New Era\resources\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F11 the script should be syntax-checked by TrainzUtil for T:ANE.&lt;br /&gt;
&lt;br /&gt;
The image below shows a T:ANE trainz script in ConTEXT.&amp;lt;br&amp;gt;&lt;br /&gt;
Note the different colours for keywords, text, numbers and comments.&amp;lt;br&amp;gt;&lt;br /&gt;
The script has a deliberate error in line 93 to illustrate how the output from the syntax-check is displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:TANE_script_in_ConTEXT.jpg]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=File:TANE_script_in_ConTEXT.jpg&amp;diff=9166</id>
		<title>File:TANE script in ConTEXT.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=File:TANE_script_in_ConTEXT.jpg&amp;diff=9166"/>
		<updated>2016-10-25T22:18:30Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9165</id>
		<title>Using Context with Trainzscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9165"/>
		<updated>2016-10-25T21:42:29Z</updated>

		<summary type="html">&lt;p&gt;Pev: ConTEXT icon added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:context_icon.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Context is a freeware programmer&#039;s editor which can be downloaded from http://www.contexteditor.org/downloads.html.&lt;br /&gt;
* Highlighters for script files and for config.txt files can be downloaded by [[Media:TrainzScript.chl.zip|clicking here.]] These are not essential for TRS2006 but are needed for TS2009 onwards. They show keywords, text strings and numbers in different colours and help to show where there might be missing quote marks and other problems with your code. A highlighter for config.txt files is included.&lt;br /&gt;
* Install the program and copy the highlighter files to &#039;&#039;\Program Files\Context\Highlighters.&#039;&#039;&lt;br /&gt;
* To integrate the compiler  select &#039;&#039;Option\Environment Options&#039;&#039; from Context&#039;s menu and then select the &#039;&#039;Execute Keys&#039;&#039; tab.&lt;br /&gt;
* Click on &#039;&#039;Add&#039;&#039; and enter the file extension &#039;&#039;gs&#039;&#039;&lt;br /&gt;
* In the box at the top select one of the function keys and make these entries:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ContextOptions.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click OK to close the dialogue.&lt;br /&gt;
* Close Context.&lt;br /&gt;
* Create a new file called &#039;&#039;compile2006.bat&#039;&#039; in &#039;&#039;C:\Program Files\Auran\&#039;&#039; (use whatever name and location you prefer)&lt;br /&gt;
* Add this text to the batch file, you may need to modify paths or filenames:&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 set gsc=&amp;quot;C:\Program Files\Auran\TRS2006\Bin&amp;quot;&lt;br /&gt;
 set include=&amp;quot;C:\Program Files\Auran\TRS2006\Scripts&amp;quot;&lt;br /&gt;
 %gsc%\gsc.exe %1 -i%include% -pc:\windows\temp&lt;br /&gt;
 set gsc=&lt;br /&gt;
 set include=&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
* Reopen Context and load a script file.&lt;br /&gt;
* Press F11, your script file will be saved and then checked by the compiler, if all has gone well you will see this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:CompiledOK.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If there are any problems with the script details will be given together with the line number of the error.&lt;br /&gt;
* Interpreting these can be something of a black art, don&#039;t worry it will become easier as time passes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for TS2009, TS2010, and TS12==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; is used to compile scripts in TS2009 onwards.&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F10)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have TS2010, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;C:\Program Files\Auran\TS2010\bin\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;c:\Program Files\Auran\TS2010\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F10 the script should be compiled and error checked by TrainzUtil for TS2010.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for Trainz A New Era==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; can be used to syntax-check scripts in T:ANE.&lt;br /&gt;
&lt;br /&gt;
Please note that the T:ANE launch window must be open for this to work, and that you must set the advanced debugging options as below.&lt;br /&gt;
&lt;br /&gt;
[[Image:TANE_debug_setup_1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also please note that I have T:ANE installed on E: drive (a solid state drive), and that I have moved my user data to that drive.&lt;br /&gt;
The settings below should work for the default locations of the data.&lt;br /&gt;
&lt;br /&gt;
Additionally note that this setup uses an undocumented feature for trainzutil.exe for T:ANE. The compile feature has been unsupported for some time now.  Scripts are now checked by the validation process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a T:ANE trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F11)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have T:ANE, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;E:\N3V Games\Trainz A New Era\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;E:\N3V Games\Trainz A New Era\resources\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F11 the script should be syntax-checked by TrainzUtil for T:ANE.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=File:Context_icon.jpg&amp;diff=9164</id>
		<title>File:Context icon.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=File:Context_icon.jpg&amp;diff=9164"/>
		<updated>2016-10-25T20:39:12Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=File:TANE_debug_setup_1.jpg&amp;diff=9150</id>
		<title>File:TANE debug setup 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=File:TANE_debug_setup_1.jpg&amp;diff=9150"/>
		<updated>2016-10-10T01:01:25Z</updated>

		<summary type="html">&lt;p&gt;Pev: Pev uploaded a new version of &amp;amp;quot;File:TANE debug setup 1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9149</id>
		<title>Using Context with Trainzscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9149"/>
		<updated>2016-10-09T23:37:49Z</updated>

		<summary type="html">&lt;p&gt;Pev: Introduction wording changed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Context is a freeware programmer&#039;s editor which can be downloaded from http://www.contexteditor.org/downloads.html.&lt;br /&gt;
* Highlighters for script files and for config.txt files can be downloaded by [[Media:TrainzScript.chl.zip|clicking here.]] These are not essential for TRS2006 but are needed for TS2009 onwards. They show keywords, text strings and numbers in different colours and help to show where there might be missing quote marks and other problems with your code. A highlighter for config.txt files is included.&lt;br /&gt;
* Install the program and copy the highlighter files to &#039;&#039;\Program Files\Context\Highlighters.&#039;&#039;&lt;br /&gt;
* To integrate the compiler  select &#039;&#039;Option\Environment Options&#039;&#039; from Context&#039;s menu and then select the &#039;&#039;Execute Keys&#039;&#039; tab.&lt;br /&gt;
* Click on &#039;&#039;Add&#039;&#039; and enter the file extension &#039;&#039;gs&#039;&#039;&lt;br /&gt;
* In the box at the top select one of the function keys and make these entries:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ContextOptions.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click OK to close the dialogue.&lt;br /&gt;
* Close Context.&lt;br /&gt;
* Create a new file called &#039;&#039;compile2006.bat&#039;&#039; in &#039;&#039;C:\Program Files\Auran\&#039;&#039; (use whatever name and location you prefer)&lt;br /&gt;
* Add this text to the batch file, you may need to modify paths or filenames:&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 set gsc=&amp;quot;C:\Program Files\Auran\TRS2006\Bin&amp;quot;&lt;br /&gt;
 set include=&amp;quot;C:\Program Files\Auran\TRS2006\Scripts&amp;quot;&lt;br /&gt;
 %gsc%\gsc.exe %1 -i%include% -pc:\windows\temp&lt;br /&gt;
 set gsc=&lt;br /&gt;
 set include=&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
* Reopen Context and load a script file.&lt;br /&gt;
* Press F11, your script file will be saved and then checked by the compiler, if all has gone well you will see this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:CompiledOK.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If there are any problems with the script details will be given together with the line number of the error.&lt;br /&gt;
* Interpreting these can be something of a black art, don&#039;t worry it will become easier as time passes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for TS2009, TS2010, and TS12==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; is used to compile scripts in TS2009 onwards.&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F10)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have TS2010, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;C:\Program Files\Auran\TS2010\bin\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;c:\Program Files\Auran\TS2010\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F10 the script should be compiled and error checked by TrainzUtil for TS2010.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for Trainz A New Era==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; can be used to syntax-check scripts in T:ANE.&lt;br /&gt;
&lt;br /&gt;
Please note that the T:ANE launch window must be open for this to work, and that you must set the advanced debugging options as below.&lt;br /&gt;
&lt;br /&gt;
[[Image:TANE_debug_setup_1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also please note that I have T:ANE installed on E: drive (a solid state drive), and that I have moved my user data to that drive.&lt;br /&gt;
The settings below should work for the default locations of the data.&lt;br /&gt;
&lt;br /&gt;
Additionally note that this setup uses an undocumented feature for trainzutil.exe for T:ANE. The compile feature has been unsupported for some time now.  Scripts are now checked by the validation process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a T:ANE trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F11)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have T:ANE, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;E:\N3V Games\Trainz A New Era\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;E:\N3V Games\Trainz A New Era\resources\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F11 the script should be syntax-checked by TrainzUtil for T:ANE.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9148</id>
		<title>Using Context with Trainzscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9148"/>
		<updated>2016-10-09T22:54:50Z</updated>

		<summary type="html">&lt;p&gt;Pev: Note for undocumented feature added.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Context is a freeware programmer&#039;s editor which can be downloaded from http://www.contexteditor.org/downloads.html.&lt;br /&gt;
* Highlighters for script files and for config.txt files can be downloaded by [[Media:TrainzScript.chl.zip|clicking here.]] These are not essential but they do show keywords, text strings and numbers in different colours and help to show where there might be missing quote marks and other problems with your code. A highlighter for config.txt files is included.&lt;br /&gt;
* Install the program and copy the highlighter files to &#039;&#039;\Program Files\Context\Highlighters.&#039;&#039;&lt;br /&gt;
* To integrate the compiler  select &#039;&#039;Option\Environment Options&#039;&#039; from Context&#039;s menu and then select the &#039;&#039;Execute Keys&#039;&#039; tab.&lt;br /&gt;
* Click on &#039;&#039;Add&#039;&#039; and enter the file extension &#039;&#039;gs&#039;&#039;&lt;br /&gt;
* In the box at the top select one of the function keys and make these entries:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ContextOptions.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click OK to close the dialogue.&lt;br /&gt;
* Close Context.&lt;br /&gt;
* Create a new file called &#039;&#039;compile2006.bat&#039;&#039; in &#039;&#039;C:\Program Files\Auran\&#039;&#039; (use whatever name and location you prefer)&lt;br /&gt;
* Add this text to the batch file, you may need to modify paths or filenames:&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 set gsc=&amp;quot;C:\Program Files\Auran\TRS2006\Bin&amp;quot;&lt;br /&gt;
 set include=&amp;quot;C:\Program Files\Auran\TRS2006\Scripts&amp;quot;&lt;br /&gt;
 %gsc%\gsc.exe %1 -i%include% -pc:\windows\temp&lt;br /&gt;
 set gsc=&lt;br /&gt;
 set include=&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
* Reopen Context and load a script file.&lt;br /&gt;
* Press F11, your script file will be saved and then checked by the compiler, if all has gone well you will see this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:CompiledOK.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If there are any problems with the script details will be given together with the line number of the error.&lt;br /&gt;
* Interpreting these can be something of a black art, don&#039;t worry it will become easier as time passes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for TS2009, TS2010, and TS12==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; is used to compile scripts in TS2009 onwards.&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F10)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have TS2010, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;C:\Program Files\Auran\TS2010\bin\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;c:\Program Files\Auran\TS2010\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F10 the script should be compiled and error checked by TrainzUtil for TS2010.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for Trainz A New Era==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; can be used to syntax-check scripts in T:ANE.&lt;br /&gt;
&lt;br /&gt;
Please note that the T:ANE launch window must be open for this to work, and that you must set the advanced debugging options as below.&lt;br /&gt;
&lt;br /&gt;
[[Image:TANE_debug_setup_1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also please note that I have T:ANE installed on E: drive (a solid state drive), and that I have moved my user data to that drive.&lt;br /&gt;
The settings below should work for the default locations of the data.&lt;br /&gt;
&lt;br /&gt;
Additionally note that this setup uses an undocumented feature for trainzutil.exe for T:ANE. The compile feature has been unsupported for some time now.  Scripts are now checked by the validation process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F11)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have T:ANE, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;E:\N3V Games\Trainz A New Era\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;E:\N3V Games\Trainz A New Era\resources\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F11 the script should be syntax-checked by TrainzUtil for T:ANE.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9147</id>
		<title>Using Context with Trainzscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9147"/>
		<updated>2016-10-09T22:43:52Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Context is a freeware programmer&#039;s editor which can be downloaded from http://www.contexteditor.org/downloads.html.&lt;br /&gt;
* Highlighters for script files and for config.txt files can be downloaded by [[Media:TrainzScript.chl.zip|clicking here.]] These are not essential but they do show keywords, text strings and numbers in different colours and help to show where there might be missing quote marks and other problems with your code. A highlighter for config.txt files is included.&lt;br /&gt;
* Install the program and copy the highlighter files to &#039;&#039;\Program Files\Context\Highlighters.&#039;&#039;&lt;br /&gt;
* To integrate the compiler  select &#039;&#039;Option\Environment Options&#039;&#039; from Context&#039;s menu and then select the &#039;&#039;Execute Keys&#039;&#039; tab.&lt;br /&gt;
* Click on &#039;&#039;Add&#039;&#039; and enter the file extension &#039;&#039;gs&#039;&#039;&lt;br /&gt;
* In the box at the top select one of the function keys and make these entries:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ContextOptions.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click OK to close the dialogue.&lt;br /&gt;
* Close Context.&lt;br /&gt;
* Create a new file called &#039;&#039;compile2006.bat&#039;&#039; in &#039;&#039;C:\Program Files\Auran\&#039;&#039; (use whatever name and location you prefer)&lt;br /&gt;
* Add this text to the batch file, you may need to modify paths or filenames:&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 set gsc=&amp;quot;C:\Program Files\Auran\TRS2006\Bin&amp;quot;&lt;br /&gt;
 set include=&amp;quot;C:\Program Files\Auran\TRS2006\Scripts&amp;quot;&lt;br /&gt;
 %gsc%\gsc.exe %1 -i%include% -pc:\windows\temp&lt;br /&gt;
 set gsc=&lt;br /&gt;
 set include=&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
* Reopen Context and load a script file.&lt;br /&gt;
* Press F11, your script file will be saved and then checked by the compiler, if all has gone well you will see this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:CompiledOK.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If there are any problems with the script details will be given together with the line number of the error.&lt;br /&gt;
* Interpreting these can be something of a black art, don&#039;t worry it will become easier as time passes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for TS2009, TS2010, and TS12==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; is used to compile scripts in TS2009 onwards.&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F10)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have TS2010, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;C:\Program Files\Auran\TS2010\bin\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;c:\Program Files\Auran\TS2010\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F10 the script should be compiled and error checked by TrainzUtil for TS2010.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for Trainz A New Era==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; can be used to syntax-check scripts in T:ANE.&lt;br /&gt;
&lt;br /&gt;
Please note that the T:ANE launch window must be open for this to work, and that you must set the advanced debugging options as below.&lt;br /&gt;
&lt;br /&gt;
[[Image:TANE_debug_setup_1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also please note that I have T:ANE installed on E: drive (a solid state drive), and that I have moved my user data to that drive.&lt;br /&gt;
The settings below should work for the default locations of the data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F11)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have T:ANE, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;E:\N3V Games\Trainz A New Era\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;E:\N3V Games\Trainz A New Era\resources\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F11 the script should be syntax-checked by TrainzUtil for T:ANE.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9146</id>
		<title>Using Context with Trainzscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Using_Context_with_Trainzscript&amp;diff=9146"/>
		<updated>2016-10-09T22:42:55Z</updated>

		<summary type="html">&lt;p&gt;Pev: Set up for TANE added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Context is a freeware programmer&#039;s editor which can be downloaded from http://www.contexteditor.org/downloads.html.&lt;br /&gt;
* Highlighters for script files and for config.txt files can be downloaded by [[Media:TrainzScript.chl.zip|clicking here.]] These are not essential but they do show keywords, text strings and numbers in different colours and help to show where there might be missing quote marks and other problems with your code. A highlighter for config.txt files is included.&lt;br /&gt;
* Install the program and copy the highlighter files to &#039;&#039;\Program Files\Context\Highlighters.&#039;&#039;&lt;br /&gt;
* To integrate the compiler  select &#039;&#039;Option\Environment Options&#039;&#039; from Context&#039;s menu and then select the &#039;&#039;Execute Keys&#039;&#039; tab.&lt;br /&gt;
* Click on &#039;&#039;Add&#039;&#039; and enter the file extension &#039;&#039;gs&#039;&#039;&lt;br /&gt;
* In the box at the top select one of the function keys and make these entries:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ContextOptions.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click OK to close the dialogue.&lt;br /&gt;
* Close Context.&lt;br /&gt;
* Create a new file called &#039;&#039;compile2006.bat&#039;&#039; in &#039;&#039;C:\Program Files\Auran\&#039;&#039; (use whatever name and location you prefer)&lt;br /&gt;
* Add this text to the batch file, you may need to modify paths or filenames:&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 set gsc=&amp;quot;C:\Program Files\Auran\TRS2006\Bin&amp;quot;&lt;br /&gt;
 set include=&amp;quot;C:\Program Files\Auran\TRS2006\Scripts&amp;quot;&lt;br /&gt;
 %gsc%\gsc.exe %1 -i%include% -pc:\windows\temp&lt;br /&gt;
 set gsc=&lt;br /&gt;
 set include=&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
* Reopen Context and load a script file.&lt;br /&gt;
* Press F11, your script file will be saved and then checked by the compiler, if all has gone well you will see this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:CompiledOK.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If there are any problems with the script details will be given together with the line number of the error.&lt;br /&gt;
* Interpreting these can be something of a black art, don&#039;t worry it will become easier as time passes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for TS2009, TS2010, and TS12==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; is used to compile scripts in TS2009 onwards.&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F10)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have TS2010, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;C:\Program Files\Auran\TS2010\bin\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;c:\Program Files\Auran\TS2010\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;n(%l)&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F10 the script should be compiled and error checked by TrainzUtil for TS2010.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling in Context with TrainzUtil.exe for Trainz A New Era==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TrainzUtil.exe&#039;&#039;&#039; can be used to syntax-check scripts in T:ANE.&lt;br /&gt;
&lt;br /&gt;
Please note that the T:ANE launch window must be open for this to work, and that you must set the advanced debugging options as below.&lt;br /&gt;
&lt;br /&gt;
[[Image:TANE_debug_setup_1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also please note that I have T:ANE installed on E: drive (a solid state drive), and that I have moved my user data to that drive.&lt;br /&gt;
The settings below should work for the default locations of the data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up a Context execute key as follows:&lt;br /&gt;
&lt;br /&gt;
 1. Open a trainz script in Context.  You must have a Trainz Script highlighter file installed.&lt;br /&gt;
 &lt;br /&gt;
 2. Call up the execute keys setup by clicking on &#039;Options/Environment Options&#039; in the main menu.&lt;br /&gt;
 &lt;br /&gt;
 3. Click on the &#039;Execute Keys&#039; tab to get the execute keys set-up window.  The window is the same&lt;br /&gt;
    as the one illustrated above.&lt;br /&gt;
 &lt;br /&gt;
 4. Click on a &#039;User exec key&#039; (eg F11)&lt;br /&gt;
 &lt;br /&gt;
 5. Assuming you have T:ANE, put the following string, or equivalent for your installation, into&lt;br /&gt;
    the &#039;Execute&#039; box (including the quote signs)&lt;br /&gt;
    &#039;&#039;&#039;&amp;quot;E:\N3V Games\Trainz A New Era\TrainzUtil.exe&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 6. Put the following into the &#039;Start in&#039; box (including the quote signs)&lt;br /&gt;
     &#039;&#039;&#039;&amp;quot;%p&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
   &lt;br /&gt;
 7. Put the following, or equivalent for your installation, into the &#039;Parameters&#039; box&lt;br /&gt;
     &#039;&#039;&#039;compile %n -i&amp;quot;E:\N3V Games\Trainz A New Era\resources\Scripts&amp;quot; -pC:\temp&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
 8. Turn on the &#039;Capture console output&#039;.&lt;br /&gt;
  &lt;br /&gt;
 9. In the &#039;Compiler output parser rule&#039; put the following&lt;br /&gt;
     &#039;&#039;&#039;%f(%l)&#039;&#039;&#039; &lt;br /&gt;
   &lt;br /&gt;
 10. Click on the &#039;Apply&#039; button to save.&lt;br /&gt;
&lt;br /&gt;
Now when you press F11 the script should be syntax-checked by TrainzUtil for T:ANE.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=File:TANE_debug_setup_1.jpg&amp;diff=9145</id>
		<title>File:TANE debug setup 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=File:TANE_debug_setup_1.jpg&amp;diff=9145"/>
		<updated>2016-10-09T22:02:01Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9123</id>
		<title>Trainz Tools by PEV</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=9123"/>
		<updated>2016-10-02T22:37:17Z</updated>

		<summary type="html">&lt;p&gt;Pev: Updated by PEV&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Attachment Maker==&lt;br /&gt;
&lt;br /&gt;
A program to add attachment points to existing assets by creating an invisible mesh with those points. Very simple and quick to use; add attachments in minutes.&lt;br /&gt;
&lt;br /&gt;
Download AttachmentMaker [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
==Images2TGA==&lt;br /&gt;
&lt;br /&gt;
A program to view all image types used in Trainz.  The program can also convert any image to another format, as well as add and manipulate alpha images.  You can attach your favourite image editor to allow opening of images for edit from within Images2TGA. The program handles the DXT compressed textures and allows conversion of these images to other formats.  The trawl feature can be used to convert textures to TGAs. Additionally it can make grey scale images and normal maps. It has recently been updated to view the two versions of textures from Trainz A New Era.&lt;br /&gt;
&lt;br /&gt;
This program supercedes Texture Viewer 2 and Texture2TGA.&lt;br /&gt;
&lt;br /&gt;
Download Images2TGA [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PM2IM==&lt;br /&gt;
&lt;br /&gt;
A tool program to convert Auran progressive meshes (PM) to indexed meshes (IM). An option is provided to alter specular values that can cause unwanted shine on object surfaces.&lt;br /&gt;
&lt;br /&gt;
This program can also be used to remove unsupported texture types from IM meshes.&lt;br /&gt;
&lt;br /&gt;
Download PM2IM [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trainz Mesh Viewer 2==&lt;br /&gt;
&lt;br /&gt;
Trainz Mesh Viewer 2 is a program to render textured meshes for Trainz. Also can now render complete train cars on short length of track. The views can be zoomed and rotated to view the object from any angle. If textures are not present the object is rendered in the diffuse colour with shadows. The program includes a facility to make 240x 180 thumbnail images of the object and can display normal mapped objects with a separate display for the bumps. A mesh data display has been added showing poly count and mesh size.  Recent additions allow viewing of complete traincars as well as attachments and individual textures. A further addition creates 128x64 consist icons from the train car view.&lt;br /&gt;
&lt;br /&gt;
Download Trainz Mesh Viewer 2 [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==QuickShadows==&lt;br /&gt;
&lt;br /&gt;
This PEVSoft tool is provided to the Trainz community for the generation of shadow meshes without having to use 3DMax, Gmax or Blender.  Many rolling stock items &lt;br /&gt;
downloaded into Content Manager show errors caused by missing shadow meshes.  Where the shadow mesh is missing a simple rectangular box mesh should be sufficient&lt;br /&gt;
to give the shadow effect and to satisfy the requirements of the Content Manager program for an error-free asset. QuickShadows can create the shadow mesh in the shape of a rectangular box, or a simplified billboard version of the original mesh, or a pologon reduced version of the original mesh, or a black only copy of the original mesh.&lt;br /&gt;
&lt;br /&gt;
Download QuickShadows [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PEVs Download Page==&lt;br /&gt;
&lt;br /&gt;
As you can see if you download any of the above you are directed to Shane Turner&#039;s web site. Shane has kindly hosted PEV&#039;s downloads as his original site no longer supports them.  Check out the other tools on offer.&lt;br /&gt;
&lt;br /&gt;
==Tutorials for PEV&#039;s Tools==&lt;br /&gt;
&lt;br /&gt;
John King&#039;s Trainz Resources NewsLetter published a series of tutorials on PEV&#039;s Trainz Tools.&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PDFs of these are available from Shane&#039;s [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disclaimer==&lt;br /&gt;
&lt;br /&gt;
PEV accepts no liability for damage or lost data arising from the use or misuse of the above software.&lt;br /&gt;
 &lt;br /&gt;
The programs are provided free of charge and in good faith to assist Trainz authors and users.&lt;br /&gt;
&lt;br /&gt;
Some meshes don&#039;t render correctly in AssetX or Trainz Mesh Viewer. All of PEV&#039;s mesh tools (and AssetX) have a bug in INFL chunk based animations as produced by 3DSMax. These are rare as GMax does not support this type of animation. Unfortunately there is no documentation on how this works, and PEV has been unable to get it right by experimentation.&lt;br /&gt;
&lt;br /&gt;
==About PEV==&lt;br /&gt;
&lt;br /&gt;
I am a retired electrical engineer who worked for a major Australian building materials manufacturer for many years. I have two recreational passions, making classical guitars, and Trainz..  I made many software tools when working and now write them when ever I think a problem can be solved with a bit of software.&lt;br /&gt;
&lt;br /&gt;
I hope you find my efforts helpful.&lt;br /&gt;
&lt;br /&gt;
==Exit==&lt;br /&gt;
&lt;br /&gt;
[[Tools|Return to Tools]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9047</id>
		<title>Tutorials for AssetX and PEV Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=9047"/>
		<updated>2016-08-07T13:17:05Z</updated>

		<summary type="html">&lt;p&gt;Pev: spelling error fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AssetX Tutorials ==&lt;br /&gt;
&lt;br /&gt;
[[AssetX/Tutorial Define Tools|Defining Tools in AssetX]] - a tutorial on connecting external programs as tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PEV&#039;s Tools Tutorials ==&lt;br /&gt;
PEV wrote a series of tutorials for John King&#039;s Trainz Resources NewsLetter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reprints of these are available from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[AssetX Wiki]] page.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9046</id>
		<title>AssetX Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Scripts&amp;diff=9046"/>
		<updated>2016-08-07T12:23:50Z</updated>

		<summary type="html">&lt;p&gt;Pev: download links changed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=AssetX Script Libraries=&lt;br /&gt;
&lt;br /&gt;
As well as being a Help Page, this page is intended to be a source for scripts written for AssetX.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please Note: Any installers on this page must be executed separately, and AssetX opened immediately afterwards.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Ian Woodmore&#039;s TARDIS 2.0 Scripts==&lt;br /&gt;
 &lt;br /&gt;
During the development of AssetX, Ian Woodmore wrote an extensive set of scripts to test the scripting language.&lt;br /&gt;
 &lt;br /&gt;
These TARDIS scripts, in conjunction with Asset X, can perform automated repair. upgrade and up-version of legacy assets to any asset trainz-build TB 2.7 or greater.&lt;br /&gt;
 &lt;br /&gt;
The scripts cover a wide range of common config.txt tags and containers. They work fine for the bulk of early version assets. Any remaining errors must be fixed manually using the Content Manager (CM) as a guide.&lt;br /&gt;
&lt;br /&gt;
TARDIS is a Work in Progress and will evolve as new versions of Trainz and TANE are released.&lt;br /&gt;
 &lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/1bt0ax6g0t710uy/Tardis_3_7_Scripts.exe?dl=0 HERE] and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
==PEV&#039;s Version Upgrade Scripts==&lt;br /&gt;
Also during the development of AssetX, PEV wrote a simple set of version upgrade scripts to test the scripting language.&lt;br /&gt;
&lt;br /&gt;
These are a set of four AssetX scripts that, together, can perform asset version upgrades to TC1/2 (trainzbuild 2.7) or TS2009 (trainzbuild 2.9).&lt;br /&gt;
&lt;br /&gt;
These simple scripts do no error checking, and only cover the common config.txt tags. They work fine for the bulk of early version assets. Those errors that remain must be fixed manually using CM2 or CM3 as a guide.&lt;br /&gt;
&lt;br /&gt;
The script installer is available from [https://www.dropbox.com/s/hv94iu1lon6k2nx/PEVs_Updating_Scripts.exe?dl=0 HERE]&lt;br /&gt;
and will automatically load the scripts into your AssetX installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Add TrainzUtil to your AssetX Menu==&lt;br /&gt;
&lt;br /&gt;
AssetX can use TrainzUtil to verify assets and commit or revert them into the Trainz database.&lt;br /&gt;
&lt;br /&gt;
Please be aware that this process can be slow, and it requires the Trainz Version setting in Options/Paths be set for the target Trainz version (if you have more than one Trainz installation).&lt;br /&gt;
&lt;br /&gt;
The menu installer is available from [https://www.dropbox.com/s/s47adwyw1f5tjxx/TrainzUtil_Menu_Script.exe?dl=0 HERE]&lt;br /&gt;
and will automatically load into your AssetX installation.  This installer loads a &amp;quot;RunOnce&amp;quot; script that will execute automatically when you open AssetX and then the RunOnce will delete itself when finished.  You need to close and re-open AssetX to see the new TrainzUtil menu.&lt;br /&gt;
&lt;br /&gt;
Note that this TrainzUtil menu is designed to run with Version 2.2 of AssetX and may cause earlier versions to stall on a pointer over-run.&lt;br /&gt;
&lt;br /&gt;
If you wish to &#039;&#039;&#039;remove&#039;&#039;&#039; the TrainzUtil Menu use this [https://www.dropbox.com/s/km4msz29z3st8nm/TrainzUtil_Menu_Delete.exe?dl=0 LINK]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This is an example of an AssetX &#039;&#039;&#039;Custom Menu&#039;&#039;&#039;.  Three of these are provided, Custom A, Custom B and Custom C.  In this case we have used Custom A.  You can check out how it works by clicking on Options/Configure Tools on the AssetX Main Menu. Select Custom A in the drop-down box labelled Menu.  The program help gives a detailed description of this process.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Script Code for Sharing=&lt;br /&gt;
If you have written an AssetX script that you think may be useful for the community you can copy and paste it into this section.&lt;br /&gt;
To get the text to appear in a code box, all of the lines must start with a space character.  Here is a simple example:-&lt;br /&gt;
&lt;br /&gt;
 FileName &amp;quot;Username.axm&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -If|config.txt\name!&amp;quot;&amp;quot;&lt;br /&gt;
  -Save|0|config.txt\name&lt;br /&gt;
  -Update|config.txt\username|&amp;quot;*** NEW TAG ***&amp;quot;&lt;br /&gt;
  -Restore|0|config.txt\username&lt;br /&gt;
  -delete|config.txt\name&lt;br /&gt;
 -EndIf&lt;br /&gt;
&lt;br /&gt;
=Corrected Version of Install Superscript.axm=&lt;br /&gt;
This corrects some typos in the file provided with the AssetX installation.  Copy and paste the following and save in the scripts folder as &#039;Install Superscript.axm&#039;&lt;br /&gt;
&lt;br /&gt;
  ;install library and asset stub script&lt;br /&gt;
  -If|kind!traincar&lt;br /&gt;
  	-Info|Script can only be used with kind traincar assets&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Else&lt;br /&gt;
  	-Info|Script requires that Superscript Library &amp;lt;kuid2:122285:508:14&amp;gt; or later must be open in AssetX.&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -If|engine=&lt;br /&gt;
  	-Info|Asset has no engine tag, please correct and re-run script&lt;br /&gt;
  	-Exit&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -Update|script-include-table\superscript|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -Update|kuid-table\codelib|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  -If|engine=1&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|lstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|LStub&lt;br /&gt;
  	-Update|class|LStub&lt;br /&gt;
  -Else&lt;br /&gt;
  	-IfAsset|&amp;lt;kuid2:122285:508:14&amp;gt;&lt;br /&gt;
  		-CopyFromAsset|vstub.gs&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-Update|script|VStub&lt;br /&gt;
  	-Update|class|VStub&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;extensions container options&lt;br /&gt;
  -IfQuery||Run in Debug Mode?&lt;br /&gt;
  	-Update|extensions\debug-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  -IfQuery||Change Train Heading via View-Details in Driver?&lt;br /&gt;
  	-Update|extensions\heading-122285|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front mesh&lt;br /&gt;
  -IfQuery||Add Front of Car Marker (used when debugging attachments)?&lt;br /&gt;
  	-Update|mesh-table\front\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\front\mesh|front.im&lt;br /&gt;
  	-Update|mesh-table\front\att|a.limfront&lt;br /&gt;
  	-Update|mesh-table\front\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\front\auto-create|0&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Front of Car? &lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\att|a.headlight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear headlight&lt;br /&gt;
  -IfQuery||Add Headlight at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\att|a.headlight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\texture-kuid|&amp;lt;kuid:104722:100&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\headlight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table front taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\att|a.taillight-0&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-0\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;mesh-table rear taillamp&lt;br /&gt;
  -IfQuery||Add Tail Light at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\kind|corona&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\att|a.taillight-1&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\texture-kuid|&amp;lt;kuid:104722:200&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\default\effects\taillight-1\object-size|0.12&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;lamp bodies&lt;br /&gt;
  -IfQuery||Add Lamp Bodies?&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att|a.headlight-0&lt;br /&gt;
  		-Update|mesh-table\headlight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\headlight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att|a.headlight-1&lt;br /&gt;
  		-Update|mesh-table\headlight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-0\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att|a.taillight-0&lt;br /&gt;
  		-Update|mesh-table\taillight-0-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  	-If|mesh-table\default\effects\taillight-1\kind$&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\mesh|lamp.im&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att|a.taillight-1&lt;br /&gt;
  		-Update|mesh-table\taillight-1-body\att-parent|default&lt;br /&gt;
  	-EndIf&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;corridors&lt;br /&gt;
  -IfQuery||Add Corridor at Front of Car?&lt;br /&gt;
  	-Update|extensions\corridor-0-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-0\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-0\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-0\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att|a.couple0&lt;br /&gt;
  	-Update|mesh-table\corridor-0\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Add Corridor at Rear of Car?&lt;br /&gt;
  	-Update|extensions\corridor-1-122285|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\corridor-1\mesh|corridor.im&lt;br /&gt;
  	-Update|mesh-table\corridor-1\anim|corridor.kin&lt;br /&gt;
  	-Update|mesh-table\corridor-1\auto-create|1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att|a.couple1&lt;br /&gt;
  	-Update|mesh-table\corridor-1\att-parent|default&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;front driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Front of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-0\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-0\att|a.driver-0&lt;br /&gt;
  	-Update|mesh-table\driver-0\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-0\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  ;rear driver&lt;br /&gt;
  -IfQuery||Add Driver Mesh at Rear of Car?&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh-asset|&amp;lt;kuid:122285:508&amp;gt;&lt;br /&gt;
  	-Update|mesh-table\driver-1\mesh|driver.im&lt;br /&gt;
  	-Update|mesh-table\driver-1\att|a.driver-1&lt;br /&gt;
  	-Update|mesh-table\driver-1\att-parent|default&lt;br /&gt;
  	-Update|mesh-table\driver-1\auto-create|1&lt;br /&gt;
  -EndIf&lt;br /&gt;
  &lt;br /&gt;
  -IfQuery||Save Changes to config.txt?&lt;br /&gt;
  	-Sort&lt;br /&gt;
  	-SaveConfig&lt;br /&gt;
  	-MessageBox|Config.txt entries have been made for the options selected.  You can amend attachment point names, corona kuid references etc to suit your model.  Please ensure that the attachment points specified are present within your traincar mesh.&lt;br /&gt;
  -EndIf&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Plans&amp;diff=7358</id>
		<title>Resources: Plans</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Plans&amp;diff=7358"/>
		<updated>2014-06-26T00:06:06Z</updated>

		<summary type="html">&lt;p&gt;Pev: GW drawings added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page related to resources for finding plans and blueprints useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
A selection of UK Great Western Drawings from Swindon.. [http://www.greatwestern.org.uk/loco_draw.htm HERE.]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Upload_a_new_asset_to_the_DownloadStation&amp;diff=7310</id>
		<title>HowTo/Upload a new asset to the DownloadStation</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Upload_a_new_asset_to_the_DownloadStation&amp;diff=7310"/>
		<updated>2014-06-19T02:02:07Z</updated>

		<summary type="html">&lt;p&gt;Pev: /* Verify Content is Error Free */ AssetX reference added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Download Station]] and [[Content Manager]] are designed to make it easy to share assets and maps for Trainz.&lt;br /&gt;
&lt;br /&gt;
[[Content Manager]] and [[Content Creator Plus]] aim to allow content creators to create and upload error free assets for Trainz. In previous builds errors in assets on the download station have created frustration for users. With [[Content Creator Plus]] we now have a utility to eliminate as many errors and problems as possible, and therefore we ask that the following procedures be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Trainz Download Station ==&lt;br /&gt;
&lt;br /&gt;
The uploading and downloading processes are fully encapsulated within [[Content Manager]]. Assets no longer need to be manually packaged in order to be uploaded, making the process much simpler. To upload your content, you must have a valid [[Planet Auran account]], with a registered version of Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steps to Upload ==&lt;br /&gt;
&lt;br /&gt;
You have completed your masterpiece and would like to share it with the Trainz community. Let&#039;s put it on the [[Download Station]].&lt;br /&gt;
&lt;br /&gt;
===Verify Content is Error Free===&lt;br /&gt;
&lt;br /&gt;
Before uploading your new asset it must be verified and proved error-free; a process which is rigorously enforced by [[Content Manager]]. This verification occurs automatically when committing assets in Trainz and is repeated on the [[Download Station]] server after upload.&lt;br /&gt;
&lt;br /&gt;
Faulty assets are displayed with a [[Image:Faulty001.jpg]] icon in [[Content Manager]].&lt;br /&gt;
&lt;br /&gt;
If an asset is faulty it must be fixed before it is able to be uploaded, this can be done using [[Content Creator Plus]] or by manually editing the asset.&lt;br /&gt;
&lt;br /&gt;
Fixing faulty content can be quite complex. Use the error messages in [[Content Manager]] and [[Content Creator Plus]] to correct any errors one by one. If you are having trouble search the [http://forums.auran.com/trainz/index.php Trainz forum] for help in repairing faults. Keep in mind that, if you have correctly exported the mesh(s) from 3dsMax or Blender, and you have the texture.txt and image files correctly located, [[Content Creator Plus]] should make a config.txt file clear of errors.&lt;br /&gt;
&lt;br /&gt;
AssetX is a useful third party tool for asset repair. See [[AssetX_Wiki]].&lt;br /&gt;
&lt;br /&gt;
===Select Content to be Uploaded===&lt;br /&gt;
&lt;br /&gt;
Once you have created your error free assets you can select them to be uploaded.&lt;br /&gt;
&lt;br /&gt;
To add your assets to the upload queue, first select them in the main list. You can use &#039;Shift&#039; or &#039;Ctrl&#039; click to select multiple assets. Right click on the selected assets and choose the &amp;quot;Upload&amp;quot; option. This will expand the upload helper and add the items to the list.&lt;br /&gt;
&lt;br /&gt;
[[Content Manager]] may prompt you to automatically add asset dependencies. This is a good idea as missing dependencies can cause much frustration for other Trainz users who download your creations.&lt;br /&gt;
&lt;br /&gt;
===Begin Uploading===&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve added all the assets you wish to share you are ready to begin the upload. Click the &amp;quot;Upload&amp;quot; button on the upload helper side panel in [[Content Manager]].&lt;br /&gt;
&lt;br /&gt;
You must agree to the Planet Auran License Agreement before you can upload your assets, this is displayed automatically. Accepting the agreement will upload your content to the Download Station. On completion of the upload the Planet Auran &amp;quot;Your Content&amp;quot; page will open in your default web browser. This page is part of your personal Planet Auran profile and allows you to manage your online content at any time. You can access this page at any time by visiting the [https://www.auran.com/planetauran/default.htm Auran] website and following the links.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Your Content&amp;quot; section is divided into the following areas: &lt;br /&gt;
&lt;br /&gt;
[[Image:my_content001.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upload Content:&#039;&#039;&#039; You needn&#039;t utilize this section as [[Content Manager]] now handles the entire upload process. It is recommended that you only use [[Content Manager]] to upload TS2009, TS2010 and TS12 assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unprocessed:&#039;&#039;&#039; The &amp;quot;Unprocessed&amp;quot; section shows the files you have uploaded which have not yet been approved by N3V.&lt;br /&gt;
&lt;br /&gt;
After uploading an asset you will find it in this section. Any files uploaded using [[Content Manager]] will be packed into a file named &amp;quot;upload.cdp&amp;quot;. If you upload multiple files in one instance they will be compiled into a single file before they are processed online.&lt;br /&gt;
&lt;br /&gt;
If you have uploaded a file and decide you no longer want it to be processed you can mark it as &amp;quot;do not process&amp;quot;, but do not delay as uploads are processed quickly and may not remain in this section long.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preview Area:&#039;&#039;&#039; The preview area acts as a temporary &#039;holding bay&#039; for previewing and testing your content before it is made available for download. The main features of the Preview Area are as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;a.&#039;&#039; You can review and approve your own content before the final approval process.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;b.&#039;&#039; You can send the private link to your content to others for testing purposes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;c.&#039;&#039; You can re-check all the Download Station pack information before final approval, i.e. pack contents, category, obsoletes, descriptions etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;d.&#039;&#039; You may delete the content if you change your mind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Important note: Preview Area content is only be held for 4 weeks since it was uploaded. All testing/revision must be done within this time. If you have (say) 4 assets for upload - A locomotive, an engine file, a bogey and a pantograph, and you only update ONE of these assets, the other 3 are still on the original 4 week period.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Waiting Area:&#039;&#039;&#039; The waiting area contains assets which have successfully passed through the automated checks made by the Download Station and are awaiting visual confirmation from internal N3V Games staff. This is done for a number of reasons, including:&lt;br /&gt;
&lt;br /&gt;
- Verifying that the name and description are valid and appropriate&lt;br /&gt;
&lt;br /&gt;
- Verifying that the correct category is selected&lt;br /&gt;
&lt;br /&gt;
- Verifying that the thumbnail image is visually acceptable.&lt;br /&gt;
&lt;br /&gt;
You will receive a Planet Auran mailbox message to indicate if your content has been approved or declined. By default, Planet Auran mailbox messages are also forwarded to your email address. If approved, the content should be available for download in [[Content Manager]] within 48 hours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Content:&#039;&#039;&#039; The &amp;quot;Your Content&amp;quot; section shows every asset you have previously uploaded to the Download Station.&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=7308</id>
		<title>Trainz Tools by PEV</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Trainz_Tools_by_PEV&amp;diff=7308"/>
		<updated>2014-06-17T00:00:05Z</updated>

		<summary type="html">&lt;p&gt;Pev: QuickShadows added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Attachment Maker==&lt;br /&gt;
&lt;br /&gt;
A program to add attachment points to existing assets by creating an invisible mesh with those points. Very simple and quick to use; add attachments in minutes.&lt;br /&gt;
&lt;br /&gt;
Download AttachmentMaker [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
==Images2TGA==&lt;br /&gt;
&lt;br /&gt;
A program to view all image types used in Trainz.  The program can also convert any image to another format, as well as add and manipulate alpha images.  You can attach your favourite image editor to allow opening of images for edit from within Images2TGA. The program handles the DXT compressed textures and allows conversion of these images to other formats.  The trawl feature can be used to convert textures to TGAs. Additionally it can make grey scale images and normal maps.&lt;br /&gt;
&lt;br /&gt;
This program supercedes Texture Viewer 2 and Texture2TGA.&lt;br /&gt;
&lt;br /&gt;
Download Images2TGA [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PM2IM==&lt;br /&gt;
&lt;br /&gt;
A tool program to convert Auran progressive meshes (PM) to indexed meshes (IM). An option is provided to alter specular values that can cause unwanted shine on object surfaces.&lt;br /&gt;
&lt;br /&gt;
This program can also be used to remove unsupported texture types from IM meshes.&lt;br /&gt;
&lt;br /&gt;
Download PM2IM [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trainz Mesh Viewer 2==&lt;br /&gt;
&lt;br /&gt;
Trainz Mesh Viewer 2 is a simple program to render textured meshes for Trainz. Also can now render complete train cars on short length of track. The views can be zoomed and rotated to view the object from any angle. If textures are not present the object is rendered in the diffuse colour with shadows. The program includes a facility to make 240x 180 thumbnail images of the object and can display normal mapped objects with a separate display for the bumps. A mesh data display has been added showing poly count and mesh size.  Recent additions allow viewing of complete traincars as well as attachments and individual textures.&lt;br /&gt;
&lt;br /&gt;
Download Trainz Mesh Viewer 2 [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==QuickShadows==&lt;br /&gt;
&lt;br /&gt;
This PEVSoft tool is provided to the Trainz community for the generation of shadow meshes without having to use 3DMax, Gmax or Blender.  Many rolling stock items &lt;br /&gt;
downloaded into Content Manager show errors caused by missing shadow meshes.  Where the shadow mesh is missing a simple rectangular box mesh should be sufficient&lt;br /&gt;
to give the shadow effect and to satisfy the requirements of the Content Manager program for an error-free asset. QuickShadows can create the shadow mesh in the shape of a rectangular box, or a simplified billboard version of the original mesh, or a pologon reduced version of the original mesh, or a black only copy of the original mesh.&lt;br /&gt;
&lt;br /&gt;
Download QuickShadows [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PEVs Download Page==&lt;br /&gt;
&lt;br /&gt;
As you can see if you download any of the above you are directed to Shane Turner&#039;s web site. Shane has kindly hosted PEV&#039;s downloads as his original site no longer supports them.  Check out the other tools on offer.&lt;br /&gt;
&lt;br /&gt;
==Tutorials for PEV&#039;s Tools==&lt;br /&gt;
&lt;br /&gt;
John King&#039;s Trainz Resources NewsLetter published a series of tutorials on PEV&#039;s Trainz Tools.&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows where needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reprints of these are available from Shane&#039;s [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disclaimer==&lt;br /&gt;
&lt;br /&gt;
PEV accepts no liability for damage or lost data arising from the use or misuse of the above software.&lt;br /&gt;
 &lt;br /&gt;
The programs are provided free of charge and in good faith to assist Trainz authors and users.&lt;br /&gt;
&lt;br /&gt;
Some meshes don&#039;t render correctly in AssetX or Trainz Mesh Viewer. All of PEV&#039;s mesh tools (and AssetX) have a bug in INFL chunk based animations as produced by 3DSMax. These are rare as GMax does not support this type of animation. Unfortunately there is no documentation on how this works, and PEV has been unable to get it right by experimentation.&lt;br /&gt;
&lt;br /&gt;
==About PEV==&lt;br /&gt;
&lt;br /&gt;
I am a retired electrical engineer who worked for a major Australian building materials manufacturer for many years. I have two recreational passions, making classical guitars, and Trainz..  I made many software tools when working and now write them when ever I think a problem can be solved with a bit of software.&lt;br /&gt;
&lt;br /&gt;
I hope you find my efforts helpful.&lt;br /&gt;
&lt;br /&gt;
==Exit==&lt;br /&gt;
&lt;br /&gt;
[[Tools|Return to Tools]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=7069</id>
		<title>AssetX Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=AssetX_Wiki&amp;diff=7069"/>
		<updated>2014-05-01T23:28:32Z</updated>

		<summary type="html">&lt;p&gt;Pev: Reference to Shane&amp;#039;s site added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the AssetX WIKI page.&lt;br /&gt;
Latest news will usually be found in the [http://forums.auran.com/trainz/showthread.php?t=63264 AssetX FAQ]&lt;br /&gt;
&lt;br /&gt;
AssetX is now up to Version 3.0.  Get it from [http://www.ajsmith.org.uk/trs/assetx HERE]&lt;br /&gt;
&lt;br /&gt;
AssetX uses PEV&#039;s Images2TGA, PM2IM and QuickShadows as part of its toolbox.  Download these from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Links to pages providing support and access to additional materials:&lt;br /&gt;
&lt;br /&gt;
==[[AssetX Scripts]]==&lt;br /&gt;
&lt;br /&gt;
==[[Tutorials for AssetX and PEV Tools]]==&lt;br /&gt;
&lt;br /&gt;
==[[Articles]]==&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=7068</id>
		<title>Tutorials for AssetX and PEV Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Tutorials_for_AssetX_and_PEV_Tools&amp;diff=7068"/>
		<updated>2014-05-01T23:25:24Z</updated>

		<summary type="html">&lt;p&gt;Pev: /* PEV&amp;#039;s Tools Tutorials */ Reference to Shane&amp;#039;s site added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AssetX Tutorials ==&lt;br /&gt;
&lt;br /&gt;
[[AssetX/Tutorial Define Tools|Defining Tools in AssetX]] - a tutorial on connecting external programs as tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PEV&#039;s Tools Tutorials ==&lt;br /&gt;
PEV wrote a series of tutorials for John King&#039;s Trainz Resources NewsLetter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They covered:-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Images2TGA&#039;&#039;&#039; &#039;&#039;for manipulating all image types used in Trainz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PM2IM&#039;&#039;&#039; &#039;&#039;for conversions of Progressive Meshes to Indexed Meshes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QuickShadows&#039;&#039;&#039; &#039;&#039;for creating simple shadows were needed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AttachmentMaker&#039;&#039;&#039; &#039;&#039;add attachments to assets in minutes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reprints of these are available from Shane Turner&#039;s web site on the PEV Tools [http://trainz.shaneturner.co.uk/tutorials/index.php/en/home/utilities/3rd-party-trainz-utilities/pevsoft-trainz-tools download page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[AssetX Wiki]] page.&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=6883</id>
		<title>HowTo/Implement a Destination Sign System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=6883"/>
		<updated>2014-03-23T08:36:24Z</updated>

		<summary type="html">&lt;p&gt;Pev: /* Introduction */ grammar error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This document was inspired by the release from NormP of Surfside Trams 2 for TS12.  This is a fictional route with tramways on the Gold Coast in Australia.  The Gold Coast is near Brisbane where trams were used up to 1972.  &lt;br /&gt;
&lt;br /&gt;
The Brisbane trams modelled by motorman1066 seemed appropriate to use on the route, so were added.  To my surprise the destination boards for Brisbane appeared for use in the session. Consequently, a set of destination boards was made for the Surfside Trams route, and this document details the steps required to get them to work.&lt;br /&gt;
&lt;br /&gt;
== The Destination Boards ==&lt;br /&gt;
&lt;br /&gt;
These work by script controlled texture replacement so the format and config.txt are important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Motorman1066&#039;s trams all share the same destination boards for Brisbane, kuid2:108959:99901:2, and these are read into the tram script and provide an option selection from the properties button in surveyor. (more on this later)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this process on another route, eg Surfside Trams, a different set of destination signs is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An asset with set of textures for the Gold Coast was built by cloning and editing motorman1066&#039;s Brisbane ones.  In his case each texture has a destination name and route number.  The two bits of data are separated by texture mapping and displayed on the destination sign and the route number sign as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Phoenix_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each texture looks as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_sign_sample_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the boards are backlit at night with a white night mesh so the white text is transparent.&lt;br /&gt;
&lt;br /&gt;
The Surfside destination boards are a small set with only 10 destinations. Here is the complete config.txt.&lt;br /&gt;
&lt;br /&gt;
 kuid                &amp;lt;kuid:XXXXXX:YYYYYY&amp;gt;&lt;br /&gt;
 username            &amp;quot;SurfSideDestsignTextures&amp;quot;&lt;br /&gt;
 kind                &amp;quot;texture-group&amp;quot;&lt;br /&gt;
 trainz-build        2.9&lt;br /&gt;
   &lt;br /&gt;
 extensions&lt;br /&gt;
 {&lt;br /&gt;
   destnames-000000&lt;br /&gt;
   {&lt;br /&gt;
     0               &amp;quot;BLANK&amp;quot;&lt;br /&gt;
     1               &amp;quot;SEA WORLD DEPOT&amp;quot;&lt;br /&gt;
     2               &amp;quot;SEA WORLD&amp;quot;&lt;br /&gt;
     3               &amp;quot;CAVILL AVE&amp;quot;&lt;br /&gt;
     4               &amp;quot;SURFERS PARADISE&amp;quot;&lt;br /&gt;
     5               &amp;quot;PRIMARY SCHOOL&amp;quot;&lt;br /&gt;
     6               &amp;quot;BUNDALL&amp;quot;&lt;br /&gt;
     7               &amp;quot;SOUTHPORT POOL&amp;quot;&lt;br /&gt;
     8               &amp;quot;PACIFIC FAIR&amp;quot;&lt;br /&gt;
     9               &amp;quot;PACIFIC FAIR DEPOT&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 textures&lt;br /&gt;
 {&lt;br /&gt;
   0                 &amp;quot;Blank.texture&amp;quot;                [[File:Dest_texture0_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   1                 &amp;quot;dest0.texture&amp;quot;                [[File:Dest_texture1_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   2                 &amp;quot;dest1.texture&amp;quot;                [[File:Dest_texture2_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   3                 &amp;quot;dest2.texture&amp;quot;                [[File:Dest_texture3_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   4                 &amp;quot;dest3.texture&amp;quot;                [[File:Dest_texture4_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   5                 &amp;quot;dest4.texture&amp;quot;                [[File:Dest_texture5_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   6                 &amp;quot;dest5.texture&amp;quot;                [[File:Dest_texture6_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   7                 &amp;quot;dest6.texture&amp;quot;                [[File:Dest_texture7_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   8                 &amp;quot;dest7.texture&amp;quot;                [[File:Dest_texture8_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   9                 &amp;quot;dest8.texture&amp;quot;                [[File:Dest_texture9_PEV.jpg]]&lt;br /&gt;
 }&lt;br /&gt;
 category-class      &amp;quot;JO&amp;quot;&lt;br /&gt;
 category-era        &amp;quot;1940s;1950s;1960s&amp;quot;&lt;br /&gt;
 category-region     &amp;quot;AU&amp;quot;&lt;br /&gt;
 description         &amp;quot;Destination signs for Normp&#039;s Surf-Side Trams.&lt;br /&gt;
                      Derived from destination boards for Motorman1066 Brisbane trams.&lt;br /&gt;
                      Developed from an original concept created by Peter Denhert.&amp;quot;&lt;br /&gt;
 author              &amp;quot;motorman1066 amended by PEV&amp;quot;&lt;br /&gt;
 license             &amp;quot;etc&amp;quot;&lt;br /&gt;
 organisation        &amp;quot;Selz Tramz Workshopz 2006&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image           &amp;quot;destination sign 240.jpg&amp;quot;&lt;br /&gt;
     width           240&lt;br /&gt;
     height          180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the kind must be &amp;quot;texture-group&amp;quot; and category class must be &amp;quot;JO&amp;quot; (Other Textures).&lt;br /&gt;
Also note the sub-container name in the &amp;quot;extensions&amp;quot; container. It must start with lower case &amp;quot;destnames-&amp;quot; as shown above.  Put your own user ID number after it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram script generates a selection table which shows the items listed in the &amp;quot;extensions&amp;quot; container as destination board options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Selecting from the list chooses the texture of the same number.  So, from the above config.txt, texture 1 (dest0.texture) is SEA WORLD DEPOT and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tram Car (or loco) Requirements ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the trams were cloned from motorman1066&#039;s assets and the names changed to represent use by me on Surfside Trams route.  The kuid-table is changed so that the asset for new destinations is included. See below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram cars must be built to support texture replacement on the destination sign. The config.txt must have effects container named &amp;quot;destsign&amp;quot; in the mesh table as below.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
  default&lt;br /&gt;
  {&lt;br /&gt;
    mesh                                &amp;quot;554 body/554 body.lm&amp;quot;&lt;br /&gt;
    auto-create                         1&lt;br /&gt;
    &lt;br /&gt;
    effects&lt;br /&gt;
    {&lt;br /&gt;
      destsign&lt;br /&gt;
      {&lt;br /&gt;
        kind                            &amp;quot;texture-replacement&amp;quot;&lt;br /&gt;
        texture                         &amp;quot;texture dest.texture&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 etc&lt;br /&gt;
   &lt;br /&gt;
 kuid-table&lt;br /&gt;
 {&lt;br /&gt;
   bogey                                 &amp;lt;kuid2:108959:50554:1&amp;gt;&lt;br /&gt;
   enginesound                           &amp;lt;kuid2:108959:53554:1&amp;gt;&lt;br /&gt;
   enginespec                            &amp;lt;kuid2:108959:51554:1&amp;gt;&lt;br /&gt;
   hornsound                             &amp;lt;kuid2:108959:54554:1&amp;gt;&lt;br /&gt;
   interior                              &amp;lt;kuid2:108959:55554:1&amp;gt;&lt;br /&gt;
   product                               &amp;lt;kuid:-3:10060&amp;gt;&lt;br /&gt;
   destsigntextures                      &amp;lt;kuid:329364:100013&amp;gt; ......  &#039;&#039;the new destination sign asset&#039;&#039;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Additionally the kuid-table of the tram config.txt can have the entry &amp;quot;destsigntextures&amp;quot;, as above though not essential, which calls the kuid of the destination sign asset above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;texture dest.texture&amp;quot; is a blank sign the same as the blank in the destination sign asset. It is located in the same folder as the parent mesh (in this case the 554 body folder.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram assets in this case have a script (tram.gs) of class called &amp;quot;Tram&amp;quot;.  The script from Peter Dehnert provides the interface to select destinations in Surveyor and to communicate with the &amp;quot;Change Destination Sign To&amp;quot; rule [[File:Dest_change_sign_PEV.jpg]] allowing destinations to be changed by the driver AI.&lt;br /&gt;
&lt;br /&gt;
== Using the Destination Sign System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firstly we add the &amp;quot;DestsignTable&amp;quot; Rule to the Session (or route, depending on layer setting). We can choose to be in the session layer to make the sessions more flexible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the Edit Session Rules Button [[File:Dest_Session_Edit_Button_PEV.jpg]] at the top left of the surveyor screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Edit Session window will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the Add button to add a rule to the session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The selection box for Rules will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step02_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scroll down to find and select the &amp;quot;DestSignTable&amp;quot; rule.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rule is added to the session as shown.  This rule searches the session and route assets for kind &amp;quot;texture-group&amp;quot; assets and builds a table of such assets. It also adds the &amp;quot;Change Destination to&amp;quot; [[File:Dest_change_sign_PEV.jpg]] to the driver command menu.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01a_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the &amp;quot;DestSignTable&amp;quot; rule from the Edit Session box and Press the Edit Button (circled in the image above).  The Rule properties box is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step07_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that &#039;&#039;Enable industries/station as destination&#039;&#039; and &#039;&#039;Enable trackmarks as destinations&#039;&#039; are &#039;&#039;&#039;not&#039;&#039;&#039; checked (ticked) and that &#039;&#039;Enable table of destinations&#039;&#039; is checked (ticked) as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on &#039;&#039;&#039;Import destinations from texture-group&#039;&#039;&#039;.  The &amp;quot;Select texture-group&amp;quot; box will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the appropriate texture group.. in this case &amp;quot;SurfSideDestTextures&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A list of destinations will be added as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step09_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accept the edits by clicking on the check (tick) button on the above windows.&lt;br /&gt;
&lt;br /&gt;
This completes the set up of the &amp;quot;DestSignTable&amp;quot; rule; we can now add trams to our session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We Have Added a Tram ==&lt;br /&gt;
&lt;br /&gt;
When we have placed the tram car on a track in Trainz Surveyor, press the properties button in the rolling stock tab,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Properties_button_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and left click on the tram itself. The tram properties window appears where we can add a running number and enable our destination list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step03_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The circled text is the name of the texture-group for our destination sign.  &lt;br /&gt;
&lt;br /&gt;
If the texture group is incorrect, left click on the text and &amp;quot;Select texture-group&amp;quot; box will appear allowing us to change the texture group to &amp;quot;SurfSideDestsignTextures&amp;quot; as previously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can also select a destination sign immediately if desired by left clicking Destination text as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step05_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Destination selection box is displayed allowing us to choose an appropriate destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step11_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Driver AI can be used to change destination signs at any time. Click on the green arrow to insert a driver command.  From the menu choose &amp;quot;Change Destination To&amp;quot; and select a destination from the drop down menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step12_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The destinations can change automatically at the appropriate location with this driver command.  When in &#039;&#039;Driver&#039;&#039; mouse over the icon to find the new destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5726</id>
		<title>HowTo/Implement a Destination Sign System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5726"/>
		<updated>2013-11-11T23:15:51Z</updated>

		<summary type="html">&lt;p&gt;Pev: /* Tram Car (or loco) Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This document was inspired by the release from NormP of Surfside Trams 2 for TS12.  This is a fictional route with tramways on the Gold Coast in Australia.  The Gold Coast is near Brisbane where trams were used up to 1972.  &lt;br /&gt;
&lt;br /&gt;
The Brisbane trams modelled by motorman1066 seemed appropriate to use on the route, so were added.  To my surprise the destination boards for Brisbane appeared for use the session. Consequently, a set of destination boards was made for the Surfside Trams route, and this document details the steps required to get them to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Destination Boards ==&lt;br /&gt;
&lt;br /&gt;
These work by script controlled texture replacement so the format and config.txt are important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Motorman1066&#039;s trams all share the same destination boards for Brisbane, kuid2:108959:99901:2, and these are read into the tram script and provide an option selection from the properties button in surveyor. (more on this later)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this process on another route, eg Surfside Trams, a different set of destination signs is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An asset with set of textures for the Gold Coast was built by cloning and editing motorman1066&#039;s Brisbane ones.  In his case each texture has a destination name and route number.  The two bits of data are separated by texture mapping and displayed on the destination sign and the route number sign as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Phoenix_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each texture looks as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_sign_sample_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the boards are backlit at night with a white night mesh so the white text is transparent.&lt;br /&gt;
&lt;br /&gt;
The Surfside destination boards are a small set with only 10 destinations. Here is the complete config.txt.&lt;br /&gt;
&lt;br /&gt;
 kuid                &amp;lt;kuid:XXXXXX:YYYYYY&amp;gt;&lt;br /&gt;
 username            &amp;quot;SurfSideDestsignTextures&amp;quot;&lt;br /&gt;
 kind                &amp;quot;texture-group&amp;quot;&lt;br /&gt;
 trainz-build        2.9&lt;br /&gt;
   &lt;br /&gt;
 extensions&lt;br /&gt;
 {&lt;br /&gt;
   destnames-000000&lt;br /&gt;
   {&lt;br /&gt;
     0               &amp;quot;BLANK&amp;quot;&lt;br /&gt;
     1               &amp;quot;SEA WORLD DEPOT&amp;quot;&lt;br /&gt;
     2               &amp;quot;SEA WORLD&amp;quot;&lt;br /&gt;
     3               &amp;quot;CAVILL AVE&amp;quot;&lt;br /&gt;
     4               &amp;quot;SURFERS PARADISE&amp;quot;&lt;br /&gt;
     5               &amp;quot;PRIMARY SCHOOL&amp;quot;&lt;br /&gt;
     6               &amp;quot;BUNDALL&amp;quot;&lt;br /&gt;
     7               &amp;quot;SOUTHPORT POOL&amp;quot;&lt;br /&gt;
     8               &amp;quot;PACIFIC FAIR&amp;quot;&lt;br /&gt;
     9               &amp;quot;PACIFIC FAIR DEPOT&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 textures&lt;br /&gt;
 {&lt;br /&gt;
   0                 &amp;quot;Blank.texture&amp;quot;                [[File:Dest_texture0_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   1                 &amp;quot;dest0.texture&amp;quot;                [[File:Dest_texture1_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   2                 &amp;quot;dest1.texture&amp;quot;                [[File:Dest_texture2_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   3                 &amp;quot;dest2.texture&amp;quot;                [[File:Dest_texture3_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   4                 &amp;quot;dest3.texture&amp;quot;                [[File:Dest_texture4_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   5                 &amp;quot;dest4.texture&amp;quot;                [[File:Dest_texture5_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   6                 &amp;quot;dest5.texture&amp;quot;                [[File:Dest_texture6_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   7                 &amp;quot;dest6.texture&amp;quot;                [[File:Dest_texture7_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   8                 &amp;quot;dest7.texture&amp;quot;                [[File:Dest_texture8_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   9                 &amp;quot;dest8.texture&amp;quot;                [[File:Dest_texture9_PEV.jpg]]&lt;br /&gt;
 }&lt;br /&gt;
 category-class      &amp;quot;JO&amp;quot;&lt;br /&gt;
 category-era        &amp;quot;1940s;1950s;1960s&amp;quot;&lt;br /&gt;
 category-region     &amp;quot;AU&amp;quot;&lt;br /&gt;
 description         &amp;quot;Destination signs for Normp&#039;s Surf-Side Trams.&lt;br /&gt;
                      Derived from destination boards for Motorman1066 Brisbane trams.&lt;br /&gt;
                      Developed from an original concept created by Peter Denhert.&amp;quot;&lt;br /&gt;
 author              &amp;quot;motorman1066 amended by PEV&amp;quot;&lt;br /&gt;
 license             &amp;quot;etc&amp;quot;&lt;br /&gt;
 organisation        &amp;quot;Selz Tramz Workshopz 2006&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image           &amp;quot;destination sign 240.jpg&amp;quot;&lt;br /&gt;
     width           240&lt;br /&gt;
     height          180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the kind must be &amp;quot;texture-group&amp;quot; and category class must be &amp;quot;JO&amp;quot; (Other Textures).&lt;br /&gt;
Also note the sub-container name in the &amp;quot;extensions&amp;quot; container. It must start with lower case &amp;quot;destnames-&amp;quot; as shown above.  Put your own user ID number after it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram script generates a selection table which shows the items listed in the &amp;quot;extensions&amp;quot; container as destination board options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Selecting from the list chooses the texture of the same number.  So, from the above config.txt, texture 1 (dest0.texture) is SEA WORLD DEPOT and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tram Car (or loco) Requirements ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the trams were cloned from motorman1066&#039;s assets and the names changed to represent use by me on Surfside Trams route.  The kuid-table is changed so that the asset for new destinations is included. See below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram cars must be built to support texture replacement on the destination sign. The config.txt must have effects container named &amp;quot;destsign&amp;quot; in the mesh table as below.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
  default&lt;br /&gt;
  {&lt;br /&gt;
    mesh                                &amp;quot;554 body/554 body.lm&amp;quot;&lt;br /&gt;
    auto-create                         1&lt;br /&gt;
    &lt;br /&gt;
    effects&lt;br /&gt;
    {&lt;br /&gt;
      destsign&lt;br /&gt;
      {&lt;br /&gt;
        kind                            &amp;quot;texture-replacement&amp;quot;&lt;br /&gt;
        texture                         &amp;quot;texture dest.texture&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 etc&lt;br /&gt;
   &lt;br /&gt;
 kuid-table&lt;br /&gt;
 {&lt;br /&gt;
   bogey                                 &amp;lt;kuid2:108959:50554:1&amp;gt;&lt;br /&gt;
   enginesound                           &amp;lt;kuid2:108959:53554:1&amp;gt;&lt;br /&gt;
   enginespec                            &amp;lt;kuid2:108959:51554:1&amp;gt;&lt;br /&gt;
   hornsound                             &amp;lt;kuid2:108959:54554:1&amp;gt;&lt;br /&gt;
   interior                              &amp;lt;kuid2:108959:55554:1&amp;gt;&lt;br /&gt;
   product                               &amp;lt;kuid:-3:10060&amp;gt;&lt;br /&gt;
   destsigntextures                      &amp;lt;kuid:329364:100013&amp;gt; ......  &#039;&#039;the new destination sign asset&#039;&#039;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Additionally the kuid-table of the tram config.txt can have the entry &amp;quot;destsigntextures&amp;quot;, as above though not essential, which calls the kuid of the destination sign asset above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;texture dest.texture&amp;quot; is a blank sign the same as the blank in the destination sign asset. It is located in the same folder as the parent mesh (in this case the 554 body folder.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram assets in this case have a script (tram.gs) of class called &amp;quot;Tram&amp;quot;.  The script from Peter Dehnert provides the interface to select destinations in Surveyor and to communicate with the &amp;quot;Change Destination Sign To&amp;quot; rule [[File:Dest_change_sign_PEV.jpg]] allowing destinations to be changed by the driver AI.&lt;br /&gt;
&lt;br /&gt;
== Using the Destination Sign System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firstly we add the &amp;quot;DestsignTable&amp;quot; Rule to the Session (or route, depending on layer setting). We can choose to be in the session layer to make the sessions more flexible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the Edit Session Rules Button [[File:Dest_Session_Edit_Button_PEV.jpg]] at the top left of the surveyor screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Edit Session window will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the Add button to add a rule to the session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The selection box for Rules will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step02_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scroll down to find and select the &amp;quot;DestSignTable&amp;quot; rule.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rule is added to the session as shown.  This rule searches the session and route assets for kind &amp;quot;texture-group&amp;quot; assets and builds a table of such assets. It also adds the &amp;quot;Change Destination to&amp;quot; [[File:Dest_change_sign_PEV.jpg]] to the driver command menu.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01a_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the &amp;quot;DestSignTable&amp;quot; rule from the Edit Session box and Press the Edit Button (circled in the image above).  The Rule properties box is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step07_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that &#039;&#039;Enable industries/station as destination&#039;&#039; and &#039;&#039;Enable trackmarks as destinations&#039;&#039; are &#039;&#039;&#039;not&#039;&#039;&#039; checked (ticked) and that &#039;&#039;Enable table of destinations&#039;&#039; is checked (ticked) as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on &#039;&#039;&#039;Import destinations from texture-group&#039;&#039;&#039;.  The &amp;quot;Select texture-group&amp;quot; box will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the appropriate texture group.. in this case &amp;quot;SurfSideDestTextures&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A list of destinations will be added as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step09_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accept the edits by clicking on the check (tick) button on the above windows.&lt;br /&gt;
&lt;br /&gt;
This completes the set up of the &amp;quot;DestSignTable&amp;quot; rule; we can now add trams to our session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We Have Added a Tram ==&lt;br /&gt;
&lt;br /&gt;
When we have placed the tram car on a track in Trainz Surveyor, press the properties button in the rolling stock tab,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Properties_button_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and left click on the tram itself. The tram properties window appears where we can add a running number and enable our destination list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step03_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The circled text is the name of the texture-group for our destination sign.  &lt;br /&gt;
&lt;br /&gt;
If the texture group is incorrect, left click on the text and &amp;quot;Select texture-group&amp;quot; box will appear allowing us to change the texture group to &amp;quot;SurfSideDestsignTextures&amp;quot; as previously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can also select a destination sign immediately if desired by left clicking Destination text as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step05_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Destination selection box is displayed allowing us to choose an appropriate destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step11_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Driver AI can be used to change destination signs at any time. Click on the green arrow to insert a driver command.  From the menu choose &amp;quot;Change Destination To&amp;quot; and select a destination from the drop down menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step12_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The destinations can change automatically at the appropriate location with this driver command.  When in &#039;&#039;Driver&#039;&#039; mouse over the icon to find the new destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=KIND_Texture-group&amp;diff=5725</id>
		<title>KIND Texture-group</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=KIND_Texture-group&amp;diff=5725"/>
		<updated>2013-11-11T00:50:42Z</updated>

		<summary type="html">&lt;p&gt;Pev: /* Example Config.txt */ Link to Destination Sign added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[KIND Texture-group]] defines a group of textures as an asset that can be referenced from another asset or via scripting.&lt;br /&gt;
&lt;br /&gt;
[[Image:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
==KIND Hierarchy==&lt;br /&gt;
===Parent Classes===&lt;br /&gt;
* [[KIND TrainzBaseSpec]]&lt;br /&gt;
===Child Classes===&lt;br /&gt;
* &#039;&#039;none.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Supported Tags==&lt;br /&gt;
&#039;&#039;TBD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Example Config.txt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 kuid &amp;lt;kuid:171456:100034&amp;gt;&lt;br /&gt;
 trainz-build 2.5&lt;br /&gt;
 category-class &amp;quot;JO&amp;quot;&lt;br /&gt;
 category-region &amp;quot;AU&amp;quot;&lt;br /&gt;
 category-era &amp;quot;1810s&amp;quot;&lt;br /&gt;
 username &amp;quot;testTextureGroup&amp;quot;&lt;br /&gt;
 kind &amp;quot;texture-group&amp;quot;&lt;br /&gt;
 description &amp;quot;Test texture group.&amp;quot;&lt;br /&gt;
 textures&lt;br /&gt;
 {&lt;br /&gt;
   0 &amp;quot;1.bmp&amp;quot;&lt;br /&gt;
   1 &amp;quot;2.bmp&amp;quot;&lt;br /&gt;
   2 &amp;quot;3.bmp&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image &amp;quot;thumb.jpg&amp;quot;&lt;br /&gt;
     width 240&lt;br /&gt;
     height 180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
An example for the use of &amp;quot;texture-group&amp;quot; is a destination  board system. See [[HowTo/Implement_a_Destination_Sign_System|How to Implement a Destination Sign System]].&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
[[Category:Asset KIND]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Add_Carz_Traffic_to_a_Route&amp;diff=5724</id>
		<title>HowTo/Add Carz Traffic to a Route</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Add_Carz_Traffic_to_a_Route&amp;diff=5724"/>
		<updated>2013-11-11T00:20:17Z</updated>

		<summary type="html">&lt;p&gt;Pev: /* Adding Carz to a Route Using a Region */ TS12 reference added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Adding Car Traffic to a Route==&lt;br /&gt;
&lt;br /&gt;
There are two ways to add carz to routes to enable them for traffic.  Both involve adding lists of kuids for carz to config.txt files.&lt;br /&gt;
&lt;br /&gt;
Trainz reads the car0, car1, car2 etc tags in the route config.txt and the region config.txt specified for that route, to build a list of carz to randomly spawn onto the roads that are traffic enabled.&lt;br /&gt;
&lt;br /&gt;
==Adding Carz to a Route Using a Region==&lt;br /&gt;
&lt;br /&gt;
If you have a route that has no region specified you can add a car enabled region by just adding/editing the region tag in the config.txt.  Before adding the region, open it in Content Manager and inspect the config.txt. It should have a list of car entries starting a car0 and be an unbroken incremented list car0, car1, car2, etc.  If there is a gap in the car numbering the car number before the gap will be the last car added.  Those following the gap will be ignored.&lt;br /&gt;
&lt;br /&gt;
An example of the config.txt of kind &amp;quot;region&amp;quot;:-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 username           &amp;quot;Queensland Region&amp;quot;&lt;br /&gt;
 kuid               &amp;lt;kuid:XXXXXX:YYYY&amp;gt;&lt;br /&gt;
 category-region    &amp;quot;AU&amp;quot;&lt;br /&gt;
 category-era       &amp;quot;1970s;1980s;1990s;2000s;2010s&amp;quot;&lt;br /&gt;
 kind               &amp;quot;region&amp;quot;&lt;br /&gt;
 watercolor         154,104,53&lt;br /&gt;
 defaultjunction    100633&lt;br /&gt;
 ontheright         0&lt;br /&gt;
 longitude          153,2,1&lt;br /&gt;
 latitude           27,28,-1&lt;br /&gt;
 altitude           0&lt;br /&gt;
 car0               &amp;lt;kuid:329364:1514&amp;gt;   .............&#039;&#039;kuid of car best obtained by using CCP&#039;&#039;&lt;br /&gt;
 car1               &amp;lt;kuid:60238:29&amp;gt;&lt;br /&gt;
 car2               &amp;lt;kuid:60238:33&amp;gt;&lt;br /&gt;
    &#039;&#039;without any gaps in the car# list up to&#039;&#039;&lt;br /&gt;
 car13              &amp;lt;kuid:-1:100527&amp;gt;&lt;br /&gt;
 car14              &amp;lt;kuid2:329364:1189:2&amp;gt;&lt;br /&gt;
 car15              &amp;lt;kuid:-1:36&amp;gt;&lt;br /&gt;
 category-class     &amp;quot;YX&amp;quot;&lt;br /&gt;
 trainz-build       2.9&lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image          &amp;quot;qld_region.jpg&amp;quot;&lt;br /&gt;
     width          240&lt;br /&gt;
     height         180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 kuid-table&lt;br /&gt;
 {&lt;br /&gt;
            &#039;&#039;all the kuid&#039;s above except for the kuid of this asset&#039;&#039;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The carz to be added need to be the latest type with a trackside tag to work in TS2010 or TS12, refer to [[HowTo/Build a Car for Traffic (stand-alone version)]]&lt;br /&gt;
&lt;br /&gt;
If your region has a car list then it can be used to add those carz to a route by adding the region tag to the route&#039;s config.txt as follows:-&lt;br /&gt;
&lt;br /&gt;
 region     &amp;lt;kuid:XXXXXX:YYYY&amp;gt;     ..............&#039;&#039;the kuid of your region&#039;&#039;&lt;br /&gt;
 carrate    4                      ..............&#039;&#039;an integer 3 to 50 in value to control&#039;&#039;&lt;br /&gt;
                                                 &#039;&#039;the delay between cars being spawned&#039;&#039;&lt;br /&gt;
                                                 &#039;&#039;(smaller value means more carz)&#039;&#039;&lt;br /&gt;
 ontheright 1                      ..............&#039;&#039;for countries where we drive on the&#039;&#039;&lt;br /&gt;
                                                  &#039;&#039;right hand side of the road&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Adding Carz to a Route Directly==&lt;br /&gt;
&lt;br /&gt;
You can add a car list to a route to either enable cars or add more cars than specified in the region.  Again the list must be an unbroken list starting at car0.&lt;br /&gt;
&lt;br /&gt;
Here is the config.txt of a test route used to test the carz in the list. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 region                                  &amp;lt;kuid:-1:7801&amp;gt;&lt;br /&gt;
 category-era                            &amp;quot;1800s&amp;quot;&lt;br /&gt;
 category-class                          &amp;quot;ZX&amp;quot;&lt;br /&gt;
 category-region                         &amp;quot;00&amp;quot;&lt;br /&gt;
 car0                                    &amp;lt;kuid:329364:1574&amp;gt; &lt;br /&gt;
 car1                                    &amp;lt;kuid:329364:1575&amp;gt;&lt;br /&gt;
 car2                                    &amp;lt;kuid:329364:1576&amp;gt;&lt;br /&gt;
 car3                                    &amp;lt;kuid:329364:1577&amp;gt;&lt;br /&gt;
 car4                                    &amp;lt;kuid:329364:1578&amp;gt;&lt;br /&gt;
 car5                                    &amp;lt;kuid:329364:1579&amp;gt;&lt;br /&gt;
 car6                                    &amp;lt;kuid:329364:1565&amp;gt;&lt;br /&gt;
 car7                                    &amp;lt;kuid:329364:1569&amp;gt;&lt;br /&gt;
 car8                                    &amp;lt;kuid:329364:1558&amp;gt;&lt;br /&gt;
 kuid                                    &amp;lt;kuid:329364:100020&amp;gt;&lt;br /&gt;
 kind                                    &amp;quot;map&amp;quot;&lt;br /&gt;
 username                                &amp;quot;Test&amp;quot;&lt;br /&gt;
 workingscale                            0&lt;br /&gt;
 workingunits                            0&lt;br /&gt;
 water                                   &amp;lt;kuid:-1:6342&amp;gt;&lt;br /&gt;
 description                             &lt;br /&gt;
 trainz-build                            3.3&lt;br /&gt;
 world-origin&lt;br /&gt;
 {&lt;br /&gt;
   latitude                              27,28,-1&lt;br /&gt;
   longitude                             153,2,1&lt;br /&gt;
   altitude                              0&lt;br /&gt;
 }&lt;br /&gt;
 string-table&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 kuid-table&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Content Creator Plus]] (CCP) is the easy way to add carz to the route.&lt;br /&gt;
Note that the carz must be category-class &amp;quot;VL&amp;quot; (land vehicles) for this to work.&lt;br /&gt;
&lt;br /&gt;
From [[Content Manager]] select &#039;&#039;&#039;Edit in Content Creator Plus&#039;&#039;&#039; and CCP will open.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:AddingCarz001.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Right Click on &#039;&#039;&#039;Map&#039;&#039;&#039; in the top left corner of the program window to open a pop-up menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:AddingCarz002.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the menu select &#039;&#039;&#039;car0&#039;&#039;&#039;. An empty car0 entry will appear in the RHS pane of the CCP window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:AddingCarz003.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Left Click on the Browse button (3 dots on the button).  The &#039;&#039;&#039;KUID Browser&#039;&#039;&#039; will open displaying a list of &amp;quot;scenery&amp;quot; items.  Unfortunately there is a bug in CCP so only built-in items are listed.  Click on the arrow next to &amp;quot;scenery&amp;quot; and select &amp;quot;(automatic)&amp;quot; from the drop down list. (It&#039;s at the top of the list)  The list will now contain all appropriate assets installed in the asset database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:AddingCarz004.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select a car from the KUID Browser list.  It will appear as car0 in the RHS pane of CCP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that when we right click on the Map entry there is NO car selection on the pop-up menu.  A little creative thinking is needed here.&lt;br /&gt;
&lt;br /&gt;
Save and close the route from CCP.&lt;br /&gt;
&lt;br /&gt;
Then from Content Manager, select the route and from the right click menu select &#039;&#039;&#039;Edit in Explorer&#039;&#039;&#039; and open the config.txt in NotePad.  Find the car0 entry and add empty car entries as follows:-&lt;br /&gt;
&lt;br /&gt;
 car0       &amp;lt;kuid:XXXXX:YYYY&amp;gt;&lt;br /&gt;
 car1&lt;br /&gt;
 car2&lt;br /&gt;
 car3&lt;br /&gt;
 car3&lt;br /&gt;
 car4&lt;br /&gt;
 &#039;&#039;etc for the number of carz you desire.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Save and Close from NotePad.&lt;br /&gt;
&lt;br /&gt;
In Content Manager select &#039;&#039;&#039;Edit in Content Creator Plus&#039;&#039;&#039; and CCP will open again.&lt;br /&gt;
&lt;br /&gt;
This time we will have empty car# entries that can be populated with the &#039;&#039;&#039;KUID Browser&#039;&#039;&#039; as above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:AddingCarz005.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When done save and close from CCP.&lt;br /&gt;
&lt;br /&gt;
The route will now be ready to use with traffic.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that the same CCP procedure can be used to add the car list to a region.&lt;br /&gt;
&lt;br /&gt;
If you do not add a &amp;quot;carrate&amp;quot; entry to the route config.txt, the game will use the default value of 5.&lt;br /&gt;
&lt;br /&gt;
If you do not add a &amp;quot;ontheright&amp;quot; entry to the route config.txt, the game will use the default value of 0 (boolean false); meaning the carz will drive on the LHS of the roads as in UK, Australia, Japan etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5598</id>
		<title>HowTo/Implement a Destination Sign System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5598"/>
		<updated>2013-08-28T05:06:19Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This document was inspired by the release from NormP of Surfside Trams 2 for TS12.  This is a fictional route with tramways on the Gold Coast in Australia.  The Gold Coast is near Brisbane where trams were used up to 1972.  &lt;br /&gt;
&lt;br /&gt;
The Brisbane trams modelled by motorman1066 seemed appropriate to use on the route, so were added.  To my surprise the destination boards for Brisbane appeared for use the session. Consequently, a set of destination boards was made for the Surfside Trams route, and this document details the steps required to get them to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Destination Boards ==&lt;br /&gt;
&lt;br /&gt;
These work by script controlled texture replacement so the format and config.txt are important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Motorman1066&#039;s trams all share the same destination boards for Brisbane, kuid2:108959:99901:2, and these are read into the tram script and provide an option selection from the properties button in surveyor. (more on this later)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this process on another route, eg Surfside Trams, a different set of destination signs is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An asset with set of textures for the Gold Coast was built by cloning and editing motorman1066&#039;s Brisbane ones.  In his case each texture has a destination name and route number.  The two bits of data are separated by texture mapping and displayed on the destination sign and the route number sign as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Phoenix_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each texture looks as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_sign_sample_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the boards are backlit at night with a white night mesh so the white text is transparent.&lt;br /&gt;
&lt;br /&gt;
The Surfside destination boards are a small set with only 10 destinations. Here is the complete config.txt.&lt;br /&gt;
&lt;br /&gt;
 kuid                &amp;lt;kuid:XXXXXX:YYYYYY&amp;gt;&lt;br /&gt;
 username            &amp;quot;SurfSideDestsignTextures&amp;quot;&lt;br /&gt;
 kind                &amp;quot;texture-group&amp;quot;&lt;br /&gt;
 trainz-build        2.9&lt;br /&gt;
   &lt;br /&gt;
 extensions&lt;br /&gt;
 {&lt;br /&gt;
   destnames-000000&lt;br /&gt;
   {&lt;br /&gt;
     0               &amp;quot;BLANK&amp;quot;&lt;br /&gt;
     1               &amp;quot;SEA WORLD DEPOT&amp;quot;&lt;br /&gt;
     2               &amp;quot;SEA WORLD&amp;quot;&lt;br /&gt;
     3               &amp;quot;CAVILL AVE&amp;quot;&lt;br /&gt;
     4               &amp;quot;SURFERS PARADISE&amp;quot;&lt;br /&gt;
     5               &amp;quot;PRIMARY SCHOOL&amp;quot;&lt;br /&gt;
     6               &amp;quot;BUNDALL&amp;quot;&lt;br /&gt;
     7               &amp;quot;SOUTHPORT POOL&amp;quot;&lt;br /&gt;
     8               &amp;quot;PACIFIC FAIR&amp;quot;&lt;br /&gt;
     9               &amp;quot;PACIFIC FAIR DEPOT&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 textures&lt;br /&gt;
 {&lt;br /&gt;
   0                 &amp;quot;Blank.texture&amp;quot;                [[File:Dest_texture0_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   1                 &amp;quot;dest0.texture&amp;quot;                [[File:Dest_texture1_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   2                 &amp;quot;dest1.texture&amp;quot;                [[File:Dest_texture2_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   3                 &amp;quot;dest2.texture&amp;quot;                [[File:Dest_texture3_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   4                 &amp;quot;dest3.texture&amp;quot;                [[File:Dest_texture4_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   5                 &amp;quot;dest4.texture&amp;quot;                [[File:Dest_texture5_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   6                 &amp;quot;dest5.texture&amp;quot;                [[File:Dest_texture6_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   7                 &amp;quot;dest6.texture&amp;quot;                [[File:Dest_texture7_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   8                 &amp;quot;dest7.texture&amp;quot;                [[File:Dest_texture8_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   9                 &amp;quot;dest8.texture&amp;quot;                [[File:Dest_texture9_PEV.jpg]]&lt;br /&gt;
 }&lt;br /&gt;
 category-class      &amp;quot;JO&amp;quot;&lt;br /&gt;
 category-era        &amp;quot;1940s;1950s;1960s&amp;quot;&lt;br /&gt;
 category-region     &amp;quot;AU&amp;quot;&lt;br /&gt;
 description         &amp;quot;Destination signs for Normp&#039;s Surf-Side Trams.&lt;br /&gt;
                      Derived from destination boards for Motorman1066 Brisbane trams.&lt;br /&gt;
                      Developed from an original concept created by Peter Denhert.&amp;quot;&lt;br /&gt;
 author              &amp;quot;motorman1066 amended by PEV&amp;quot;&lt;br /&gt;
 license             &amp;quot;etc&amp;quot;&lt;br /&gt;
 organisation        &amp;quot;Selz Tramz Workshopz 2006&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image           &amp;quot;destination sign 240.jpg&amp;quot;&lt;br /&gt;
     width           240&lt;br /&gt;
     height          180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the kind must be &amp;quot;texture-group&amp;quot; and category class must be &amp;quot;JO&amp;quot; (Other Textures).&lt;br /&gt;
Also note the sub-container name in the &amp;quot;extensions&amp;quot; container. It must start with lower case &amp;quot;destnames-&amp;quot; as shown above.  Put your own user ID number after it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram script generates a selection table which shows the items listed in the &amp;quot;extensions&amp;quot; container as destination board options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Selecting from the list chooses the texture of the same number.  So, from the above config.txt, texture 1 (dest0.texture) is SEA WORLD DEPOT and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tram Car (or loco) Requirements ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the trams were cloned from motorman1066&#039;s assets and the names changed to represent use by me on Surfside Trams route.  The kuid-table is changed so that the asset for new destinations is included. See below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram cars must be built to support texture replacement on the destination sign. The config.txt must have effects container named &amp;quot;destsign&amp;quot; in the mesh table as below.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
  default&lt;br /&gt;
  {&lt;br /&gt;
    mesh                                &amp;quot;554 body/554 body.lm&amp;quot;&lt;br /&gt;
    auto-create                         1&lt;br /&gt;
    &lt;br /&gt;
    effects&lt;br /&gt;
    {&lt;br /&gt;
      destsign&lt;br /&gt;
      {&lt;br /&gt;
        kind                            &amp;quot;texture-replacement&amp;quot;&lt;br /&gt;
        texture                         &amp;quot;texture dest.texture&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 etc&lt;br /&gt;
   &lt;br /&gt;
 kuid-table&lt;br /&gt;
 {&lt;br /&gt;
   bogey                                 &amp;lt;kuid2:108959:50554:1&amp;gt;&lt;br /&gt;
   enginesound                           &amp;lt;kuid2:108959:53554:1&amp;gt;&lt;br /&gt;
   enginespec                            &amp;lt;kuid2:108959:51554:1&amp;gt;&lt;br /&gt;
   hornsound                             &amp;lt;kuid2:108959:54554:1&amp;gt;&lt;br /&gt;
   interior                              &amp;lt;kuid2:108959:55554:1&amp;gt;&lt;br /&gt;
   product                               &amp;lt;kuid:-3:10060&amp;gt;&lt;br /&gt;
   destsigntextures                      &amp;lt;kuid:329364:100013&amp;gt; ......  &#039;&#039;the new destination sign asset&#039;&#039;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Additionally the kuid-table of the tram config.txt must have the entry &amp;quot;destsigntextures&amp;quot;, as above, which calls the kuid of the destination sign asset above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;texture dest.texture&amp;quot; is a blank sign the same as the blank in the destination sign asset. It is located in the same folder as the parent mesh (in this case the 554 body folder.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram assets in this case have a script (tram.gs) of class called &amp;quot;Tram&amp;quot;.  The script from Peter Dehnert provides the interface to select destinations in Surveyor and to communicate with the &amp;quot;Change Destination Sign To&amp;quot; rule [[File:Dest_change_sign_PEV.jpg]] allowing destinations to be changed by the driver AI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the Destination Sign System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firstly we add the &amp;quot;DestsignTable&amp;quot; Rule to the Session (or route, depending on layer setting). We can choose to be in the session layer to make the sessions more flexible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the Edit Session Rules Button [[File:Dest_Session_Edit_Button_PEV.jpg]] at the top left of the surveyor screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Edit Session window will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the Add button to add a rule to the session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The selection box for Rules will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step02_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scroll down to find and select the &amp;quot;DestSignTable&amp;quot; rule.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rule is added to the session as shown.  This rule searches the session and route assets for kind &amp;quot;texture-group&amp;quot; assets and builds a table of such assets. It also adds the &amp;quot;Change Destination to&amp;quot; [[File:Dest_change_sign_PEV.jpg]] to the driver command menu.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01a_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the &amp;quot;DestSignTable&amp;quot; rule from the Edit Session box and Press the Edit Button (circled in the image above).  The Rule properties box is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step07_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that &#039;&#039;Enable industries/station as destination&#039;&#039; and &#039;&#039;Enable trackmarks as destinations&#039;&#039; are &#039;&#039;&#039;not&#039;&#039;&#039; checked (ticked) and that &#039;&#039;Enable table of destinations&#039;&#039; is checked (ticked) as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on &#039;&#039;&#039;Import destinations from texture-group&#039;&#039;&#039;.  The &amp;quot;Select texture-group&amp;quot; box will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the appropriate texture group.. in this case &amp;quot;SurfSideDestTextures&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A list of destinations will be added as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step09_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accept the edits by clicking on the check (tick) button on the above windows.&lt;br /&gt;
&lt;br /&gt;
This completes the set up of the &amp;quot;DestSignTable&amp;quot; rule; we can now add trams to our session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We Have Added a Tram ==&lt;br /&gt;
&lt;br /&gt;
When we have placed the tram car on a track in Trainz Surveyor, press the properties button in the rolling stock tab,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Properties_button_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and left click on the tram itself. The tram properties window appears where we can add a running number and enable our destination list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step03_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The circled text is the name of the texture-group for our destination sign.  &lt;br /&gt;
&lt;br /&gt;
If the texture group is incorrect, left click on the text and &amp;quot;Select texture-group&amp;quot; box will appear allowing us to change the texture group to &amp;quot;SurfSideDestsignTextures&amp;quot; as previously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can also select a destination sign immediately if desired by left clicking Destination text as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step05_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Destination selection box is displayed allowing us to choose an appropriate destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step11_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Driver AI can be used to change destination signs at any time. Click on the green arrow to insert a driver command.  From the menu choose &amp;quot;Change Destination To&amp;quot; and select a destination from the drop down menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step12_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The destinations can change automatically at the appropriate location with this driver command.  When in &#039;&#039;Driver&#039;&#039; mouse over the icon to find the new destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5597</id>
		<title>HowTo/Implement a Destination Sign System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5597"/>
		<updated>2013-08-28T05:05:38Z</updated>

		<summary type="html">&lt;p&gt;Pev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This document was inspired by the release from NormP of Surfside Trams 2 for TS12.  This is a fictional route with tramways on the Gold Coast in Australia.  The Gold Coast is near Brisbane where trams were used up to 1972.  &lt;br /&gt;
&lt;br /&gt;
The Brisbane trams modelled by motorman1066 seemed appropriate to use on the route, so were added.  To my surprise the destination boards for Brisbane appeared for use the session. Consequently, a set of destination boards was made for the Surfside Trams route, and this document details the steps required to get them to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Destination Boards ==&lt;br /&gt;
&lt;br /&gt;
These work by script controlled texture replacement so the format and config.txt are important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Motorman1066&#039;s trams all share the same destination boards for Brisbane, kuid2:108959:99901:2, and these are read into the tram script and provide an option selection from the properties button in surveyor. (more on this later)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this process on another route, eg Surfside Trams, a different set of destination signs is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An asset with set of textures for the Gold Coast was built by cloning and editing motorman1066&#039;s Brisbane ones.  In his case each texture has a destination name and route number.  The two bits of data are separated by texture mapping and displayed on the destination sign and the route number sign as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Phoenix_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each texture looks as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_sign_sample_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the boards are backlit at night with a white night mesh so the white text is transparent.&lt;br /&gt;
&lt;br /&gt;
The Surfside destination boards are a small set with only 10 destinations. Here is the complete config.txt.&lt;br /&gt;
&lt;br /&gt;
 kuid                &amp;lt;kuid:XXXXXX:YYYYYY&amp;gt;&lt;br /&gt;
 username            &amp;quot;SurfSideDestsignTextures&amp;quot;&lt;br /&gt;
 kind                &amp;quot;texture-group&amp;quot;&lt;br /&gt;
 trainz-build        2.9&lt;br /&gt;
   &lt;br /&gt;
 extensions&lt;br /&gt;
 {&lt;br /&gt;
   destnames-000000&lt;br /&gt;
   {&lt;br /&gt;
     0               &amp;quot;BLANK&amp;quot;&lt;br /&gt;
     1               &amp;quot;SEA WORLD DEPOT&amp;quot;&lt;br /&gt;
     2               &amp;quot;SEA WORLD&amp;quot;&lt;br /&gt;
     3               &amp;quot;CAVILL AVE&amp;quot;&lt;br /&gt;
     4               &amp;quot;SURFERS PARADISE&amp;quot;&lt;br /&gt;
     5               &amp;quot;PRIMARY SCHOOL&amp;quot;&lt;br /&gt;
     6               &amp;quot;BUNDALL&amp;quot;&lt;br /&gt;
     7               &amp;quot;SOUTHPORT POOL&amp;quot;&lt;br /&gt;
     8               &amp;quot;PACIFIC FAIR&amp;quot;&lt;br /&gt;
     9               &amp;quot;PACIFIC FAIR DEPOT&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 textures&lt;br /&gt;
 {&lt;br /&gt;
   0                 &amp;quot;Blank.texture&amp;quot;                [[File:Dest_texture0_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   1                 &amp;quot;dest0.texture&amp;quot;                [[File:Dest_texture1_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   2                 &amp;quot;dest1.texture&amp;quot;                [[File:Dest_texture2_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   3                 &amp;quot;dest2.texture&amp;quot;                [[File:Dest_texture3_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   4                 &amp;quot;dest3.texture&amp;quot;                [[File:Dest_texture4_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   5                 &amp;quot;dest4.texture&amp;quot;                [[File:Dest_texture5_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   6                 &amp;quot;dest5.texture&amp;quot;                [[File:Dest_texture6_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   7                 &amp;quot;dest6.texture&amp;quot;                [[File:Dest_texture7_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   8                 &amp;quot;dest7.texture&amp;quot;                [[File:Dest_texture8_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   9                 &amp;quot;dest8.texture&amp;quot;                [[File:Dest_texture9_PEV.jpg]]&lt;br /&gt;
 }&lt;br /&gt;
 category-class      &amp;quot;JO&amp;quot;&lt;br /&gt;
 category-era        &amp;quot;1940s;1950s;1960s&amp;quot;&lt;br /&gt;
 category-region     &amp;quot;AU&amp;quot;&lt;br /&gt;
 description         &amp;quot;Destination signs for Normp&#039;s Surf-Side Trams.&lt;br /&gt;
                      Derived from destination boards for Motorman1066 Brisbane trams.&lt;br /&gt;
                      Developed from an original concept created by Peter Denhert.&amp;quot;&lt;br /&gt;
 author              &amp;quot;motorman1066 amended by PEV&amp;quot;&lt;br /&gt;
 license             &amp;quot;etc&amp;quot;&lt;br /&gt;
 organisation        &amp;quot;Selz Tramz Workshopz 2006&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image           &amp;quot;destination sign 240.jpg&amp;quot;&lt;br /&gt;
     width           240&lt;br /&gt;
     height          180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the kind must be &amp;quot;texture-group&amp;quot; and category class must be &amp;quot;JO&amp;quot; (Other Textures).&lt;br /&gt;
Also note the sub-container name in the &amp;quot;extensions&amp;quot; container. It must start with lower case &amp;quot;destnames-&amp;quot; as shown above.  Put your own user ID number after it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram script generates a selection table which shows the items listed in the &amp;quot;extensions&amp;quot; container as destination board options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Selecting from the list chooses the texture of the same number.  So, from the above config.txt, texture 1 (dest0.texture) is SEA WORLD DEPOT and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tram Car (or loco) Requirements ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the trams were cloned from motorman1066&#039;s assets and the names changed to represent use by me on Surfside Trams route.  The kuid-table is changed so that the asset for new destinations is included. See below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram cars must be built to support texture replacement on the destination sign. The config.txt must have effects container named &amp;quot;destsign&amp;quot; in the mesh table as below.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
  default&lt;br /&gt;
  {&lt;br /&gt;
    mesh                                &amp;quot;554 body/554 body.lm&amp;quot;&lt;br /&gt;
    auto-create                         1&lt;br /&gt;
    &lt;br /&gt;
    effects&lt;br /&gt;
    {&lt;br /&gt;
      destsign&lt;br /&gt;
      {&lt;br /&gt;
        kind                            &amp;quot;texture-replacement&amp;quot;&lt;br /&gt;
        texture                         &amp;quot;texture dest.texture&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 etc&lt;br /&gt;
&lt;br /&gt;
 kuid-table&lt;br /&gt;
 {&lt;br /&gt;
   bogey                                 &amp;lt;kuid2:108959:50554:1&amp;gt;&lt;br /&gt;
   enginesound                           &amp;lt;kuid2:108959:53554:1&amp;gt;&lt;br /&gt;
   enginespec                            &amp;lt;kuid2:108959:51554:1&amp;gt;&lt;br /&gt;
   hornsound                             &amp;lt;kuid2:108959:54554:1&amp;gt;&lt;br /&gt;
   interior                              &amp;lt;kuid2:108959:55554:1&amp;gt;&lt;br /&gt;
   product                               &amp;lt;kuid:-3:10060&amp;gt;&lt;br /&gt;
   destsigntextures                      &amp;lt;kuid:329364:100013&amp;gt; ......  &#039;&#039;the new destination sign asset&#039;&#039;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Additionally the kuid-table of the tram config.txt must have the entry &amp;quot;destsigntextures&amp;quot;, as above, which calls the kuid of the destination sign asset above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;texture dest.texture&amp;quot; is a blank sign the same as the blank in the destination sign asset. It is located in the same folder as the parent mesh (in this case the 554 body folder.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram assets in this case have a script (tram.gs) of class called &amp;quot;Tram&amp;quot;.  The script from Peter Dehnert provides the interface to select destinations in Surveyor and to communicate with the &amp;quot;Change Destination Sign To&amp;quot; rule [[File:Dest_change_sign_PEV.jpg]] allowing destinations to be changed by the driver AI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the Destination Sign System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firstly we add the &amp;quot;DestsignTable&amp;quot; Rule to the Session (or route, depending on layer setting). We can choose to be in the session layer to make the sessions more flexible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the Edit Session Rules Button [[File:Dest_Session_Edit_Button_PEV.jpg]] at the top left of the surveyor screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Edit Session window will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the Add button to add a rule to the session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The selection box for Rules will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step02_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scroll down to find and select the &amp;quot;DestSignTable&amp;quot; rule.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rule is added to the session as shown.  This rule searches the session and route assets for kind &amp;quot;texture-group&amp;quot; assets and builds a table of such assets. It also adds the &amp;quot;Change Destination to&amp;quot; [[File:Dest_change_sign_PEV.jpg]] to the driver command menu.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01a_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the &amp;quot;DestSignTable&amp;quot; rule from the Edit Session box and Press the Edit Button (circled in the image above).  The Rule properties box is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step07_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that &#039;&#039;Enable industries/station as destination&#039;&#039; and &#039;&#039;Enable trackmarks as destinations&#039;&#039; are &#039;&#039;&#039;not&#039;&#039;&#039; checked (ticked) and that &#039;&#039;Enable table of destinations&#039;&#039; is checked (ticked) as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on &#039;&#039;&#039;Import destinations from texture-group&#039;&#039;&#039;.  The &amp;quot;Select texture-group&amp;quot; box will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the appropriate texture group.. in this case &amp;quot;SurfSideDestTextures&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A list of destinations will be added as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step09_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accept the edits by clicking on the check (tick) button on the above windows.&lt;br /&gt;
&lt;br /&gt;
This completes the set up of the &amp;quot;DestSignTable&amp;quot; rule; we can now add trams to our session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We Have Added a Tram ==&lt;br /&gt;
&lt;br /&gt;
When we have placed the tram car on a track in Trainz Surveyor, press the properties button in the rolling stock tab,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Properties_button_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and left click on the tram itself. The tram properties window appears where we can add a running number and enable our destination list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step03_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The circled text is the name of the texture-group for our destination sign.  &lt;br /&gt;
&lt;br /&gt;
If the texture group is incorrect, left click on the text and &amp;quot;Select texture-group&amp;quot; box will appear allowing us to change the texture group to &amp;quot;SurfSideDestsignTextures&amp;quot; as previously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can also select a destination sign immediately if desired by left clicking Destination text as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step05_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Destination selection box is displayed allowing us to choose an appropriate destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step11_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Driver AI can be used to change destination signs at any time. Click on the green arrow to insert a driver command.  From the menu choose &amp;quot;Change Destination To&amp;quot; and select a destination from the drop down menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step12_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The destinations can change automatically at the appropriate location with this driver command.  When in &#039;&#039;Driver&#039;&#039; mouse over the icon to find the new destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5596</id>
		<title>HowTo/Implement a Destination Sign System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5596"/>
		<updated>2013-08-28T04:57:24Z</updated>

		<summary type="html">&lt;p&gt;Pev: spacing adjusted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This document was inspired by the release from NormP of Surfside Trams 2 for TS12.  This is a fictional route with tramways on the Gold Coast in Australia.  The Gold Coast is near Brisbane where trams were used up to 1972.  &lt;br /&gt;
&lt;br /&gt;
The Brisbane trams modelled by motorman1066 seemed appropriate to use on the route, so were added.  To my surprise the destination boards for Brisbane appeared for use the session. Consequently, a set of destination boards was made for the Surfside Trams route, and this document details the steps required to get them to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Destination Boards ==&lt;br /&gt;
&lt;br /&gt;
These work by script controlled texture replacement so the format and config.txt are important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Motorman1066&#039;s trams all share the same destination boards for Brisbane, kuid2:108959:99901:2, and these are read into the tram script and provide an option selection from the properties button in surveyor. (more on this later)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this process on another route, eg Surfside Trams, a different set of destination signs is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An asset with set of textures for the Gold Coast was built by cloning and editing motorman1066&#039;s Brisbane ones.  In his case each texture has a destination name and route number.  The two bits of data are separated by texture mapping and displayed on the destination sign and the route number sign as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Phoenix_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each texture looks as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_sign_sample_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the boards are backlit at night with a white night mesh so the white text is transparent.&lt;br /&gt;
&lt;br /&gt;
The Surfside destination boards are a small set with only 10 destinations. Here is the complete config.txt.&lt;br /&gt;
&lt;br /&gt;
 kuid                &amp;lt;kuid:XXXXXX:YYYYYY&amp;gt;&lt;br /&gt;
 username            &amp;quot;SurfSideDestsignTextures&amp;quot;&lt;br /&gt;
 kind                &amp;quot;texture-group&amp;quot;&lt;br /&gt;
 trainz-build        2.9&lt;br /&gt;
   &lt;br /&gt;
 extensions&lt;br /&gt;
 {&lt;br /&gt;
   destnames-000000&lt;br /&gt;
   {&lt;br /&gt;
     0               &amp;quot;BLANK&amp;quot;&lt;br /&gt;
     1               &amp;quot;SEA WORLD DEPOT&amp;quot;&lt;br /&gt;
     2               &amp;quot;SEA WORLD&amp;quot;&lt;br /&gt;
     3               &amp;quot;CAVILL AVE&amp;quot;&lt;br /&gt;
     4               &amp;quot;SURFERS PARADISE&amp;quot;&lt;br /&gt;
     5               &amp;quot;PRIMARY SCHOOL&amp;quot;&lt;br /&gt;
     6               &amp;quot;BUNDALL&amp;quot;&lt;br /&gt;
     7               &amp;quot;SOUTHPORT POOL&amp;quot;&lt;br /&gt;
     8               &amp;quot;PACIFIC FAIR&amp;quot;&lt;br /&gt;
     9               &amp;quot;PACIFIC FAIR DEPOT&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 textures&lt;br /&gt;
 {&lt;br /&gt;
   0                 &amp;quot;Blank.texture&amp;quot;                [[File:Dest_texture0_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   1                 &amp;quot;dest0.texture&amp;quot;                [[File:Dest_texture1_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   2                 &amp;quot;dest1.texture&amp;quot;                [[File:Dest_texture2_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   3                 &amp;quot;dest2.texture&amp;quot;                [[File:Dest_texture3_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   4                 &amp;quot;dest3.texture&amp;quot;                [[File:Dest_texture4_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   5                 &amp;quot;dest4.texture&amp;quot;                [[File:Dest_texture5_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   6                 &amp;quot;dest5.texture&amp;quot;                [[File:Dest_texture6_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   7                 &amp;quot;dest6.texture&amp;quot;                [[File:Dest_texture7_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   8                 &amp;quot;dest7.texture&amp;quot;                [[File:Dest_texture8_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   9                 &amp;quot;dest8.texture&amp;quot;                [[File:Dest_texture9_PEV.jpg]]&lt;br /&gt;
 }&lt;br /&gt;
 category-class      &amp;quot;JO&amp;quot;&lt;br /&gt;
 category-era        &amp;quot;1940s;1950s;1960s&amp;quot;&lt;br /&gt;
 category-region     &amp;quot;AU&amp;quot;&lt;br /&gt;
 description         &amp;quot;Destination signs for Normp&#039;s Surf-Side Trams.&lt;br /&gt;
                      Derived from destination boards for Motorman1066 Brisbane trams.&lt;br /&gt;
                      Developed from an original concept created by Peter Denhert.&amp;quot;&lt;br /&gt;
 author              &amp;quot;motorman1066 amended by PEV&amp;quot;&lt;br /&gt;
 license             &amp;quot;etc&amp;quot;&lt;br /&gt;
 organisation        &amp;quot;Selz Tramz Workshopz 2006&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image           &amp;quot;destination sign 240.jpg&amp;quot;&lt;br /&gt;
     width           240&lt;br /&gt;
     height          180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the kind must be &amp;quot;texture-group&amp;quot; and category class must be &amp;quot;JO&amp;quot; (Other Textures).&lt;br /&gt;
Also note the sub-container name in the &amp;quot;extensions&amp;quot; container. It must start with lower case &amp;quot;destnames-&amp;quot; as shown above.  Put your own user ID number after it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram script generates a selection table which shows the items listed in the &amp;quot;extensions&amp;quot; container as destination board options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Selecting from the list chooses the texture of the same number.  So, from the above config.txt, texture 1 (dest0.texture) is SEA WORLD DEPOT and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tram Car (or loco) Requirements ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the trams were cloned from motorman1066&#039;s assets and the names changed to represent use by me on Surfside Trams route.  The kuid-table is changed so that the asset for new destinations is included. See below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram cars must be built to support texture replacement on the destination sign. The config.txt must have effects container named &amp;quot;destsign&amp;quot; in the mesh table as below.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
  default&lt;br /&gt;
  {&lt;br /&gt;
    mesh                                &amp;quot;554 body/554 body.lm&amp;quot;&lt;br /&gt;
    auto-create                         1&lt;br /&gt;
    &lt;br /&gt;
    effects&lt;br /&gt;
    {&lt;br /&gt;
      destsign&lt;br /&gt;
      {&lt;br /&gt;
        kind                            &amp;quot;texture-replacement&amp;quot;&lt;br /&gt;
        texture                         &amp;quot;texture dest.texture&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 etc&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;texture dest.texture&amp;quot; is a blank sign the same as the blank in the destination sign asset. It is located in the same folder as the parent mesh (in this case the 554 body folder.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally the kuid-table of the tram config.txt must have an entry &amp;quot;destsigntextures&amp;quot; which calls the kuid of the destination sign asset above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram assets in this case have a script (tram.gs) of class called &amp;quot;Tram&amp;quot;.  The script from Peter Dehnert provides the interface to select destinations in Surveyor and to communicate with the &amp;quot;Change Destination Sign To&amp;quot; rule [[File:Dest_change_sign_PEV.jpg]] allowing destinations to be changed by the driver AI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the Destination Sign System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firstly we add the &amp;quot;DestsignTable&amp;quot; Rule to the Session (or route, depending on layer setting). We can choose to be in the session layer to make the sessions more flexible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the Edit Session Rules Button [[File:Dest_Session_Edit_Button_PEV.jpg]] at the top left of the surveyor screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Edit Session window will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the Add button to add a rule to the session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The selection box for Rules will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step02_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scroll down to find and select the &amp;quot;DestSignTable&amp;quot; rule.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rule is added to the session as shown.  This rule searches the session and route assets for kind &amp;quot;texture-group&amp;quot; assets and builds a table of such assets. It also adds the &amp;quot;Change Destination to&amp;quot; [[File:Dest_change_sign_PEV.jpg]] to the driver command menu.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01a_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the &amp;quot;DestSignTable&amp;quot; rule from the Edit Session box and Press the Edit Button (circled in the image above).  The Rule properties box is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step07_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that &#039;&#039;Enable industries/station as destination&#039;&#039; and &#039;&#039;Enable trackmarks as destinations&#039;&#039; are &#039;&#039;&#039;not&#039;&#039;&#039; checked (ticked) and that &#039;&#039;Enable table of destinations&#039;&#039; is checked (ticked) as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on &#039;&#039;&#039;Import destinations from texture-group&#039;&#039;&#039;.  The &amp;quot;Select texture-group&amp;quot; box will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the appropriate texture group.. in this case &amp;quot;SurfSideDestTextures&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A list of destinations will be added as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step09_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accept the edits by clicking on the check (tick) button on the above windows.&lt;br /&gt;
&lt;br /&gt;
This completes the set up of the &amp;quot;DestSignTable&amp;quot; rule; we can now add trams to our session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We Have Added a Tram ==&lt;br /&gt;
&lt;br /&gt;
When we have placed the tram car on a track in Trainz Surveyor, press the properties button in the rolling stock tab,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Properties_button_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and left click on the tram itself. The tram properties window appears where we can add a running number and enable our destination list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step03_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The circled text is the name of the texture-group for our destination sign.  &lt;br /&gt;
&lt;br /&gt;
If the texture group is incorrect, left click on the text and &amp;quot;Select texture-group&amp;quot; box will appear allowing us to change the texture group to &amp;quot;SurfSideDestsignTextures&amp;quot; as previously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can also select a destination sign immediately if desired by left clicking Destination text as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step05_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Destination selection box is displayed allowing us to choose an appropriate destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step11_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Driver AI can be used to change destination signs at any time. Click on the green arrow to insert a driver command.  From the menu choose &amp;quot;Change Destination To&amp;quot; and select a destination from the drop down menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step12_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The destinations can change automatically at the appropriate location with this driver command.  When in &#039;&#039;Driver&#039;&#039; mouse over the icon to find the new destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5595</id>
		<title>HowTo/Implement a Destination Sign System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Implement_a_Destination_Sign_System&amp;diff=5595"/>
		<updated>2013-08-28T04:56:28Z</updated>

		<summary type="html">&lt;p&gt;Pev: /* Tram Car (or loco) Requirements */  spelling fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This document was inspired by the release from NormP of Surfside Trams 2 for TS12.  This is a fictional route with tramways on the Gold Coast in Australia.  The Gold Coast is near Brisbane where trams were used up to 1972.  &lt;br /&gt;
&lt;br /&gt;
The Brisbane trams modelled by motorman1066 seemed appropriate to use on the route, so were added.  To my surprise the destination boards for Brisbane appeared for use the session. Consequently, a set of destination boards was made for the Surfside Trams route, and this document details the steps required to get them to work.&lt;br /&gt;
&lt;br /&gt;
== The Destination Boards ==&lt;br /&gt;
&lt;br /&gt;
These work by script controlled texture replacement so the format and config.txt are important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Motorman1066&#039;s trams all share the same destination boards for Brisbane, kuid2:108959:99901:2, and these are read into the tram script and provide an option selection from the properties button in surveyor. (more on this later)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this process on another route, eg Surfside Trams, a different set of destination signs is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An asset with set of textures for the Gold Coast was built by cloning and editing motorman1066&#039;s Brisbane ones.  In his case each texture has a destination name and route number.  The two bits of data are separated by texture mapping and displayed on the destination sign and the route number sign as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Phoenix_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each texture looks as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_sign_sample_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the boards are backlit at night with a white night mesh so the white text is transparent.&lt;br /&gt;
&lt;br /&gt;
The Surfside destination boards are a small set with only 10 destinations. Here is the complete config.txt.&lt;br /&gt;
&lt;br /&gt;
 kuid                &amp;lt;kuid:XXXXXX:YYYYYY&amp;gt;&lt;br /&gt;
 username            &amp;quot;SurfSideDestsignTextures&amp;quot;&lt;br /&gt;
 kind                &amp;quot;texture-group&amp;quot;&lt;br /&gt;
 trainz-build        2.9&lt;br /&gt;
   &lt;br /&gt;
 extensions&lt;br /&gt;
 {&lt;br /&gt;
   destnames-000000&lt;br /&gt;
   {&lt;br /&gt;
     0               &amp;quot;BLANK&amp;quot;&lt;br /&gt;
     1               &amp;quot;SEA WORLD DEPOT&amp;quot;&lt;br /&gt;
     2               &amp;quot;SEA WORLD&amp;quot;&lt;br /&gt;
     3               &amp;quot;CAVILL AVE&amp;quot;&lt;br /&gt;
     4               &amp;quot;SURFERS PARADISE&amp;quot;&lt;br /&gt;
     5               &amp;quot;PRIMARY SCHOOL&amp;quot;&lt;br /&gt;
     6               &amp;quot;BUNDALL&amp;quot;&lt;br /&gt;
     7               &amp;quot;SOUTHPORT POOL&amp;quot;&lt;br /&gt;
     8               &amp;quot;PACIFIC FAIR&amp;quot;&lt;br /&gt;
     9               &amp;quot;PACIFIC FAIR DEPOT&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 textures&lt;br /&gt;
 {&lt;br /&gt;
   0                 &amp;quot;Blank.texture&amp;quot;                [[File:Dest_texture0_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   1                 &amp;quot;dest0.texture&amp;quot;                [[File:Dest_texture1_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   2                 &amp;quot;dest1.texture&amp;quot;                [[File:Dest_texture2_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   3                 &amp;quot;dest2.texture&amp;quot;                [[File:Dest_texture3_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   4                 &amp;quot;dest3.texture&amp;quot;                [[File:Dest_texture4_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   5                 &amp;quot;dest4.texture&amp;quot;                [[File:Dest_texture5_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   6                 &amp;quot;dest5.texture&amp;quot;                [[File:Dest_texture6_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   7                 &amp;quot;dest6.texture&amp;quot;                [[File:Dest_texture7_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   8                 &amp;quot;dest7.texture&amp;quot;                [[File:Dest_texture8_PEV.jpg]]&lt;br /&gt;
  &lt;br /&gt;
   9                 &amp;quot;dest8.texture&amp;quot;                [[File:Dest_texture9_PEV.jpg]]&lt;br /&gt;
 }&lt;br /&gt;
 category-class      &amp;quot;JO&amp;quot;&lt;br /&gt;
 category-era        &amp;quot;1940s;1950s;1960s&amp;quot;&lt;br /&gt;
 category-region     &amp;quot;AU&amp;quot;&lt;br /&gt;
 description         &amp;quot;Destination signs for Normp&#039;s Surf-Side Trams.&lt;br /&gt;
                      Derived from destination boards for Motorman1066 Brisbane trams.&lt;br /&gt;
                      Developed from an original concept created by Peter Denhert.&amp;quot;&lt;br /&gt;
 author              &amp;quot;motorman1066 amended by PEV&amp;quot;&lt;br /&gt;
 license             &amp;quot;etc&amp;quot;&lt;br /&gt;
 organisation        &amp;quot;Selz Tramz Workshopz 2006&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image           &amp;quot;destination sign 240.jpg&amp;quot;&lt;br /&gt;
     width           240&lt;br /&gt;
     height          180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the kind must be &amp;quot;texture-group&amp;quot; and category class must be &amp;quot;JO&amp;quot; (Other Textures).&lt;br /&gt;
Also note the sub-container name in the &amp;quot;extensions&amp;quot; container. It must start with lower case &amp;quot;destnames-&amp;quot; as shown above.  Put your own user ID number after it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram script generates a selection table which shows the items listed in the &amp;quot;extensions&amp;quot; container as destination board options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Selecting from the list chooses the texture of the same number.  So, from the above config.txt, texture 1 (dest0.texture) is SEA WORLD DEPOT and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tram Car (or loco) Requirements ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case the trams were cloned from motorman1066&#039;s assets and the names changed to represent use by me on Surfside Trams route.  The kuid-table is changed so that the asset for new destinations is included. See below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram cars must be built to support texture replacement on the destination sign. The config.txt must have effects container named &amp;quot;destsign&amp;quot; in the mesh table as below.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
  default&lt;br /&gt;
  {&lt;br /&gt;
    mesh                                &amp;quot;554 body/554 body.lm&amp;quot;&lt;br /&gt;
    auto-create                         1&lt;br /&gt;
    &lt;br /&gt;
    effects&lt;br /&gt;
    {&lt;br /&gt;
      destsign&lt;br /&gt;
      {&lt;br /&gt;
        kind                            &amp;quot;texture-replacement&amp;quot;&lt;br /&gt;
        texture                         &amp;quot;texture dest.texture&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 etc&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;texture dest.texture&amp;quot; is a blank sign the same as the blank in the destination sign asset. It is located in the same folder as the parent mesh (in this case the 554 body folder.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally the kuid-table of the tram config.txt must have an entry &amp;quot;destsigntextures&amp;quot; which calls the kuid of the destination sign asset above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tram assets in this case have a script (tram.gs) of class called &amp;quot;Tram&amp;quot;.  The script from Peter Dehnert provides the interface to select destinations in Surveyor and to communicate with the &amp;quot;Change Destination Sign To&amp;quot; rule [[File:Dest_change_sign_PEV.jpg]] allowing destinations to be changed by the driver AI.&lt;br /&gt;
&lt;br /&gt;
== Using the Destination Sign System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firstly we add the &amp;quot;DestsignTable&amp;quot; Rule to the Session (or route, depending on layer setting). We can choose to be in the session layer to make the sessions more flexible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press the Edit Session Rules Button [[File:Dest_Session_Edit_Button_PEV.jpg]] at the top left of the surveyor screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Edit Session window will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the Add button to add a rule to the session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The selection box for Rules will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step02_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scroll down to find and select the &amp;quot;DestSignTable&amp;quot; rule.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rule is added to the session as shown.  This rule searches the session and route assets for kind &amp;quot;texture-group&amp;quot; assets and builds a table of such assets. It also adds the &amp;quot;Change Destination to&amp;quot; [[File:Dest_change_sign_PEV.jpg]] to the driver command menu.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step01a_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the &amp;quot;DestSignTable&amp;quot; rule from the Edit Session box and Press the Edit Button (circled in the image above).  The Rule properties box is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step07_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that &#039;&#039;Enable industries/station as destination&#039;&#039; and &#039;&#039;Enable trackmarks as destinations&#039;&#039; are &#039;&#039;&#039;not&#039;&#039;&#039; checked (ticked) and that &#039;&#039;Enable table of destinations&#039;&#039; is checked (ticked) as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on &#039;&#039;&#039;Import destinations from texture-group&#039;&#039;&#039;.  The &amp;quot;Select texture-group&amp;quot; box will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the appropriate texture group.. in this case &amp;quot;SurfSideDestTextures&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A list of destinations will be added as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step09_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accept the edits by clicking on the check (tick) button on the above windows.&lt;br /&gt;
&lt;br /&gt;
This completes the set up of the &amp;quot;DestSignTable&amp;quot; rule; we can now add trams to our session.&lt;br /&gt;
&lt;br /&gt;
== We Have Added a Tram ==&lt;br /&gt;
&lt;br /&gt;
When we have placed the tram car on a track in Trainz Surveyor, press the properties button in the rolling stock tab,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_Properties_button_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and left click on the tram itself. The tram properties window appears where we can add a running number and enable our destination list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step03_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The circled text is the name of the texture-group for our destination sign.  &lt;br /&gt;
&lt;br /&gt;
If the texture group is incorrect, left click on the text and &amp;quot;Select texture-group&amp;quot; box will appear allowing us to change the texture group to &amp;quot;SurfSideDestsignTextures&amp;quot; as previously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step08_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can also select a destination sign immediately if desired by left clicking Destination text as shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step05_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Destination selection box is displayed allowing us to choose an appropriate destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step11_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Driver AI can be used to change destination signs at any time. Click on the green arrow to insert a driver command.  From the menu choose &amp;quot;Change Destination To&amp;quot; and select a destination from the drop down menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dest_step12_PEV.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The destinations can change automatically at the appropriate location with this driver command.  When in &#039;&#039;Driver&#039;&#039; mouse over the icon to find the new destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return to How To Index ==&lt;br /&gt;
 &lt;br /&gt;
[[HowToGuides]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Pev</name></author>
	</entry>
</feed>