<?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=Gevrard</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=Gevrard"/>
	<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/wiki/Special:Contributions/Gevrard"/>
	<updated>2026-11-05T07:35:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=8103</id>
		<title>&quot;mesh-table&quot; container</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=8103"/>
		<updated>2015-04-02T07:18:15Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: /* Supported Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
==KIND Hierarchy==&lt;br /&gt;
The &amp;quot;mesh-table&amp;quot; container is a top-level [[config.txt file]] entry used by various [[Content_Configuration#Content_Types|Content Types]].&lt;br /&gt;
&lt;br /&gt;
The mesh-table is a list of mesh subcontainers with no standalone tags. Each mesh subcontainer uses the following format. Tags are parsed in a standardised format, but not all [[Content_Configuration#Content_Types|Content Types]] support the full range of tags listed below. Each mesh derives its name from the subcontainer&#039;s tag name. These names are used to refer to specific meshes from within the mesh-table and also from script.&lt;br /&gt;
&lt;br /&gt;
This page describes [[trainz-build]] 4.1.&lt;br /&gt;
&lt;br /&gt;
==Known Dependent Parent Types==&lt;br /&gt;
:&#039;&#039;Main article, see: [[KIND Mesh]]&#039;&#039;&lt;br /&gt;
The Content Types listed here use the mesh-table container as part of their definition.&lt;br /&gt;
&lt;br /&gt;
* [[KIND Industry]]&lt;br /&gt;
* [[KIND MOJunction]]&lt;br /&gt;
* [[KIND Pantograph]]&lt;br /&gt;
* [[KIND Scenery]]&lt;br /&gt;
* [[KIND Track]]&lt;br /&gt;
* [[KIND Traincar]]&lt;br /&gt;
&lt;br /&gt;
The following config containers also reference back to their Asset&#039;s mesh-table container in some fashion:&lt;br /&gt;
* [[&amp;quot;junction-vertices&amp;quot; container]]&lt;br /&gt;
* [[&amp;quot;track-lod-tree&amp;quot; container]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also&#039;&#039;&#039;{{bullR}} [[Modeling Guidelines]] {{bull}} [[Modeling Scenery]] &lt;br /&gt;
&lt;br /&gt;
==Level of Detail (LOD)==&lt;br /&gt;
&lt;br /&gt;
For discussions of LOD see [[Level_of_Detail]], [[LOD_Example]] and [[LM.txt_file]]&lt;br /&gt;
&lt;br /&gt;
==Mesh subcontainer==&lt;br /&gt;
Each mesh subcontainer supports the following tags. Each tag is shown here with its default value. {{FAB-todo| Use Pseudo-table to recast as a real wikitable.}}&lt;br /&gt;
&lt;br /&gt;
 mesh-asset                           &amp;lt;NULLKUID&amp;gt;&lt;br /&gt;
 mesh                                 &amp;quot;&amp;quot;&lt;br /&gt;
 anim                                 &amp;quot;&amp;quot;&lt;br /&gt;
 lod-level                            255&lt;br /&gt;
 mesh-season                          255&lt;br /&gt;
 att                                  &amp;quot;&amp;quot;&lt;br /&gt;
 att-parent                           &amp;quot;&amp;quot;&lt;br /&gt;
 opacity                              1.0&lt;br /&gt;
 position                             0,0,0&lt;br /&gt;
 orientation                          0,0,0&lt;br /&gt;
 auto-create                          0&lt;br /&gt;
 use-parent-bounds                    0&lt;br /&gt;
 should-respond-to-clicks             1&lt;br /&gt;
 animation-loop-speed                 0&lt;br /&gt;
 critical-animation                   1&lt;br /&gt;
 effects  {&lt;br /&gt;
 }&lt;br /&gt;
 night-mesh-base                      &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;*&amp;lt;/big&amp;gt; The att-parent defaults to &amp;quot;default&amp;quot; which is the parent mesh.  The att-parent tag can include a path.&lt;br /&gt;
&lt;br /&gt;
==Supported Tags==&lt;br /&gt;
Each mesh subcontainer supports the following tags. &lt;br /&gt;
&lt;br /&gt;
===anim===&lt;br /&gt;
:Type:       File&lt;br /&gt;
:Default:    &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc:       The animation file (.kin) exported from the 3D modelling tool and/or [[Trainz_Mesh_Importer|TrainzMeshImporter]]. This may include a sub-path.&lt;br /&gt;
&lt;br /&gt;
===animation-loop-speed===&lt;br /&gt;
:Type: Float&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This tag must be present if the asset is to animate when placed. If this tag is not present when placed the animation will not play by default, but may play if controlled by script. A different value (e.g. 0.5, 2.0) may be used in the tag to play the animation at a different speed from that created in the 3D modelling tool.&lt;br /&gt;
&lt;br /&gt;
===att===&lt;br /&gt;
:Type: Attachment point&lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The mesh (and animation if present) is inserted at a mesh attachment point rather than the origin (without this line the mesh is placed relative to the origin of the parent model).&lt;br /&gt;
&lt;br /&gt;
===att-parent===&lt;br /&gt;
:Type: Mesh name&lt;br /&gt;
:Default: Defaults to &amp;quot;default&amp;quot; which is the parent mesh&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The tag tells Trainz in which mesh the attachment point is located. The insertion attachment point is located within the mesh ‘name’ , as listed in the config.txt.&lt;br /&gt;
&lt;br /&gt;
===auto-create===&lt;br /&gt;
:Type: Bool&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Compulsory No&lt;br /&gt;
:Desc: The model is generated automatically when placed, or when you load a map which includes the model. In some instances you don’t want the mesh visible (as this may be controlled through script). If auto-create is 0 the mesh will not be visible when placed.&lt;br /&gt;
&lt;br /&gt;
===collision-data-generation-mode===&lt;br /&gt;
:Type: Collision mode&lt;br /&gt;
:Default: &amp;quot;default&amp;quot;&lt;br /&gt;
:Compulsory No&lt;br /&gt;
:Desc: Determines the method to use to generate collision data for this mesh. Collision data is used to select and move the asset in surveyor, and for physics simulation when necessary.&lt;br /&gt;
:Supported collision data generation modes:&lt;br /&gt;
:* &amp;quot;default&amp;quot; - use game&#039;s default value (in general &amp;quot;collated&amp;quot;, but can vary in specific cases)&lt;br /&gt;
:* &amp;quot;disabled&amp;quot; - completely discard this sub-mesh for collision data generation purposes. Causes the sub-mesh to be fully ignored for asset picking and physics simulation.&lt;br /&gt;
:* &amp;quot;collated&amp;quot; - the geometry of this sub-mesh will be added to that of the other sub-meshes selecting this option (within the asset), and one collision object will be generated for the resulting conglomerate.&lt;br /&gt;
:* &amp;quot;separate-shape-convex-hull&amp;quot; - this sub-mesh will generate its own individual collision object, as a convex hull.&lt;br /&gt;
:* &amp;quot;separate-shape-triangle-mesh&amp;quot; - this sub-mesh will generate its own individual collision object, as a triangle mesh. This is the most accurate option but also the most costly in terms of performance, only use when specifically needed.&lt;br /&gt;
&lt;br /&gt;
===collision-mesh===&lt;br /&gt;
:Type: Mesh name&lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory No&lt;br /&gt;
:Desc: Specifies a mesh to use instead of this mesh to generate collision data - must be an entry of this mesh-table. The method used to generate the collision data (through the &amp;quot;[[%22mesh-table%22_container#collision-data-generation-mode|collision-data-generation-mode]]&amp;quot; tag) is the one specified on this entry, which is allowed to be different from that of the referenced mesh.&lt;br /&gt;
&lt;br /&gt;
===critical-animation===&lt;br /&gt;
:Type: Bool&lt;br /&gt;
:Default: 1  (TBD: surely this should be false (0))&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: &amp;quot;critical-animation&amp;quot; indicates that this mesh&#039;s animation generates events which are critical to the script system&#039;s behavior. If your asset is not scripted, does not use scripted animation events, or only uses the events for display purposes and will not break if the occasional event is missed, this tag should be set to &#039;&#039;false (0)&#039;&#039;. Leaving this flag set to &#039;&#039;true (1)&#039;&#039; is a &#039;&#039;&#039;significant&#039;&#039;&#039; performance penalty.&lt;br /&gt;
&lt;br /&gt;
====custom-render-plugin====&lt;br /&gt;
:Type: [[KUID]]&lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc:  TBD&lt;br /&gt;
&lt;br /&gt;
===effects===&lt;br /&gt;
:Type: [[Corona Effect]] | [[Name Effect]] | [[Attachment Effect]] | [[Animation Effect]] | [[Texture-Replacement Effect]]&lt;br /&gt;
:Default {}&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The effects container can contain a list of effect subcontainers. The effect subcontainers support the following generic tags.&lt;br /&gt;
&lt;br /&gt;
: kind &amp;quot;&amp;quot;&lt;br /&gt;
: name &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Each effect subcontainer supports additional tags depending on the effect kind. The following effect kinds are supported:&lt;br /&gt;
&lt;br /&gt;
:* [[Corona Effect]]&lt;br /&gt;
:* [[Name Effect]]&lt;br /&gt;
:* [[Attachment Effect]]&lt;br /&gt;
:* [[Animation Effect]]&lt;br /&gt;
:* [[Texture-Replacement Effect]]&lt;br /&gt;
&lt;br /&gt;
===light===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: True(1)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: If true, this tag causes the non-stitched mesh to be linked into the Trainz lighting model. This causes the mesh to respond to directional lighting changes, such as the angle of the sun or train headlights. This is also necessary for normal maps to work correctly. Zeroing this tag will remove the mesh from the Trainz lighting model. Generally speaking, you should never zero this tag- almost every effect that can be achieved through this approach can be better served by using an appropriate normal map or appropriate geometry detail.&lt;br /&gt;
&lt;br /&gt;
:This tag has no effect on stitched meshes, which are always affected by the Trainz lighting. Since the content creator has no direct influence over which meshes are subject to [[Mesh Stitching]], and all indirect influences are subject to change between Trainz editions, it is strongly recommended that this tag is avoided to ensure that results are consistent.&lt;br /&gt;
&lt;br /&gt;
===lod-level===&lt;br /&gt;
:Type: Int (0-8)&lt;br /&gt;
:Default: 255&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The object LOD level at which this mesh is displayed. The default value (255) indicates that this mesh is visible at all detail levels.  See also [[KIND Mesh]] for the &#039;mesh-detail-level&#039; tag.&lt;br /&gt;
&lt;br /&gt;
===mesh===&lt;br /&gt;
:Type: Mesh name&lt;br /&gt;
:Default: &amp;quot;&amp;quot; (will raise error if null)&lt;br /&gt;
:Compulsory: Yes (3.4)&lt;br /&gt;
:Desc: The ‘main’ mesh name. This may include a sub-path.  ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows. Use .im files or reference an [[LM.txt_file]] file if you wish your asset to have ‘Level of Detail’ mesh reduction.&lt;br /&gt;
:The mesh name can also refer to an IM file in a mesh asset library if the mesh-asset tag is specified.&lt;br /&gt;
&lt;br /&gt;
===mesh-asset===&lt;br /&gt;
:Type: [[KUID]]&lt;br /&gt;
:Default: &amp;lt;NULLKUID&amp;gt;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Specifies a mesh asset library to be used in conjunction with the &#039;mesh&#039; tag.  The mesh name specified in the &#039;mesh&#039; tag must be located in this asset as Content Manager not check for the existence of the mesh.  If the mesh is not located in the root folder of the mesh asset then include the path as part of the mesh name in the &#039;mesh&#039; tag.&lt;br /&gt;
&lt;br /&gt;
===mesh-scale===&lt;br /&gt;
:Type: Floatlist&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This tag defines a minimum and maximum scaling value for the mesh, where 1.0 is the size as modelled. Each instance of the mesh that exists in the world will randomise within this range. Randomisation will not change between runs or between Trainz editions, but may change based on factors such as the position of the mesh in the world. This tag is currently only supported on SpeedTree assets; attempts to use this tag on other assets results in undefined behaviour.&lt;br /&gt;
&lt;br /&gt;
===mesh-season===&lt;br /&gt;
:Type: Int (0-250)&lt;br /&gt;
:Default: 255&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The season index for which this mesh is displayed. The default value (255) indicates that this mesh is visible in all seasons.  See also [[&amp;quot;Season-selector&amp;quot; container]].&lt;br /&gt;
&lt;br /&gt;
===night-mesh-base===&lt;br /&gt;
:Type: Mesh name &lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This night mesh is linked to the specified mesh and is visible only at night. It is invisible if the specified mesh is invisible, (if the auto-create 0 line were used so the specified mesh can be controlled by script).&lt;br /&gt;
&lt;br /&gt;
===opacity===&lt;br /&gt;
:Type: Float (0.0 - 1.0)(See below)&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Specifies the overall transparency of the mesh. Values other than 0.0 or 1.0 employ alpha blending and a value of 0.0 has the same effect as hiding the mesh. Note that this tag is buggy in TS2009 prior to SP4.&lt;br /&gt;
&lt;br /&gt;
===orientation===&lt;br /&gt;
:Type: Floatlist (radians)&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Orientation of X,Y,Z axes. Allows a submesh to be rotated relative to its insertion point.  To reverse a mesh by 180 degrees about the Z axis, add the tag: orientation 0,0,3.14159&lt;br /&gt;
&lt;br /&gt;
===position===&lt;br /&gt;
:Type: Floatlist (metres)&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Position of the mesh using X,Y,Z axes relative to its insertion point.&lt;br /&gt;
&lt;br /&gt;
===radius===&lt;br /&gt;
:Type: Float &lt;br /&gt;
:Default: TBD&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: TBD (should this be in [[&amp;quot;mesh-table&amp;quot;_container_(interior_version)]]?)&lt;br /&gt;
&lt;br /&gt;
===should-respond-to-clicks===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: True(1)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: If set to false (0) on a mesh that is part of an asset, it will remove that mesh from the calculation of the &#039;bounding box&#039; that will be used to check whether the user clicked on that particular asset.  This is useful for light ray effects or animations which are significantly outside the normal bounding volume, and may cause movement to focus on the wrong asset.  For instance, a traincar may need a mesh marked with should-respond-to-clicks set to false in order to ensure that the click is detected for the correct traincar when it is part of a consist. First introduced with TS12 SP1 HF4 (build 61388). Default value (True) is the prior behaviour (the mesh &#039;&#039;will&#039;&#039; be considered part of the bounding box for the purpose of registering clicks). &lt;br /&gt;
&lt;br /&gt;
===test-collisions===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: TBD&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: TBD (should this be in [[&amp;quot;mesh-table&amp;quot;_container_(interior_version)]]?)&lt;br /&gt;
&lt;br /&gt;
===use-parent-bounds===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: False(0)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: When enabled, this tag indicates that render culling should occur using the whole object&#039;s bounding box rather than this mesh&#039;s bounding box. Bounding boxes on individual meshes may not update correctly when animation moves the object&#039;s geometry any significant distance from the bind position. This flag can help mitigate such effects, at a tiny performance penalty.&lt;br /&gt;
&lt;br /&gt;
==Mesh-Table Example==&lt;br /&gt;
The following is an example of a simple mesh-table which implements two levels of detail.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default-lod0&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod0.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 0&lt;br /&gt;
   }&lt;br /&gt;
   default-lod1&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod1.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 1&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Config Container|mesh-table container]]&lt;br /&gt;
{{ORP-bot|mesh-table container}}&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8096</id>
		<title>HowTo/Configure a spline for collisions</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8096"/>
		<updated>2015-04-01T07:07:53Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tunnels, bridges, and other types of splines can interact with smoke particles by preventing penetration, which provides a more realistic effect. In order for this functionality to work as efficiently as possible, it is important to correctly configure spline assets.&lt;br /&gt;
&lt;br /&gt;
This functionality is only available from [[trainz-build]] 4.1.&lt;br /&gt;
&lt;br /&gt;
==Selecting meshes to use for collisions==&lt;br /&gt;
This is generally done on a case-by-case basis and will depend on how the asset was built. If the spline contains several meshes then the most important thing is to only enable collision detection for the relevant meshes. For a tunnel, this means that the walls, roof and tunnel mouth are likely to be the only relevant meshes. Catenaries, tracks and other slim/flat objects will add little to no benefit and can generally be ignored. The same principles apply to other types of splines.&lt;br /&gt;
&lt;br /&gt;
By default, each sub-mesh of a spline will participate in collision detection by generating a collision object based on the mesh geometry. To override that and exclude specific meshes, simply set the mesh-table entry&#039;s [[%22mesh-table%22_container#collision-data-generation-mode|collision-data-generation-mode]] tag to &amp;quot;disabled&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* &amp;quot;separate-shape-triangle-mesh&amp;quot; is the default behavior for spline meshes.&lt;br /&gt;
* &amp;quot;separate-shape-convex-hull&amp;quot; provides faster collision detection at the expense of accuracy. If the mesh is a concave surface (such as the inner arch of a tunnel), this will not give suitable results.&lt;br /&gt;
* &amp;quot;collated&amp;quot; is not supported for spline meshes and will result in the default behavior being applied.&lt;br /&gt;
&lt;br /&gt;
Extract of an example config file:&lt;br /&gt;
&lt;br /&gt;
 kind                                    &amp;quot;track&amp;quot;&lt;br /&gt;
 istrack                                 1&lt;br /&gt;
 trainz-build                            4.1 &lt;br /&gt;
 enable-pfx-collisions                   1&lt;br /&gt;
 &lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   track&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                 &amp;quot;track.im&amp;quot;&lt;br /&gt;
     collision-data-generation-mode       &amp;quot;disabled&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   roof&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                 &amp;quot;roof.im&amp;quot;&lt;br /&gt;
     collision-data-generation-mode       &amp;quot;separate-shape-triangle-mesh&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
  &lt;br /&gt;
   wall&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                &amp;quot;wall.im&amp;quot;&lt;br /&gt;
     collision-data-generation-mode      &amp;quot;separate-shape-convex-hull&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Disabling collisions for an entire spline==&lt;br /&gt;
Some splines as a whole won&#039;t have any visible impact on collision detection and should therefore be completely ignored. This is done by setting the [[KIND_Track#enable-pfx-collisions|enable-pfx-collisions]] boolean tag to 0 in the config file of a given spline asset. Tracks and roads are good examples of assets that serve no purpose regarding collision detection, as they are slim and generally positioned directly on the ground. This makes them unlikely to be reached by smoke particles and even if this were to happen, the particles would just hit the terrain instead. Turning off collision detection for spline-based grass or bushes can also be a good idea. These are also quite unlikely to be in situations where smoke will collide with them and are typically sparse enough to allow large smoke particles to travel through/around them with no visible impact.&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8090</id>
		<title>HowTo/Configure a spline for collisions</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8090"/>
		<updated>2015-04-01T06:52:20Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tunnels, bridges, and other types of splines can interact with smoke particles by preventing penetration, which provides a more realistic effect. In order for this functionality to work as efficiently as possible, it is important to correctly configure spline assets.&lt;br /&gt;
&lt;br /&gt;
This functionality is only available to modern splines (2.9 or higher, 4.1 recommended).&lt;br /&gt;
&lt;br /&gt;
This page describes [[trainz-build]] 4.1.&lt;br /&gt;
&lt;br /&gt;
==Selecting meshes to use for collisions==&lt;br /&gt;
This is generally done on a case-by-case basis and will depend on how the asset was built. If the spline contains several meshes then the most important thing to do is to only include the relevant meshes for collision detection. For a tunnel, this means that the walls, roof and tunnel mouth are likely to be the only relevant meshes. Catenaries, tracks and other slim/flat objects will add little to no benefit and can generally be ignored. The same principles apply to other types of splines.&lt;br /&gt;
&lt;br /&gt;
By default, each sub-mesh of a spline will participate in collision detection by generating a collision object based on the mesh geometry. To override that and exclude specific meshes, simply set the mesh-table entry&#039;s [[%22mesh-table%22_container#collision-data-generation-mode|collision-data-generation-mode]] tag to &amp;quot;disabled&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* &amp;quot;separate-shape-triangle-mesh&amp;quot; is the default behaviour for spline meshes.&lt;br /&gt;
* &amp;quot;separate-shape-convex-hull&amp;quot; provides faster collision detection at the expense of accuracy. If the mesh is a concave surface (such as the inner arch of a tunnel), this will not give suitable results.&lt;br /&gt;
* &amp;quot;collated&amp;quot; is not supported for spline meshes and will result in the default behaviour being applied.&lt;br /&gt;
&lt;br /&gt;
Extract of an example config file:&lt;br /&gt;
&lt;br /&gt;
 kind                                    &amp;quot;track&amp;quot;&lt;br /&gt;
 istrack                                 1&lt;br /&gt;
 trainz-build                            4.1 &lt;br /&gt;
 enable-pfx-collisions                   1&lt;br /&gt;
 &lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   track&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                 &amp;quot;track.im&amp;quot;&lt;br /&gt;
     collision-data-generation-mode       &amp;quot;disabled&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   roof&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                 &amp;quot;roof.im&amp;quot;&lt;br /&gt;
     collision-data-generation-mode       &amp;quot;separate-shape-triangle-mesh&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
  &lt;br /&gt;
   wall&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                &amp;quot;wall.im&amp;quot;&lt;br /&gt;
     collision-data-generation-mode      &amp;quot;separate-shape-convex-hull&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Disabling collisions for an entire spline==&lt;br /&gt;
Some splines as a whole won&#039;t have any visible impact on collision detection and should therefore be completely ignored. This is done by setting the [[KIND_Track#enable-pfx-collisions|enable-pfx-collisions]] boolean tag to 0 in the config file of a given spline asset. Tracks and roads are good examples of assets that serve no purpose regarding collision detection, as they are slim and generally positioned directly on the ground. This makes them unlikely to be reached by smoke particles and if this was the case, particles would just hit the terrain instead. Turning off collision detection for spline-based grass or bushes can also be a good idea. These are also quite unlikely to be in situations where smoke will collide with them or often sparse enough to allow large smoke particles to travel through/around them with no visible impact.&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=KIND_Track&amp;diff=8087</id>
		<title>KIND Track</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=KIND_Track&amp;diff=8087"/>
		<updated>2015-04-01T05:08:37Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
=KIND Track=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KIND Track&#039;&#039;&#039; provides the sole asset kind for spline-based assets from [[Trainz-build]] version 2.9 and up. Contrary to the name, just as a Road type used to be defined as a Track asset, assets of this kind now include simple track, multitrack, bridges, tunnels, hedges, roads, walls, embankments, local power lines, high-voltage power lines, and so on. Assets of this kind use a rendering technique previously known as &amp;quot;stitched track&amp;quot;. Now that all other spline rendering is obsolete, it is simply known as &amp;quot;track&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This page describes [[trainz-build]] 4.1.&lt;br /&gt;
&lt;br /&gt;
=KIND Hierarchy=&lt;br /&gt;
==Parent Classes==&lt;br /&gt;
* [[KIND TrainzBaseSpec]] ,  [[Category-class]]  tag definitions of the sets &lt;br /&gt;
{[[Category-class#S ... SPLINES|S ... SPLINES]] and [[Category-class#T ... TRACK|T ... TRACK]]}, which is to say the Category-class list of spline types: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SF     Fences&lt;br /&gt;
SR     Roads&lt;br /&gt;
SP     Platforms&lt;br /&gt;
SS     Structure&lt;br /&gt;
SV     Vegetation&lt;br /&gt;
TB     Bridge&lt;br /&gt;
TF     Fixed Track&lt;br /&gt;
TR     Rails&lt;br /&gt;
TT     Tunnel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Child Classes==&lt;br /&gt;
*[[Attached-track]] is an asset embedded in an industry asset which inherits track characteristics from an track which is attached to it&#039;s end vertices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Supported Tags=&lt;br /&gt;
The [[KIND Track]] in a [[config.txt file]] supports the following tags when defined by the [[TrainzBaseSpec]] . Each tag is show here with its default value.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 track&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 endcap-prev&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 endcap-next&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 [[attached-splines]]&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 season-selector&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 carrate 0&lt;br /&gt;
 isroad 0&lt;br /&gt;
 isfreeway 0&lt;br /&gt;
 is_silent 0&lt;br /&gt;
 numlanes 0&lt;br /&gt;
 istrack 0&lt;br /&gt;
 istunnel 0&lt;br /&gt;
 surveyor-only 0&lt;br /&gt;
 visible-on-minimap (opposite of surveyor-only)&lt;br /&gt;
 track-sound&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 traffic-speed 10.0&lt;br /&gt;
 tunnel-roof-height 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==mesh-table==&lt;br /&gt;
The [[&amp;quot;mesh-table&amp;quot; Container]] provides details about the track and end-cap meshes which comprise this asset. Most advanced mesh-table options are not available for use at the current time. The important thing is to specify the meshes. Specifically, the &#039;mesh&#039; tag should be used to specify an IM file, and the &#039;mesh-asset&#039; tag can be used to specify an alternative source asset for the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==track==&lt;br /&gt;
The &amp;quot;track&amp;quot; tag is compulsory and determines how the spline geometry is formed from meshes. It is specified as a [[Track Part Container]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==attached-splines==&lt;br /&gt;
The [[&amp;quot;attached-splines&amp;quot; container]] provides a mechanism for having child splines attached which follow the shape of this parent spline at a slightly offset. Attached splines are used where a spline with one set of rendering or functional behaviour needs to be coupled with a spline with a different set of rendering or functional behaviours. For example, a bridge (scenery) with attached track (functional), or a set of pylons (no stretching or shearing) with some wires strung between them (shearing and stretching to fit.) The attached splines may be render-only splines which effectively don&#039;t exist beyond their rendering behaviour, or they may be fully functional splines whose only specialty is that they move and delete with their parent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==endcap-prev &amp;amp; endcap-next==&lt;br /&gt;
The &amp;quot;endcap-prev&amp;quot; and &amp;quot;endcap-next&amp;quot; tags are specified in the same way, but are not compulsory. If present, these end caps are inserted past the ends of the spline in each direction unless the spline flows onto another spline of the same type. This allows the content creator to &amp;quot;seal&amp;quot; the spline geometry without having to introduce inefficient sealing polygons at each subdivision. The endcaps obey the normal fit-to-spline behavior except that they continue straight in the instantaneous direction of the end of the spline. The endcaps inherit their default settings from the asset&#039;s &amp;quot;track&amp;quot; tag but any individual values may be overridden as desired.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Season-selector==&lt;br /&gt;
The [[&amp;quot;Season-selector&amp;quot; container]] allows for the selection of a season index, which may be used by the [[&amp;quot;track-lod-tree&amp;quot; container]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==carrate==&lt;br /&gt;
(Only applicable to splines which have &#039;isroad&#039; set.)&lt;br /&gt;
&lt;br /&gt;
The game waits between 1x to 3x this decimal value between generating carz on this road.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==isroad==&lt;br /&gt;
If set (1), splines of this type are considered roads. Roads support the generation of Carz. Roads are flagged as blocked by [[KIND MOCrossing]] while the crossing gate is closed. Road splines can generally be joined, even if they are different assets.&lt;br /&gt;
&lt;br /&gt;
If not otherwise specified, assets with the &#039;isroad&#039; tag set are members of the &amp;quot;Road Spline Group&amp;quot; [[KIND_Asset-group#Known Asset-groups|&amp;lt;kuid:30501:100045&amp;gt;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==isfreeway==&lt;br /&gt;
(Only applicable to splines which have &#039;isroad&#039; set.)&lt;br /&gt;
&lt;br /&gt;
If set (1), this boolean tag causes a multilane road to act as a freeway. This allows carz to change lanes at will, and causes all traffic to flow in the spline&#039;s forward direction only. Overtaking is still allowed on non-freeway roads.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==is_silent==&lt;br /&gt;
(Only applicable to splines which have &#039;istrack&#039; set.)&lt;br /&gt;
&lt;br /&gt;
If set (1), this boolean tag disables the playing of per-axle sounds for vehicles on the spline.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==numlanes==&lt;br /&gt;
(Only applicable to splines which have &#039;isroad&#039; set.)&lt;br /&gt;
&lt;br /&gt;
Defines the number of carz lanes on a road. Each lane is considered to be 1.7 meters wide. If the road is a freeway, all traffic flows in the same direction.&lt;br /&gt;
TBD: What, if anything, does this mean for a non-freeway road?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==istrack==&lt;br /&gt;
If set (1), this boolean tag causes the spline to be treated as a &amp;quot;track&amp;quot;, meaning that trains can be expected to run on the spline.&lt;br /&gt;
&lt;br /&gt;
This affects the visibility of the spline on the minimap, where the spline assets shows up in the surveyor pickers, which surveyor tools can operator on the asset, and whether automatic junction placement is enabled.&lt;br /&gt;
&lt;br /&gt;
Track splines can generally be joined, even if they are different assets.&lt;br /&gt;
&lt;br /&gt;
If not otherwise specified, assets with the &#039;istrack&#039; tag set are members of the &amp;quot;Track Spline Group&amp;quot; [[KIND_Asset-group#Known Asset-groups|&amp;lt;kuid:30501:100043&amp;gt;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==istunnel==&lt;br /&gt;
If set (1), this boolean tag causes the spline to be treated &amp;quot;like a tunnel&amp;quot;. Despite the name, this does not directly relate to the true tunnel spline functionality (see the &#039;tunnel-roof-height&#039; tag for details.)&lt;br /&gt;
&lt;br /&gt;
Some types of derailment are disabled while in a tunnel because the resultant user experience would be poor due to inter-penentration of the tunnel and terrain by the train vehicles and the player&#039;s camera.&lt;br /&gt;
&lt;br /&gt;
The script function Vehicle.IsInTunnel() returns &#039;true&#039; while a vehicle&#039;s origin is on a tunnel spline.&lt;br /&gt;
&lt;br /&gt;
If the user is in &#039;external&#039; or &#039;auto tracking&#039; camera mode while the camera target is in a tunnel, the camera changes to &amp;quot;tunnel external&amp;quot; mode instead.&lt;br /&gt;
&lt;br /&gt;
While the camera target is in a tunnel, environmental sounds are reduced to 50% volume.&lt;br /&gt;
&lt;br /&gt;
Some types of vehicle particle emitter are disabled while the vehicle is in a tunnel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==surveyor-only==&lt;br /&gt;
If set (1), this boolean value causes the asset to be invisible and non-functional in Driver. This is typically used for splines which provide editing assistance, such as templates, markers or rulers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==visible-on-minimap==&lt;br /&gt;
If clear (0), hides this spline from the minimap. Splines with non-render-only children are never shown on the minimap. Note that this tag does not have a fixed default value, but rather defaults to the opposite of the &#039;surveyor-only&#039; tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==track-sound==&lt;br /&gt;
(Only applicable to splines which have &#039;istrack&#039; set.)&lt;br /&gt;
&lt;br /&gt;
An optional [[&amp;quot;track-sound&amp;quot; container]] which assists in calculating which sound to play while a train vehicle is on this track.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==traffic-speed==&lt;br /&gt;
(Only applicable to splines which have &#039;isroad&#039; set.)&lt;br /&gt;
&lt;br /&gt;
Defines the carz speed limit of the road in meters per second. Carz currently travel at up to 80%-110% (depending on the car) of the speed limit, except when overtaking. This tag does not relate to trains in any way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==tunnel-roof-height==&lt;br /&gt;
Used by tunnels to determine the roof height in meters allowed by the terrain hole. If less than or equal to zero, no terrain holes are generated. If greater than zero, this spline is considered a true tunnel- it will generate holes in the terrain mesh, its approach angle to the terrain mesh will be locked to 45° increments, and the endpoints will snap to the 10m grid size.&lt;br /&gt;
&lt;br /&gt;
Tunnels are intended for running a spline underneath the terrain mesh.&lt;br /&gt;
&lt;br /&gt;
Tunnel splines attempt to curve such that the spline terminates at a 45° angle increment. This helps ensure that entrance holes can be successfully created through the terrain mesh.&lt;br /&gt;
&lt;br /&gt;
Tunnel splines have slightly modified editing semantics in Surveyor. Vertex markers are visible in different conditions. Smoothing the ground around a tunnel is not permitted. The tunnel spline always follows the spline gradient rather than reacting to the ground height.&lt;br /&gt;
&lt;br /&gt;
If not otherwise specified, assets with the &#039;istunnel&#039; tag set are members of the &amp;quot;Tunnel Spline Group&amp;quot; [[KIND_Asset-group#Known Asset-groups|&amp;lt;kuid:30501:100044&amp;gt;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==enable-pfx-collisions==&lt;br /&gt;
Bool value, defaults to 1 and is not compulsory. Defines whether or not this track object should be used for collision detection against particles (e.g. smoke, steam). Disabling it for objects that are unlikely to interact with particles is a good idea.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Meshes=&lt;br /&gt;
&lt;br /&gt;
A track asset is usually comprised of several meshes. Each mesh represents a piece of the spline, which is repeated end-of-end with various transformations in order to create the whole spline. Multiple meshes allow for LOD, detail randomisation, and so on - the selection of which mesh to use at various places on the spline is defined by the [[&amp;quot;track-lod-tree&amp;quot; container]]s.&lt;br /&gt;
&lt;br /&gt;
Meshes should make use of a normal map and a single high resolution diffuse texture. For performance reasons, a single material (ie. single texture; see the notes on material sharing between meshes) should be used for all meshes, as opposed to using a separate material for each. The material may use either alpha masking (1-bit alpha) or alpha blending, however any alpha blends will not be sorted (not against other polygons in the track itself, nor against other alpha-blended polygons in the scene.) For this reason, alpha blending should only be used low to the ground such that a line from the camera to the mesh will pass through no other alpha-blended object before reaching the ground. Normal z-buffer behavior will apply to both alpha-blended and alpha-masked meshes.&lt;br /&gt;
&lt;br /&gt;
The various mesh pieces that comprise a track are modelled in such that any type may fit to any other without an obvious seam. Pieces are not strictly required to be symmetrical, as they will never be rotated with respect to the previous piece, however it should be noted that splines which support multi-way joins can result in a construct where a spline loops back and connects to itself coming in the opposite direction.&lt;br /&gt;
&lt;br /&gt;
Some approximate polygon guidelines follow. Creators should avoid using more polygons that they require to accurately depict the object in question.&lt;br /&gt;
&lt;br /&gt;
* Extreme detail mesh - used for close-ups. 1000 polys per 2m segment.&lt;br /&gt;
&lt;br /&gt;
* High detail mesh - used at close range. 200 polys per 2m segment.&lt;br /&gt;
&lt;br /&gt;
* Mid detail mesh - used at mid range. 100 polys per 10m segment.&lt;br /&gt;
&lt;br /&gt;
* Low detail mesh - used at far range. 6 polys per 10m segment. Tracks are textured onto the ballast, rather than polygon-modelled.&lt;br /&gt;
&lt;br /&gt;
* Initial end-cap - used at the start of the spline. 100 polys.&lt;br /&gt;
&lt;br /&gt;
* Final end-cap - used at the end of the spline. 100 polys.&lt;br /&gt;
&lt;br /&gt;
The end-caps provide any polygons necessary to &amp;quot;close&amp;quot; the spline so that it does not appear hollow when seen from end-on. The other meshes do not include any such polygons. The end-caps are automatically applied by the game wherever a transition is made from one track type to another, or where the track begins or ends abruptly.&lt;br /&gt;
&lt;br /&gt;
The length of each mesh is specified independantly. It is recommended that each is made as long as reasonably possible within the alloted polygon budget.&lt;br /&gt;
&lt;br /&gt;
When modelling a track spline, care should be taken to ensure that the top of the rail is exactly 0.3m above the origin. This ensures that it meets the train vehicle&#039;s wheels with no overlap and no gap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Spline Placement=&lt;br /&gt;
&lt;br /&gt;
Meshes may be specified to follow their placement spline as closely as possible (previously: bendy) or to stay straight but shear to prevent seams. This is discussed in detail in the [[&amp;quot;track-lod-tree&amp;quot; container]].&lt;br /&gt;
&lt;br /&gt;
Vertices on the mesh may fall into one of two height categories:&lt;br /&gt;
* Grounded - The vertex positioning is based on the ground height.&lt;br /&gt;
* Spline - The vertex positioning is based on the placement spline.&lt;br /&gt;
The height category of a vertex is determined from it&#039;s relative height within the mesh - if it is less than or equal to the per-mesh-specified grounding height, it is considered grounded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Performance=&lt;br /&gt;
Actual performance will vary based on the following factors:&lt;br /&gt;
* Distance at which the High-detail LODs drop out. Generally this should be extremely close.&lt;br /&gt;
* Number of polygons in the lower LODs. Generally this should be very low.&lt;br /&gt;
* Number of materials used. Ideally, a single material is used for all meshes, rather than one or more per mesh.&lt;br /&gt;
* Length of each mesh (longer is better).&lt;br /&gt;
* Efficiency of the [[&amp;quot;track-lod-tree&amp;quot; container]].&lt;br /&gt;
* User-customisable detail settings.&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Downloads=&lt;br /&gt;
* [[Media:TS2009-track.zip]] - The MAX source for the [[Auran]] [[TS2009]] example track. Distributed from the TrainzDev site for education purposes only. No license for the reproduction or redistribution of the included model or textures is granted.&lt;br /&gt;
* [[Media:TS2012-tunnel.rar]] - The MAX source for asset: Tunnel Double Track  &amp;lt;KUID:523:19721248&amp;gt;. Distributed from the TrainzDev site for education purposes only. No license for the reproduction or redistribution of the included model or textures is granted. &lt;br /&gt;
* [[Media:TS2012-bridge.rar]] - The MAX source for asset: Bridge Plate Girder &amp;lt;KUID:523:19721136&amp;gt;. Distributed from the TrainzDev site for education purposes only. No license for the reproduction or redistribution of the included model or textures is granted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Related Links=&lt;br /&gt;
* [[&amp;quot;track-lod-tree&amp;quot; container]]&lt;br /&gt;
* [[Modeling Splines]]&lt;br /&gt;
* [[Track Part Container]]&lt;br /&gt;
* For background and insights, read the Track entries of the TC3 [[Content Creator&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Categories=&lt;br /&gt;
[[Category:Asset KIND|Track]]&lt;br /&gt;
{{ORP-bot}}&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8085</id>
		<title>HowTo/Configure a spline for collisions</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8085"/>
		<updated>2015-03-31T08:23:18Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tunnels, bridges, and other types of splines can interact with smoke particles by preventing penetration, which provides a more realistic effect. In order for this functionality to work as efficiently as possible, it is important to correctly configure spline assets.&lt;br /&gt;
&lt;br /&gt;
Note: this functionality is only available to modern splines (2.9 or higher, 4.1 recommended).&lt;br /&gt;
&lt;br /&gt;
==Selecting meshes to use for collisions==&lt;br /&gt;
This is generally done on a case-by-case basis and will depend on how the asset was built. If the spline contains several meshes then the most important thing to do is to only include the relevant meshes for collision detection. For a tunnel, this means that the walls, roof and tunnel mouth are likely to be the only relevant meshes. Catenaries, tracks and other slim/flat objects will add little to no benefit and can generally be ignored. The same principles apply to other types of splines.&lt;br /&gt;
&lt;br /&gt;
By default, each sub-mesh of a spline will participate in collision detection by generating a collision object based on the mesh geometry. To override that and exclude specific meshes, simply set the mesh-table entry&#039;s [[%22mesh-table%22_container#collision-data-generation-mode|collision-data-generation-mode]] tag to &amp;quot;disabled&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* &amp;quot;separate-shape-triangle-mesh&amp;quot; is the default behaviour for spline meshes.&lt;br /&gt;
* &amp;quot;separate-shape-convex-hull&amp;quot; provides faster collision detection at the expense of accuracy. If the mesh is a concave surface (such as the inner arch of a tunnel), this will not give suitable results.&lt;br /&gt;
* &amp;quot;collated&amp;quot; is not supported for spline meshes and will result in the default behaviour being applied.&lt;br /&gt;
&lt;br /&gt;
==Disabling collisions for an entire spline==&lt;br /&gt;
Some splines as a whole won&#039;t have any visible impact on collision detection and should therefore be completely ignored. This is done by setting the [[KIND_Mesh#enable-pfx-collisions|enable-pfx-collisions]] boolean tag to 0 in the config file of a given spline asset. Tracks and roads are good examples of assets that serve no purpose regarding collision detection, as they are slim and generally positioned directly on the ground. This makes them unlikely to be reached by smoke particles and if this was the case, particles would just hit the terrain instead. Turning off collision detection for spline-based grass or bushes can also be a good idea. These are also quite unlikely to be in situations where smoke will collide with them or often sparse enough to allow large smoke particles to travel through/around them with no visible impact.&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8081</id>
		<title>HowTo/Configure a spline for collisions</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Configure_a_spline_for_collisions&amp;diff=8081"/>
		<updated>2015-03-31T07:53:44Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: Created page with &amp;quot;Tunnels, bridges, and other types of splines can interact with smoke particles by preventing penetration, which provides a more realistic effect. In order for this functionali...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tunnels, bridges, and other types of splines can interact with smoke particles by preventing penetration, which provides a more realistic effect. In order for this functionality to work as efficiently as possible, it is important to correctly configure spline assets.&lt;br /&gt;
&lt;br /&gt;
==Selecting meshes to use for collisions==&lt;br /&gt;
This is generally done on a case-by-case basis and will depend on how the asset was built. If the spline contains several meshes then the most important thing to do is to only include the relevant meshes for collision detection. For a tunnel, this means that the walls, roof and tunnel mouth are likely to be the only relevant meshes. Catenaries, tracks and other slim/flat objects will add little to no benefit and can generally be ignored. The same principles apply to other types of splines.&lt;br /&gt;
&lt;br /&gt;
By default, each sub-mesh of a spline will participate in collision detection by generating a collision object based on the mesh geometry. To override that and exclude specific meshes, simply set the mesh-table entry&#039;s [[%22mesh-table%22_container#collision-data-generation-mode|collision-data-generation-mode]] tag to &amp;quot;disabled&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* &amp;quot;separate-shape-triangle-mesh&amp;quot; is the default behaviour for spline meshes.&lt;br /&gt;
* &amp;quot;separate-shape-convex-hull&amp;quot; provides faster collision detection at the expense of accuracy. If the mesh is a concave surface (such as the inner arch of a tunnel), this will not give suitable results.&lt;br /&gt;
* &amp;quot;collated&amp;quot; is not supported for spline meshes and will result in the default behaviour applied.&lt;br /&gt;
&lt;br /&gt;
==Disabling collisions for an entire splines==&lt;br /&gt;
Some splines as a whole won&#039;t have any visible impact on collision detection and should therefore be completely ignored. This is done by raising the [[KIND_Mesh#enable-pfx-collisions|enable-pfx-collisions]] boolean tag in the config file of a given spline asset. Tracks and roads are good examples of assets that serve no purpose regarding collision detection, as they are slim and generally positioned directly on the ground. This makes them unlikely to be reached by smoke particles and if they were, they would be caught by the terrain. Turning off collision detection for spline-based grass or bushes can also be a good idea, considering they are also quite unlikely to be in situations where smoke will collide with them.&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo&amp;diff=8077</id>
		<title>HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo&amp;diff=8077"/>
		<updated>2015-03-31T06:32:08Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: /* Content Creation: Assets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists available &amp;quot;How To&amp;quot; Guides which describe how to achieve certain tasks related to Trainz. &lt;br /&gt;
&lt;br /&gt;
Users are encouraged to add their own guides to this page in a similar fashion, or expand on existing guides. Please keep in mind that this site is dedicated to the current version of Trainz and that techniques used should relate to this version.&lt;br /&gt;
&lt;br /&gt;
==Content Creation: Routes==&lt;br /&gt;
* [[HowTo/Techniques,_tips,_and_tricks_for_route_builders]]&lt;br /&gt;
* [[HowTo/Create a Route in 10 Minutes]]&lt;br /&gt;
* [[HowTo/Add Bumpy Track]]&lt;br /&gt;
* [[HowTo/Make a Track Cutting]]&lt;br /&gt;
* [[HowTo/Place Signals]]&lt;br /&gt;
* [[HowTo/Build a Bridge]]&lt;br /&gt;
* [[HowTo/Build a Tunnel]]&lt;br /&gt;
* [[HowTo/Build a Crossing]]&lt;br /&gt;
* [[HowTo/Build Catenary]]&lt;br /&gt;
* [[HowTo/Use Trig Stations]]&lt;br /&gt;
* [[HowTo/Configure an iPortal]]&lt;br /&gt;
&lt;br /&gt;
==Content Creation: Sessions==&lt;br /&gt;
* [[HowTo/Techniques,_tips,_and_tricks_for_session_developers]]&lt;br /&gt;
&lt;br /&gt;
==Content Creation: Assets==&lt;br /&gt;
* [[HowTo/Make your first Trainz Asset]]&lt;br /&gt;
* [[HowTo/Export from Max]]&lt;br /&gt;
* [[HowTo/Export from Blender]]&lt;br /&gt;
* [[HowTo/Solve Blender Modelling Problems]]&lt;br /&gt;
* [[HowTo/Scaling setup in Blender]] &lt;br /&gt;
* [[HowTo/Build normal maps in Max]]&lt;br /&gt;
* [[HowTo/Localize an Asset]]&lt;br /&gt;
* [[HowTo/Build a scripted asset]]&lt;br /&gt;
* [[HowTo/Reskin an Asset]]&lt;br /&gt;
* [[HowTo/Build a Car for Traffic (stand-alone version)]]&lt;br /&gt;
* [[HowTo/Build a Car for Traffic (mesh library version)]]&lt;br /&gt;
* [[HowTo/Build a cab interior]]&lt;br /&gt;
* [[HowTo/Build a drivable car]]&lt;br /&gt;
* [[HowTo/Render to Texture]]&lt;br /&gt;
* [[HowTo/Build a simple animated scenery asset in Blender]]&lt;br /&gt;
* [[HowTo/Build Passenger Enabled Assets]]&lt;br /&gt;
* [[HowTo/Create a High Voltage Power Line Spline]]&lt;br /&gt;
* [[HowTo/Create transparent windows in Blender]]&lt;br /&gt;
* [[Getting_Started_in_TrainzScript]]&lt;br /&gt;
* [[HowTo/Create a Fence Spline Featuring LOD and Random Meshes]]&lt;br /&gt;
* [[HowTo/Create a Neon Font Effect with PhotoShop C4]]&lt;br /&gt;
* [[HowTo/Build an animated Neon Sign]]&lt;br /&gt;
* [[HowTo/Configure a spline for collisions]]&lt;br /&gt;
&lt;br /&gt;
==Creating and Configuring Content In-game==&lt;br /&gt;
* [[HowTo/Create an Interactive Session]]&lt;br /&gt;
* [[HowTo/Add Carz Traffic to a Route]]&lt;br /&gt;
* [[HowTo/Tune a Steam Locomotive Enginespec]]&lt;br /&gt;
* [[HowTo/Configure an Interactive Industry]]&lt;br /&gt;
* [[HowTo/Implement a Destination Sign System]]&lt;br /&gt;
* [[HowTo/Upload a new asset to the DownloadStation]]&lt;br /&gt;
* [[HowTo/Update an existing asset on the DownloadStation]]&lt;br /&gt;
* [[HowTo/Download an asset from the Download Station]]&lt;br /&gt;
&lt;br /&gt;
==Menu Navigation==&lt;br /&gt;
* [[HowTo/Main Menu]]&lt;br /&gt;
* [[HowTo/Learn To Drive]]&lt;br /&gt;
* [[HowTo/Routes Menu]]&lt;br /&gt;
* [[HowTo/Session Menu]]&lt;br /&gt;
* [[HowTo/Railyard Menu]]&lt;br /&gt;
* [[HowTo/Get New Content]]&lt;br /&gt;
&lt;br /&gt;
==Driver - all things related to driving and operating trains==&lt;br /&gt;
* [[HowTo/Camera View Modes / Navigation]]&lt;br /&gt;
* [[HowTo/Cab Mode]]&lt;br /&gt;
* [[HowTo/DCC Mode]]&lt;br /&gt;
* [[HowTo/Quickdrive]]&lt;br /&gt;
* [[HowTo/Consists / Locomotives / Trains]]&lt;br /&gt;
* [[HowTo/Drivers]]&lt;br /&gt;
* [[HowTo/Driver Commands]]&lt;br /&gt;
* [[HowTo/User Tools Menu]]&lt;br /&gt;
* [[HowTo/Additional Rules Menu]]&lt;br /&gt;
* [[HowTo/iTrainz Chat]]&lt;br /&gt;
* [[HowTo/Trainz Online Browser]]&lt;br /&gt;
* [[HowTo/Driver/Main Menu]]&lt;br /&gt;
** [[HowTo/Driver/Main Menu/Options]]&lt;br /&gt;
** [[HowTo/Driver/Main Menu/Achievements]]&lt;br /&gt;
** [[HowTo/Driver/Main Menu/Save Game]]&lt;br /&gt;
** [[HowTo/Driver/Main Menu/Find Object]]&lt;br /&gt;
* [[HowTo/Pause Game]]&lt;br /&gt;
* [[HowTo/Help]]&lt;br /&gt;
&lt;br /&gt;
==Surveyor - Route and Session creation in Trainz==&lt;br /&gt;
* [[HowTo/Topology Tab]]&lt;br /&gt;
* [[HowTo/Paint Tab]]&lt;br /&gt;
* [[HowTo/Objects Tab]]&lt;br /&gt;
* [[HowTo/Tracks Tab]]&lt;br /&gt;
* [[HowTo/Tools Tab]]&lt;br /&gt;
* [[HowTo/Layers Tab]]&lt;br /&gt;
* [[HowTo/Trains Tab]]&lt;br /&gt;
* [[HowTo/Session Rules]]&lt;br /&gt;
* [[HowTo/Content Search Filter]]&lt;br /&gt;
* [[HowTo/Wireframe View]]&lt;br /&gt;
* [[HowTo/iTrainz Chat]]&lt;br /&gt;
* [[HowTo/Trainz Online Browser]]&lt;br /&gt;
* [[HowTo/Help]]&lt;br /&gt;
* [[HowTo/Main Menu]]&lt;br /&gt;
** [[HowTo/Options]]&lt;br /&gt;
*** [[HowTo/General Settings]]&lt;br /&gt;
*** [[HowTo/Video Settings]]&lt;br /&gt;
*** [[HowTo/Surveyor Settings]]&lt;br /&gt;
*** [[HowTo/Sound Settings]]&lt;br /&gt;
*** [[HowTo/Control Settings]]&lt;br /&gt;
*** [[HowTo/Global Consist Library]]&lt;br /&gt;
*** [[HowTo/Global Interface Addon]]&lt;br /&gt;
** [[HowTo/Achievements]]&lt;br /&gt;
** [[HowTo/New Route]]&lt;br /&gt;
** [[HowTo/Save]]&lt;br /&gt;
** [[HowTo/Save As]]&lt;br /&gt;
** [[HowTo/Replace Assets]]&lt;br /&gt;
** [[HowTo/Delete Missing Assets]]&lt;br /&gt;
** [[HowTo/Mini Map]]&lt;br /&gt;
** [[HowTo/Find Object]]&lt;br /&gt;
** [[HowTo/Merge Route]]&lt;br /&gt;
** [[HowTo/Edit Route]]&lt;br /&gt;
** [[HowTo/Edit Session]]&lt;br /&gt;
** [[HowTo/Edit Environment]]&lt;br /&gt;
*** [[HowTo/Time]]&lt;br /&gt;
*** [[HowTo/Location]]&lt;br /&gt;
*** [[HowTo/Environment]]&lt;br /&gt;
&lt;br /&gt;
==Content Manager==&lt;br /&gt;
* [[HowTo/Menu]]&lt;br /&gt;
** [[HowTo/File]]&lt;br /&gt;
** [[HowTo/Edit]]&lt;br /&gt;
** [[HowTo/View]]&lt;br /&gt;
** [[HowTo/Help]]&lt;br /&gt;
* [[HowTo/Download Helper]]&lt;br /&gt;
* [[HowTo/Search]]&lt;br /&gt;
* [[HowTo/Pick List]]&lt;br /&gt;
* [[HowTo/Asset Details]]&lt;br /&gt;
* [[HowTo/Uploads]]&lt;br /&gt;
* [[HowTo/Archiver]]&lt;br /&gt;
* [[HowTo/Assets]]&lt;br /&gt;
** [[HowTo/Current Search]]&lt;br /&gt;
** [[HowTo/All]]&lt;br /&gt;
** [[HowTo/Archived]]&lt;br /&gt;
** [[HowTo/Disabled]]&lt;br /&gt;
** [[HowTo/Download Station]]&lt;br /&gt;
** [[HowTo/Favorite Locos]]&lt;br /&gt;
** [[HowTo/Installed]]&lt;br /&gt;
** [[HowTo/Locally Modified]]&lt;br /&gt;
** [[HowTo/Missing Dependencies]]&lt;br /&gt;
** [[HowTo/My Content]]&lt;br /&gt;
** [[HowTo/Open for Edit]]&lt;br /&gt;
** [[HowTo/Out of Date]]&lt;br /&gt;
** [[HowTo/Today]]&lt;br /&gt;
** [[HowTo/Help]]&lt;br /&gt;
&lt;br /&gt;
==Documentation Suggestions==&lt;br /&gt;
&lt;br /&gt;
* [[HowTo/Build normal maps in Blender]]&lt;br /&gt;
* [[HowTo/Build a house]]&lt;br /&gt;
* [[HowTo/Build a tree]]&lt;br /&gt;
* [[HowTo/Build a track]]&lt;br /&gt;
* [[HowTo/Build a bridge]]&lt;br /&gt;
* [[HowTo/Build a tunnel]]&lt;br /&gt;
* [[HowTo/Build a hedge]]&lt;br /&gt;
* [[HowTo/Build a fence]]&lt;br /&gt;
* [[HowTo/Build a road]]&lt;br /&gt;
* [[HowTo/Build a road crossing]]&lt;br /&gt;
* [[HowTo/Build a train car]]&lt;br /&gt;
* [[HowTo/Build a bogey]]&lt;br /&gt;
* [[HowTo/Build a ground texture]]&lt;br /&gt;
* [[HowTo/Build an interactive industry]]&lt;br /&gt;
* [[HowTo/Add attached track]]&lt;br /&gt;
* [[HowTo/Add an intro page to a session]]&lt;br /&gt;
* [[HowTo/Register with Planet Auran]]&lt;br /&gt;
* [[HowTo/Create an Achievement]]&lt;br /&gt;
* [[HowTo/Use a map to create a baseboard]]&lt;br /&gt;
* [[HowTo/Create a displacement map]]&lt;br /&gt;
&lt;br /&gt;
== See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Content Configuration]] - &#039;&#039;A reference manual covering all content types.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides| ]]&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=KIND_Mesh&amp;diff=8064</id>
		<title>KIND Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=KIND_Mesh&amp;diff=8064"/>
		<updated>2015-03-27T06:28:32Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
[[KIND Mesh]] provides the basis for many mesh-based assets. It may be used to create attachments, and acts as the basis for various standalone mesh-based objects.&lt;br /&gt;
&lt;br /&gt;
This page describes [[trainz-build]] 4.1.&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;
* [[KIND Product]]&lt;br /&gt;
* [[KIND Scenery]]&lt;br /&gt;
* [[KIND Track]]&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Supported Tags=&lt;br /&gt;
The [[KIND Mesh]] [[config.txt file]] supports the following tags. Each tag is show here with its default value.&lt;br /&gt;
&lt;br /&gt;
 preview-mesh-kuid &amp;lt;NULL&amp;gt;&lt;br /&gt;
 preview-scale 1.0&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 mesh-detail-level-count 1&lt;br /&gt;
 season-selector&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 visibility-radius (varies)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==preview-mesh-kuid==&lt;br /&gt;
An alternative mesh asset to use when representing this asset for in-game 3D asset pickers. If not specified, the game defaults to displaying the asset itself.&lt;br /&gt;
TBD: Unclear why you&#039;d want to do this for a modern LOD-capable asset.&lt;br /&gt;
&lt;br /&gt;
==preview-scale==&lt;br /&gt;
A scaling factor used to influence the way that this mesh is represented for in-game 3D asset pickers. This can be useful if the default display scale results in the asset being zoomed too far in or out for practical viewing.&lt;br /&gt;
&lt;br /&gt;
==mesh-detail-level-count==&lt;br /&gt;
The &amp;quot;mesh-detail-level-count&amp;quot; tag determines how many mesh-table LODs are supported by this asset. This is used in conjunction with the &amp;quot;lod-level&amp;quot; tag in the [[&amp;quot;mesh-table&amp;quot; Container]] but is not related to the [[LM.txt file]] format.&lt;br /&gt;
&lt;br /&gt;
==mesh-table==&lt;br /&gt;
The [[&amp;quot;mesh-table&amp;quot; Container]] provides details about the meshes which comprise this asset.&lt;br /&gt;
&lt;br /&gt;
==season-selector==&lt;br /&gt;
The [[&amp;quot;Season-selector&amp;quot; container]] provides details about the seasons which influence this asset.&lt;br /&gt;
&lt;br /&gt;
==visibility-radius==&lt;br /&gt;
The radius of this mesh (in meters), for visibility and collision purposes. This defaults to a value calculated from the mesh file, however for various reasons including the effects of animation and the use of external render plugins such as SpeedTree, it is sometimes necessary to override the generated value.&lt;br /&gt;
&lt;br /&gt;
==enable-pfx-collisions==&lt;br /&gt;
Bool value, defaults to 1 and is not compulsory. Defines whether or not this mesh object should be used for collision detection against particles (e.g. smoke, steam). Disabling it for objects that are unlikely to interact with particles is a good idea.&lt;br /&gt;
&lt;br /&gt;
=Downloads=&lt;br /&gt;
&#039;&#039;Attach sample files here&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Categories=&lt;br /&gt;
[[Category:Asset KIND|M]]&lt;br /&gt;
{{ORP-bot|Mesh,KIND}}&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=KIND_Mesh&amp;diff=8063</id>
		<title>KIND Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=KIND_Mesh&amp;diff=8063"/>
		<updated>2015-03-27T06:27:22Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: /* Supported Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
[[KIND Mesh]] provides the basis for many mesh-based assets. It may be used to create attachments, and acts as the basis for various standalone mesh-based objects.&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;
* [[KIND Product]]&lt;br /&gt;
* [[KIND Scenery]]&lt;br /&gt;
* [[KIND Track]]&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Supported Tags=&lt;br /&gt;
The [[KIND Mesh]] [[config.txt file]] supports the following tags. Each tag is show here with its default value.&lt;br /&gt;
&lt;br /&gt;
 preview-mesh-kuid &amp;lt;NULL&amp;gt;&lt;br /&gt;
 preview-scale 1.0&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 mesh-detail-level-count 1&lt;br /&gt;
 season-selector&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 visibility-radius (varies)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==preview-mesh-kuid==&lt;br /&gt;
An alternative mesh asset to use when representing this asset for in-game 3D asset pickers. If not specified, the game defaults to displaying the asset itself.&lt;br /&gt;
TBD: Unclear why you&#039;d want to do this for a modern LOD-capable asset.&lt;br /&gt;
&lt;br /&gt;
==preview-scale==&lt;br /&gt;
A scaling factor used to influence the way that this mesh is represented for in-game 3D asset pickers. This can be useful if the default display scale results in the asset being zoomed too far in or out for practical viewing.&lt;br /&gt;
&lt;br /&gt;
==mesh-detail-level-count==&lt;br /&gt;
The &amp;quot;mesh-detail-level-count&amp;quot; tag determines how many mesh-table LODs are supported by this asset. This is used in conjunction with the &amp;quot;lod-level&amp;quot; tag in the [[&amp;quot;mesh-table&amp;quot; Container]] but is not related to the [[LM.txt file]] format.&lt;br /&gt;
&lt;br /&gt;
==mesh-table==&lt;br /&gt;
The [[&amp;quot;mesh-table&amp;quot; Container]] provides details about the meshes which comprise this asset.&lt;br /&gt;
&lt;br /&gt;
==season-selector==&lt;br /&gt;
The [[&amp;quot;Season-selector&amp;quot; container]] provides details about the seasons which influence this asset.&lt;br /&gt;
&lt;br /&gt;
==visibility-radius==&lt;br /&gt;
The radius of this mesh (in meters), for visibility and collision purposes. This defaults to a value calculated from the mesh file, however for various reasons including the effects of animation and the use of external render plugins such as SpeedTree, it is sometimes necessary to override the generated value.&lt;br /&gt;
&lt;br /&gt;
==enable-pfx-collisions==&lt;br /&gt;
Bool value, defaults to 1 and is not compulsory. Defines whether or not this mesh object should be used for collision detection against particles (e.g. smoke, steam). Disabling it for objects that are unlikely to interact with particles is a good idea.&lt;br /&gt;
&lt;br /&gt;
=Downloads=&lt;br /&gt;
&#039;&#039;Attach sample files here&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Categories=&lt;br /&gt;
[[Category:Asset KIND|M]]&lt;br /&gt;
{{ORP-bot|Mesh,KIND}}&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=8062</id>
		<title>&quot;mesh-table&quot; container</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=8062"/>
		<updated>2015-03-27T06:15:09Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: /* KIND Hierarchy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
==KIND Hierarchy==&lt;br /&gt;
The &amp;quot;mesh-table&amp;quot; container is a top-level [[config.txt file]] entry used by various [[Content_Configuration#Content_Types|Content Types]].&lt;br /&gt;
&lt;br /&gt;
The mesh-table is a list of mesh subcontainers with no standalone tags. Each mesh subcontainer uses the following format. Tags are parsed in a standardised format, but not all [[Content_Configuration#Content_Types|Content Types]] support the full range of tags listed below. Each mesh derives its name from the subcontainer&#039;s tag name. These names are used to refer to specific meshes from within the mesh-table and also from script.&lt;br /&gt;
&lt;br /&gt;
This page describes [[trainz-build]] 4.1.&lt;br /&gt;
&lt;br /&gt;
==Known Dependent Parent Types==&lt;br /&gt;
:&#039;&#039;Main article, see: [[KIND Mesh]]&#039;&#039;&lt;br /&gt;
The Content Types listed here use the mesh-table container as part of their definition.&lt;br /&gt;
&lt;br /&gt;
* [[KIND Industry]]&lt;br /&gt;
* [[KIND MOJunction]]&lt;br /&gt;
* [[KIND Pantograph]]&lt;br /&gt;
* [[KIND Scenery]]&lt;br /&gt;
* [[KIND Track]]&lt;br /&gt;
* [[KIND Traincar]]&lt;br /&gt;
&lt;br /&gt;
The following config containers also reference back to their Asset&#039;s mesh-table container in some fashion:&lt;br /&gt;
* [[&amp;quot;junction-vertices&amp;quot; container]]&lt;br /&gt;
* [[&amp;quot;track-lod-tree&amp;quot; container]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also&#039;&#039;&#039;{{bullR}} [[Modeling Guidelines]] {{bull}} [[Modeling Scenery]] &lt;br /&gt;
&lt;br /&gt;
==Level of Detail (LOD)==&lt;br /&gt;
&lt;br /&gt;
For discussions of LOD see [[Level_of_Detail]], [[LOD_Example]] and [[LM.txt_file]]&lt;br /&gt;
&lt;br /&gt;
==Mesh subcontainer==&lt;br /&gt;
Each mesh subcontainer supports the following tags. Each tag is shown here with its default value. {{FAB-todo| Use Pseudo-table to recast as a real wikitable.}}&lt;br /&gt;
&lt;br /&gt;
 mesh-asset                           &amp;lt;NULLKUID&amp;gt;&lt;br /&gt;
 mesh                                 &amp;quot;&amp;quot;&lt;br /&gt;
 anim                                 &amp;quot;&amp;quot;&lt;br /&gt;
 lod-level                            255&lt;br /&gt;
 mesh-season                          255&lt;br /&gt;
 att                                  &amp;quot;&amp;quot;&lt;br /&gt;
 att-parent                           &amp;quot;&amp;quot;&lt;br /&gt;
 opacity                              1.0&lt;br /&gt;
 position                             0,0,0&lt;br /&gt;
 orientation                          0,0,0&lt;br /&gt;
 auto-create                          0&lt;br /&gt;
 use-parent-bounds                    0&lt;br /&gt;
 should-respond-to-clicks             1&lt;br /&gt;
 animation-loop-speed                 0&lt;br /&gt;
 critical-animation                   1&lt;br /&gt;
 effects  {&lt;br /&gt;
 }&lt;br /&gt;
 night-mesh-base                      &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;*&amp;lt;/big&amp;gt; The att-parent defaults to &amp;quot;default&amp;quot; which is the parent mesh.  The att-parent tag can include a path.&lt;br /&gt;
&lt;br /&gt;
==Supported Tags==&lt;br /&gt;
Each mesh subcontainer supports the following tags. &lt;br /&gt;
&lt;br /&gt;
===anim===&lt;br /&gt;
:Type:       File&lt;br /&gt;
:Default:    &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc:       The animation file (.kin) exported from the 3D modelling tool and/or [[Trainz_Mesh_Importer|TrainzMeshImporter]]. This may include a sub-path.&lt;br /&gt;
&lt;br /&gt;
===animation-loop-speed===&lt;br /&gt;
:Type: Float&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This tag must be present if the asset is to animate when placed. If this tag is not present when placed the animation will not play by default, but may play if controlled by script. A different value (e.g. 0.5, 2.0) may be used in the tag to play the animation at a different speed from that created in the 3D modelling tool.&lt;br /&gt;
&lt;br /&gt;
===att===&lt;br /&gt;
:Type: Attachment point&lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The mesh (and animation if present) is inserted at a mesh attachment point rather than the origin (without this line the mesh is placed relative to the origin of the parent model).&lt;br /&gt;
&lt;br /&gt;
===att-parent===&lt;br /&gt;
:Type: Mesh name&lt;br /&gt;
:Default: Defaults to &amp;quot;default&amp;quot; which is the parent mesh&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The tag tells Trainz in which mesh the attachment point is located. The insertion attachment point is located within the mesh ‘name’ , as listed in the config.txt.&lt;br /&gt;
&lt;br /&gt;
===auto-create===&lt;br /&gt;
:Type: Bool&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Compulsory No&lt;br /&gt;
:Desc: The model is generated automatically when placed, or when you load a map which includes the model. In some instances you don’t want the mesh visible (as this may be controlled through script). If auto-create is 0 the mesh will not be visible when placed.&lt;br /&gt;
&lt;br /&gt;
===collision-data-generation-mode===&lt;br /&gt;
:Type: Collision mode&lt;br /&gt;
:Default: &amp;quot;default&amp;quot;&lt;br /&gt;
:Compulsory No&lt;br /&gt;
:Desc: Determines the method to use to generate collision data for this mesh. Collision data is used to select and move the asset in surveyor, and for physics simulation when necessary.&lt;br /&gt;
:Supported collision data generation modes:&lt;br /&gt;
:* &amp;quot;default&amp;quot; - use game&#039;s default value (in general &amp;quot;collated&amp;quot;, but can vary in specific cases)&lt;br /&gt;
:* &amp;quot;disabled&amp;quot; - completely discard this sub-mesh for collision data generation purposes. Causes the sub-mesh to be fully ignored for asset picking and physics simulation.&lt;br /&gt;
:* &amp;quot;collated&amp;quot; - the geometry of this sub-mesh will be added to that of the other sub-meshes selecting this option (within the asset), and one collision object will be generated for the resulting conglomerate.&lt;br /&gt;
:* &amp;quot;separate-shape-convex-hull&amp;quot; - this sub-mesh will generate its own individual collision object, as a convex hull.&lt;br /&gt;
:* &amp;quot;separate-shape-triangle-mesh&amp;quot; - this sub-mesh will generate its own individual collision object, as a triangle mesh. This is the most accurate option but also the most costly in terms of performance, only use when specifically needed.&lt;br /&gt;
&lt;br /&gt;
===critical-animation===&lt;br /&gt;
:Type: Bool&lt;br /&gt;
:Default: 1  (TBD: surely this should be false (0))&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: &amp;quot;critical-animation&amp;quot; indicates that this mesh&#039;s animation generates events which are critical to the script system&#039;s behavior. If your asset is not scripted, does not use scripted animation events, or only uses the events for display purposes and will not break if the occasional event is missed, this tag should be set to &#039;&#039;false (0)&#039;&#039;. Leaving this flag set to &#039;&#039;true (1)&#039;&#039; is a &#039;&#039;&#039;significant&#039;&#039;&#039; performance penalty.&lt;br /&gt;
&lt;br /&gt;
====custom-render-plugin====&lt;br /&gt;
:Type: [[KUID]]&lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc:  TBD&lt;br /&gt;
&lt;br /&gt;
===effects===&lt;br /&gt;
:Type: [[Corona Effect]] | [[Name Effect]] | [[Attachment Effect]] | [[Animation Effect]] | [[Texture-Replacement Effect]]&lt;br /&gt;
:Default {}&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The effects container can contain a list of effect subcontainers. The effect subcontainers support the following generic tags.&lt;br /&gt;
&lt;br /&gt;
: kind &amp;quot;&amp;quot;&lt;br /&gt;
: name &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Each effect subcontainer supports additional tags depending on the effect kind. The following effect kinds are supported:&lt;br /&gt;
&lt;br /&gt;
:* [[Corona Effect]]&lt;br /&gt;
:* [[Name Effect]]&lt;br /&gt;
:* [[Attachment Effect]]&lt;br /&gt;
:* [[Animation Effect]]&lt;br /&gt;
:* [[Texture-Replacement Effect]]&lt;br /&gt;
&lt;br /&gt;
===light===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: True(1)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: If true, this tag causes the non-stitched mesh to be linked into the Trainz lighting model. This causes the mesh to respond to directional lighting changes, such as the angle of the sun or train headlights. This is also necessary for normal maps to work correctly. Zeroing this tag will remove the mesh from the Trainz lighting model. Generally speaking, you should never zero this tag- almost every effect that can be achieved through this approach can be better served by using an appropriate normal map or appropriate geometry detail.&lt;br /&gt;
&lt;br /&gt;
:This tag has no effect on stitched meshes, which are always affected by the Trainz lighting. Since the content creator has no direct influence over which meshes are subject to [[Mesh Stitching]], and all indirect influences are subject to change between Trainz editions, it is strongly recommended that this tag is avoided to ensure that results are consistent.&lt;br /&gt;
&lt;br /&gt;
===lod-level===&lt;br /&gt;
:Type: Int (0-8)&lt;br /&gt;
:Default: 255&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The object LOD level at which this mesh is displayed. The default value (255) indicates that this mesh is visible at all detail levels.  See also [[KIND Mesh]] for the &#039;mesh-detail-level&#039; tag.&lt;br /&gt;
&lt;br /&gt;
===mesh===&lt;br /&gt;
:Type: Mesh name&lt;br /&gt;
:Default: &amp;quot;&amp;quot; (will raise error if null)&lt;br /&gt;
:Compulsory: Yes (3.4)&lt;br /&gt;
:Desc: The ‘main’ mesh name. This may include a sub-path.  ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows. Use .im files or reference an [[LM.txt_file]] file if you wish your asset to have ‘Level of Detail’ mesh reduction.&lt;br /&gt;
:The mesh name can also refer to an IM file in a mesh asset library if the mesh-asset tag is specified.&lt;br /&gt;
&lt;br /&gt;
===mesh-asset===&lt;br /&gt;
:Type: [[KUID]]&lt;br /&gt;
:Default: &amp;lt;NULLKUID&amp;gt;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Specifies a mesh asset library to be used in conjunction with the &#039;mesh&#039; tag.  The mesh name specified in the &#039;mesh&#039; tag must be located in this asset as Content Manager not check for the existence of the mesh.  If the mesh is not located in the root folder of the mesh asset then include the path as part of the mesh name in the &#039;mesh&#039; tag.&lt;br /&gt;
&lt;br /&gt;
===mesh-scale===&lt;br /&gt;
:Type: Floatlist&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This tag defines a minimum and maximum scaling value for the mesh, where 1.0 is the size as modelled. Each instance of the mesh that exists in the world will randomise within this range. Randomisation will not change between runs or between Trainz editions, but may change based on factors such as the position of the mesh in the world. This tag is currently only supported on SpeedTree assets; attempts to use this tag on other assets results in undefined behaviour.&lt;br /&gt;
&lt;br /&gt;
===mesh-season===&lt;br /&gt;
:Type: Int (0-250)&lt;br /&gt;
:Default: 255&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The season index for which this mesh is displayed. The default value (255) indicates that this mesh is visible in all seasons.  See also [[&amp;quot;Season-selector&amp;quot; container]].&lt;br /&gt;
&lt;br /&gt;
===night-mesh-base===&lt;br /&gt;
:Type: Mesh name &lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This night mesh is linked to the specified mesh and is visible only at night. It is invisible if the specified mesh is invisible, (if the auto-create 0 line were used so the specified mesh can be controlled by script).&lt;br /&gt;
&lt;br /&gt;
===opacity===&lt;br /&gt;
:Type: Float (0.0 - 1.0)(See below)&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Specifies the overall transparency of the mesh. Values other than 0.0 or 1.0 employ alpha blending and a value of 0.0 has the same effect as hiding the mesh. Note that this tag is buggy in TS2009 prior to SP4.&lt;br /&gt;
&lt;br /&gt;
===orientation===&lt;br /&gt;
:Type: Floatlist (radians)&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Orientation of X,Y,Z axes. Allows a submesh to be rotated relative to its insertion point.  To reverse a mesh by 180 degrees about the Z axis, add the tag: orientation 0,0,3.14159&lt;br /&gt;
&lt;br /&gt;
===position===&lt;br /&gt;
:Type: Floatlist (metres)&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Position of the mesh using X,Y,Z axes relative to its insertion point.&lt;br /&gt;
&lt;br /&gt;
===radius===&lt;br /&gt;
:Type: Float &lt;br /&gt;
:Default: TBD&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: TBD (should this be in [[&amp;quot;mesh-table&amp;quot;_container_(interior_version)]]?)&lt;br /&gt;
&lt;br /&gt;
===should-respond-to-clicks===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: True(1)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: If set to false (0) on a mesh that is part of an asset, it will remove that mesh from the calculation of the &#039;bounding box&#039; that will be used to check whether the user clicked on that particular asset.  This is useful for light ray effects or animations which are significantly outside the normal bounding volume, and may cause movement to focus on the wrong asset.  For instance, a traincar may need a mesh marked with should-respond-to-clicks set to false in order to ensure that the click is detected for the correct traincar when it is part of a consist. First introduced with TS12 SP1 HF4 (build 61388). Default value (True) is the prior behaviour (the mesh &#039;&#039;will&#039;&#039; be considered part of the bounding box for the purpose of registering clicks). &lt;br /&gt;
&lt;br /&gt;
===test-collisions===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: TBD&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: TBD (should this be in [[&amp;quot;mesh-table&amp;quot;_container_(interior_version)]]?)&lt;br /&gt;
&lt;br /&gt;
===use-parent-bounds===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: False(0)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: When enabled, this tag indicates that render culling should occur using the whole object&#039;s bounding box rather than this mesh&#039;s bounding box. Bounding boxes on individual meshes may not update correctly when animation moves the object&#039;s geometry any significant distance from the bind position. This flag can help mitigate such effects, at a tiny performance penalty.&lt;br /&gt;
&lt;br /&gt;
==Mesh-Table Example==&lt;br /&gt;
The following is an example of a simple mesh-table which implements two levels of detail.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default-lod0&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod0.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 0&lt;br /&gt;
   }&lt;br /&gt;
   default-lod1&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod1.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 1&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Config Container|mesh-table container]]&lt;br /&gt;
{{ORP-bot|mesh-table container}}&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=8061</id>
		<title>&quot;mesh-table&quot; container</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=8061"/>
		<updated>2015-03-27T06:14:56Z</updated>

		<summary type="html">&lt;p&gt;Gevrard: /* Supported Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
==KIND Hierarchy==&lt;br /&gt;
The &amp;quot;mesh-table&amp;quot; container is a top-level [[config.txt file]] entry used by various [[Content_Configuration#Content_Types|Content Types]].&lt;br /&gt;
&lt;br /&gt;
The mesh-table is a list of mesh subcontainers with no standalone tags. Each mesh subcontainer uses the following format. Tags are parsed in a standardised format, but not all [[Content_Configuration#Content_Types|Content Types]] support the full range of tags listed below. Each mesh derives its name from the subcontainer&#039;s tag name. These names are used to refer to specific meshes from within the mesh-table and also from script.&lt;br /&gt;
&lt;br /&gt;
==Known Dependent Parent Types==&lt;br /&gt;
:&#039;&#039;Main article, see: [[KIND Mesh]]&#039;&#039;&lt;br /&gt;
The Content Types listed here use the mesh-table container as part of their definition.&lt;br /&gt;
&lt;br /&gt;
* [[KIND Industry]]&lt;br /&gt;
* [[KIND MOJunction]]&lt;br /&gt;
* [[KIND Pantograph]]&lt;br /&gt;
* [[KIND Scenery]]&lt;br /&gt;
* [[KIND Track]]&lt;br /&gt;
* [[KIND Traincar]]&lt;br /&gt;
&lt;br /&gt;
The following config containers also reference back to their Asset&#039;s mesh-table container in some fashion:&lt;br /&gt;
* [[&amp;quot;junction-vertices&amp;quot; container]]&lt;br /&gt;
* [[&amp;quot;track-lod-tree&amp;quot; container]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also&#039;&#039;&#039;{{bullR}} [[Modeling Guidelines]] {{bull}} [[Modeling Scenery]] &lt;br /&gt;
&lt;br /&gt;
==Level of Detail (LOD)==&lt;br /&gt;
&lt;br /&gt;
For discussions of LOD see [[Level_of_Detail]], [[LOD_Example]] and [[LM.txt_file]]&lt;br /&gt;
&lt;br /&gt;
==Mesh subcontainer==&lt;br /&gt;
Each mesh subcontainer supports the following tags. Each tag is shown here with its default value. {{FAB-todo| Use Pseudo-table to recast as a real wikitable.}}&lt;br /&gt;
&lt;br /&gt;
 mesh-asset                           &amp;lt;NULLKUID&amp;gt;&lt;br /&gt;
 mesh                                 &amp;quot;&amp;quot;&lt;br /&gt;
 anim                                 &amp;quot;&amp;quot;&lt;br /&gt;
 lod-level                            255&lt;br /&gt;
 mesh-season                          255&lt;br /&gt;
 att                                  &amp;quot;&amp;quot;&lt;br /&gt;
 att-parent                           &amp;quot;&amp;quot;&lt;br /&gt;
 opacity                              1.0&lt;br /&gt;
 position                             0,0,0&lt;br /&gt;
 orientation                          0,0,0&lt;br /&gt;
 auto-create                          0&lt;br /&gt;
 use-parent-bounds                    0&lt;br /&gt;
 should-respond-to-clicks             1&lt;br /&gt;
 animation-loop-speed                 0&lt;br /&gt;
 critical-animation                   1&lt;br /&gt;
 effects  {&lt;br /&gt;
 }&lt;br /&gt;
 night-mesh-base                      &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;*&amp;lt;/big&amp;gt; The att-parent defaults to &amp;quot;default&amp;quot; which is the parent mesh.  The att-parent tag can include a path.&lt;br /&gt;
&lt;br /&gt;
==Supported Tags==&lt;br /&gt;
Each mesh subcontainer supports the following tags. &lt;br /&gt;
&lt;br /&gt;
===anim===&lt;br /&gt;
:Type:       File&lt;br /&gt;
:Default:    &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc:       The animation file (.kin) exported from the 3D modelling tool and/or [[Trainz_Mesh_Importer|TrainzMeshImporter]]. This may include a sub-path.&lt;br /&gt;
&lt;br /&gt;
===animation-loop-speed===&lt;br /&gt;
:Type: Float&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This tag must be present if the asset is to animate when placed. If this tag is not present when placed the animation will not play by default, but may play if controlled by script. A different value (e.g. 0.5, 2.0) may be used in the tag to play the animation at a different speed from that created in the 3D modelling tool.&lt;br /&gt;
&lt;br /&gt;
===att===&lt;br /&gt;
:Type: Attachment point&lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The mesh (and animation if present) is inserted at a mesh attachment point rather than the origin (without this line the mesh is placed relative to the origin of the parent model).&lt;br /&gt;
&lt;br /&gt;
===att-parent===&lt;br /&gt;
:Type: Mesh name&lt;br /&gt;
:Default: Defaults to &amp;quot;default&amp;quot; which is the parent mesh&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The tag tells Trainz in which mesh the attachment point is located. The insertion attachment point is located within the mesh ‘name’ , as listed in the config.txt.&lt;br /&gt;
&lt;br /&gt;
===auto-create===&lt;br /&gt;
:Type: Bool&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Compulsory No&lt;br /&gt;
:Desc: The model is generated automatically when placed, or when you load a map which includes the model. In some instances you don’t want the mesh visible (as this may be controlled through script). If auto-create is 0 the mesh will not be visible when placed.&lt;br /&gt;
&lt;br /&gt;
===collision-data-generation-mode===&lt;br /&gt;
:Type: Collision mode&lt;br /&gt;
:Default: &amp;quot;default&amp;quot;&lt;br /&gt;
:Compulsory No&lt;br /&gt;
:Desc: Determines the method to use to generate collision data for this mesh. Collision data is used to select and move the asset in surveyor, and for physics simulation when necessary.&lt;br /&gt;
:Supported collision data generation modes:&lt;br /&gt;
:* &amp;quot;default&amp;quot; - use game&#039;s default value (in general &amp;quot;collated&amp;quot;, but can vary in specific cases)&lt;br /&gt;
:* &amp;quot;disabled&amp;quot; - completely discard this sub-mesh for collision data generation purposes. Causes the sub-mesh to be fully ignored for asset picking and physics simulation.&lt;br /&gt;
:* &amp;quot;collated&amp;quot; - the geometry of this sub-mesh will be added to that of the other sub-meshes selecting this option (within the asset), and one collision object will be generated for the resulting conglomerate.&lt;br /&gt;
:* &amp;quot;separate-shape-convex-hull&amp;quot; - this sub-mesh will generate its own individual collision object, as a convex hull.&lt;br /&gt;
:* &amp;quot;separate-shape-triangle-mesh&amp;quot; - this sub-mesh will generate its own individual collision object, as a triangle mesh. This is the most accurate option but also the most costly in terms of performance, only use when specifically needed.&lt;br /&gt;
&lt;br /&gt;
===critical-animation===&lt;br /&gt;
:Type: Bool&lt;br /&gt;
:Default: 1  (TBD: surely this should be false (0))&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: &amp;quot;critical-animation&amp;quot; indicates that this mesh&#039;s animation generates events which are critical to the script system&#039;s behavior. If your asset is not scripted, does not use scripted animation events, or only uses the events for display purposes and will not break if the occasional event is missed, this tag should be set to &#039;&#039;false (0)&#039;&#039;. Leaving this flag set to &#039;&#039;true (1)&#039;&#039; is a &#039;&#039;&#039;significant&#039;&#039;&#039; performance penalty.&lt;br /&gt;
&lt;br /&gt;
====custom-render-plugin====&lt;br /&gt;
:Type: [[KUID]]&lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc:  TBD&lt;br /&gt;
&lt;br /&gt;
===effects===&lt;br /&gt;
:Type: [[Corona Effect]] | [[Name Effect]] | [[Attachment Effect]] | [[Animation Effect]] | [[Texture-Replacement Effect]]&lt;br /&gt;
:Default {}&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The effects container can contain a list of effect subcontainers. The effect subcontainers support the following generic tags.&lt;br /&gt;
&lt;br /&gt;
: kind &amp;quot;&amp;quot;&lt;br /&gt;
: name &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Each effect subcontainer supports additional tags depending on the effect kind. The following effect kinds are supported:&lt;br /&gt;
&lt;br /&gt;
:* [[Corona Effect]]&lt;br /&gt;
:* [[Name Effect]]&lt;br /&gt;
:* [[Attachment Effect]]&lt;br /&gt;
:* [[Animation Effect]]&lt;br /&gt;
:* [[Texture-Replacement Effect]]&lt;br /&gt;
&lt;br /&gt;
===light===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: True(1)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: If true, this tag causes the non-stitched mesh to be linked into the Trainz lighting model. This causes the mesh to respond to directional lighting changes, such as the angle of the sun or train headlights. This is also necessary for normal maps to work correctly. Zeroing this tag will remove the mesh from the Trainz lighting model. Generally speaking, you should never zero this tag- almost every effect that can be achieved through this approach can be better served by using an appropriate normal map or appropriate geometry detail.&lt;br /&gt;
&lt;br /&gt;
:This tag has no effect on stitched meshes, which are always affected by the Trainz lighting. Since the content creator has no direct influence over which meshes are subject to [[Mesh Stitching]], and all indirect influences are subject to change between Trainz editions, it is strongly recommended that this tag is avoided to ensure that results are consistent.&lt;br /&gt;
&lt;br /&gt;
===lod-level===&lt;br /&gt;
:Type: Int (0-8)&lt;br /&gt;
:Default: 255&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The object LOD level at which this mesh is displayed. The default value (255) indicates that this mesh is visible at all detail levels.  See also [[KIND Mesh]] for the &#039;mesh-detail-level&#039; tag.&lt;br /&gt;
&lt;br /&gt;
===mesh===&lt;br /&gt;
:Type: Mesh name&lt;br /&gt;
:Default: &amp;quot;&amp;quot; (will raise error if null)&lt;br /&gt;
:Compulsory: Yes (3.4)&lt;br /&gt;
:Desc: The ‘main’ mesh name. This may include a sub-path.  ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows. Use .im files or reference an [[LM.txt_file]] file if you wish your asset to have ‘Level of Detail’ mesh reduction.&lt;br /&gt;
:The mesh name can also refer to an IM file in a mesh asset library if the mesh-asset tag is specified.&lt;br /&gt;
&lt;br /&gt;
===mesh-asset===&lt;br /&gt;
:Type: [[KUID]]&lt;br /&gt;
:Default: &amp;lt;NULLKUID&amp;gt;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Specifies a mesh asset library to be used in conjunction with the &#039;mesh&#039; tag.  The mesh name specified in the &#039;mesh&#039; tag must be located in this asset as Content Manager not check for the existence of the mesh.  If the mesh is not located in the root folder of the mesh asset then include the path as part of the mesh name in the &#039;mesh&#039; tag.&lt;br /&gt;
&lt;br /&gt;
===mesh-scale===&lt;br /&gt;
:Type: Floatlist&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This tag defines a minimum and maximum scaling value for the mesh, where 1.0 is the size as modelled. Each instance of the mesh that exists in the world will randomise within this range. Randomisation will not change between runs or between Trainz editions, but may change based on factors such as the position of the mesh in the world. This tag is currently only supported on SpeedTree assets; attempts to use this tag on other assets results in undefined behaviour.&lt;br /&gt;
&lt;br /&gt;
===mesh-season===&lt;br /&gt;
:Type: Int (0-250)&lt;br /&gt;
:Default: 255&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: The season index for which this mesh is displayed. The default value (255) indicates that this mesh is visible in all seasons.  See also [[&amp;quot;Season-selector&amp;quot; container]].&lt;br /&gt;
&lt;br /&gt;
===night-mesh-base===&lt;br /&gt;
:Type: Mesh name &lt;br /&gt;
:Default: &amp;quot;&amp;quot;&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: This night mesh is linked to the specified mesh and is visible only at night. It is invisible if the specified mesh is invisible, (if the auto-create 0 line were used so the specified mesh can be controlled by script).&lt;br /&gt;
&lt;br /&gt;
===opacity===&lt;br /&gt;
:Type: Float (0.0 - 1.0)(See below)&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Specifies the overall transparency of the mesh. Values other than 0.0 or 1.0 employ alpha blending and a value of 0.0 has the same effect as hiding the mesh. Note that this tag is buggy in TS2009 prior to SP4.&lt;br /&gt;
&lt;br /&gt;
===orientation===&lt;br /&gt;
:Type: Floatlist (radians)&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Orientation of X,Y,Z axes. Allows a submesh to be rotated relative to its insertion point.  To reverse a mesh by 180 degrees about the Z axis, add the tag: orientation 0,0,3.14159&lt;br /&gt;
&lt;br /&gt;
===position===&lt;br /&gt;
:Type: Floatlist (metres)&lt;br /&gt;
:Default: 0,0,0&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: Position of the mesh using X,Y,Z axes relative to its insertion point.&lt;br /&gt;
&lt;br /&gt;
===radius===&lt;br /&gt;
:Type: Float &lt;br /&gt;
:Default: TBD&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: TBD (should this be in [[&amp;quot;mesh-table&amp;quot;_container_(interior_version)]]?)&lt;br /&gt;
&lt;br /&gt;
===should-respond-to-clicks===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: True(1)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: If set to false (0) on a mesh that is part of an asset, it will remove that mesh from the calculation of the &#039;bounding box&#039; that will be used to check whether the user clicked on that particular asset.  This is useful for light ray effects or animations which are significantly outside the normal bounding volume, and may cause movement to focus on the wrong asset.  For instance, a traincar may need a mesh marked with should-respond-to-clicks set to false in order to ensure that the click is detected for the correct traincar when it is part of a consist. First introduced with TS12 SP1 HF4 (build 61388). Default value (True) is the prior behaviour (the mesh &#039;&#039;will&#039;&#039; be considered part of the bounding box for the purpose of registering clicks). &lt;br /&gt;
&lt;br /&gt;
===test-collisions===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: TBD&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: TBD (should this be in [[&amp;quot;mesh-table&amp;quot;_container_(interior_version)]]?)&lt;br /&gt;
&lt;br /&gt;
===use-parent-bounds===&lt;br /&gt;
:Type: Bool &lt;br /&gt;
:Default: False(0)&lt;br /&gt;
:Compulsory: No&lt;br /&gt;
:Desc: When enabled, this tag indicates that render culling should occur using the whole object&#039;s bounding box rather than this mesh&#039;s bounding box. Bounding boxes on individual meshes may not update correctly when animation moves the object&#039;s geometry any significant distance from the bind position. This flag can help mitigate such effects, at a tiny performance penalty.&lt;br /&gt;
&lt;br /&gt;
==Mesh-Table Example==&lt;br /&gt;
The following is an example of a simple mesh-table which implements two levels of detail.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default-lod0&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod0.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 0&lt;br /&gt;
   }&lt;br /&gt;
   default-lod1&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod1.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 1&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Config Container|mesh-table container]]&lt;br /&gt;
{{ORP-bot|mesh-table container}}&lt;/div&gt;</summary>
		<author><name>Gevrard</name></author>
	</entry>
</feed>