Trainz/containers/bogeys container

The bogeys container is an  of bogey subcontainers and is used by all classes and types of  assets, which means all rolling stock and locomotives; as well as many non-rail vehicles such as automobiles, farm equipment, industrial machinery and trucks, any of which may be (already or) made to be drivable Trainz Models. Some boats and ships are animated to ride invisible track to provide animated motion in background scenery, and these too and even air ships (blimps, hot air balloons) and air craft may have invisible bogeys riding the invisible rails when they come into visual range.
 * Each bogey subcontainer has a unique tag name and these tag names are matched with standard bogie s in the . These are, and have been since Trainz 1.0, attachment-points named a.bog0, a.bog1, a.bog2, and a.bog3. Like many trainz containers, names have been often specified with s {p: 0, 1, 2, 3}, but names can be given to them.
 * Unlike many trainz config container, the bogeys container does not have '-table' appended to its name, just the plural suffix 's'.

General form
Like most all Trainz containers, the former Trainz data model format with individual tag names: bogey, bogey1, bogey2 and bogey4 have been recast from existence as tag names into the bogies subcontainer structure, wherein the keyword tags are positionally important relative to a.bogN attachments, but have no actual relevance as keywords. bogies {  bogey0-ID { subcontainer tags } bogey1-ID { subcontainer tags } bogey2-ID { subcontainer tags } bogey3-ID { subcontainer tags } }


 * Since most traincars only have two sets of trucks or bogies, front and back, attachment points abog.2 and abog.3 are almost exclusively seen in locomotive digital models as the driver wheels providing power.
 * These, as it happens, are also the trucks most likely to have trucks which slide on pillow blocks under the car, so may shift back and forth (sideplay) out past the plane of the edge of the traincar body on medium and tight curves.
 * In practice, Trainz will default the first value in the first bogies subcontainer as if it were duplicated for the second placeholder; this retains implementation compatability with the earliest traincars wherein the 'bogey1 tag' was left undefined when the kuid in the 'bogey tag' was a reversable truck type and could be used visually to model both sets of wheels on the bogey at either end of the car. This makes more sense if one understands coupling systems generally use a separate attachment point, and aren't generally part of the bogey models.

Supported Tags
Each bogey subcontainer can have the following form) and supports the following tags (all 4 tags. Each tag is shown here with its default value.

BogeyN-ID {   bogey               reversed          0 rotation-permitted 1 sideplay-permitted 0 }

BogeyN-ID

 * Type: Dummy identifier
 * Desc: String or placeholder number to identify the subcontainer.

In practice, the order but not the name of the subcontainers determine assignment to the four possible attachment points. {{TTip|Corollary 'Neat' Factoid|Large 'very modern' Steam locomotive models where the prototypes were utilizing double and triple steam expansion stages are often modeled as two steam locomotives and coupled together by placing a hitch on abog.1 of the lead assembly, and on abog.0 of the second effectively giving the content creator six usable attachment points for the various trucks.

bogey

 * Type: Asset KUID
 * Desc: Specifies the bogie asset to use at the attachment point.

reversed

 * Type: Boolean
 * Desc: Allows the bogie asset to be reversed at its attachment point. i.e. 180 degrees in the asset Z axis.

In practice, this affects animation (appearance of the wheels spinning) regardless of the eccentricity of the bogey relative to it's own centering. A pivot point from it's center that must be offset to use such a bogey front and back is the rationale for this kind of truck modeling. Better to have one mesh and anim file with reversed signs than two for throughput and efficiency. Such trucks are often commonly seen on electric powered self-propelled passenger coaches where the motors are mounted on the trucks below the passenger compartment.
 * 1 is reversed. 0 is not reversed and the default value.

rotation-permitted

 * Type: Boolean
 * Desc: Allows the bogey to rotate itself in the Z axis to align with track direction.


 * If 1 (default) then the bogey will rotate and if 0 then the bogey will not rotate.
 * Using a zero value can be useful when the wheels being represented are fixed to the frame of the vehicle, and are not mounted on a rotating bogey. (This was a common arrangement in many smaller vehicles using a single axle wheel set on each end of British influenced rail cars and many mining vehicles like dump carts small enough to ride an elevator up a shaft.)

sideplay-permitted

 * Type: Boolean
 * Desc: Allows the bogie asset to move (float or slip) sideways to follow the track rather than remaining fixed at its attachment point, which is usually implemented on a pillow block on a slide (rod).


 * 0 (default) is no sideplay. 1 allows sideplay.

Examples
We lead with the most commonly needed 'flavors' seen:

Example 0
A typical two bogey traincar can be represented like this:

A two kuids
bogeys { 0 {    bogey               }  1 {     bogey               } }

B one kuid
Or more simply like this:

bogeys { 0 {    bogey               } } This editor was amused to find PEVs TrainCar Viewer performed correctly for the second (legacy, one-bogey spec form) but not for the more exact and N3V-preferred first form. To Railyard, Surveyor, and Driver, they are identical in results.

Example 1
A Tri-Bo locomotive where the centre bogie slides from side to side can be represented like this:

bogeys { 0 {    reversed           0 bogey              }  1 {     reversed           1 bogey              }  2 {     reversed           0 sideplay-permitted 1 bogey              } }

a.bog0 and a.bog1 are used for the two end bogies, and will locate the vehicle on the track. But the bogie attached at a.bog2 in the middle will now follow the track through curves rather than stay firmly riveted on the underframe with it's wheels dangling in mid air.

Example 2
This is a loco with central power bogies, and outer bogies to help traverse curves. The PRR GG1 (wheel pattern 2-co-co-2) is of this type. This can now be represented as follows:

bogeys { 0 {    reversed           0 bogey              }  1 {     reversed           1 bogey              }  2 {     reversed           0 sideplay-permitted 1 bogey              }  3 {     reversed           1 sideplay-permitted 1 bogey              } }

a.bog0 and a.bog1 are used for the main power bogies to locate the vehicle correctly on the track. a.bog2 and a.bog3 are used for the leading and trailing unpowered bogies. These are permitted sideplay so they follow the track.

Example 3
A two axle rigid frame vehicle can be represented as follows:

bogeys { 0 {    reversed           0 rotation-permitted 0 bogey              }  1 {     reversed           1 rotation-permitted 0 bogey              } }

In this case, each bogie would be a single axle. The location of the attachment point will specify how the vehicle is aligned when on a curve, so should be placed at the location of the axle in the 'y' direction.

Example 4
An interesting case might be a three axle rigid frame vehicle - with sideplay (but no rotation!) on the centre axle. This might be represented as follows:

bogeys { 0 {    reversed           0 rotation-permitted 0 bogey              }  1 {     reversed           0 rotation-permitted 0 bogey              }  2 {     reversed           0 rotation-permitted 0 sideplay-permitted 1 bogey              } }

Example 5
These tags are useful for steam locos too. Consider the pacific '4-6-2' wheel pattern. Looking from the front (a.limfront) end through to the back (a.limback), one way to arrange the bogie attachment points to get the required behaviour is:

a.bog2 - front bogie (the '4' in '4-6-2'). For best results, the attachment point should be the centre of the wheelbase. Use 'sideplay-permitted 1' on this bogie.

a.bog0 - drive bogie (the '6' in '4-6-2'). The attachment point should be circa where the front axle is. Move it back a bit if you have a lot of axles (e.g. 5 or more) in the drive bogie. Configure this one with 'sideplay-permitted 0' and 'rotation-permitted 0' - you don't want it moving around on curves at all! (With 'rotation-permitted 0' there is now no need to locate it at 0,0,0 to stop it rotating).

a.bog1 - an invisible bogie in line with the rear axle of the drive bogie. Move slightly forward if your drive bogie is large (e.g. 5 axles or more). This will make the locomotive body follow the track properly.

a.bog3 - trailing pony truck (the '2' in '4-6-2'). The attachment point should be in line with axle. Use 'sideplay-permitted 1' as with the front bogie.

This will produce the correct behaviour both from the locomotive body and the various bogies.

Using these parameters should mean that even very flexible locos (e.g. a Mallet or Garratt) can be built in a much more realistic manner, and with fewer separate pieces that need assembly in Surveyor.

Notes, Footnotes & References
Config.txt files are endemic and ever present in Trainz assets, for no asset can be defined without this type of. The keyword-value_of_key pairing must always be kept in mind in editing or creating Trainz content. The contains values and containers which are most common in asset defining config.txt files.