<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://newgrf-specs.tt-wiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brickblock1</id>
	<title>GRFSpecs - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://newgrf-specs.tt-wiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brickblock1"/>
	<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/wiki/Special:Contributions/Brickblock1"/>
	<updated>2026-10-25T23:26:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=VariationalAction2/Vehicles&amp;diff=5293</id>
		<title>VariationalAction2/Vehicles</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=VariationalAction2/Vehicles&amp;diff=5293"/>
		<updated>2026-10-14T21:28:43Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right; padding-left:12px; background:none;&amp;quot;&amp;gt;{{NFONavVehicles}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Variable!![[GRFActionsDetailed|Size]]!!Version!!Description!!Available in purchase list&lt;br /&gt;
|-&lt;br /&gt;
|10||D||{{ottdp|1.2|no|ottdrev=r23080}}||Pick sprites for different GUI windows - See [[Action2/Vehicles]].||{{ottdp|1.2|no|ottdrev=r23080}}&lt;br /&gt;
|-&lt;br /&gt;
|40||D||{{ottdp|0.6|2.5}}||Position in consist and length of consist||no&lt;br /&gt;
|-&lt;br /&gt;
|41||D||{{ottdp|0.6|2.5}}||Position in and length of chain of consecutive vehicles with same ID||no&lt;br /&gt;
|-&lt;br /&gt;
|42||D||{{ottdp|0.6|2.5}}||Cargo types transported by consist||no&lt;br /&gt;
|-&lt;br /&gt;
|43||D||{{ottdp|0.6|2.5}}||Player info||{{ottdp|0.6|2.5|ottdrev=r4611|ttdprev=beta 2}}&lt;br /&gt;
|-&lt;br /&gt;
|44||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 48}}||Aircraft info||no&lt;br /&gt;
|-&lt;br /&gt;
|45||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 58}}||Curvature info||no&lt;br /&gt;
|-&lt;br /&gt;
|46||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 59}}||Motion counter||no&lt;br /&gt;
|-&lt;br /&gt;
|47||D||{{ottdp|0.6|2.5}}||Vehicle cargo info||{{ottdp|0.7|no|ottdrev=r15542}} &amp;lt;ref name=&amp;quot;var47&amp;quot;&amp;gt;Variable 47 refers to the default cargo of the vehicle, when in purchase list. This differs from the cargo used in Action 3, which is 0xFF in purchase list. The &amp;quot;refit cycle&amp;quot; (F2) is currently always zero in the purchase list.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|48||D||{{ottdp|0.6|2.5}}||Vehicle type information||{{ottdp|0.6|2.5|ottdrev=r5338|ttdprev=beta 2}}&lt;br /&gt;
|-&lt;br /&gt;
|49||D||{{ottdp|0.7|2.6|ottdrev=r13376|ttdprev=r2216}}||Year of construction (long format, 0 based)||{{ottdp|0.7|no|ottdrev=r13376}} &amp;lt;ref name=&amp;quot;date&amp;quot;&amp;gt;This is the current date&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4A||D||{{ottdp|1.1|no|ottdrev=r20165}}||Info about current railtype/roadtype/tramtype||no&lt;br /&gt;
|-&lt;br /&gt;
|4B||D||{{ottdp|1.2|no|ottdrev=r23068}}||Long date of last servicing||{{ottdp|1.2|no|ottdrev=r23068}} &amp;lt;ref name=&amp;quot;date&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4C||D||{{ottdp|1.3|no|ottdrev=r24246}}||Current max speed including e.g track or timetable speed limits. Only valid for front vehicle. Note, units differ for each vehicle type&amp;lt;ref name=&amp;quot;speed&amp;quot;&amp;gt;See [[Action0Trains#Speed 09|train property 09]], [[Action0RoadVehicles|road vehicle property 08]] (not 15, even when using realistic acceleration), [[Action0Ships|ship property 0B]] and [[Action0Planes|aircraft property 0C]].&amp;lt;/ref&amp;gt;||no&lt;br /&gt;
|-&lt;br /&gt;
|4D||D||{{ottdp|1.4|no|ottdrev=r26157}}||Position within articulated vehicle||no&lt;br /&gt;
|-&lt;br /&gt;
|60||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 57}}||Count Veh.ID occurence||no&lt;br /&gt;
|-&lt;br /&gt;
|61||-&amp;lt;ref&amp;gt;The size of the result matches the size of the queried variable.&amp;lt;/ref&amp;gt;||{{ottdp|1.2|no|ottdrev=r22997}}||Query variable of n-th vehicle in chain||no&lt;br /&gt;
|-&lt;br /&gt;
|62||D||{{ottdp|1.2|no|ottdrev=r22998}}||Curvature/position difference for n-th vehicle in chain||no&lt;br /&gt;
|-&lt;br /&gt;
|63||D||{{ottdp|1.11|no|ottdrev=g868d84bbf}}||Test track-type of tile against another track-type||no&lt;br /&gt;
|-&lt;br /&gt;
|64||D||{{ottdp|15|no}}||Count badge occurence||no&lt;br /&gt;
|-&lt;br /&gt;
|65||D||{{ottdp|15|no}}||Test if rail or road type of the current type occupied by the vehicle has that specific badge attached||no&lt;br /&gt;
|-&lt;br /&gt;
|7A||D||{{ottdp|15|no}}||Test if the vehicle has that specific badge attached||yes&lt;br /&gt;
|-&lt;br /&gt;
|97||B||{{ottdp|0.6|2.0}}||Tick counter, increased every engine tick||no&lt;br /&gt;
|-&lt;br /&gt;
|B2||W||||Vehicle status: bit0 = vehicle invisible (in tunnel/depot), bit1 = stopped, bit7 = crashed||no&lt;br /&gt;
|-&lt;br /&gt;
|B4||W||{{ottdp|0.6|2.0}}||Current speed. Note, units differ for each vehicle type&amp;lt;ref name=&amp;quot;speed&amp;quot; /&amp;gt;||no&lt;br /&gt;
|-&lt;br /&gt;
|B9||B||{{ottdp|0.6|2.0}}||Cargo type (type B from the list at [[CargoTypes]]; climate dependent)||no&lt;br /&gt;
|-&lt;br /&gt;
|C0||W||{{ottdp|0.6|2.0}}||Engine age in days&amp;lt;br/&amp;gt;{{ottdp|1.2|2.5|ottdrev=r22816|ttdprev=alpha 61}} Valid for wagons and articulated parts as well.||no&lt;br /&gt;
|-&lt;br /&gt;
|C4||B||{{ottdp|0.6|2.0}}||Year built (counted from 1920), note this is modified when Cht: Year is used||{{ottdp|0.6|no|ottdrev=r4611}} &amp;lt;ref name=&amp;quot;date&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|C6||W||{{ottdp|0.6|2.0}}||Vehicle type ID &amp;lt;ref&amp;gt;{{ottdp|0.7|no}} In OpenTTD 0.7 and newer this is the GRF-local ID of the vehicle. Earlier versions of OpenTTD and TTDPatch report the [[VehicleIDs|TTD ID]]. For trains this is the same; for other vehicle types they differ.&amp;lt;/ref&amp;gt; (useful for [[Callbacks#Can wagon be attached (1D)|Callback 1D]])||no&lt;br /&gt;
|-&lt;br /&gt;
|C8||B||{{ottdp|0.6|2.0}}||Sprite type; FD for trains forward, FE or FF when reversed||no&lt;br /&gt;
|-&lt;br /&gt;
|C9||B||{{ottdp|0.6|2.0}}||Day counter; increased daily||no&lt;br /&gt;
|-&lt;br /&gt;
|DA||W||{{ottdp|0.6|2.0}}||Next wagon index, FFFF if last wagon (use shift-num=08 and check for FF)||no&lt;br /&gt;
|-&lt;br /&gt;
|F2||B||{{ottdp|0.6|2.5}}||Refit cycle, how many times refitted to the same cargo type||{{ottdp|0.7|no|ottdrev=r15542}} &amp;lt;ref name=&amp;quot;var47&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|F4||D||{{ottdp|0.5|2.0|ottdrev=3594}}||Current horsepower of train consist||no&lt;br /&gt;
|-&lt;br /&gt;
|FE||W||{{ottdp|0.6|2.5}}||Modflags||no&lt;br /&gt;
|-&lt;br /&gt;
|FF||B||{{ottdp|0.6|2.5}}||Modflags||no&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For other 80+x variables confer the [http://marcin.ttdpatch.net/sv1codec/TTD-locations.html#_VehicleArray TTD vehicle structure].&lt;br /&gt;
&lt;br /&gt;
Variables 40, 41, 42 and 43 are cached. This means that while they are in principle computationally expensive, they can be used without impacting performance. Variables 45 and 60 are also computationally expensive but cannot be cached, and should therefore be used sparingly. If possible 80+x variables are to be preferred.&lt;br /&gt;
&lt;br /&gt;
Cached variables are updated when the game is loaded, when the consist enters or is rearranged in a depot, and when the train reverses.&lt;br /&gt;
&lt;br /&gt;
In the purchase list only a few variables are available. Especially the front vehicle (related object) cannot be accessed, nor other articulated parts.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
=== Position and length (40, 41) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; 00nnbbff&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|ff||position of vehicle within the consist counted from the engine (front), e.g. the engine would have ff=0, the 1st wagon or mail compartment of planes would have ff=1, the 2nd wagon or the rotor of helicopters would have ff=2, the 3rd wagon would have ff=3 etc&lt;br /&gt;
|-&lt;br /&gt;
|bb||same as ff, but counted from the end, i.e. the last wagon has bb=0, the next-to-last wagon has bb=1 etc.&lt;br /&gt;
|-&lt;br /&gt;
|nn||Total number of vehicles in the consist, including shadow and rotor for aircraft.&lt;br /&gt;
* In var 40 this is zero-based. That is, the value returned is one less than the actual number of vehicles. A train with engine and three wagons has nn=3.&lt;br /&gt;
* In var 41 this is one-based. That is, the value returned is the actual number of vehicles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For variable 40, these numbers refer to the whole consist, but for variable 41, they only refer to the chain of consecutive vehicles with the same ID as the current wagon (including itself, but possibly excluding the engine):&lt;br /&gt;
&lt;br /&gt;
[[File:vehicle_var40_41.png]]&lt;br /&gt;
&lt;br /&gt;
Note however, that accessing the &amp;quot;related&amp;quot; object (i.e. the locomotive) doesn´t make much sense for vars 40/41, except for var40 when in a [[Callbacks#Can wagon be attached 1D|callback 1D]] chain.&lt;br /&gt;
&lt;br /&gt;
=== Consist cargo (42) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; uuiicctt&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|tt||a bit mask of all [[Action0Cargos#Cargo classes 16|cargo classes]] transported by the consist&lt;br /&gt;
|-&lt;br /&gt;
|cc||the most common [[CargoTypes|cargo type]] (from the column for type A)&lt;br /&gt;
|-&lt;br /&gt;
|ii||the most common refit cycle (var. F2) of cargo type cc&lt;br /&gt;
|-&lt;br /&gt;
|uu||the result of ORing the bits of prop. 25 from all vehicles in the train&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If used with VarAction2 type 81 (vehicle) it returns only cargo from this vehicle on, with type 82 (engine) that of the whole consist.&lt;br /&gt;
See also variable 47 for more details on the cargo carried by a vehicle.&lt;br /&gt;
&lt;br /&gt;
{{grfTill|7}} For GRF versions 7 and before &amp;quot;cc&amp;quot; is the untranslated bit number from [[Action0/Cargos#Bit_number_for_bitmasks_.2808.29|cargo property 8]].&lt;br /&gt;
&lt;br /&gt;
{{grfFrom|8}} With GRF version 8 the meaning of &amp;quot;cc&amp;quot; changes. If the grf file has installed a [[Action0/Global_Settings#Cargo_translation_table_.2809.29|cargo translation table]], the value in &amp;quot;cc&amp;quot; is the index of the cargo in that table; or FF if the cargo is not present in the table.&lt;br /&gt;
&lt;br /&gt;
=== Player info (43) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; Ccttmmnn&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|nn||the number of the current player from 0 to 7 (up to E (14) in OpenTTD since r14735)&lt;br /&gt;
|-&lt;br /&gt;
|mm||the multiplayer player number with the host player (or the single player) being 0 and the client player being 1&lt;br /&gt;
|-&lt;br /&gt;
|tt||the player type, see below for possible values&lt;br /&gt;
|-&lt;br /&gt;
|c||the primary player colour&lt;br /&gt;
|-&lt;br /&gt;
|C||{{ottdp|0.6|2.5|ttdprev=r1405}} the secondary player colour, equal to c if none (since r1405)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!tt value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||Player is human player (permanent company)&lt;br /&gt;
|-&lt;br /&gt;
|1||Player is AI player (not managed)&lt;br /&gt;
|-&lt;br /&gt;
|2||{{ottdp|no|2.5}} Player is a human managing an AI company&lt;br /&gt;
|-&lt;br /&gt;
|3||{{ottdp|no|2.5}} Player is human player&#039;s original company, now temporarily AI controlled&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{ottdp|0.6|2.5|ttdprev=r1497}} Since r1497, when the vehicle sprite is being displayed in an exclusive offer window or new vehicle news message, or in other circumstances when no player is associated with the vehicle, nn will be FF.&lt;br /&gt;
&lt;br /&gt;
=== Aircraft info (44) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxhhtt&lt;br /&gt;
&lt;br /&gt;
hh is the height of the aircraft above ground, or more properly above the height of its shadow. Buildings, including the heliport, don&#039;t count as &amp;quot;ground&amp;quot;, i.e. to get the height above a heliport, you have to subtract the heliport height from hh.&lt;br /&gt;
&lt;br /&gt;
tt is the type of the current airport: 0=small, 1=large, 2=heliport, 3=oil rig. The current airport is the target airport for aircraft that have finished the ascent and are in flight.&lt;br /&gt;
&lt;br /&gt;
=== Curvature info (45) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxTxBxF&lt;br /&gt;
&lt;br /&gt;
This returns the amount of curvature between the adjacent wagon pairs. It is useful for train vehicles that normally tilt in curves. The curvature is the difference in direction between the surrounding vehicles:&lt;br /&gt;
&lt;br /&gt;
F = for the front pair (previous wagon to current wagon, 0 if vehicle is first)&lt;br /&gt;
&lt;br /&gt;
B = for the back pair (current wagon to next wagon, 0 if wagon is last)&lt;br /&gt;
&lt;br /&gt;
T = for the triplet (previous wagon to next wagon; is zero in an S-bend)&lt;br /&gt;
&lt;br /&gt;
Possible values:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Decimal!!Hex!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
| -4||C||180° curve left (T only)&lt;br /&gt;
|-&lt;br /&gt;
| -3||D||135° curve left (T only)&lt;br /&gt;
|-&lt;br /&gt;
| -2||E||90° curve left&lt;br /&gt;
|-&lt;br /&gt;
| -1||F||45° curve left&lt;br /&gt;
|-&lt;br /&gt;
|0||0||no curve&lt;br /&gt;
|-&lt;br /&gt;
|1||1||45° curve right&lt;br /&gt;
|-&lt;br /&gt;
|2||2||90° curve right&lt;br /&gt;
|-&lt;br /&gt;
|3||3||135° curve right (T only)&lt;br /&gt;
|-&lt;br /&gt;
|4||4||180° curve right (T only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Motion counter (46) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; 32-bit value&lt;br /&gt;
&lt;br /&gt;
This variable counts the amount of motion that a vehicle has done. &amp;amp;nbsp;It is only valid for the first vehicle in a consist (i.e. use VarAction2 type 82!). &amp;amp;nbsp;Its value is in units of 1/4096 of a tile. &amp;amp;nbsp;A vehicle actually moves visibly every time the motion counter increases by 256, and since a tile consists of 16 such subunits, 16*256=4096 motion units mean motion across one tile.&lt;br /&gt;
&lt;br /&gt;
The most useful way to access it is probably with &amp;amp;lt;shiftnum&amp;amp;gt;=08 and an appropriate &amp;amp;lt;andmask&amp;amp;gt;. &amp;amp;nbsp;For example, to achieve an animation with one frame per vehicle motion and 16 frames in total for motion across an entire tile, you would use &amp;amp;lt;shiftnum&amp;amp;gt;=08 and &amp;amp;lt;andmask&amp;amp;gt;=0F. &amp;amp;nbsp;For an animation with one frame every two vehicle motions and 4 frames total, use &amp;amp;lt;shiftnum&amp;amp;gt;=09 and &amp;amp;lt;andmask&amp;amp;gt;=03.&lt;br /&gt;
&lt;br /&gt;
If the vehicle is going very fast (&amp;amp;gt;160 mph for trains), it may move by several 1/16ths of a tile at once, and thus some frames may be skipped, but the animation will still remain in sync with the motion.&lt;br /&gt;
&lt;br /&gt;
Note that vehicle graphics are only updated every time the vehicle actually moves, so checking the lower byte is probably pointless, and only needed internally to achieve sufficient precision.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle cargo info (47) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; ccccwwtt&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|tt||the [[CargoTypes|cargo type]] transported by the vehicle (from the column for type A); translated if a translation table has been installed&lt;br /&gt;
|-&lt;br /&gt;
|ww||cargo unit weight in 1/16 tons, same as [[Action0Cargos#Weight of one unit of the cargo 0F|cargo prop. 0F]]&lt;br /&gt;
|-&lt;br /&gt;
|cccc||the [[Action0Cargos#Cargo classes 16|cargo class]] value of the cargo transported by the vehicle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that if the grf has installed a [[Action0/Global_Settings#Cargo_translation_table_.2809.29|cargo translation table]], the value in &amp;quot;tt&amp;quot; is the slot number in that table, irrespective of which actual slot or bit the cargo is using in the game. If a table has been installed, but the current cargo is not listed there, &amp;quot;tt&amp;quot; will be set to FF.&lt;br /&gt;
&lt;br /&gt;
Unlike variable 42, this variable returns the info of the current vehicle only, not the consist.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle type information (48) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxff&lt;br /&gt;
&lt;br /&gt;
The bits of ff are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||Vehicle type is available on the market&lt;br /&gt;
|-&lt;br /&gt;
|1||2||Vehicle type is in the testing phase&lt;br /&gt;
|-&lt;br /&gt;
|2||4||Exclusive testing offer for a human player active&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All other bits in ff are undefined and must be masked out.&lt;br /&gt;
&lt;br /&gt;
=== Information about current railtype/roadtype/tramtype (4A) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxFFrr&lt;br /&gt;
&lt;br /&gt;
The lower byte (rr) contains the (translated) railtype/roadtype/tramtype the vehicle is currently driving on. &lt;br /&gt;
If the railtype/roadtype/tramtype has no entry in the railtype/roadtype/tramtype translation table of the GRF, this value will be 0xFF. &lt;br /&gt;
If no translation table is present, the raw value will be returned.&lt;br /&gt;
Note: only exact matches of rail-/road-/-tram-types are reported. If the translation table of the GRF does not contain the exact track-type 0xFF is returned, even if the translation table contains equivalent track-types (according to rail-/road-/tram-type property 1D). Use variable 63 to test for compatibility/poweredness/equivalency with track-types known to both the vehicle and the track-type NewGRF.&lt;br /&gt;
&lt;br /&gt;
The variable only reports about the tracks the vehicle is using: on a level crossing with rail, road and tram tracks, the vehicle (train, road vehicle, tram) can only query the track type it belongs to.&lt;br /&gt;
&lt;br /&gt;
The second byte (FF) contains the following flags:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||The vehicle is/would be powered on the current railtype (this is independent from powered/non-powered wagon or anything)&lt;br /&gt;
|-&lt;br /&gt;
|1||2||{{ottdp|1.11|no|ottdrev=gf1bc4d840}} Set, if the track-type has catenary. This is independent of the vehicle: a NewGRF can define an engine as powered on non-electrified track (bit 0), and show a raised pantograph (bit 1) to look like a dual-powered engine. This bit is a simplified as it only checks for &amp;quot;some catenary&amp;quot;. To distinguish different types of catenaries, AC and DC voltages, ... use variable 63 instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All other bits are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
All other bytes are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
=== Position within articulated vehicle (4D) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxbbff&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|ff||Position of vehicle (articulated part) within the articulated vehicle, counted from the first part, starting with 0.&lt;br /&gt;
|-&lt;br /&gt;
|bb||Position of vehicle (articulated part) within the articulated vehicle, counted from the last part, starting with 0.&lt;br /&gt;
|-&lt;br /&gt;
|xx||Reserved, do not access.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The total number of articulated parts of a vehicle equals ff + 1 + bb.&lt;br /&gt;
&lt;br /&gt;
For road vehicles &amp;quot;ff&amp;quot; and &amp;quot;bb&amp;quot; currently equal var 40, since there are no road vehicle wagons yet.&lt;br /&gt;
&lt;br /&gt;
=== Count Veh.ID occurence (60) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxnn&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the vehicle ID to look for, and the returned nn is the number of vehicles in the consist that have this ID. If used with VarAction2 type 81, only the current vehicle and onwards will be check, with VarAction2 type 82, all vehicles in the consist will be counted.&lt;br /&gt;
&lt;br /&gt;
=== Query variable of n-th vehicle in chain (61) ===&lt;br /&gt;
&lt;br /&gt;
This is a special variable to get the contents of another variable of a different vehicle in the vehicle chain. It is only supported for trains and road vehicles. It is not supported during a callback that is used to modify vehicle properties to avoid circular dependencies, which currently limits this variable to callbacks 1D, 2D, 31 and 32 plus outside callback scope.&lt;br /&gt;
&lt;br /&gt;
Temporary register 10F is interpreted as a signed integer and specifies the offset in the chain from the current vehicle. Positive values are interpreted as towards the end, negative values as towards the front. If the offset is outside the vehicle chain, the result value will be 0.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter specifies the variable to access and temporary register 10E is passed as the new 60+x parameter. Passing 61 as the variable is not allowed. Currently only vehicle specific variables listed on this page plus global variable 25 and {{ottdp|1.3|no|ottdrev=r24527}} 5F are accessible through var 61.&lt;br /&gt;
&lt;br /&gt;
The resulting value will have the size of whatever variable is queried.&lt;br /&gt;
&lt;br /&gt;
=== Curvature/position difference for n-th vehicle in chain (62) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; zzyyxxFD&lt;br /&gt;
&lt;br /&gt;
This variable is only supported for trains and road vehicles.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is interpreted as a signed integer and specifies the offset in the chain from the current vehicle. Positive values are interpreted as towards the end, negative values as towards the front. If the offset is outside the vehicle chain, the result value will be 0.&lt;br /&gt;
&lt;br /&gt;
The lowest nibble (D) contains the direction difference between the selected vehicle and this vehicle, the possible values are identical to those of [[#Curvature_info_.2845.29|variable 45]].&lt;br /&gt;
&lt;br /&gt;
The next nibble (F) has the following meaning:&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|3||8||The vehicle is currently hidden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The upper three bytes contain the signed difference of the X/Y/Z position between the selected vehicle and this vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Track-type test against another track-type (63) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.11|no|ottdrev=g868d84bbf}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxFF&lt;br /&gt;
&lt;br /&gt;
This variable is only supported for trains and road vehicles.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is an index into the rail-/road-/tram-type translation table.&lt;br /&gt;
The result value reports how vehicles of this type would behave on the current tile.&lt;br /&gt;
This allows vehicles to behave or look differently on various track-types independent of their own track-type.&lt;br /&gt;
&lt;br /&gt;
The lower byte (FF) contains some flags:&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||The track-type from the 60+x parameter is known. If unset, all other flags are unset as well, no information can be given.&lt;br /&gt;
|-&lt;br /&gt;
|1||2||Vehicles with type from the 60+x parameter are compatible with the track on the current tile.&lt;br /&gt;
|-&lt;br /&gt;
|2||4||Vehicles with type from the 60+x parameter are powered on the track of the current tile.&lt;br /&gt;
|-&lt;br /&gt;
|3||8||The track-type from the 60+x parameter is identical or equivalent (listed as alternate label in rail-/road-/tram-type property 1D) to the track-type of the current tile.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The remaining bytes are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
=== Count badge occurence (64) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the badge ID to look for, and the returned value is the number of vehicles in the consist that have this badge. If used with VarAction2 type 81, only the current vehicle and onwards will be check, with VarAction2 type 82, all vehicles in the consist will be counted.&lt;br /&gt;
&lt;br /&gt;
=== Test if rail or road type of the current tile occupied by the vehicle has that specific badge attached (65) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
This variable only works for trains and road vehicles.&lt;br /&gt;
The specifications are the same as for [[#Test_if_the_vehicle_has_that_specific_badge_attached.287A.29|variable 7A]].&lt;br /&gt;
&lt;br /&gt;
=== Test if the vehicle has that specific badge attached (7A) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the index into the badge table.&lt;br /&gt;
The returned value is in range [0, 1].&lt;br /&gt;
&lt;br /&gt;
=== Modflags (FE and FF) ===&lt;br /&gt;
&lt;br /&gt;
The bits in FE mostly relate to gradualloading. &amp;amp;nbsp;A few useful bits for grf authors are;&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Version!!Value of the bit&lt;br /&gt;
|-&lt;br /&gt;
|1||{{ottdp|1.5|2.5|ottdrev=r26430}}||Vehicle is still unloading and has not yet started loading new cargo at the current station.&lt;br /&gt;
|-&lt;br /&gt;
|5||{{ottdp|0.6|2.5}}||Vehicle is powered (engine or powered wagon, mainly useful for the latter)&lt;br /&gt;
|-&lt;br /&gt;
|6||{{ottdp|0.6|2.5}}||Vehicle would be powered (engine or powered wagon) if there were suitable track. (E.g. electric train in mixed train on normal track)&lt;br /&gt;
|-&lt;br /&gt;
|8 &amp;lt;ref&amp;gt;This bit is only accurate for the first vehicle in the consist.&amp;lt;/ref&amp;gt;||{{ottdp|0.6|2.5}}||This bit is flipped every time the train reverses direction&lt;br /&gt;
|-&lt;br /&gt;
|10||{{ottdp|0.6|2.5|ttdprev=r1334}}||Vehicle was built during the exclusive preview&lt;br /&gt;
|-&lt;br /&gt;
|11||{{ottd|16}}||The train is driving backwards (trains only). {{ottd|17}} Applies to ships as well.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
variable FF is actually the high byte of variable FE, so FE bit 8 is the same as FF bit 0.&lt;br /&gt;
&lt;br /&gt;
Other bits are reserved; most are actually used for TTDPatch internal states.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=VariationalAction2/Vehicles&amp;diff=5292</id>
		<title>VariationalAction2/Vehicles</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=VariationalAction2/Vehicles&amp;diff=5292"/>
		<updated>2026-10-14T21:27:32Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Count badge occurence (64) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right; padding-left:12px; background:none;&amp;quot;&amp;gt;{{NFONavVehicles}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Variable!![[GRFActionsDetailed|Size]]!!Version!!Description!!Available in purchase list&lt;br /&gt;
|-&lt;br /&gt;
|10||D||{{ottdp|1.2|no|ottdrev=r23080}}||Pick sprites for different GUI windows - See [[Action2/Vehicles]].||{{ottdp|1.2|no|ottdrev=r23080}}&lt;br /&gt;
|-&lt;br /&gt;
|40||D||{{ottdp|0.6|2.5}}||Position in consist and length of consist||no&lt;br /&gt;
|-&lt;br /&gt;
|41||D||{{ottdp|0.6|2.5}}||Position in and length of chain of consecutive vehicles with same ID||no&lt;br /&gt;
|-&lt;br /&gt;
|42||D||{{ottdp|0.6|2.5}}||Cargo types transported by consist||no&lt;br /&gt;
|-&lt;br /&gt;
|43||D||{{ottdp|0.6|2.5}}||Player info||{{ottdp|0.6|2.5|ottdrev=r4611|ttdprev=beta 2}}&lt;br /&gt;
|-&lt;br /&gt;
|44||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 48}}||Aircraft info||no&lt;br /&gt;
|-&lt;br /&gt;
|45||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 58}}||Curvature info||no&lt;br /&gt;
|-&lt;br /&gt;
|46||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 59}}||Motion counter||no&lt;br /&gt;
|-&lt;br /&gt;
|47||D||{{ottdp|0.6|2.5}}||Vehicle cargo info||{{ottdp|0.7|no|ottdrev=r15542}} &amp;lt;ref name=&amp;quot;var47&amp;quot;&amp;gt;Variable 47 refers to the default cargo of the vehicle, when in purchase list. This differs from the cargo used in Action 3, which is 0xFF in purchase list. The &amp;quot;refit cycle&amp;quot; (F2) is currently always zero in the purchase list.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|48||D||{{ottdp|0.6|2.5}}||Vehicle type information||{{ottdp|0.6|2.5|ottdrev=r5338|ttdprev=beta 2}}&lt;br /&gt;
|-&lt;br /&gt;
|49||D||{{ottdp|0.7|2.6|ottdrev=r13376|ttdprev=r2216}}||Year of construction (long format, 0 based)||{{ottdp|0.7|no|ottdrev=r13376}} &amp;lt;ref name=&amp;quot;date&amp;quot;&amp;gt;This is the current date&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4A||D||{{ottdp|1.1|no|ottdrev=r20165}}||Info about current railtype/roadtype/tramtype||no&lt;br /&gt;
|-&lt;br /&gt;
|4B||D||{{ottdp|1.2|no|ottdrev=r23068}}||Long date of last servicing||{{ottdp|1.2|no|ottdrev=r23068}} &amp;lt;ref name=&amp;quot;date&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4C||D||{{ottdp|1.3|no|ottdrev=r24246}}||Current max speed including e.g track or timetable speed limits. Only valid for front vehicle. Note, units differ for each vehicle type&amp;lt;ref name=&amp;quot;speed&amp;quot;&amp;gt;See [[Action0Trains#Speed 09|train property 09]], [[Action0RoadVehicles|road vehicle property 08]] (not 15, even when using realistic acceleration), [[Action0Ships|ship property 0B]] and [[Action0Planes|aircraft property 0C]].&amp;lt;/ref&amp;gt;||no&lt;br /&gt;
|-&lt;br /&gt;
|4D||D||{{ottdp|1.4|no|ottdrev=r26157}}||Position within articulated vehicle||no&lt;br /&gt;
|-&lt;br /&gt;
|60||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 57}}||Count Veh.ID occurence||no&lt;br /&gt;
|-&lt;br /&gt;
|61||-&amp;lt;ref&amp;gt;The size of the result matches the size of the queried variable.&amp;lt;/ref&amp;gt;||{{ottdp|1.2|no|ottdrev=r22997}}||Query variable of n-th vehicle in chain||no&lt;br /&gt;
|-&lt;br /&gt;
|62||D||{{ottdp|1.2|no|ottdrev=r22998}}||Curvature/position difference for n-th vehicle in chain||no&lt;br /&gt;
|-&lt;br /&gt;
|63||D||{{ottdp|1.11|no|ottdrev=g868d84bbf}}||Test track-type of tile against another track-type||no&lt;br /&gt;
|-&lt;br /&gt;
|65||D||{{ottdp|15|no}}||Test if rail or road type of the current type occupied by the vehicle has that specific badge attached||no&lt;br /&gt;
|-&lt;br /&gt;
|7A||D||{{ottdp|15|no}}||Test if the vehicle has that specific badge attached||yes&lt;br /&gt;
|-&lt;br /&gt;
|97||B||{{ottdp|0.6|2.0}}||Tick counter, increased every engine tick||no&lt;br /&gt;
|-&lt;br /&gt;
|B2||W||||Vehicle status: bit0 = vehicle invisible (in tunnel/depot), bit1 = stopped, bit7 = crashed||no&lt;br /&gt;
|-&lt;br /&gt;
|B4||W||{{ottdp|0.6|2.0}}||Current speed. Note, units differ for each vehicle type&amp;lt;ref name=&amp;quot;speed&amp;quot; /&amp;gt;||no&lt;br /&gt;
|-&lt;br /&gt;
|B9||B||{{ottdp|0.6|2.0}}||Cargo type (type B from the list at [[CargoTypes]]; climate dependent)||no&lt;br /&gt;
|-&lt;br /&gt;
|C0||W||{{ottdp|0.6|2.0}}||Engine age in days&amp;lt;br/&amp;gt;{{ottdp|1.2|2.5|ottdrev=r22816|ttdprev=alpha 61}} Valid for wagons and articulated parts as well.||no&lt;br /&gt;
|-&lt;br /&gt;
|C4||B||{{ottdp|0.6|2.0}}||Year built (counted from 1920), note this is modified when Cht: Year is used||{{ottdp|0.6|no|ottdrev=r4611}} &amp;lt;ref name=&amp;quot;date&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|C6||W||{{ottdp|0.6|2.0}}||Vehicle type ID &amp;lt;ref&amp;gt;{{ottdp|0.7|no}} In OpenTTD 0.7 and newer this is the GRF-local ID of the vehicle. Earlier versions of OpenTTD and TTDPatch report the [[VehicleIDs|TTD ID]]. For trains this is the same; for other vehicle types they differ.&amp;lt;/ref&amp;gt; (useful for [[Callbacks#Can wagon be attached (1D)|Callback 1D]])||no&lt;br /&gt;
|-&lt;br /&gt;
|C8||B||{{ottdp|0.6|2.0}}||Sprite type; FD for trains forward, FE or FF when reversed||no&lt;br /&gt;
|-&lt;br /&gt;
|C9||B||{{ottdp|0.6|2.0}}||Day counter; increased daily||no&lt;br /&gt;
|-&lt;br /&gt;
|DA||W||{{ottdp|0.6|2.0}}||Next wagon index, FFFF if last wagon (use shift-num=08 and check for FF)||no&lt;br /&gt;
|-&lt;br /&gt;
|F2||B||{{ottdp|0.6|2.5}}||Refit cycle, how many times refitted to the same cargo type||{{ottdp|0.7|no|ottdrev=r15542}} &amp;lt;ref name=&amp;quot;var47&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|F4||D||{{ottdp|0.5|2.0|ottdrev=3594}}||Current horsepower of train consist||no&lt;br /&gt;
|-&lt;br /&gt;
|FE||W||{{ottdp|0.6|2.5}}||Modflags||no&lt;br /&gt;
|-&lt;br /&gt;
|FF||B||{{ottdp|0.6|2.5}}||Modflags||no&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For other 80+x variables confer the [http://marcin.ttdpatch.net/sv1codec/TTD-locations.html#_VehicleArray TTD vehicle structure].&lt;br /&gt;
&lt;br /&gt;
Variables 40, 41, 42 and 43 are cached. This means that while they are in principle computationally expensive, they can be used without impacting performance. Variables 45 and 60 are also computationally expensive but cannot be cached, and should therefore be used sparingly. If possible 80+x variables are to be preferred.&lt;br /&gt;
&lt;br /&gt;
Cached variables are updated when the game is loaded, when the consist enters or is rearranged in a depot, and when the train reverses.&lt;br /&gt;
&lt;br /&gt;
In the purchase list only a few variables are available. Especially the front vehicle (related object) cannot be accessed, nor other articulated parts.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
=== Position and length (40, 41) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; 00nnbbff&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|ff||position of vehicle within the consist counted from the engine (front), e.g. the engine would have ff=0, the 1st wagon or mail compartment of planes would have ff=1, the 2nd wagon or the rotor of helicopters would have ff=2, the 3rd wagon would have ff=3 etc&lt;br /&gt;
|-&lt;br /&gt;
|bb||same as ff, but counted from the end, i.e. the last wagon has bb=0, the next-to-last wagon has bb=1 etc.&lt;br /&gt;
|-&lt;br /&gt;
|nn||Total number of vehicles in the consist, including shadow and rotor for aircraft.&lt;br /&gt;
* In var 40 this is zero-based. That is, the value returned is one less than the actual number of vehicles. A train with engine and three wagons has nn=3.&lt;br /&gt;
* In var 41 this is one-based. That is, the value returned is the actual number of vehicles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For variable 40, these numbers refer to the whole consist, but for variable 41, they only refer to the chain of consecutive vehicles with the same ID as the current wagon (including itself, but possibly excluding the engine):&lt;br /&gt;
&lt;br /&gt;
[[File:vehicle_var40_41.png]]&lt;br /&gt;
&lt;br /&gt;
Note however, that accessing the &amp;quot;related&amp;quot; object (i.e. the locomotive) doesn´t make much sense for vars 40/41, except for var40 when in a [[Callbacks#Can wagon be attached 1D|callback 1D]] chain.&lt;br /&gt;
&lt;br /&gt;
=== Consist cargo (42) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; uuiicctt&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|tt||a bit mask of all [[Action0Cargos#Cargo classes 16|cargo classes]] transported by the consist&lt;br /&gt;
|-&lt;br /&gt;
|cc||the most common [[CargoTypes|cargo type]] (from the column for type A)&lt;br /&gt;
|-&lt;br /&gt;
|ii||the most common refit cycle (var. F2) of cargo type cc&lt;br /&gt;
|-&lt;br /&gt;
|uu||the result of ORing the bits of prop. 25 from all vehicles in the train&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If used with VarAction2 type 81 (vehicle) it returns only cargo from this vehicle on, with type 82 (engine) that of the whole consist.&lt;br /&gt;
See also variable 47 for more details on the cargo carried by a vehicle.&lt;br /&gt;
&lt;br /&gt;
{{grfTill|7}} For GRF versions 7 and before &amp;quot;cc&amp;quot; is the untranslated bit number from [[Action0/Cargos#Bit_number_for_bitmasks_.2808.29|cargo property 8]].&lt;br /&gt;
&lt;br /&gt;
{{grfFrom|8}} With GRF version 8 the meaning of &amp;quot;cc&amp;quot; changes. If the grf file has installed a [[Action0/Global_Settings#Cargo_translation_table_.2809.29|cargo translation table]], the value in &amp;quot;cc&amp;quot; is the index of the cargo in that table; or FF if the cargo is not present in the table.&lt;br /&gt;
&lt;br /&gt;
=== Player info (43) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; Ccttmmnn&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|nn||the number of the current player from 0 to 7 (up to E (14) in OpenTTD since r14735)&lt;br /&gt;
|-&lt;br /&gt;
|mm||the multiplayer player number with the host player (or the single player) being 0 and the client player being 1&lt;br /&gt;
|-&lt;br /&gt;
|tt||the player type, see below for possible values&lt;br /&gt;
|-&lt;br /&gt;
|c||the primary player colour&lt;br /&gt;
|-&lt;br /&gt;
|C||{{ottdp|0.6|2.5|ttdprev=r1405}} the secondary player colour, equal to c if none (since r1405)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!tt value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||Player is human player (permanent company)&lt;br /&gt;
|-&lt;br /&gt;
|1||Player is AI player (not managed)&lt;br /&gt;
|-&lt;br /&gt;
|2||{{ottdp|no|2.5}} Player is a human managing an AI company&lt;br /&gt;
|-&lt;br /&gt;
|3||{{ottdp|no|2.5}} Player is human player&#039;s original company, now temporarily AI controlled&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{ottdp|0.6|2.5|ttdprev=r1497}} Since r1497, when the vehicle sprite is being displayed in an exclusive offer window or new vehicle news message, or in other circumstances when no player is associated with the vehicle, nn will be FF.&lt;br /&gt;
&lt;br /&gt;
=== Aircraft info (44) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxhhtt&lt;br /&gt;
&lt;br /&gt;
hh is the height of the aircraft above ground, or more properly above the height of its shadow. Buildings, including the heliport, don&#039;t count as &amp;quot;ground&amp;quot;, i.e. to get the height above a heliport, you have to subtract the heliport height from hh.&lt;br /&gt;
&lt;br /&gt;
tt is the type of the current airport: 0=small, 1=large, 2=heliport, 3=oil rig. The current airport is the target airport for aircraft that have finished the ascent and are in flight.&lt;br /&gt;
&lt;br /&gt;
=== Curvature info (45) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxTxBxF&lt;br /&gt;
&lt;br /&gt;
This returns the amount of curvature between the adjacent wagon pairs. It is useful for train vehicles that normally tilt in curves. The curvature is the difference in direction between the surrounding vehicles:&lt;br /&gt;
&lt;br /&gt;
F = for the front pair (previous wagon to current wagon, 0 if vehicle is first)&lt;br /&gt;
&lt;br /&gt;
B = for the back pair (current wagon to next wagon, 0 if wagon is last)&lt;br /&gt;
&lt;br /&gt;
T = for the triplet (previous wagon to next wagon; is zero in an S-bend)&lt;br /&gt;
&lt;br /&gt;
Possible values:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Decimal!!Hex!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
| -4||C||180° curve left (T only)&lt;br /&gt;
|-&lt;br /&gt;
| -3||D||135° curve left (T only)&lt;br /&gt;
|-&lt;br /&gt;
| -2||E||90° curve left&lt;br /&gt;
|-&lt;br /&gt;
| -1||F||45° curve left&lt;br /&gt;
|-&lt;br /&gt;
|0||0||no curve&lt;br /&gt;
|-&lt;br /&gt;
|1||1||45° curve right&lt;br /&gt;
|-&lt;br /&gt;
|2||2||90° curve right&lt;br /&gt;
|-&lt;br /&gt;
|3||3||135° curve right (T only)&lt;br /&gt;
|-&lt;br /&gt;
|4||4||180° curve right (T only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Motion counter (46) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; 32-bit value&lt;br /&gt;
&lt;br /&gt;
This variable counts the amount of motion that a vehicle has done. &amp;amp;nbsp;It is only valid for the first vehicle in a consist (i.e. use VarAction2 type 82!). &amp;amp;nbsp;Its value is in units of 1/4096 of a tile. &amp;amp;nbsp;A vehicle actually moves visibly every time the motion counter increases by 256, and since a tile consists of 16 such subunits, 16*256=4096 motion units mean motion across one tile.&lt;br /&gt;
&lt;br /&gt;
The most useful way to access it is probably with &amp;amp;lt;shiftnum&amp;amp;gt;=08 and an appropriate &amp;amp;lt;andmask&amp;amp;gt;. &amp;amp;nbsp;For example, to achieve an animation with one frame per vehicle motion and 16 frames in total for motion across an entire tile, you would use &amp;amp;lt;shiftnum&amp;amp;gt;=08 and &amp;amp;lt;andmask&amp;amp;gt;=0F. &amp;amp;nbsp;For an animation with one frame every two vehicle motions and 4 frames total, use &amp;amp;lt;shiftnum&amp;amp;gt;=09 and &amp;amp;lt;andmask&amp;amp;gt;=03.&lt;br /&gt;
&lt;br /&gt;
If the vehicle is going very fast (&amp;amp;gt;160 mph for trains), it may move by several 1/16ths of a tile at once, and thus some frames may be skipped, but the animation will still remain in sync with the motion.&lt;br /&gt;
&lt;br /&gt;
Note that vehicle graphics are only updated every time the vehicle actually moves, so checking the lower byte is probably pointless, and only needed internally to achieve sufficient precision.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle cargo info (47) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; ccccwwtt&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|tt||the [[CargoTypes|cargo type]] transported by the vehicle (from the column for type A); translated if a translation table has been installed&lt;br /&gt;
|-&lt;br /&gt;
|ww||cargo unit weight in 1/16 tons, same as [[Action0Cargos#Weight of one unit of the cargo 0F|cargo prop. 0F]]&lt;br /&gt;
|-&lt;br /&gt;
|cccc||the [[Action0Cargos#Cargo classes 16|cargo class]] value of the cargo transported by the vehicle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that if the grf has installed a [[Action0/Global_Settings#Cargo_translation_table_.2809.29|cargo translation table]], the value in &amp;quot;tt&amp;quot; is the slot number in that table, irrespective of which actual slot or bit the cargo is using in the game. If a table has been installed, but the current cargo is not listed there, &amp;quot;tt&amp;quot; will be set to FF.&lt;br /&gt;
&lt;br /&gt;
Unlike variable 42, this variable returns the info of the current vehicle only, not the consist.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle type information (48) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxff&lt;br /&gt;
&lt;br /&gt;
The bits of ff are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||Vehicle type is available on the market&lt;br /&gt;
|-&lt;br /&gt;
|1||2||Vehicle type is in the testing phase&lt;br /&gt;
|-&lt;br /&gt;
|2||4||Exclusive testing offer for a human player active&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All other bits in ff are undefined and must be masked out.&lt;br /&gt;
&lt;br /&gt;
=== Information about current railtype/roadtype/tramtype (4A) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxFFrr&lt;br /&gt;
&lt;br /&gt;
The lower byte (rr) contains the (translated) railtype/roadtype/tramtype the vehicle is currently driving on. &lt;br /&gt;
If the railtype/roadtype/tramtype has no entry in the railtype/roadtype/tramtype translation table of the GRF, this value will be 0xFF. &lt;br /&gt;
If no translation table is present, the raw value will be returned.&lt;br /&gt;
Note: only exact matches of rail-/road-/-tram-types are reported. If the translation table of the GRF does not contain the exact track-type 0xFF is returned, even if the translation table contains equivalent track-types (according to rail-/road-/tram-type property 1D). Use variable 63 to test for compatibility/poweredness/equivalency with track-types known to both the vehicle and the track-type NewGRF.&lt;br /&gt;
&lt;br /&gt;
The variable only reports about the tracks the vehicle is using: on a level crossing with rail, road and tram tracks, the vehicle (train, road vehicle, tram) can only query the track type it belongs to.&lt;br /&gt;
&lt;br /&gt;
The second byte (FF) contains the following flags:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||The vehicle is/would be powered on the current railtype (this is independent from powered/non-powered wagon or anything)&lt;br /&gt;
|-&lt;br /&gt;
|1||2||{{ottdp|1.11|no|ottdrev=gf1bc4d840}} Set, if the track-type has catenary. This is independent of the vehicle: a NewGRF can define an engine as powered on non-electrified track (bit 0), and show a raised pantograph (bit 1) to look like a dual-powered engine. This bit is a simplified as it only checks for &amp;quot;some catenary&amp;quot;. To distinguish different types of catenaries, AC and DC voltages, ... use variable 63 instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All other bits are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
All other bytes are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
=== Position within articulated vehicle (4D) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxbbff&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|ff||Position of vehicle (articulated part) within the articulated vehicle, counted from the first part, starting with 0.&lt;br /&gt;
|-&lt;br /&gt;
|bb||Position of vehicle (articulated part) within the articulated vehicle, counted from the last part, starting with 0.&lt;br /&gt;
|-&lt;br /&gt;
|xx||Reserved, do not access.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The total number of articulated parts of a vehicle equals ff + 1 + bb.&lt;br /&gt;
&lt;br /&gt;
For road vehicles &amp;quot;ff&amp;quot; and &amp;quot;bb&amp;quot; currently equal var 40, since there are no road vehicle wagons yet.&lt;br /&gt;
&lt;br /&gt;
=== Count Veh.ID occurence (60) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxnn&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the vehicle ID to look for, and the returned nn is the number of vehicles in the consist that have this ID. If used with VarAction2 type 81, only the current vehicle and onwards will be check, with VarAction2 type 82, all vehicles in the consist will be counted.&lt;br /&gt;
&lt;br /&gt;
=== Query variable of n-th vehicle in chain (61) ===&lt;br /&gt;
&lt;br /&gt;
This is a special variable to get the contents of another variable of a different vehicle in the vehicle chain. It is only supported for trains and road vehicles. It is not supported during a callback that is used to modify vehicle properties to avoid circular dependencies, which currently limits this variable to callbacks 1D, 2D, 31 and 32 plus outside callback scope.&lt;br /&gt;
&lt;br /&gt;
Temporary register 10F is interpreted as a signed integer and specifies the offset in the chain from the current vehicle. Positive values are interpreted as towards the end, negative values as towards the front. If the offset is outside the vehicle chain, the result value will be 0.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter specifies the variable to access and temporary register 10E is passed as the new 60+x parameter. Passing 61 as the variable is not allowed. Currently only vehicle specific variables listed on this page plus global variable 25 and {{ottdp|1.3|no|ottdrev=r24527}} 5F are accessible through var 61.&lt;br /&gt;
&lt;br /&gt;
The resulting value will have the size of whatever variable is queried.&lt;br /&gt;
&lt;br /&gt;
=== Curvature/position difference for n-th vehicle in chain (62) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; zzyyxxFD&lt;br /&gt;
&lt;br /&gt;
This variable is only supported for trains and road vehicles.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is interpreted as a signed integer and specifies the offset in the chain from the current vehicle. Positive values are interpreted as towards the end, negative values as towards the front. If the offset is outside the vehicle chain, the result value will be 0.&lt;br /&gt;
&lt;br /&gt;
The lowest nibble (D) contains the direction difference between the selected vehicle and this vehicle, the possible values are identical to those of [[#Curvature_info_.2845.29|variable 45]].&lt;br /&gt;
&lt;br /&gt;
The next nibble (F) has the following meaning:&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|3||8||The vehicle is currently hidden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The upper three bytes contain the signed difference of the X/Y/Z position between the selected vehicle and this vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Track-type test against another track-type (63) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.11|no|ottdrev=g868d84bbf}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxFF&lt;br /&gt;
&lt;br /&gt;
This variable is only supported for trains and road vehicles.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is an index into the rail-/road-/tram-type translation table.&lt;br /&gt;
The result value reports how vehicles of this type would behave on the current tile.&lt;br /&gt;
This allows vehicles to behave or look differently on various track-types independent of their own track-type.&lt;br /&gt;
&lt;br /&gt;
The lower byte (FF) contains some flags:&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||The track-type from the 60+x parameter is known. If unset, all other flags are unset as well, no information can be given.&lt;br /&gt;
|-&lt;br /&gt;
|1||2||Vehicles with type from the 60+x parameter are compatible with the track on the current tile.&lt;br /&gt;
|-&lt;br /&gt;
|2||4||Vehicles with type from the 60+x parameter are powered on the track of the current tile.&lt;br /&gt;
|-&lt;br /&gt;
|3||8||The track-type from the 60+x parameter is identical or equivalent (listed as alternate label in rail-/road-/tram-type property 1D) to the track-type of the current tile.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The remaining bytes are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
=== Count badge occurence (64) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the badge ID to look for, and the returned value is the number of vehicles in the consist that have this badge. If used with VarAction2 type 81, only the current vehicle and onwards will be check, with VarAction2 type 82, all vehicles in the consist will be counted.&lt;br /&gt;
&lt;br /&gt;
=== Test if rail or road type of the current tile occupied by the vehicle has that specific badge attached (65) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
This variable only works for trains and road vehicles.&lt;br /&gt;
The specifications are the same as for [[#Test_if_the_vehicle_has_that_specific_badge_attached.287A.29|variable 7A]].&lt;br /&gt;
&lt;br /&gt;
=== Test if the vehicle has that specific badge attached (7A) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the index into the badge table.&lt;br /&gt;
The returned value is in range [0, 1].&lt;br /&gt;
&lt;br /&gt;
=== Modflags (FE and FF) ===&lt;br /&gt;
&lt;br /&gt;
The bits in FE mostly relate to gradualloading. &amp;amp;nbsp;A few useful bits for grf authors are;&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Version!!Value of the bit&lt;br /&gt;
|-&lt;br /&gt;
|1||{{ottdp|1.5|2.5|ottdrev=r26430}}||Vehicle is still unloading and has not yet started loading new cargo at the current station.&lt;br /&gt;
|-&lt;br /&gt;
|5||{{ottdp|0.6|2.5}}||Vehicle is powered (engine or powered wagon, mainly useful for the latter)&lt;br /&gt;
|-&lt;br /&gt;
|6||{{ottdp|0.6|2.5}}||Vehicle would be powered (engine or powered wagon) if there were suitable track. (E.g. electric train in mixed train on normal track)&lt;br /&gt;
|-&lt;br /&gt;
|8 &amp;lt;ref&amp;gt;This bit is only accurate for the first vehicle in the consist.&amp;lt;/ref&amp;gt;||{{ottdp|0.6|2.5}}||This bit is flipped every time the train reverses direction&lt;br /&gt;
|-&lt;br /&gt;
|10||{{ottdp|0.6|2.5|ttdprev=r1334}}||Vehicle was built during the exclusive preview&lt;br /&gt;
|-&lt;br /&gt;
|11||{{ottd|16}}||The train is driving backwards (trains only). {{ottd|17}} Applies to ships as well.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
variable FF is actually the high byte of variable FE, so FE bit 8 is the same as FF bit 0.&lt;br /&gt;
&lt;br /&gt;
Other bits are reserved; most are actually used for TTDPatch internal states.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=VariationalAction2/Vehicles&amp;diff=5291</id>
		<title>VariationalAction2/Vehicles</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=VariationalAction2/Vehicles&amp;diff=5291"/>
		<updated>2026-10-14T21:27:00Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Count badge occurence (64) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right; padding-left:12px; background:none;&amp;quot;&amp;gt;{{NFONavVehicles}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Variable!![[GRFActionsDetailed|Size]]!!Version!!Description!!Available in purchase list&lt;br /&gt;
|-&lt;br /&gt;
|10||D||{{ottdp|1.2|no|ottdrev=r23080}}||Pick sprites for different GUI windows - See [[Action2/Vehicles]].||{{ottdp|1.2|no|ottdrev=r23080}}&lt;br /&gt;
|-&lt;br /&gt;
|40||D||{{ottdp|0.6|2.5}}||Position in consist and length of consist||no&lt;br /&gt;
|-&lt;br /&gt;
|41||D||{{ottdp|0.6|2.5}}||Position in and length of chain of consecutive vehicles with same ID||no&lt;br /&gt;
|-&lt;br /&gt;
|42||D||{{ottdp|0.6|2.5}}||Cargo types transported by consist||no&lt;br /&gt;
|-&lt;br /&gt;
|43||D||{{ottdp|0.6|2.5}}||Player info||{{ottdp|0.6|2.5|ottdrev=r4611|ttdprev=beta 2}}&lt;br /&gt;
|-&lt;br /&gt;
|44||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 48}}||Aircraft info||no&lt;br /&gt;
|-&lt;br /&gt;
|45||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 58}}||Curvature info||no&lt;br /&gt;
|-&lt;br /&gt;
|46||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 59}}||Motion counter||no&lt;br /&gt;
|-&lt;br /&gt;
|47||D||{{ottdp|0.6|2.5}}||Vehicle cargo info||{{ottdp|0.7|no|ottdrev=r15542}} &amp;lt;ref name=&amp;quot;var47&amp;quot;&amp;gt;Variable 47 refers to the default cargo of the vehicle, when in purchase list. This differs from the cargo used in Action 3, which is 0xFF in purchase list. The &amp;quot;refit cycle&amp;quot; (F2) is currently always zero in the purchase list.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|48||D||{{ottdp|0.6|2.5}}||Vehicle type information||{{ottdp|0.6|2.5|ottdrev=r5338|ttdprev=beta 2}}&lt;br /&gt;
|-&lt;br /&gt;
|49||D||{{ottdp|0.7|2.6|ottdrev=r13376|ttdprev=r2216}}||Year of construction (long format, 0 based)||{{ottdp|0.7|no|ottdrev=r13376}} &amp;lt;ref name=&amp;quot;date&amp;quot;&amp;gt;This is the current date&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4A||D||{{ottdp|1.1|no|ottdrev=r20165}}||Info about current railtype/roadtype/tramtype||no&lt;br /&gt;
|-&lt;br /&gt;
|4B||D||{{ottdp|1.2|no|ottdrev=r23068}}||Long date of last servicing||{{ottdp|1.2|no|ottdrev=r23068}} &amp;lt;ref name=&amp;quot;date&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4C||D||{{ottdp|1.3|no|ottdrev=r24246}}||Current max speed including e.g track or timetable speed limits. Only valid for front vehicle. Note, units differ for each vehicle type&amp;lt;ref name=&amp;quot;speed&amp;quot;&amp;gt;See [[Action0Trains#Speed 09|train property 09]], [[Action0RoadVehicles|road vehicle property 08]] (not 15, even when using realistic acceleration), [[Action0Ships|ship property 0B]] and [[Action0Planes|aircraft property 0C]].&amp;lt;/ref&amp;gt;||no&lt;br /&gt;
|-&lt;br /&gt;
|4D||D||{{ottdp|1.4|no|ottdrev=r26157}}||Position within articulated vehicle||no&lt;br /&gt;
|-&lt;br /&gt;
|60||D||{{ottdp|0.6|2.5|ttdprev=2.0.1 alpha 57}}||Count Veh.ID occurence||no&lt;br /&gt;
|-&lt;br /&gt;
|61||-&amp;lt;ref&amp;gt;The size of the result matches the size of the queried variable.&amp;lt;/ref&amp;gt;||{{ottdp|1.2|no|ottdrev=r22997}}||Query variable of n-th vehicle in chain||no&lt;br /&gt;
|-&lt;br /&gt;
|62||D||{{ottdp|1.2|no|ottdrev=r22998}}||Curvature/position difference for n-th vehicle in chain||no&lt;br /&gt;
|-&lt;br /&gt;
|63||D||{{ottdp|1.11|no|ottdrev=g868d84bbf}}||Test track-type of tile against another track-type||no&lt;br /&gt;
|-&lt;br /&gt;
|65||D||{{ottdp|15|no}}||Test if rail or road type of the current type occupied by the vehicle has that specific badge attached||no&lt;br /&gt;
|-&lt;br /&gt;
|7A||D||{{ottdp|15|no}}||Test if the vehicle has that specific badge attached||yes&lt;br /&gt;
|-&lt;br /&gt;
|97||B||{{ottdp|0.6|2.0}}||Tick counter, increased every engine tick||no&lt;br /&gt;
|-&lt;br /&gt;
|B2||W||||Vehicle status: bit0 = vehicle invisible (in tunnel/depot), bit1 = stopped, bit7 = crashed||no&lt;br /&gt;
|-&lt;br /&gt;
|B4||W||{{ottdp|0.6|2.0}}||Current speed. Note, units differ for each vehicle type&amp;lt;ref name=&amp;quot;speed&amp;quot; /&amp;gt;||no&lt;br /&gt;
|-&lt;br /&gt;
|B9||B||{{ottdp|0.6|2.0}}||Cargo type (type B from the list at [[CargoTypes]]; climate dependent)||no&lt;br /&gt;
|-&lt;br /&gt;
|C0||W||{{ottdp|0.6|2.0}}||Engine age in days&amp;lt;br/&amp;gt;{{ottdp|1.2|2.5|ottdrev=r22816|ttdprev=alpha 61}} Valid for wagons and articulated parts as well.||no&lt;br /&gt;
|-&lt;br /&gt;
|C4||B||{{ottdp|0.6|2.0}}||Year built (counted from 1920), note this is modified when Cht: Year is used||{{ottdp|0.6|no|ottdrev=r4611}} &amp;lt;ref name=&amp;quot;date&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|C6||W||{{ottdp|0.6|2.0}}||Vehicle type ID &amp;lt;ref&amp;gt;{{ottdp|0.7|no}} In OpenTTD 0.7 and newer this is the GRF-local ID of the vehicle. Earlier versions of OpenTTD and TTDPatch report the [[VehicleIDs|TTD ID]]. For trains this is the same; for other vehicle types they differ.&amp;lt;/ref&amp;gt; (useful for [[Callbacks#Can wagon be attached (1D)|Callback 1D]])||no&lt;br /&gt;
|-&lt;br /&gt;
|C8||B||{{ottdp|0.6|2.0}}||Sprite type; FD for trains forward, FE or FF when reversed||no&lt;br /&gt;
|-&lt;br /&gt;
|C9||B||{{ottdp|0.6|2.0}}||Day counter; increased daily||no&lt;br /&gt;
|-&lt;br /&gt;
|DA||W||{{ottdp|0.6|2.0}}||Next wagon index, FFFF if last wagon (use shift-num=08 and check for FF)||no&lt;br /&gt;
|-&lt;br /&gt;
|F2||B||{{ottdp|0.6|2.5}}||Refit cycle, how many times refitted to the same cargo type||{{ottdp|0.7|no|ottdrev=r15542}} &amp;lt;ref name=&amp;quot;var47&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|F4||D||{{ottdp|0.5|2.0|ottdrev=3594}}||Current horsepower of train consist||no&lt;br /&gt;
|-&lt;br /&gt;
|FE||W||{{ottdp|0.6|2.5}}||Modflags||no&lt;br /&gt;
|-&lt;br /&gt;
|FF||B||{{ottdp|0.6|2.5}}||Modflags||no&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For other 80+x variables confer the [http://marcin.ttdpatch.net/sv1codec/TTD-locations.html#_VehicleArray TTD vehicle structure].&lt;br /&gt;
&lt;br /&gt;
Variables 40, 41, 42 and 43 are cached. This means that while they are in principle computationally expensive, they can be used without impacting performance. Variables 45 and 60 are also computationally expensive but cannot be cached, and should therefore be used sparingly. If possible 80+x variables are to be preferred.&lt;br /&gt;
&lt;br /&gt;
Cached variables are updated when the game is loaded, when the consist enters or is rearranged in a depot, and when the train reverses.&lt;br /&gt;
&lt;br /&gt;
In the purchase list only a few variables are available. Especially the front vehicle (related object) cannot be accessed, nor other articulated parts.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
=== Position and length (40, 41) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; 00nnbbff&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|ff||position of vehicle within the consist counted from the engine (front), e.g. the engine would have ff=0, the 1st wagon or mail compartment of planes would have ff=1, the 2nd wagon or the rotor of helicopters would have ff=2, the 3rd wagon would have ff=3 etc&lt;br /&gt;
|-&lt;br /&gt;
|bb||same as ff, but counted from the end, i.e. the last wagon has bb=0, the next-to-last wagon has bb=1 etc.&lt;br /&gt;
|-&lt;br /&gt;
|nn||Total number of vehicles in the consist, including shadow and rotor for aircraft.&lt;br /&gt;
* In var 40 this is zero-based. That is, the value returned is one less than the actual number of vehicles. A train with engine and three wagons has nn=3.&lt;br /&gt;
* In var 41 this is one-based. That is, the value returned is the actual number of vehicles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For variable 40, these numbers refer to the whole consist, but for variable 41, they only refer to the chain of consecutive vehicles with the same ID as the current wagon (including itself, but possibly excluding the engine):&lt;br /&gt;
&lt;br /&gt;
[[File:vehicle_var40_41.png]]&lt;br /&gt;
&lt;br /&gt;
Note however, that accessing the &amp;quot;related&amp;quot; object (i.e. the locomotive) doesn´t make much sense for vars 40/41, except for var40 when in a [[Callbacks#Can wagon be attached 1D|callback 1D]] chain.&lt;br /&gt;
&lt;br /&gt;
=== Consist cargo (42) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; uuiicctt&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|tt||a bit mask of all [[Action0Cargos#Cargo classes 16|cargo classes]] transported by the consist&lt;br /&gt;
|-&lt;br /&gt;
|cc||the most common [[CargoTypes|cargo type]] (from the column for type A)&lt;br /&gt;
|-&lt;br /&gt;
|ii||the most common refit cycle (var. F2) of cargo type cc&lt;br /&gt;
|-&lt;br /&gt;
|uu||the result of ORing the bits of prop. 25 from all vehicles in the train&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If used with VarAction2 type 81 (vehicle) it returns only cargo from this vehicle on, with type 82 (engine) that of the whole consist.&lt;br /&gt;
See also variable 47 for more details on the cargo carried by a vehicle.&lt;br /&gt;
&lt;br /&gt;
{{grfTill|7}} For GRF versions 7 and before &amp;quot;cc&amp;quot; is the untranslated bit number from [[Action0/Cargos#Bit_number_for_bitmasks_.2808.29|cargo property 8]].&lt;br /&gt;
&lt;br /&gt;
{{grfFrom|8}} With GRF version 8 the meaning of &amp;quot;cc&amp;quot; changes. If the grf file has installed a [[Action0/Global_Settings#Cargo_translation_table_.2809.29|cargo translation table]], the value in &amp;quot;cc&amp;quot; is the index of the cargo in that table; or FF if the cargo is not present in the table.&lt;br /&gt;
&lt;br /&gt;
=== Player info (43) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; Ccttmmnn&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|nn||the number of the current player from 0 to 7 (up to E (14) in OpenTTD since r14735)&lt;br /&gt;
|-&lt;br /&gt;
|mm||the multiplayer player number with the host player (or the single player) being 0 and the client player being 1&lt;br /&gt;
|-&lt;br /&gt;
|tt||the player type, see below for possible values&lt;br /&gt;
|-&lt;br /&gt;
|c||the primary player colour&lt;br /&gt;
|-&lt;br /&gt;
|C||{{ottdp|0.6|2.5|ttdprev=r1405}} the secondary player colour, equal to c if none (since r1405)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!tt value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||Player is human player (permanent company)&lt;br /&gt;
|-&lt;br /&gt;
|1||Player is AI player (not managed)&lt;br /&gt;
|-&lt;br /&gt;
|2||{{ottdp|no|2.5}} Player is a human managing an AI company&lt;br /&gt;
|-&lt;br /&gt;
|3||{{ottdp|no|2.5}} Player is human player&#039;s original company, now temporarily AI controlled&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{ottdp|0.6|2.5|ttdprev=r1497}} Since r1497, when the vehicle sprite is being displayed in an exclusive offer window or new vehicle news message, or in other circumstances when no player is associated with the vehicle, nn will be FF.&lt;br /&gt;
&lt;br /&gt;
=== Aircraft info (44) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxhhtt&lt;br /&gt;
&lt;br /&gt;
hh is the height of the aircraft above ground, or more properly above the height of its shadow. Buildings, including the heliport, don&#039;t count as &amp;quot;ground&amp;quot;, i.e. to get the height above a heliport, you have to subtract the heliport height from hh.&lt;br /&gt;
&lt;br /&gt;
tt is the type of the current airport: 0=small, 1=large, 2=heliport, 3=oil rig. The current airport is the target airport for aircraft that have finished the ascent and are in flight.&lt;br /&gt;
&lt;br /&gt;
=== Curvature info (45) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxTxBxF&lt;br /&gt;
&lt;br /&gt;
This returns the amount of curvature between the adjacent wagon pairs. It is useful for train vehicles that normally tilt in curves. The curvature is the difference in direction between the surrounding vehicles:&lt;br /&gt;
&lt;br /&gt;
F = for the front pair (previous wagon to current wagon, 0 if vehicle is first)&lt;br /&gt;
&lt;br /&gt;
B = for the back pair (current wagon to next wagon, 0 if wagon is last)&lt;br /&gt;
&lt;br /&gt;
T = for the triplet (previous wagon to next wagon; is zero in an S-bend)&lt;br /&gt;
&lt;br /&gt;
Possible values:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Decimal!!Hex!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
| -4||C||180° curve left (T only)&lt;br /&gt;
|-&lt;br /&gt;
| -3||D||135° curve left (T only)&lt;br /&gt;
|-&lt;br /&gt;
| -2||E||90° curve left&lt;br /&gt;
|-&lt;br /&gt;
| -1||F||45° curve left&lt;br /&gt;
|-&lt;br /&gt;
|0||0||no curve&lt;br /&gt;
|-&lt;br /&gt;
|1||1||45° curve right&lt;br /&gt;
|-&lt;br /&gt;
|2||2||90° curve right&lt;br /&gt;
|-&lt;br /&gt;
|3||3||135° curve right (T only)&lt;br /&gt;
|-&lt;br /&gt;
|4||4||180° curve right (T only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Motion counter (46) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; 32-bit value&lt;br /&gt;
&lt;br /&gt;
This variable counts the amount of motion that a vehicle has done. &amp;amp;nbsp;It is only valid for the first vehicle in a consist (i.e. use VarAction2 type 82!). &amp;amp;nbsp;Its value is in units of 1/4096 of a tile. &amp;amp;nbsp;A vehicle actually moves visibly every time the motion counter increases by 256, and since a tile consists of 16 such subunits, 16*256=4096 motion units mean motion across one tile.&lt;br /&gt;
&lt;br /&gt;
The most useful way to access it is probably with &amp;amp;lt;shiftnum&amp;amp;gt;=08 and an appropriate &amp;amp;lt;andmask&amp;amp;gt;. &amp;amp;nbsp;For example, to achieve an animation with one frame per vehicle motion and 16 frames in total for motion across an entire tile, you would use &amp;amp;lt;shiftnum&amp;amp;gt;=08 and &amp;amp;lt;andmask&amp;amp;gt;=0F. &amp;amp;nbsp;For an animation with one frame every two vehicle motions and 4 frames total, use &amp;amp;lt;shiftnum&amp;amp;gt;=09 and &amp;amp;lt;andmask&amp;amp;gt;=03.&lt;br /&gt;
&lt;br /&gt;
If the vehicle is going very fast (&amp;amp;gt;160 mph for trains), it may move by several 1/16ths of a tile at once, and thus some frames may be skipped, but the animation will still remain in sync with the motion.&lt;br /&gt;
&lt;br /&gt;
Note that vehicle graphics are only updated every time the vehicle actually moves, so checking the lower byte is probably pointless, and only needed internally to achieve sufficient precision.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle cargo info (47) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; ccccwwtt&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|tt||the [[CargoTypes|cargo type]] transported by the vehicle (from the column for type A); translated if a translation table has been installed&lt;br /&gt;
|-&lt;br /&gt;
|ww||cargo unit weight in 1/16 tons, same as [[Action0Cargos#Weight of one unit of the cargo 0F|cargo prop. 0F]]&lt;br /&gt;
|-&lt;br /&gt;
|cccc||the [[Action0Cargos#Cargo classes 16|cargo class]] value of the cargo transported by the vehicle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that if the grf has installed a [[Action0/Global_Settings#Cargo_translation_table_.2809.29|cargo translation table]], the value in &amp;quot;tt&amp;quot; is the slot number in that table, irrespective of which actual slot or bit the cargo is using in the game. If a table has been installed, but the current cargo is not listed there, &amp;quot;tt&amp;quot; will be set to FF.&lt;br /&gt;
&lt;br /&gt;
Unlike variable 42, this variable returns the info of the current vehicle only, not the consist.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle type information (48) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxff&lt;br /&gt;
&lt;br /&gt;
The bits of ff are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||Vehicle type is available on the market&lt;br /&gt;
|-&lt;br /&gt;
|1||2||Vehicle type is in the testing phase&lt;br /&gt;
|-&lt;br /&gt;
|2||4||Exclusive testing offer for a human player active&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All other bits in ff are undefined and must be masked out.&lt;br /&gt;
&lt;br /&gt;
=== Information about current railtype/roadtype/tramtype (4A) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxFFrr&lt;br /&gt;
&lt;br /&gt;
The lower byte (rr) contains the (translated) railtype/roadtype/tramtype the vehicle is currently driving on. &lt;br /&gt;
If the railtype/roadtype/tramtype has no entry in the railtype/roadtype/tramtype translation table of the GRF, this value will be 0xFF. &lt;br /&gt;
If no translation table is present, the raw value will be returned.&lt;br /&gt;
Note: only exact matches of rail-/road-/-tram-types are reported. If the translation table of the GRF does not contain the exact track-type 0xFF is returned, even if the translation table contains equivalent track-types (according to rail-/road-/tram-type property 1D). Use variable 63 to test for compatibility/poweredness/equivalency with track-types known to both the vehicle and the track-type NewGRF.&lt;br /&gt;
&lt;br /&gt;
The variable only reports about the tracks the vehicle is using: on a level crossing with rail, road and tram tracks, the vehicle (train, road vehicle, tram) can only query the track type it belongs to.&lt;br /&gt;
&lt;br /&gt;
The second byte (FF) contains the following flags:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||The vehicle is/would be powered on the current railtype (this is independent from powered/non-powered wagon or anything)&lt;br /&gt;
|-&lt;br /&gt;
|1||2||{{ottdp|1.11|no|ottdrev=gf1bc4d840}} Set, if the track-type has catenary. This is independent of the vehicle: a NewGRF can define an engine as powered on non-electrified track (bit 0), and show a raised pantograph (bit 1) to look like a dual-powered engine. This bit is a simplified as it only checks for &amp;quot;some catenary&amp;quot;. To distinguish different types of catenaries, AC and DC voltages, ... use variable 63 instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All other bits are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
All other bytes are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
=== Position within articulated vehicle (4D) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxbbff&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Variable!!Value&lt;br /&gt;
|-&lt;br /&gt;
|ff||Position of vehicle (articulated part) within the articulated vehicle, counted from the first part, starting with 0.&lt;br /&gt;
|-&lt;br /&gt;
|bb||Position of vehicle (articulated part) within the articulated vehicle, counted from the last part, starting with 0.&lt;br /&gt;
|-&lt;br /&gt;
|xx||Reserved, do not access.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The total number of articulated parts of a vehicle equals ff + 1 + bb.&lt;br /&gt;
&lt;br /&gt;
For road vehicles &amp;quot;ff&amp;quot; and &amp;quot;bb&amp;quot; currently equal var 40, since there are no road vehicle wagons yet.&lt;br /&gt;
&lt;br /&gt;
=== Count Veh.ID occurence (60) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxnn&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the vehicle ID to look for, and the returned nn is the number of vehicles in the consist that have this ID. If used with VarAction2 type 81, only the current vehicle and onwards will be check, with VarAction2 type 82, all vehicles in the consist will be counted.&lt;br /&gt;
&lt;br /&gt;
=== Query variable of n-th vehicle in chain (61) ===&lt;br /&gt;
&lt;br /&gt;
This is a special variable to get the contents of another variable of a different vehicle in the vehicle chain. It is only supported for trains and road vehicles. It is not supported during a callback that is used to modify vehicle properties to avoid circular dependencies, which currently limits this variable to callbacks 1D, 2D, 31 and 32 plus outside callback scope.&lt;br /&gt;
&lt;br /&gt;
Temporary register 10F is interpreted as a signed integer and specifies the offset in the chain from the current vehicle. Positive values are interpreted as towards the end, negative values as towards the front. If the offset is outside the vehicle chain, the result value will be 0.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter specifies the variable to access and temporary register 10E is passed as the new 60+x parameter. Passing 61 as the variable is not allowed. Currently only vehicle specific variables listed on this page plus global variable 25 and {{ottdp|1.3|no|ottdrev=r24527}} 5F are accessible through var 61.&lt;br /&gt;
&lt;br /&gt;
The resulting value will have the size of whatever variable is queried.&lt;br /&gt;
&lt;br /&gt;
=== Curvature/position difference for n-th vehicle in chain (62) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; zzyyxxFD&lt;br /&gt;
&lt;br /&gt;
This variable is only supported for trains and road vehicles.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is interpreted as a signed integer and specifies the offset in the chain from the current vehicle. Positive values are interpreted as towards the end, negative values as towards the front. If the offset is outside the vehicle chain, the result value will be 0.&lt;br /&gt;
&lt;br /&gt;
The lowest nibble (D) contains the direction difference between the selected vehicle and this vehicle, the possible values are identical to those of [[#Curvature_info_.2845.29|variable 45]].&lt;br /&gt;
&lt;br /&gt;
The next nibble (F) has the following meaning:&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|3||8||The vehicle is currently hidden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The upper three bytes contain the signed difference of the X/Y/Z position between the selected vehicle and this vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Track-type test against another track-type (63) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.11|no|ottdrev=g868d84bbf}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format:&#039;&#039;&#039; xxxxxxFF&lt;br /&gt;
&lt;br /&gt;
This variable is only supported for trains and road vehicles.&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is an index into the rail-/road-/tram-type translation table.&lt;br /&gt;
The result value reports how vehicles of this type would behave on the current tile.&lt;br /&gt;
This allows vehicles to behave or look differently on various track-types independent of their own track-type.&lt;br /&gt;
&lt;br /&gt;
The lower byte (FF) contains some flags:&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Bit!!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||The track-type from the 60+x parameter is known. If unset, all other flags are unset as well, no information can be given.&lt;br /&gt;
|-&lt;br /&gt;
|1||2||Vehicles with type from the 60+x parameter are compatible with the track on the current tile.&lt;br /&gt;
|-&lt;br /&gt;
|2||4||Vehicles with type from the 60+x parameter are powered on the track of the current tile.&lt;br /&gt;
|-&lt;br /&gt;
|3||8||The track-type from the 60+x parameter is identical or equivalent (listed as alternate label in rail-/road-/tram-type property 1D) to the track-type of the current tile.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The remaining bytes are reserved, and must be masked.&lt;br /&gt;
&lt;br /&gt;
=== Count badge occurence (64) ===&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the badge ID to look for, and the returned value is the number of vehicles in the consist that have this badge. If used with VarAction2 type 81, only the current vehicle and onwards will be check, with VarAction2 type 82, all vehicles in the consist will be counted.&lt;br /&gt;
&lt;br /&gt;
=== Test if rail or road type of the current tile occupied by the vehicle has that specific badge attached (65) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
This variable only works for trains and road vehicles.&lt;br /&gt;
The specifications are the same as for [[#Test_if_the_vehicle_has_that_specific_badge_attached.287A.29|variable 7A]].&lt;br /&gt;
&lt;br /&gt;
=== Test if the vehicle has that specific badge attached (7A) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no}}&lt;br /&gt;
&lt;br /&gt;
The 60+x parameter is the index into the badge table.&lt;br /&gt;
The returned value is in range [0, 1].&lt;br /&gt;
&lt;br /&gt;
=== Modflags (FE and FF) ===&lt;br /&gt;
&lt;br /&gt;
The bits in FE mostly relate to gradualloading. &amp;amp;nbsp;A few useful bits for grf authors are;&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Version!!Value of the bit&lt;br /&gt;
|-&lt;br /&gt;
|1||{{ottdp|1.5|2.5|ottdrev=r26430}}||Vehicle is still unloading and has not yet started loading new cargo at the current station.&lt;br /&gt;
|-&lt;br /&gt;
|5||{{ottdp|0.6|2.5}}||Vehicle is powered (engine or powered wagon, mainly useful for the latter)&lt;br /&gt;
|-&lt;br /&gt;
|6||{{ottdp|0.6|2.5}}||Vehicle would be powered (engine or powered wagon) if there were suitable track. (E.g. electric train in mixed train on normal track)&lt;br /&gt;
|-&lt;br /&gt;
|8 &amp;lt;ref&amp;gt;This bit is only accurate for the first vehicle in the consist.&amp;lt;/ref&amp;gt;||{{ottdp|0.6|2.5}}||This bit is flipped every time the train reverses direction&lt;br /&gt;
|-&lt;br /&gt;
|10||{{ottdp|0.6|2.5|ttdprev=r1334}}||Vehicle was built during the exclusive preview&lt;br /&gt;
|-&lt;br /&gt;
|11||{{ottd|16}}||The train is driving backwards (trains only). {{ottd|17}} Applies to ships as well.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
variable FF is actually the high byte of variable FE, so FE bit 8 is the same as FF bit 0.&lt;br /&gt;
&lt;br /&gt;
Other bits are reserved; most are actually used for TTDPatch internal states.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Vehicles&amp;diff=5290</id>
		<title>NML:Vehicles</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Vehicles&amp;diff=5290"/>
		<updated>2026-10-08T20:02:11Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Vehicle callbacks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavPropVarCB}}&lt;br /&gt;
==Properties common to all vehicle types==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! value range&lt;br /&gt;
! available for&amp;lt;br /&amp;gt;articulated&amp;lt;br /&amp;gt;vehicle&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| (string)&lt;br /&gt;
| yes&lt;br /&gt;
| for example &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;string(STR_NAME_HEREFORD_TRAM)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;climates_available&amp;lt;/code&amp;gt;&lt;br /&gt;
| bitmask(CLIMATE_XXX, CLIMATE_YYY, ...)&lt;br /&gt;
| set to &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;NO_CLIMATE&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
;CLIMATE_TEMPERATE&lt;br /&gt;
;CLIMATE_ARCTIC&lt;br /&gt;
;CLIMATE_TROPICAL&lt;br /&gt;
;CLIMATE_TOYLAND&lt;br /&gt;
;NO_CLIMATE&lt;br /&gt;
:Vehicle is availble in no climate (e.g. for articulated parts)&lt;br /&gt;
;ALL_CLIMATES&lt;br /&gt;
:Vehicle is available irrespective of climate&lt;br /&gt;
&lt;br /&gt;
To make a vehicle available in all climates except toyland you could use: &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;ALL_CLIMATES &amp;amp;amp; ~bitmask(CLIMATE_TOYLAND)&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;introduction_date&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;date&amp;lt;/code&amp;gt;(yyyy,mm,dd)&lt;br /&gt;
| no&lt;br /&gt;
| Valid range for yyyy is 0 ... 5000000. In TTDPatch, dates after 2044 will be limited to 2044. Unless the engine is introduced within two years after game-start (always 1920 in TTDPatch), a random number of days between 0 and 511 will be added to this.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;model_life&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 254 (years) or &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;VEHICLE_NEVER_EXPIRES&amp;lt;/code&amp;gt;&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
Number of years a model is &amp;quot;supported&amp;quot; by the manufacturer, see [[#Engine life cycle|below]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;retire_early&amp;lt;/code&amp;gt;&lt;br /&gt;
| -128 ... 127 (years)&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
Retire the vehicle (make it unavailable in the purchase menu) this many years before reliability starts dropping, see [[#Engine life cycle|below]]. May be negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;vehicle_life&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255 (years)&lt;br /&gt;
| no&lt;br /&gt;
| Life length of an individual vehicle, before it is considered too old and in need of replacement.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;reliability_decay&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| no&lt;br /&gt;
| Default vehicles use 20. The higher the value the faster reliability decays, the more frequent service is needed. 0 means reliability never decreases if the vehicle is not too old&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;refittable_cargo_classes&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
bit set of [[NML:Cargos#Cargo classes|cargo classes]]&lt;br /&gt;
| yes&lt;br /&gt;
| for example: &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(CC_BULK, CC_COVERED)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;non_refittable_cargo_classes&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
bit set of [[NML:Cargos#Cargo classes|cargo classes]]&lt;br /&gt;
| yes&lt;br /&gt;
| for example: &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(CC_OVERSIZED, CC_SPECIAL)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;refittable_cargo_types&amp;lt;/code&amp;gt;&lt;br /&gt;
| bit mask of entries into the cargo translation table&lt;br /&gt;
| yes&lt;br /&gt;
| As of NML 0.3, do not use this. Use cargo_[dis]allow_refit (see below) instead.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;cargo_allow_refit&amp;lt;/code&amp;gt;&lt;br /&gt;
| Array of cargo labels from the [[NML:Cargotable|cargotable]]&lt;br /&gt;
| Yes&lt;br /&gt;
| {{ottdp|1.2|no|ottdrev=r23291}} A list of cargo types to allow refitting to, irrespective of cargo classes. Example: &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;[COAL, IORE]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;cargo_disallow_refit&amp;lt;/code&amp;gt;&lt;br /&gt;
| Array of cargo labels from the [[NML:Cargotable|cargotable]]&lt;br /&gt;
| Yes&lt;br /&gt;
| {{ottdp|1.2|no|ottdrev=r23291}} A list of cargo types to disallow refitting to, irrespective of cargo classes. Example: &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;[MAIL]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;loading_speed&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255 (cargo units)&lt;br /&gt;
| yes&lt;br /&gt;
| Units of cargo loaded per time unit. Default vehicles use 5 for trains and road vehicles, 10 for ships and 20 for aircraft. This amount of cargo is loaded to or unloaded from the vehicle every 40 ticks for trains, every 20 ticks for road vehicles and aircraft and every 10 ticks for ships.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;cost_factor&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| Set to 0&lt;br /&gt;
| multiplier to the base purchase cost&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;running_cost_factor&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| Set to 0&lt;br /&gt;
| multiplier to the base running costs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;cargo_age_period&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 65535&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r22713}} This property specifies after how many ticks cargo is aged. Default value is 185. 74 ticks is equal to 1 day. If set to 0, cargo does not age. Repeated tests have shown that the gameplay effects of this property often do not match the expectations of grf authors. Explaining why requires a detailed understanding of the OpenTTD cargo aging algorithm, and how that works with e.g. different map sizes, vehicle speeds, multi-leg feeder systems, etc. TL;DR avoid using this property unless you absolutely understand the effect it will have.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;variant_group&amp;lt;/code&amp;gt;&lt;br /&gt;
| Vehicle ID or alternatively the vehicle numeric ID (0 ... 65535)&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
{{ottd|13}} This property supports grouping vehicles in the purchase menu (also the autoreplace menu). The property value is the ID of another vehicle in the same GRF which will act as the parent for vehicles in the group.&lt;br /&gt;
&lt;br /&gt;
Groups can also be nested (this is experimental as of December 2022 and may change with testing).&lt;br /&gt;
&lt;br /&gt;
See also vehicle extra_flags which can influence the behaviour of vehicles in variant groups.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/OpenTTD/OpenTTD/pull/10220&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;extra_flags&amp;lt;/code&amp;gt;&lt;br /&gt;
| bitmask(VEHICLE_FLAG_XXX, ...)&lt;br /&gt;
| no&lt;br /&gt;
| {{ottd|13}} &lt;br /&gt;
;VEHICLE_FLAG_DISABLE_NEW_VEHICLE_MESSAGE&lt;br /&gt;
: Disable &amp;quot;New Vehicle&amp;quot; news message for this engine&lt;br /&gt;
;VEHICLE_FLAG_DISABLE_EXCLUSIVE_PREVIEW&lt;br /&gt;
: Disable &amp;quot;Exclusive Preview&amp;quot; for this engine&lt;br /&gt;
;VEHICLE_FLAG_SYNC_VARIANT_EXCLUSIVE_PREVIEW&lt;br /&gt;
: Variants - Include this variant when primary engine has &amp;quot;Exclusive Preview&amp;quot;&lt;br /&gt;
;VEHICLE_FLAG_SYNC_VARIANT_RELIABILITY&lt;br /&gt;
: Variants - (Attempt to) Synchronize reliability the primary engine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;badges&amp;lt;/code&amp;gt;&lt;br /&gt;
| Array of badge labels from the [[NML:Badgetable|badgetable]].&lt;br /&gt;
| yes&lt;br /&gt;
| {{ottd|15.0}} for example &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;[&amp;quot;power/electric&amp;quot;, &amp;quot;flag/GB&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Refittability===&lt;br /&gt;
&lt;br /&gt;
To determine whether your vehicle can be refitted to a certain cargo, OpenTTD uses the following table&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! Cargo matches refittable_cargo_classes&lt;br /&gt;
! Cargo matches non_refittable_cargo_classes&lt;br /&gt;
! Cargo in cargo_allow_refit&lt;br /&gt;
! Cargo in cargo_disallow_refit&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| No&lt;br /&gt;
| Refittable&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| No&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| Not refittable&lt;br /&gt;
|-&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Refittable&lt;br /&gt;
|-&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| Doesn&#039;t matter&lt;br /&gt;
| Yes&lt;br /&gt;
| Not refittable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For those that prefer boolean logic, the formula is as follows:&lt;br /&gt;
&lt;br /&gt;
refittable = ((cargo classes in refittable_cargo_classes AND NOT cargo classes in non_refittable_cargo_classes) OR cargo in cargo_allow_refit) AND NOT (cargo in cargo_disallow_refit)&lt;br /&gt;
&lt;br /&gt;
In general, you should use refittable_cargo_classes and non_refittable_cargo_classes to decide to which cargos your vehicle is refittable, and only then use cargo_allow_refit and cargo_disallow_refit to allow/disallow specific cargos.&lt;br /&gt;
&lt;br /&gt;
===Engine life cycle===&lt;br /&gt;
&lt;br /&gt;
The life cycle of a vehicle model consists of three phases, as outlined in the following table. The length of each phase and the starting, peak, and final reliabilities are randomized for each engine when starting a new game. Also note that phase 2 (the vehicle&#039;s peak performance) is actually about 8 years shorter than the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;model_life&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! phase&lt;br /&gt;
! duration&lt;br /&gt;
! reliability&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 7 to 38 months&lt;br /&gt;
| increases from 48-73% to 75-100%&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;model_life&amp;lt;/code&amp;gt; - 8 years + (0 to 15 months)&lt;br /&gt;
| stays constant at peak, 75-100%&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 10 to 20.6 years&lt;br /&gt;
| decreases from peak to 25-50%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;model_life&amp;lt;/code&amp;gt; is set to &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;VEHICLE_NEVER_EXPIRES&amp;lt;/code&amp;gt;, the engine remains in phase 2 forever.&lt;br /&gt;
&lt;br /&gt;
Normally, the vehicle is removed from the purchase menu at the and of phase 3. However if you set the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;retire_early&amp;lt;/code&amp;gt; property, it will be retired this many years before (or after, if the value is negative) the end of phase 2.&lt;br /&gt;
&lt;br /&gt;
==Train properties==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! value range&lt;br /&gt;
! available for&amp;lt;br /&amp;gt;articulated&amp;lt;br /&amp;gt;vehicle&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;sprite_id&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;SPRITE_ID_NEW_TRAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
| yes&lt;br /&gt;
| Set this property to enable new graphics&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;speed&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 65000 (float, speed units)&lt;br /&gt;
| no&lt;br /&gt;
| Max speed for engines, speed limit for wagons&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;misc_flags&amp;lt;/code&amp;gt;&lt;br /&gt;
| bitmask(TRAIN_FLAG_XXX, ...)&lt;br /&gt;
| FLIP should not be set, TILT and MU TO the same value as the 1st part&lt;br /&gt;
| &lt;br /&gt;
;TRAIN_FLAG_TILT&lt;br /&gt;
: enable the tilt bonus (20% speed in curves, if all vehicles in consist have it set).  See also curve_speed_mod property.&lt;br /&gt;
;TRAIN_FLAG_2CC&lt;br /&gt;
:Enable use of the 2nd company colour&lt;br /&gt;
;TRAIN_FLAG_MU&lt;br /&gt;
:act as multiple unit (used for livery selection only)&lt;br /&gt;
;TRAIN_FLAG_FLIP&lt;br /&gt;
:Allow vehicle to be flipped (reversed) in depot. {{ottdp|13|no|no}} this flag is no longer required, flip is always allowed, except for multi-header or articulated vehicles which cannot be flipped.  For vehicles shorter than 8/8, see [[Action0/Vehicles/Trains#cite_note-6|this note about sprite offsets]]&lt;br /&gt;
;TRAIN_FLAG_AUTOREFIT&lt;br /&gt;
:Allow autoreffitting. To enable autorefit, furthermore the [[#Vehicle callbacks|refit_cost]]-callback has to allow it, or else (if this callback is not implemented or fails) the &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;refit_cost&amp;lt;/code&amp;gt;-property (see below) must be set to 0.&lt;br /&gt;
;TRAIN_FLAG_NO_BREAKDOWN_SMOKE&lt;br /&gt;
:{{nml|0.3}} {{ottdp|1.3|no|ottdrev=r24124}} Disable breakdown smoke effect&lt;br /&gt;
;TRAIN_FLAG_SPRITE_STACK&lt;br /&gt;
:{{ottdp|1.7|no|ottdrev=r27668}} Enable [[NML:Vehicles#Composing_vehicles_from_multiple_sprites|composition from multiple sprites]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;extra_flags&amp;lt;/code&amp;gt;&lt;br /&gt;
| bitmask(VEHICLE_FLAG_XXX, ...)&lt;br /&gt;
| yes&lt;br /&gt;
| {{ottd|16}} &lt;br /&gt;
;VEHICLE_FLAG_TRAIN_HAS_CAB&lt;br /&gt;
: Train wagon has a cab and can lead a train when driving backwards, without any speed reduction.&lt;br /&gt;
Additionally, trains have the extra flags common to all vehicle types, described above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;refit_cost&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| yes&lt;br /&gt;
| in 50% units of the purchase price cost base&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;callback_flags&amp;lt;/code&amp;gt;&lt;br /&gt;
| bitmask(VEH_CBF_XXX, ...)&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
Do not set this, unless you use [[NML:Old style callbacks|old-style callbacks]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;track_type&amp;lt;/code&amp;gt;&lt;br /&gt;
|{{ottd|15.0.0}} array of items from railtypetable &amp;lt;br/&amp;gt; {{ottd|&amp;amp;lt;15.0.0}} item from railtypetable&lt;br /&gt;
| must be the same as front&lt;br /&gt;
| Default railtype table: RAIL, MONO, MGLV. If you install a railtypetable yourself you&#039;ll always get the railtype you specified. If you want a vehicle to run on electric rail and you don&#039;t have a railtypetable, set &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;track_type&amp;lt;/code&amp;gt; to RAIL and make sure that you set &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;engine_class&amp;lt;/code&amp;gt; to &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;ENGINE_CLASS_ELECTRIC&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;ai_special_flag&amp;lt;/code&amp;gt;&lt;br /&gt;
| [&amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;AI_FLAG_PASSENGER&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;AI_FLAG_CARGO&amp;lt;/code&amp;gt;]&lt;br /&gt;
| no&lt;br /&gt;
| &lt;br /&gt;
;&amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;AI_FLAG_PASSENGER&amp;lt;/code&amp;gt;&lt;br /&gt;
:Tell computer players that it&#039;s an engine that should only be used for passenger service.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;power&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 65000 hp (float, power units)&lt;br /&gt;
| Set to 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;running_cost_base&amp;lt;/code&amp;gt;&lt;br /&gt;
| RUNNING_COST_XXX&lt;br /&gt;
| Set to RUNNING_COST_NONE&lt;br /&gt;
| &lt;br /&gt;
;RUNNING_COST_STEAM&lt;br /&gt;
;RUNNING_COST_DIESEL&lt;br /&gt;
;RUNNING_COST_ELECTRIC&lt;br /&gt;
;RUNNING_COST_ROADVEH&lt;br /&gt;
;RUNNING_COST_NONE&lt;br /&gt;
:no running costs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;dual_headed&amp;lt;/code&amp;gt;&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| Set to 0 for all parts of an articulated vehicle&lt;br /&gt;
| 1 = dual_headed, otherwise normal engine&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;default_cargo_type&amp;lt;/code&amp;gt;&lt;br /&gt;
| An identifier from the [[NML:Cargotable|cargo table]], or DEFAULT_CARGO_FIRST_REFITTABLE&lt;br /&gt;
| Yes&lt;br /&gt;
| If the vehicle is refittable to at least one cargo, but the chosen default cargo is not available or is set to DEFAULT_CARGO_FIRST_REFITTABLE, then the first refittable cargo is used. The first refittable is chosen according to the order in your [[NML:Cargotable|cargo table]]. If this property is set to a valid cargo but the vehicle cannot refit to any cargo type, then the vehicle will be able to carry only this cargo, but it cannot be refitted (like e.g. the default train wagons).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;cargo_capacity&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 .. 255&lt;br /&gt;
| yes&lt;br /&gt;
| By default, passenger capacity is 4x, and mail/goods capacity 2x larger than capacity for other cargoes. The capacity set here is used for the default (i.e. first refittable) cargo. Use the &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;cargo_capacity&amp;lt;/code&amp;gt; callback to avoid this effect.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;weight&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 .. 1279 ton (float, mass units)&lt;br /&gt;
| Set to 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;ai_engine_rank&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| no&lt;br /&gt;
| TTDPatch only: Higher values make the engine for the TTDPatch AI more attractive&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;engine_class&amp;lt;/code&amp;gt;&lt;br /&gt;
| ENGINE_CLASS_XXX&lt;br /&gt;
| no&lt;br /&gt;
| &lt;br /&gt;
Defines which livery colour settings apply to the vehicle.  It also sets the corresponding sound effect of the engine, and if visual_effect_and_powered is not set, the visual effect as well.&lt;br /&gt;
;ENGINE_CLASS_STEAM&lt;br /&gt;
;ENGINE_CLASS_DIESEL&lt;br /&gt;
;ENGINE_CLASS_ELECTRIC&lt;br /&gt;
;ENGINE_CLASS_MONORAIL&lt;br /&gt;
;ENGINE_CLASS_MAGLEV&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;extra_power_per_wagon&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 65000 hp (float, power units)&lt;br /&gt;
| Set to 0&lt;br /&gt;
| Only wagons with a livery override for this engine will add power&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;tractive_effort_coefficient&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 1 (float)&lt;br /&gt;
| Set to 0&lt;br /&gt;
| Fraction of the vehicle weight that is available as tractive effort. Tractive effort (in kN) is calculated as (TE coefficient) * 9.8 * weight (in tons), with 9.8 being an approximation of the acceleration of gravity (9.81 m/s).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;air_drag_coefficient&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 1 (float)&lt;br /&gt;
| Set to 0&lt;br /&gt;
| Coefficient of the relative air drag, in arbitrary units. The default value is approximately (8 / max_speed), with max_speed in km/h, clamped to the range 0.004 .. 0.75.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;length&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1 ... 8&lt;br /&gt;
| yes&lt;br /&gt;
| Length of the vehicle in arbitrary units. Use a value of 8 (equal to the predefined constant VEHICLE_LENGTH) for a full-length vehicle.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect_and_powered&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect_and_powered&amp;lt;/code&amp;gt; (VISUAL_EFFECT_XXX, offset, &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;ENABLE_WAGON_POWER&amp;lt;/code&amp;gt; or &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;DISABLE_WAGON_POWER&amp;lt;/code&amp;gt;)&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
There are two methods to set the visual effect of a vehicle:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect_and_powered&amp;lt;/code&amp;gt;: Easy method for simple effects.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model_and_powered&amp;lt;/code&amp;gt; + callback &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;create_effect&amp;lt;/code&amp;gt;: {{ottdp|1.5|no|ottdrev=r26747}} Harder to use, but also more powerful.&lt;br /&gt;
For each vehicle you have to decide for the method. You cannot use them both for the same vehicle &#039;item&#039;.&lt;br /&gt;
&lt;br /&gt;
Set the type of visual effect for the vehicle and its positional offset with respect to the vehicle. An offset of 0 is default, negative values mean more to the front and positive values are backwards. Minimum offset is -8, maximum is 7.&lt;br /&gt;
&lt;br /&gt;
;VISUAL_EFFECT_DEFAULT&lt;br /&gt;
:No effect, unless for the default vehicles&lt;br /&gt;
;VISUAL_EFFECT_STEAM&lt;br /&gt;
:Steam like from steam engine&lt;br /&gt;
;VISUAL_EFFECT_DIESEL&lt;br /&gt;
:Steam from internal combustion engine&lt;br /&gt;
;VISUAL_EFFECT_ELECTRIC&lt;br /&gt;
:Electric sparks&lt;br /&gt;
;VISUAL_EFFECT_DISABLE&lt;br /&gt;
:No effect&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model_and_powered&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;EFFECT_SPAWN_MODEL_XXX&amp;lt;/code&amp;gt; or &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;EFFECT_SPAWN_MODEL_XXX &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ENABLE_WAGON_POWER&amp;lt;/code&amp;gt;&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
There are two methods to set the visual effect of a vehicle:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect_and_powered&amp;lt;/code&amp;gt;: Easy method for simple effects.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model_and_powered&amp;lt;/code&amp;gt; + callback &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;create_effect&amp;lt;/code&amp;gt;: {{ottdp|1.5|no|ottdrev=r26747}} Harder to use, but also more powerful.&lt;br /&gt;
For each vehicle you have to decide for the method. You cannot use them both for the same vehicle &#039;item&#039;.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.5|no|ottdrev=r26747}} Set the spawning model of visual effects for the vehicle, that is when the vehicle emits visual effects.&lt;br /&gt;
The visual appearance itself is defined by the callback &#039;create_effect&#039;.&lt;br /&gt;
&lt;br /&gt;
;EFFECT_SPAWN_MODEL_NONE&lt;br /&gt;
: Do not spawn any effects.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_STEAM&lt;br /&gt;
: Gradually less effects when approaching max speed.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_DIESEL&lt;br /&gt;
: Effect proportional to acceleration, no effect when idling at top speed.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_ELECTRIC&lt;br /&gt;
: Random effect, gradually less likely when approaching max speed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;extra_weight_per_wagon&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0 ... 255 ton (float, mass units)&lt;br /&gt;
| Set to 0&lt;br /&gt;
| Adds extra weight for powered wagons, see &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;extra_power_per_wagon&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span #id=&amp;quot;bitmask_vehicle_info&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;bitmask_vehicle_info&amp;lt;/code&amp;gt;&lt;br /&gt;
| 8-bit bitmask&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
Used for obtaining [[#bitmask consist info|&amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;bitmask_consist_info&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;curve_speed_mod&amp;lt;/code&amp;gt;&lt;br /&gt;
| -128 ... 127.996 (float)&lt;br /&gt;
| yes&lt;br /&gt;
| {{nml|0.7}} {{ottd|12.0}} Maximum curve speed modifier.&lt;br /&gt;
&lt;br /&gt;
The modifier is applied after the normal curve speed calculation is done using the formula max_curve_speed * (1 + curve_speed_mod). This means that the default property value of 0 is equivalent to no change. Negative values are supported, but the resulting vehicle curve speed is clamped at 2 mph-ish to make sure vehicles don&#039;t become permanently stuck.&lt;br /&gt;
&lt;br /&gt;
If different vehicles in a train have different curve speed modifiers, the lowest value wins.&lt;br /&gt;
&lt;br /&gt;
See also TRAIN_FLAG_TILT, which is an older and less flexible way of managing vehicle curve speed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Road vehicle properties==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! value range&lt;br /&gt;
! available for&amp;lt;br /&amp;gt;articulated&amp;lt;br /&amp;gt;vehicle&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| sprite_id&lt;br /&gt;
| SPRITE_ID_NEW_ROADVEH&lt;br /&gt;
| yes&lt;br /&gt;
| Set this property to enable new graphics&lt;br /&gt;
|-&lt;br /&gt;
| speed&lt;br /&gt;
| 0 ... 511km/h (float, speed units)&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| road_type &#039;&#039;or&#039;&#039; tram_type &lt;br /&gt;
| item from [[NML:Railtypetable-Roadtypetable-Tramtypetable|roadtypetable]] or [[NML:Railtypetable-Roadtypetable-Tramtypetable|tramtypetable]]&lt;br /&gt;
| must be the same as front&lt;br /&gt;
| Only &#039;&#039;one&#039;&#039; of these properties may be set.  &lt;br /&gt;
If &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;tram_type&amp;lt;/code&amp;gt; is set, &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;ROADVEH_FLAG_TRAM&amp;lt;/code&amp;gt; must also be set for the vehicle in &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;misc_flags&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If not set, road vehicles will default to ROAD and tram vehicles will default to RAIL (this does not overlap with railtype RAIL).&lt;br /&gt;
|-&lt;br /&gt;
| misc_flags&lt;br /&gt;
| bitmask(ROADVEH_FLAG_XXX, ...)&lt;br /&gt;
| partly; tram flag must the same&lt;br /&gt;
| &lt;br /&gt;
;ROADVEH_FLAG_TRAM&lt;br /&gt;
:The vehicle requires tram tracks to run on&lt;br /&gt;
;ROADVEH_FLAG_2CC&lt;br /&gt;
:Enable 2nd company colour&lt;br /&gt;
;ROADVEH_FLAG_AUTOREFIT&lt;br /&gt;
:Allow autorefitting. To enable autorefit, furthermore the [[#Vehicle callbacks|refit_cost]]-callback has to allow it, or else (if this callback is not implemented or fails) the &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;refit_cost&amp;lt;/code&amp;gt;-property (see below) must be set to 0.&lt;br /&gt;
;ROADVEH_FLAG_NO_BREAKDOWN_SMOKE&lt;br /&gt;
:{{nml|0.3}} {{ottdp|1.3|no|ottdrev=r24124}} Disable breakdown smoke effect&lt;br /&gt;
;ROADVEH_FLAG_SPRITE_STACK&lt;br /&gt;
:{{ottdp|1.7|no|ottdrev=r27668}} Enable [[NML:Vehicles#Composing_vehicles_from_multiple_sprites|composition from multiple sprites]].&lt;br /&gt;
|-&lt;br /&gt;
| refit_cost&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| yes&lt;br /&gt;
| in 25% units of the purchase price cost base&lt;br /&gt;
|-&lt;br /&gt;
| callback_flags&lt;br /&gt;
| bitmask(VEH_CBF_XXX, ...)&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
Do not set this, unless you use [[NML:Old style callbacks|old-style callbacks]].&lt;br /&gt;
|-&lt;br /&gt;
| running_cost_base&lt;br /&gt;
| RUNNING_COST_XXX&lt;br /&gt;
| set to RUNNING_COST_NONE&lt;br /&gt;
| &lt;br /&gt;
;RUNNING_COST_STEAM&lt;br /&gt;
;RUNNING_COST_DIESEL&lt;br /&gt;
;RUNNING_COST_ELECTRIC&lt;br /&gt;
;RUNNING_COST_ROADVEH&lt;br /&gt;
;RUNNING_COST_NONE&lt;br /&gt;
:no running costs&lt;br /&gt;
|-&lt;br /&gt;
| power&lt;br /&gt;
| 0 ... 2550hp (float, power units)&lt;br /&gt;
| Set to 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| weight&lt;br /&gt;
| 0 ... 63.75ton (float, mass units)&lt;br /&gt;
| Set to 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tractive_effort_coefficient&lt;br /&gt;
| 0 ... 1 (float)&lt;br /&gt;
| Set to 0&lt;br /&gt;
| Fraction of the vehicle weight that is available as tractive effort. Tractive effort (in kN) is calculated as (TE coefficient) * 10 * weight (in tons), with 10 being an approximation of the acceleration of gravity (9.81 m/s). Default value is 0.3.&lt;br /&gt;
|-&lt;br /&gt;
| air_drag_coefficient&lt;br /&gt;
| 0 ... 1 (float)&lt;br /&gt;
| Set to 0&lt;br /&gt;
| Coefficient of the relative air drag, in arbitrary units. The default value is approximately (8 / max_speed), with max_speed in km/h, clamped to the range 0.004 .. 0.75.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;default_cargo_type&amp;lt;/code&amp;gt;&lt;br /&gt;
| An identifier from the [[NML:Cargotable|cargo table]], or DEFAULT_CARGO_FIRST_REFITTABLE&lt;br /&gt;
| Yes&lt;br /&gt;
| If the vehicle is refittable to at least one cargo, but the chosen default cargo is not available or is set to DEFAULT_CARGO_FIRST_REFITTABLE, then the first refittable cargo is used. The first refittable is chosen according to the order in your [[NML:Cargotable|cargo table]]. If this property is set to a valid cargo but the vehicle cannot refit to any cargo type, then the vehicle will be able to carry only this cargo, but it cannot be refitted (like e.g. the default train wagons).&lt;br /&gt;
|-&lt;br /&gt;
| cargo_capacity&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| yes&lt;br /&gt;
| By default, passenger capacity is 4x, and mail/goods capacity 2x larger than capacity for other cargoes. The capacity set here is used for the default (i.e. first refittable) cargo. Use the &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;cargo_capacity&amp;lt;/code&amp;gt; callback to avoid this effect.&lt;br /&gt;
|-&lt;br /&gt;
| sound_effect&lt;br /&gt;
| SOUND_XXX&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
See available [[NML:List of sound effects|sound effects]].&lt;br /&gt;
&amp;lt;br/&amp;gt;{{ottdp|1.6|no|ottdrev=r27507}} Since OpenTTD r27507 also &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;sound(&amp;quot;sound.wav&amp;quot;)&amp;lt;/code&amp;gt; and &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;import_sound(grfid, number)&amp;lt;/code&amp;gt; are valid here.&lt;br /&gt;
|-&lt;br /&gt;
| visual_effect&lt;br /&gt;
| visual_effect( VISUAL_EFFECT_XXX, offset)&lt;br /&gt;
| yes&lt;br /&gt;
| &lt;br /&gt;
There are two methods to set the visual effect of a vehicle:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect&amp;lt;/code&amp;gt;: Easy method for simple effects.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model&amp;lt;/code&amp;gt; + callback &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;create_effect&amp;lt;/code&amp;gt;: {{ottdp|1.5|no|ottdrev=r26747}} Harder to use, but also more powerful.&lt;br /&gt;
For each vehicle you have to decide for the method. You cannot use them both for the same vehicle &#039;item&#039;.&lt;br /&gt;
&lt;br /&gt;
Set the type of visual effect for the vehicle and its positional offset with respect to the vehicle. An offset of 0 is default, negative values mean more to the front and positive values are backwards. Minimum offset is -8, maximum is 7.&lt;br /&gt;
&lt;br /&gt;
;VISUAL_EFFECT_DEFAULT&lt;br /&gt;
:No effect, unless for the default vehicles&lt;br /&gt;
;VISUAL_EFFECT_STEAM&lt;br /&gt;
:Steam like from steam engine&lt;br /&gt;
;VISUAL_EFFECT_DIESEL&lt;br /&gt;
:Steam from internal combustion engine&lt;br /&gt;
;VISUAL_EFFECT_ELECTRIC&lt;br /&gt;
:Electric sparks&lt;br /&gt;
;VISUAL_EFFECT_DISABLE&lt;br /&gt;
:No effect&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;EFFECT_SPAWN_MODEL_XXX&amp;lt;/code&amp;gt;&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
There are two methods to set the visual effect of a vehicle:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect&amp;lt;/code&amp;gt;: Easy method for simple effects.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model&amp;lt;/code&amp;gt; + callback &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;create_effect&amp;lt;/code&amp;gt;: {{ottdp|1.5|no|ottdrev=r26747}} Harder to use, but also more powerful.&lt;br /&gt;
For each vehicle you have to decide for the method. You cannot use them both for the same vehicle &#039;item&#039;.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.5|no|ottdrev=r26747}} Set the spawning model of visual effects for the vehicle, that is when the vehicle emits visual effects.&lt;br /&gt;
The visual appearance itself is defined by the callback &#039;create_effect&#039;.&lt;br /&gt;
&lt;br /&gt;
;EFFECT_SPAWN_MODEL_NONE&lt;br /&gt;
: Do not spawn any effects.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_STEAM&lt;br /&gt;
: Gradually less effects when approaching max speed.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_DIESEL&lt;br /&gt;
: Effect proportional to acceleration, no effect when idling at top speed.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_ELECTRIC&lt;br /&gt;
: Random effect, gradually less likely when approaching max speed.&lt;br /&gt;
|-&lt;br /&gt;
| length&lt;br /&gt;
| 1 ... 8&lt;br /&gt;
| yes&lt;br /&gt;
| Length of the vehicle in arbitrary units. Use a value of 8 (equal to the predefined constant VEHICLE_LENGTH) for a full-length vehicle.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Ship properties==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! value range&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| sprite_id&lt;br /&gt;
| SPRITE_ID_NEW_SHIP&lt;br /&gt;
| Set this property to enable new graphics&lt;br /&gt;
|-&lt;br /&gt;
| speed&lt;br /&gt;
| 0 ... 127 km/h (float, speed units)&lt;br /&gt;
| {{ottd|14}}{{nml|7.5}} 0 .. 32767 km/h (float, speed units)&lt;br /&gt;
|-&lt;br /&gt;
| misc_flags&lt;br /&gt;
| bitmask(SHIP_FLAG_XXX)&lt;br /&gt;
| Bitmask with to possible flags, set to 0 to disable all. &lt;br /&gt;
&lt;br /&gt;
;SHIP_FLAG_2CC&lt;br /&gt;
:Enable use of the 2nd company colour&lt;br /&gt;
;SHIP_FLAG_AUTOREFIT&lt;br /&gt;
:llow autorefitting. To enable autorefit, furthermore the [[#Vehicle callbacks|refit_cost]]-callback has to allow it, or else (if this callback is not implemented or fails) the &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;refit_cost&amp;lt;/code&amp;gt;-property (see below) must be set to 0.&lt;br /&gt;
;SHIP_FLAG_NO_BREAKDOWN_SMOKE&lt;br /&gt;
:{{nml|0.3}} {{ottdp|1.3|no|ottdrev=r24124}} Disable breakdown smoke effect&lt;br /&gt;
;SHIP_FLAG_SPRITE_STACK&lt;br /&gt;
:{{ottdp|1.7|no|ottdrev=r27668}} Enable [[NML:Vehicles#Composing_vehicles_from_multiple_sprites|composition from multiple sprites]].&lt;br /&gt;
|-&lt;br /&gt;
| extra_flags&lt;br /&gt;
| bitmask(VEHICLE_FLAG_XXX, ...)&lt;br /&gt;
| {{ottd|17}} &lt;br /&gt;
;VEHICLE_FLAG_SHIP_IS_DOUBLE_ENDED&lt;br /&gt;
: Ship can reverse direction without having to turn around.&lt;br /&gt;
Additionally, ships have the extra flags common to all vehicle types, described above.&lt;br /&gt;
|-&lt;br /&gt;
| refit_cost&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| in 1/32 of the default refit cost base&lt;br /&gt;
|-&lt;br /&gt;
| callback_flags&lt;br /&gt;
| bitmask(VEH_CBF_XXX, ...)&lt;br /&gt;
|&lt;br /&gt;
Do not set this, unless you use [[NML:Old style callbacks|old-style callbacks]].&lt;br /&gt;
|-&lt;br /&gt;
| is_refittable&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| 0=false, 1=true. Note: if you do not set this property to 1, then refittable_cargo_classes / non_refittable_cargo_classes have no effect.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;default_cargo_type&amp;lt;/code&amp;gt;&lt;br /&gt;
| An identifier from the [[NML:Cargotable|cargo table]], or DEFAULT_CARGO_FIRST_REFITTABLE&lt;br /&gt;
| If the vehicle is refittable to at least one cargo, but the chosen default cargo is not available or is set to DEFAULT_CARGO_FIRST_REFITTABLE, then the first refittable cargo is used. The first refittable is chosen according to the order in your [[NML:Cargotable|cargo table]]. If this property is set to a valid cargo but the vehicle cannot refit to any cargo type, then the vehicle will be able to carry only this cargo, but it cannot be refitted (like e.g. the default train wagons).&lt;br /&gt;
|-&lt;br /&gt;
| cargo_capacity&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| For ships (unlike other vehicle types) the capacity set here is not affected by the cargo type.&lt;br /&gt;
|-&lt;br /&gt;
| sound_effect&lt;br /&gt;
| SOUND_XXX&lt;br /&gt;
|&lt;br /&gt;
See available [[NML:List of sound effects|sound effects]].&lt;br /&gt;
&amp;lt;br/&amp;gt;{{ottdp|1.6|no|ottdrev=r27507}} Since OpenTTD r27507 also &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;sound(&amp;quot;sound.wav&amp;quot;)&amp;lt;/code&amp;gt; and &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;import_sound(grfid, number)&amp;lt;/code&amp;gt; are valid here.&lt;br /&gt;
|-&lt;br /&gt;
| ocean_speed_fraction&lt;br /&gt;
| 0 ... 1 (float)&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r22639}} fraction of base speed on ocean tiles (default: 1)&lt;br /&gt;
|-&lt;br /&gt;
| canal_speed_fraction&lt;br /&gt;
| 0 ... 1 (float)&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r22639}} fraction of base speed on canal tiles (default: 1)&lt;br /&gt;
|-&lt;br /&gt;
| visual_effect&lt;br /&gt;
| visual_effect(VISUAL_EFFECT_XXX, offset)&lt;br /&gt;
|&lt;br /&gt;
There are two methods to set the visual effect of a vehicle:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect&amp;lt;/code&amp;gt;: Easy method for simple effects.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model&amp;lt;/code&amp;gt; + callback &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;create_effect&amp;lt;/code&amp;gt;: {{ottdp|1.5|no|ottdrev=r26747}} Harder to use, but also more powerful.&lt;br /&gt;
For each vehicle you have to decide for the method. You cannot use them both for the same vehicle &#039;item&#039;.&lt;br /&gt;
&lt;br /&gt;
XXX=[DEFAULT &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; STEAM &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; DIESEL &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ELECTRIC &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; DISABLE], it is the type of the visual effect you want for this ship. Default means no effect. Offset is the position of the effect. 0 is default, negative values mean more to the front and positive values are backwards. Minimum offset is -8, maximum is 7.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;EFFECT_SPAWN_MODEL_XXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
There are two methods to set the visual effect of a vehicle:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;visual_effect&amp;lt;/code&amp;gt;: Easy method for simple effects.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;effect_spawn_model&amp;lt;/code&amp;gt; + callback &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;create_effect&amp;lt;/code&amp;gt;: {{ottdp|1.5|no|ottdrev=r26747}} Harder to use, but also more powerful.&lt;br /&gt;
For each vehicle you have to decide for the method. You cannot use them both for the same vehicle &#039;item&#039;.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.5|no|ottdrev=r26747}} Set the spawning model of visual effects for the vehicle, that is when the vehicle emits visual effects.&lt;br /&gt;
The visual appearance itself is defined by the callback &#039;create_effect&#039;.&lt;br /&gt;
&lt;br /&gt;
;EFFECT_SPAWN_MODEL_NONE&lt;br /&gt;
: Do not spawn any effects.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_STEAM&lt;br /&gt;
: Gradually less effects when approaching max speed.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_DIESEL&lt;br /&gt;
: Effect proportional to acceleration, no effect when idling at top speed.&lt;br /&gt;
;EFFECT_SPAWN_MODEL_ELECTRIC&lt;br /&gt;
: Random effect, gradually less likely when approaching max speed.&lt;br /&gt;
|-&lt;br /&gt;
| acceleration&lt;br /&gt;
| 1 ... 255&lt;br /&gt;
| {{ottd|14}} Acceleration in units of ~0.5 km/h per tick. 1 is the default and is the acceleration of default ships.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Aircraft properties==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! value range&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| sprite_id&lt;br /&gt;
| SPRITE_ID_NEW_AIRCRAFT&lt;br /&gt;
| Set this property to enable new graphics&lt;br /&gt;
|-&lt;br /&gt;
| speed&lt;br /&gt;
| 0 .. 3280 km/h (float, speed units)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| range&lt;br /&gt;
| 0 .. 2894&lt;br /&gt;
| {{nml|0.3}} {{ottdp|1.2|no|ottdrev=r23504}} Maximum (euclidean) distance the aircraft can cover between two airports. Set to 0 for unlimited range.&lt;br /&gt;
|-&lt;br /&gt;
| misc_flags&lt;br /&gt;
| bitmask(AIRCRAFT_FLAG_2CC, AIRCRAFT_FLAG_AUTOREFIT)&lt;br /&gt;
| Bitmask with to possible flags, set to 0 to disable all. &lt;br /&gt;
&lt;br /&gt;
;AIRCRAFT_FLAG_2CC&lt;br /&gt;
:Enable 2nd company colour&lt;br /&gt;
;AIRCRAFT_FLAG_AUTOREFIT&lt;br /&gt;
:Allow autorefitting. To enable autorefit, furthermore the [[#Vehicle callbacks|refit_cost]]-callback has to allow it, or else (if this callback is not implemented or fails) the &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;refit_cost&amp;lt;/code&amp;gt;-property (see below) must be set to 0.&lt;br /&gt;
;AIRCRAFT_FLAG_NO_BREAKDOWN_SMOKE&lt;br /&gt;
:{{nml|0.3}} {{ottdp|1.3|no|ottdrev=r24124}} Disable breakdown smoke effect&lt;br /&gt;
;AIRCRAFT_FLAG_SPRITE_STACK&lt;br /&gt;
:{{ottdp|1.7|no|ottdrev=r27668}} Enable [[NML:Vehicles#Composing_vehicles_from_multiple_sprites|composition from multiple sprites]]. This also affects custom rotor sprites.&lt;br /&gt;
|-&lt;br /&gt;
| refit_cost&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| in 1/32 of default refit cost base&lt;br /&gt;
|-&lt;br /&gt;
| callback_flags&lt;br /&gt;
| bitmask(VEH_CBF_XXX, ...)&lt;br /&gt;
|&lt;br /&gt;
Do not set this, unless you use [[NML:Old style callbacks|old-style callbacks]].&lt;br /&gt;
|-&lt;br /&gt;
| aircraft_type&lt;br /&gt;
| AIRCRAFT_TYPE_XXX&lt;br /&gt;
| &lt;br /&gt;
;AIRCRAFT_TYPE_HELICOPTER&lt;br /&gt;
:Can land on helipad&lt;br /&gt;
;AIRCRAFT_TYPE_SMALL&lt;br /&gt;
:Can land on all airports with runway&lt;br /&gt;
;AIRCRAFT_TYPE_LARGE&lt;br /&gt;
:Can land on all airports with runway. But have a high crash chance on small airports&lt;br /&gt;
|-&lt;br /&gt;
| acceleration&lt;br /&gt;
| {{ottd|1.3.1}} 0 ... 255 &amp;lt;br/&amp;gt; {{ottd|&amp;amp;lt;1.3.1}} 0 ... 19&lt;br /&gt;
| {{ottd|1.3.1}} Default aircraft use values in the range 18 to 50 (= 6.75 to 18.75 mph/tick = 499.5 to 1387.5 mph/day), which is generally considered quite fast.&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ottd|&amp;amp;lt;1.3.1}} In older OpenTTD, aircraft provided by NewGRF accelerate 166% faster than intended.&lt;br /&gt;
|-&lt;br /&gt;
| passenger_capacity&lt;br /&gt;
| 0 ... 65536&lt;br /&gt;
| Capacity for the passenger compartment. See also the notes at &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;mail_capacity&amp;lt;/code&amp;gt; below.&lt;br /&gt;
|-&lt;br /&gt;
| mail_capacity&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| Capacity for the mail compartment, if refitted to a cargo in the CC_PASSENGERS class. When refitted to other cargoes, this capacity is added to the passenger capacity to determine the base capacity. The actual capacity is set to this base capacity divided by 1 for mail, 2 for goods and 4 for all other cargoes. To override this effect, use the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;passenger_capacity&amp;lt;/code&amp;gt; and &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;mail_capacity&amp;lt;/code&amp;gt; callbacks.&lt;br /&gt;
|-&lt;br /&gt;
| sound_effect&lt;br /&gt;
| SOUND_XXX&lt;br /&gt;
|&lt;br /&gt;
See available [[NML:List of sound effects|sound effects]].&lt;br /&gt;
&amp;lt;br/&amp;gt;{{ottdp|1.6|no|ottdrev=r27507}} Since OpenTTD r27507 also &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;sound(&amp;quot;sound.wav&amp;quot;)&amp;lt;/code&amp;gt; and &amp;lt;code style=&amp;quot;color:green&amp;quot;&amp;gt;import_sound(grfid, number)&amp;lt;/code&amp;gt; are valid here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Vehicle variables==&lt;br /&gt;
&lt;br /&gt;
Below an overview of all vehicle-specific variables. Note that in the purchase list, the vehicle is not built yet and as such many variables are not available. All general variables are available, refer to the table for info on vehicle-specific variables. Trying to access a non-available variable invokes undefined behaviour. Please note that while all variables are available for all vehicles types, some of them only make sense for one or more vehicle types. For example checking current_railtype for a non-rail vehicle doesn&#039;t make sense at all, similarly checking current_roadtype for a tram won&#039;t return a useful result.&lt;br /&gt;
&lt;br /&gt;
===Variables without parameter===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! value range&lt;br /&gt;
! available in&amp;lt;br /&amp;gt;purchase list?&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| position_in_consist&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| The position of the current vehicle-part from the start of the vehicle. The engine will get value 0, the first wagon (or second engine) gets value 1, etc.&lt;br /&gt;
|-&lt;br /&gt;
| position_in_consist_from_end&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| Same as position_in_consist but counted from the end. The last wagon will get value 0.&lt;br /&gt;
|-&lt;br /&gt;
| num_vehs_in_consist&lt;br /&gt;
| 1 ... 256&lt;br /&gt;
| No&lt;br /&gt;
| The total number of vehicles-parts in this vehicle. For aircraft this will include the shadow and the rotor.&lt;br /&gt;
|-&lt;br /&gt;
| position_in_vehid_chain&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| See position_in_consist, but not of the complete vehicle but only all consecutive parts with the same id.&lt;br /&gt;
|-&lt;br /&gt;
| position_in_vehid_chain_from_end&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| See position_in_consist_from_end, but not of the complete vehicle but only all consecutive parts with the same id.&lt;br /&gt;
|-&lt;br /&gt;
| num_vehs_in_vehid_chain&lt;br /&gt;
| 1 ... 256&lt;br /&gt;
| No&lt;br /&gt;
| See num_vehs_in_consist, but not of the complete vehicle but only all consecutive parts with the same id.&lt;br /&gt;
|-&lt;br /&gt;
| position_in_articulated_veh&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| {{nml|0.3}} {{ottdp|1.4|no|ottdrev=r26157}} The position of the current articulated vehicle from the start of the vehicle. The first will get value 0, the second one gets value 1, etc.&lt;br /&gt;
|-&lt;br /&gt;
| position_in_articulated_veh_from_end&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| {{nml|0.3}} {{ottdp|1.4|no|ottdrev=r26157}} The position of the current articulated vehicle from the end of the vehicle. The last will get value 0, the second last one gets value 1, etc.&lt;br /&gt;
|-&lt;br /&gt;
| cargo_classes_in_consist&lt;br /&gt;
| Bitmask of CC_XXX&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
[[NML:Cargos#Cargo classes|cargo classes]]&lt;br /&gt;
|-&lt;br /&gt;
| most_common_cargo_type&lt;br /&gt;
|&lt;br /&gt;
[[NML:Cargos#Cargo properties|Cargo label]]&lt;br /&gt;
| No&lt;br /&gt;
| The most common cargo type in the consist.  Prior to nml r2320 this was known as most_common_refit, and didn&#039;t work, and was also incorrectly documented :)&lt;br /&gt;
|-&lt;br /&gt;
| most_common_cargo_subtype&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| The most common cargo subtype for most_common_cargo_type&lt;br /&gt;
|-&lt;br /&gt;
| bitmask_consist_info&lt;br /&gt;
| Bitmask 8 bit&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
Binary OR of the values of [[#bitmask vehicle info|bitmask_vehicle_info]] of all vehicles (engines, wagons) in the consist. Only available for rail vehicles.&lt;br /&gt;
|-&lt;br /&gt;
| company_num&lt;br /&gt;
| 0 ... 14&lt;br /&gt;
| Yes&lt;br /&gt;
| company number of the vehicle owner. TTDPatch only supports up to 8 companies (0 ... 7)&lt;br /&gt;
|-&lt;br /&gt;
| company_type&lt;br /&gt;
| PLAYERTYPE_XX&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
;PLAYERTYPE_HUMAN&lt;br /&gt;
:human player&lt;br /&gt;
;PLAYERTYPE_AI&lt;br /&gt;
:AI player&lt;br /&gt;
;PLAYERTYPE_HUMAN_IN_AI&lt;br /&gt;
:human managing AI company&lt;br /&gt;
;PLAYERTYPE_AI_IN_HUMAN&lt;br /&gt;
:AI managing human company&lt;br /&gt;
&lt;br /&gt;
OpenTTD only uses PLAYERTYPE_HUMAN and PLAYERTYPE_AI. If you cheat yourself to be part of an AI company OpenTTD will still report PLAYERTYPE_AI for the company with yourself and the AI and it&#039;ll report PLAYERTYPE_HUMAN for the now uncontrolled company.&lt;br /&gt;
|-&lt;br /&gt;
| company_colour1&lt;br /&gt;
| COLOUR_XXX&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
Refer to the table [[NML:List of default colour translation palettes#Company colour helper functions|here]] for possible values.&lt;br /&gt;
|-&lt;br /&gt;
| company_colour2&lt;br /&gt;
| COLOUR_XXX&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
Same as company_colour1, if no 2nd company colour is chosen. Refer to the table [[NML:List of default colour translation palettes#Company colour helper functions|here]] for possible values.&lt;br /&gt;
|-&lt;br /&gt;
| aircraft_height&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| Height difference between the aircraft and its shadow. 8 Units are equivalent to one height level on the map.&lt;br /&gt;
|-&lt;br /&gt;
| airport_type&lt;br /&gt;
| AIRPORTTYPE_XX&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
;AIRPORTTYPE_SMALL&lt;br /&gt;
;AIRPORTTYPE_LARGE&lt;br /&gt;
;AIRPORTTYPE_HELIPORT&lt;br /&gt;
;AIRPORTTYPE_OILRIG&lt;br /&gt;
|-&lt;br /&gt;
| flight_state&lt;br /&gt;
| 0 ... 28&lt;br /&gt;
| No&lt;br /&gt;
| {{nml|0.8.1}} Only for aircrafts.&lt;br /&gt;
|-&lt;br /&gt;
| curv_info_prev_cur&lt;br /&gt;
| -2 ... 2&lt;br /&gt;
| No&lt;br /&gt;
| Difference in direction between the previous (towards engine) vehicle and this vehicle. Curvature to the right is positive. 1 unit is 45 degrees.&lt;br /&gt;
|-&lt;br /&gt;
| curv_info_cur_next&lt;br /&gt;
| -2 ... 2&lt;br /&gt;
| No&lt;br /&gt;
| Difference in direction between this vehicle and the next (towards rear end) vehicle. Curvature to the right is positive. 1 unit is 45 degrees.&lt;br /&gt;
|-&lt;br /&gt;
| curv_info_prev_next&lt;br /&gt;
| -4 ... 4&lt;br /&gt;
| No&lt;br /&gt;
| Difference in direction between the previous (towards engine) and next (towards rear end) vehicle. Curvature to the right is positive. 1 unit is 45 degrees. Equal to &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;curve_invo_prev_cur + curv_info_cur_next&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| curv_info&lt;br /&gt;
| vehicle_curv_info(&#039;&#039;prev_cur&#039;&#039;, &#039;&#039;cur_next&#039;&#039;)&#039;&#039;&#039;&#039;&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
Returns a magic number that represents the curvature state of the prev-cur-next vehicle triplet. Do not try to make sense of this magic number, use the [[NML:Builtin functions|builtin function]] &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;vehicle_curv_info()&amp;lt;/code&amp;gt; instead to make comparisons. &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;curv_info == vehicle_curv_info(a, b)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;(curv_info_prev_cur == a) &amp;amp;amp;&amp;amp;amp; (curv_info_cur_next == b)&amp;lt;/code&amp;gt;, however the former can easily be used in a switch-block.&lt;br /&gt;
|-&lt;br /&gt;
| motion_counter&lt;br /&gt;
| 0 ... 0xFFFFFF&lt;br /&gt;
| Yes, always 0&lt;br /&gt;
| Is increased every time the vehicle moves a single step on the map. Useful for driving animations.&lt;br /&gt;
For that, make the animation use a number of frames, which is a power of two, i.e. 2, 4, 8, 16, 32, ... frames, and then use the lower n bits of motion_counter.&lt;br /&gt;
|-&lt;br /&gt;
| cargo_type_in_veh&lt;br /&gt;
| entry in cargo translation table&lt;br /&gt;
| Yes, for the default cargo&lt;br /&gt;
| 0xFF if not present in the table&lt;br /&gt;
|-&lt;br /&gt;
| cargo_unit_weight&lt;br /&gt;
| weight per unit in 1/16t&lt;br /&gt;
| Yes, for the default cargo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| cargo_classes&lt;br /&gt;
| Bitmask of [[NML:Cargos#Cargo properties|cargo class]]&lt;br /&gt;
| Yes, for the default cargo&lt;br /&gt;
| class of the currently transported cargo&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_available&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| Yes&lt;br /&gt;
| Value is 1 if the vehicle is available on the open market&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_testing&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| Yes&lt;br /&gt;
| Value is 1 if the vehicle is currently being tested&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_offered&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| Yes&lt;br /&gt;
| Value is 1 if the vehicle is currently being offered for exclusive preview&lt;br /&gt;
|-&lt;br /&gt;
| build_year&lt;br /&gt;
| 0 ... 5000000&lt;br /&gt;
| Yes&lt;br /&gt;
| 0-based year when the vehicle was built, current year if the vehicle is not built yet&lt;br /&gt;
|-&lt;br /&gt;
| direction&lt;br /&gt;
| DIRECTION_XX&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
See [[NML:List of direction constants|here]] for an overview of possible values and their meaning.&lt;br /&gt;
|-&lt;br /&gt;
| cargo_capacity&lt;br /&gt;
| 0 ... 65535&lt;br /&gt;
| No&lt;br /&gt;
| Cargo capacity (number of units) of the vehicle&lt;br /&gt;
|-&lt;br /&gt;
| cargo_count&lt;br /&gt;
| 0 ... 65535&lt;br /&gt;
| No&lt;br /&gt;
| Number of cargo units of cargo in the vehicle&lt;br /&gt;
|-&lt;br /&gt;
| cargo_subtype&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| Yes, always 0&lt;br /&gt;
| Cargo subtype, used to provide more than one refit option for the same cargo type. See also the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;cargo_subtype_text&amp;lt;/code&amp;gt; callback.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_powered&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Vehicle provides power and is on the correct track type&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_not_powered&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Vehicle is either on a wrong track type or it doesn&#039;t provide power at all&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_potentially_powered&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Vehicle provides power, if it is on a suitable track type&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_flipped&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the sprite is reversed via flip-vehicle-in-depot (trains only), or if it&#039;s the rear-most part of a dual-head engine.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_reversed&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the vehicle has reversed an odd number of times&lt;br /&gt;
|-&lt;br /&gt;
| train_is_driving_backwards&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| {{ottd|16}} Value is 1 if the train is driving backwards (trains only). Deprecated, use vehicle_is_moving_backwards instead.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_moving_backwards&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| {{ottd|17}} Value is 1 if the vehicle is moving backwards (trains and ships only)&lt;br /&gt;
|-&lt;br /&gt;
| built_during_preview&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the vehicle was built during the exclusive preview stage&lt;br /&gt;
|-&lt;br /&gt;
| current_railtype&lt;br /&gt;
| Entry from railtype translation table or 0xFF&lt;br /&gt;
| No&lt;br /&gt;
| This variable is useless due to equivalent railtypes, use tile_xxx_railtype instead.  If you do use this variable, it will not work as expected unless you&#039;ve defined a railtype translation table. If the train is running on a railtype that is not listed in your railtype translation table this variable will contain 0xFF.&lt;br /&gt;
|-&lt;br /&gt;
| current_roadtype&lt;br /&gt;
| Entry from current_roadtype translation table or 0xFF&lt;br /&gt;
| No&lt;br /&gt;
| {{nml|0.5}} {{ottdp|1.10|no}} This variable is useless due to equivalent roadtypes, use tile_xxx_roadtype instead.  Don&#039;t use this variable unless you&#039;ve defined a roadtype translation table. If the road vehicle is running on a roadtype that is not listed in your roadtype translation table this variable will contain 0xFF. Checking this for a tram is not supported and will not return a useful result.&lt;br /&gt;
|-&lt;br /&gt;
| current_tramtype&lt;br /&gt;
| Entry from tramtype translation table or 0xFF&lt;br /&gt;
| No&lt;br /&gt;
| {{nml|0.5}} {{ottdp|1.10|no}} This variable is useless due to equivalent tramtypes, use tile_xxx_tramtype instead. Don&#039;t use this variable unless you&#039;ve defined a tramtype translation table. If the road vehicle is running on a tramtype that is not listed in your tramtype translation table this variable will contain 0xFF. Checking this for a road vehicle that is not a tram is not supported and will not return a useful result.&lt;br /&gt;
|-&lt;br /&gt;
| tile_has_catenary&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| {{ottdp|1.11|no}} True if the track_type on the tile has catenary. This is a little simplified as it is intended for sprite changes (e.g. raise/lower pantograph) and only checks for &amp;quot;some catenary&amp;quot;. To distinguish different types of electric track, AC and DC voltages etc, ... use tile_xxx_railtype/tile_xxx_roadtype/tile_xxx_tramtype instead.&lt;br /&gt;
|-&lt;br /&gt;
| waiting_triggers&lt;br /&gt;
|&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
Random triggers waiting to be matched. (see [[NML:Random switch|Random switch]])&lt;br /&gt;
|-&lt;br /&gt;
| random_bits&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
Random data that can be used to randomize certain descisions. (see [[NML:Random switch|Random switch]])&lt;br /&gt;
|-&lt;br /&gt;
| grfid&lt;br /&gt;
| 0 ... 0xFFFFFFFF&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
GRFID that defined the [[NML:Graphics|graphics]]-block for this vehicle. To compare this with other grfids, use the [[NML:Builtin functions|builtin function]] &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;str2number()&amp;lt;/code&amp;gt; to convert the other GRFID to a number as well.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_type_id&lt;br /&gt;
| 0 ... 65535 or a name defined in item block&lt;br /&gt;
| No&lt;br /&gt;
| GRF-local ID of the vehicle, equal to the item ID. Note that vehicles from other NewGRFs may have the same ID, so you&#039;ll generally have to check the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;grfid&amp;lt;/code&amp;gt; as well.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_hidden&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the vehicle is hidden in a depot or tunnel.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_stopped&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the vehicle is stopped, or if it is braking for a stop (trains only).&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_crashed&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the vehicle has crashed.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_broken&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the vehicle is broken down.&lt;br /&gt;
|-&lt;br /&gt;
| date_of_last_service&lt;br /&gt;
| date(year, month, day)&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| breakdowns_since_last_service&lt;br /&gt;
| 0 ... 255&lt;br /&gt;
| No&lt;br /&gt;
| Number of breakdowns since the last service&lt;br /&gt;
|-&lt;br /&gt;
| reliability&lt;br /&gt;
| 0 ... 100&lt;br /&gt;
| No&lt;br /&gt;
| Reliability (percentage)&lt;br /&gt;
|-&lt;br /&gt;
| age_in_days&lt;br /&gt;
| 0 ... 65535&lt;br /&gt;
| No&lt;br /&gt;
| Vehicle age in days.&lt;br /&gt;
|-&lt;br /&gt;
| max_age_in_days&lt;br /&gt;
| 0 ... 65535&lt;br /&gt;
| No&lt;br /&gt;
| Maximum vehicle age in days.&lt;br /&gt;
|-&lt;br /&gt;
| current_speed&lt;br /&gt;
| (speed units)&lt;br /&gt;
| No&lt;br /&gt;
| The current speed of the vehicle in m/s&lt;br /&gt;
|-&lt;br /&gt;
| max_speed&lt;br /&gt;
| (speed units)&lt;br /&gt;
| No&lt;br /&gt;
| The maximum speed of the vehicle in m/s&lt;br /&gt;
|-&lt;br /&gt;
| current_max_speed&lt;br /&gt;
| (speed units)&lt;br /&gt;
| No&lt;br /&gt;
| {{nml|0.3}} {{ottdp|1.3|no|ottdrev=r24246}} Current maximum speed of the vehicle in m/s. This includes e.g. track or timetable limits. Only valid for front vehicle.&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_in_depot&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| Value is 1 if the vehicle is inside a depot&lt;br /&gt;
|-&lt;br /&gt;
| vehicle_is_unloading&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| {{ottdp|1.5|2.5|ottdrev=r26430}} Value is 1 if the vehicle is unloading at a station and has not yet started loading new cargo.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Variables that require an argument===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! Argument&lt;br /&gt;
! value range&lt;br /&gt;
! available in&amp;lt;br /&amp;gt;purchase list?&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| count_veh_id&lt;br /&gt;
| The vehicle ID to look for.&lt;br /&gt;
| 0..255&lt;br /&gt;
| No&lt;br /&gt;
| The number of vehicles in the current consist that have the given ID.&lt;br /&gt;
|-&lt;br /&gt;
| other_veh_curv_info&lt;br /&gt;
| Offset in the chain from the current vehicle.&amp;lt;ref name=&amp;quot;offset&amp;quot;&amp;gt;Argument range is -128..127. Positive values are interpreted as towards the end, negative values as towards the front. If the offset is outside the vehicle chain, the result value will be 0.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| -4..4&lt;br /&gt;
| No&lt;br /&gt;
| Difference in direction between the other vehicle and this vehicle. Curvature to the right is positive. 1 unit is 45 degrees.&lt;br /&gt;
|-&lt;br /&gt;
| other_veh_is_hidden&lt;br /&gt;
| Offset in the chain from the current vehicle.&amp;lt;ref name=&amp;quot;offset&amp;quot;/&amp;gt;&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| 1 the other vehicle is hidden in a depot or tunnel, 0 otherwise&lt;br /&gt;
|-&lt;br /&gt;
| other_veh_x_offset&lt;br /&gt;
| Offset in the chain from the current vehicle.&amp;lt;ref name=&amp;quot;offset&amp;quot;/&amp;gt;&lt;br /&gt;
| -128..127&lt;br /&gt;
| No&lt;br /&gt;
| Signed difference in X-position (top-right to bottom-left) between the other vehicle and this vehicle.&lt;br /&gt;
|-&lt;br /&gt;
| other_veh_y_offset&lt;br /&gt;
| Offset in the chain from the current vehicle.&amp;lt;ref name=&amp;quot;offset&amp;quot;/&amp;gt;&lt;br /&gt;
| -128..127&lt;br /&gt;
| No&lt;br /&gt;
| Signed difference in Y-position (top-left to bottom-right) between the other vehicle and this vehicle.&lt;br /&gt;
|-&lt;br /&gt;
| other_veh_z_offset&lt;br /&gt;
| Offset in the chain from the current vehicle.&amp;lt;ref name=&amp;quot;offset&amp;quot;/&amp;gt;&lt;br /&gt;
| -128..127&lt;br /&gt;
| No&lt;br /&gt;
| Signed difference in Z-position (upwards) between the other vehicle and this vehicle.&lt;br /&gt;
|-&lt;br /&gt;
| tile_supports_railtype &amp;lt;br /&amp;gt; tile_supports_roadtype &amp;lt;br /&amp;gt; tile_supports_tramtype&lt;br /&gt;
| Entry from rail/road/tram translation table&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| {{ottdp|1.11|no}} Vehicles of the track_type label used as parameter are compatible with the rail/road/tram track_type on the current tile. Example: &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;tile_supports_railtype(ELRL)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tile_powers_railtype &amp;lt;br /&amp;gt; tile_powers_roadtype &amp;lt;br /&amp;gt;tile_powers_tramtype&lt;br /&gt;
| Entry from rail/road/tram translation table&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| {{ottdp|1.11|no}} Vehicles of the track_type label used as parameter are powered on the rail/road/tram track_type on the current tile. Example: &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;tile_powers_railtype(ELRL)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tile_is_railtype &amp;lt;br /&amp;gt; tile_is_roadtype &amp;lt;br /&amp;gt; tile_is_tramtype&lt;br /&gt;
| Entry from rail/road/tram translation table&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| No&lt;br /&gt;
| {{ottdp|1.11|no}} The track_type label used as parameter is identical or equivalent (listed as alternate label in rail-/road-/tram-type property 1D) to the rail/road/tram track_type on the current tile. Example: &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;tile_is_railtype(ELRL)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| has_badge&lt;br /&gt;
| Label from the [[NML:Badgetable|badgetable]].&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| yes&lt;br /&gt;
| {{ottd|15.0}} {{nml|0.9.0}} Check if the vehicle has that specific badge attached.&lt;br /&gt;
|-&lt;br /&gt;
| count_has_badge&lt;br /&gt;
| Label from the [[NML:Badgetable|badgetable]].&lt;br /&gt;
| 0..255&lt;br /&gt;
| no&lt;br /&gt;
| {{ottd|15.0}} {{nml|0.9.0}} The number of vehicles in the current consist that have that specific badge attached.&lt;br /&gt;
|-&lt;br /&gt;
| tile_has_railtype_badge &amp;lt;br /&amp;gt; tile_has_roadtype_badge &amp;lt;br /&amp;gt; tile_has_tramtype_badge&lt;br /&gt;
| Label from the [[NML:Badgetable|badgetable]].&lt;br /&gt;
| [0 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 1]&lt;br /&gt;
| no&lt;br /&gt;
| {{ottd|15.0}} {{nml|0.9.0}} Check if the rail/road/tram type of the current tile occupied by the vehicle has that specific badge attached. &#039;&#039;&#039;Trains/RVs/Trams only.&#039;&#039;&#039; &amp;lt;code&amp;gt;tile_has_roadtype_badge&amp;lt;/code&amp;gt; also works for trams to allow code reuse.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vehicle callbacks==&lt;br /&gt;
The following table contains a list of available vehicle callbacks. Additionally, it&#039;s possible to provide cargo-specific graphics, using the identifier from the [[NML:Cargotable|cargo table]] as callback name. These callbacks will be used if the vehicle is refitted to the corresponding cargo type. If no cargo-specific graphics match the cargo that the vehicle is carrying, the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;default&amp;lt;/code&amp;gt; callback is used instead. Cargo-specific graphics callbacks are never called from the purchase menu, refer to the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase&amp;lt;/code&amp;gt; callback below instead.&lt;br /&gt;
&lt;br /&gt;
Note that the above affects &#039;&#039;&#039;graphics only&#039;&#039;&#039;, other callbacks are unaffected.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Available for&lt;br /&gt;
! In purchase menu?&lt;br /&gt;
! value range&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| default&lt;br /&gt;
| All&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
| Sprite group&lt;br /&gt;
| &#039;Normal&#039; vehicle graphics, if no cargo-specific graphics apply. See also the section on [[#Sprites in GUI|GUI sprites]].&lt;br /&gt;
|-&lt;br /&gt;
| purchase&lt;br /&gt;
| All&lt;br /&gt;
| Yes, only&lt;br /&gt;
| Sprite group&lt;br /&gt;
| Graphics to show in the buy menu (only the horizontal view is needed, except for dual-headed trains. With the &amp;lt;code&amp;gt;dual_headed&amp;lt;/code&amp;gt; property set, special rules for the purchase menu sprite apply: two sprites are drawn (for front and back) as if the vehicle is normally constructed. If you supply one purchase menu sprite, it will be used for both vehicle parts in the purchase menu. Provide a set of 8 sprites, and the 7th resp. 3rd sprite will be drawn; provide a set of 8 blank sprites except the 7th if you want to fully control a single purchase menu sprite for a dual-headed engine. ) See also the section on [[#Sprites in GUI|GUI sprites]].&lt;br /&gt;
|-&lt;br /&gt;
| rotor&lt;br /&gt;
| Aircraft (helicopters)&lt;br /&gt;
| No&lt;br /&gt;
| Sprite group&lt;br /&gt;
| Graphics for the helicopter rotor (4 sprites; 1 stopped and 3 moving)&lt;br /&gt;
|-&lt;br /&gt;
| random_trigger&lt;br /&gt;
| All&lt;br /&gt;
| No&lt;br /&gt;
| N/A&lt;br /&gt;
| See [[NML:Random switch|random switch]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
| cargo_subtype_text&lt;br /&gt;
| All&lt;br /&gt;
| No&lt;br /&gt;
| String, or CB_RESULT_NO_TEXT&lt;br /&gt;
| &amp;lt;b&amp;gt;NOTE: As of OpenTTD 13, this feature is considered deprecated for most uses. Use variants instead.&amp;lt;/b&amp;gt; With this callback, you can display extra text after the cargo in the vehicle information window. This callback is called during refitting, with succesively increased values of the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;cargo_subtype&amp;lt;/code&amp;gt; variable, until the callback returns CB_RESULT_NO_TEXT. All returned strings are then displayed as refit options. The chosen refit option is saved in the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;cargo_subtype&amp;lt;/code&amp;gt; variable, so it can be used to select specific sprites for the vehicle&#039;s current cargo subtype.&lt;br /&gt;
|-&lt;br /&gt;
| additional_text&lt;br /&gt;
| All&lt;br /&gt;
| Yes, only&lt;br /&gt;
| String&lt;br /&gt;
| Additional text to show in the purchase list.&lt;br /&gt;
|-&lt;br /&gt;
| colour_mapping&lt;br /&gt;
| All&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_colour_mapping&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
| Recolour sprite number&lt;br /&gt;
|&lt;br /&gt;
With this callback, you can use a different recolour sprite instead of the standard 1cc / 2cc company colour remappings. See [[NML:List of default colour translation palettes|here]] for a list of default palettes. See the [[NML:Builtin functions|builtin function]] &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;reserve_sprites()&amp;lt;/code&amp;gt; for info on how to allocate your own sprite. For performance, the result is cached and only updated if the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt; every_32_days&amp;lt;/code&amp;gt; callback requires so. Add CB_RESULT_COLOUR_MAPPING_ADD_CC to the result to add the company colour to the sprites, this requires 16 (1cc) or 256 (2cc) sprites in total.&lt;br /&gt;
|-&lt;br /&gt;
| start_stop&lt;br /&gt;
| All&lt;br /&gt;
| No&lt;br /&gt;
| String or CB_RESULT_NO_TEXT&lt;br /&gt;
| Called when starting or stopping a vehicle. Mainly useful to prevent vehicles from leaving the depot unless a certain condition is met. Return CB_RESULT_NO_TEXT to allow or a string (containing an error message) to disallow starting/stopping.&lt;br /&gt;
|-&lt;br /&gt;
| every_32_days&lt;br /&gt;
| All&lt;br /&gt;
| No&lt;br /&gt;
| bitmask(CB_RESULT_32_DAYS_XXX, ...)&lt;br /&gt;
| Called every 32 days. Set CB_RESULT_32_DAYS_TRIGGER in the bitmask to trigger TRIGGER_VEHICLE_32_CALLBACK. Set CB_RESULT_32_DAYS_COLOUR_MAPPING in the bitmask to update the colour mapping by re-running the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;colour_mapping&amp;lt;/code&amp;gt; callback.&lt;br /&gt;
|-&lt;br /&gt;
| sound_effect&lt;br /&gt;
| All&lt;br /&gt;
| No&lt;br /&gt;
| SOUND_XXX, sound(&amp;quot;sound.wav&amp;quot;), import_sound(grfid, number) or CB_RESULT_NO_SOUND&lt;br /&gt;
|&lt;br /&gt;
Called to play various vehicle sounds.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 0, 8)&amp;lt;/code&amp;gt; The sound event, see the [[#Sound events|table]] below.&lt;br /&gt;
Return SOUND_XXX (see [[NML:List_of_sound_effects|here]]) to return a default sound. &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;sound(&amp;quot;soundfile&amp;quot;)&amp;lt;/code&amp;gt; imports a sound from a .wav file. &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;import_sound(grfid, number)&amp;lt;/code&amp;gt; imports a sound from another grf. A failed (or not implemented) callback will cause the default sound to be played. Return CB_RESULT_NO_SOUND to play no sound at all.&lt;br /&gt;
|-&lt;br /&gt;
| articulated_part&lt;br /&gt;
| Trains, Road Vehicles&lt;br /&gt;
| Yes (no separate callback)&lt;br /&gt;
| Vehicle ID, or CB_RESULT_NO_MORE_ARTICULATED_PARTS&lt;br /&gt;
| With this callback, you can add articulated parts (e.g. tenders) to your vehicle. Called repeatedly, until CB_RESULT_NO_MORE_ARTICULATED_PARTS is returned. After each call, the returned vehicleID is added to your vehicle.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 0, 8)&amp;lt;/code&amp;gt; contains 1 during the first call, 2 during the second, etc.&lt;br /&gt;
Note that callback may be called from the purchase list, using vehicle variables is not possible. Or CB_RESULT_REVERSED_VEHICLE to the returned vehicle ID to display the vehicle backwards. &lt;br /&gt;
&lt;br /&gt;
The vehicle ID for the articulated part must be in the range 0 .. 16383.&lt;br /&gt;
&lt;br /&gt;
For NML 0.2 and lower the vehicle ID of the articulated part must be in the range 0 .. 127.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| can_attach_wagon&lt;br /&gt;
| Trains&lt;br /&gt;
| No&lt;br /&gt;
| String or CB_RESULT_ATTACH_XXX&lt;br /&gt;
| Called when a wagon is being attached, to allow or disallow attaching. If a wagon is inserted in the middle, all wagons are removed and attached one-by-one in the new order. This callback has to be defined at the engine. The scopes behave different than usual though:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;SELF&amp;lt;/code&amp;gt; refers to the wagon being attached. (despite the callback being defined at the engine)&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;PARENT&amp;lt;/code&amp;gt; refers to the consist of the engine up to the wagon before &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;SELF&amp;lt;/code&amp;gt;, i.e. not (yet) including the wagon being attached.&lt;br /&gt;
Return a string to disallow with the string as error message. Return CB_RESULT_ATTACH_DISALLOW to disallow with standard message (&amp;quot;incompatible railtypes&amp;quot;), CB_RESULT_ATTACH_ALLOW to allow or CB_RESULT_ATTACH_ALLOW_IF_RAILTYPES to allow if the railtypes match (default).&lt;br /&gt;
|-&lt;br /&gt;
| refit_cost&lt;br /&gt;
| {{ottdp|1.2|no|ottdrev=r23089}} All&lt;br /&gt;
| Yes&lt;br /&gt;
| -8192 .. 8191 as refit cost. Add &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_AUTOREFIT&amp;lt;/code&amp;gt; if you want to allow autorefit.&lt;br /&gt;
| When returning a negative value, encode the cost as (cost &amp;amp; &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_REFIT_COST_MASK&amp;lt;/code&amp;gt;) before (possibly) adding &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_AUTOREFIT&amp;lt;/code&amp;gt;. To allow autorefitting, the corresponding bit in the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;misc_flags&amp;lt;/code&amp;gt; must be set as well.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 0, 8)&amp;lt;/code&amp;gt;: The new cargo type.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 8, 8)&amp;lt;/code&amp;gt;: The new cargo subtype (see &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;cargo_subtype_text&amp;lt;/code&amp;gt;-callback).&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 16, 16)&amp;lt;/code&amp;gt;: A bitmask of the [[NML:Cargos#Cargo_classes|cargo classes]] of the target cargo type. &lt;br /&gt;
Note that this callback may also be called when the vehicle does not exist yet, so the available variables are limited.&lt;br /&gt;
|-&lt;br /&gt;
| create_effect&lt;br /&gt;
| {{ottdp|1.5|no|ottdrev=r26747}} Trains, Road Vehicles, Ships&lt;br /&gt;
| No&lt;br /&gt;
| 0 .. 3 for number of effects. Optionally add &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_CREATE_EFFECT_CENTER&amp;lt;/code&amp;gt; and/or &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_CREATE_EFFECT_NO_ROTATION&amp;lt;/code&amp;gt;&lt;br /&gt;
| Called when a effect spawning model is defined via &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;effect_spawn_model&amp;lt;/code&amp;gt; resp. &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;effect_spawn_model_and_powered&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The result specifies how many effects shall be created.&lt;br /&gt;
The position and appearance of the individual effects is returned via registers 0x100 to 0x103:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
switch (FEAT_XXX, SELF, switch_name, [&lt;br /&gt;
  STORE_TEMP(create_effect(EFFECT_SPRITE_XXX, 8, -3, 10), 0x100), // first effect,&lt;br /&gt;
  STORE_TEMP(create_effect(EFFECT_SPRITE_YYY, 8,  3, 10), 0x101)  // second effect, ...&lt;br /&gt;
]) {&lt;br /&gt;
return 2; // number of effects&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The register values are created using the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;create_effect(&#039;&#039;effect_sprite&#039;&#039;, &#039;&#039;l_x_offset&#039;&#039;, &#039;&#039;t_y_offset&#039;&#039;, &#039;&#039;z_offset&#039;&#039;)&amp;lt;/code&amp;gt; function:&lt;br /&gt;
* &#039;&#039;effect_sprite&#039;&#039;: Sprite for the effect. One of &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;EFFECT_SPRITE_&amp;lt;/code&amp;gt;[&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;NONE&amp;lt;/code&amp;gt;|&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;STEAM&amp;lt;/code&amp;gt;|&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;DIESEL&amp;lt;/code&amp;gt;|&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;ELECTRIC&amp;lt;/code&amp;gt;|&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;AIRCRAFT_BREAKDOWN_SMOKE&amp;lt;/code&amp;gt;].&lt;br /&gt;
* &#039;&#039;l_x_offset&#039;&#039;: Longitudinal or X position of the effect, depending on callback result &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_CREATE_EFFECT_NO_ROTATION&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;t_y_offset&#039;&#039;: Transversal or Y position of the effect, depending on callback result &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_CREATE_EFFECT_NO_ROTATION&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;z_offset&#039;&#039;: Z position of the effect.&lt;br /&gt;
&lt;br /&gt;
Additional to the number of effects, the callback result may specify these flags:&lt;br /&gt;
;&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_CREATE_EFFECT_CENTER&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Train and road vehicle only) If set, position effect relative to vehicle center instead of relative to vehicle sprite. (behaves the same for vehicles with length 8/8) &lt;br /&gt;
;&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;CB_RESULT_CREATE_EFFECT_NO_ROTATION&amp;lt;/code&amp;gt;&lt;br /&gt;
*If not set, the parameters to &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;effect_sprite&amp;lt;/code&amp;gt; describe longitudinal/transversal positions, which are rotate wrt. vehicle orientation.&lt;br /&gt;
*If set, the parameters to &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;effect_sprite&amp;lt;/code&amp;gt; describe X and Y positions, which are not automatically rotated.&lt;br /&gt;
|-&lt;br /&gt;
| reverse_build_probability&lt;br /&gt;
| {{nml|0.7.5}} {{ottd|14.0}} Trains&lt;br /&gt;
| No&lt;br /&gt;
| 0 .. 100&lt;br /&gt;
| Probability of reversing rail vehicle, i.e. facing forward or backward, when purchased.&lt;br /&gt;
|-&lt;br /&gt;
| refit&lt;br /&gt;
| {{ottd|15.0}} All vehicle types&lt;br /&gt;
| Callback runs once, in purchase scope only &lt;br /&gt;
| &lt;br /&gt;
* 0 Don&#039;t change refittability (i.e. use whatever the evaluation of the various refittability vehicle props has determined).&lt;br /&gt;
* 1 Allow cargo type as a refit.&lt;br /&gt;
* 2 Disallow cargo type as a refit.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
The custom refit callback allows overriding the refittablity of each cargo as defined by the standard vehicle properties. It will be called for each defined cargo type once after the game has loaded all NewGRF files. The callback is run in purchase list scope, i.e. for cargotype FF. No variables of an actual vehicle are available. Information about the cargo type the callback is called for is available in variables 10 and 18:&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; As this callback is not re-evaluated after game initialization, using any dynamic variables like e.g. game date will lead to undefined and faulty behaviour. &lt;br /&gt;
&lt;br /&gt;
This callback is available starting with {{ottdp|15|no|ottdrev=gd2496b6ec4}} OpenTTD 15.&lt;br /&gt;
&lt;br /&gt;
See https://newgrf-specs.tt-wiki.net/wiki/Callbacks#Custom_refit_.28163.29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following callbacks all have an equivalent property. The property description applies here also, except where otherwise noted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Available for&lt;br /&gt;
! In purchase menu?&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| loading_speed&lt;br /&gt;
| All&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| speed&lt;br /&gt;
| All&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_speed&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
| Units are not (yet) available&lt;br /&gt;
|-&lt;br /&gt;
| cost_factor&lt;br /&gt;
| All&lt;br /&gt;
| Yes, only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| running_cost_factor&lt;br /&gt;
| All&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_running_cost_factor&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| cargo_age_period&lt;br /&gt;
| All&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| cargo_capacity&lt;br /&gt;
| All except aircraft&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_cargo_capacity&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| passenger_capacity&lt;br /&gt;
| Aircraft&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_passenger_capacity&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mail_capacity&lt;br /&gt;
| Aircraft&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_mail_capacity&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| range&lt;br /&gt;
| Aircraft&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_range&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| visual_effect_and_powered&lt;br /&gt;
| Trains&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| visual_effect&lt;br /&gt;
| Road Vehicles, Ships&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| effect_spawn_model_and_powered&lt;br /&gt;
| Trains&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| effect_spawn_model&lt;br /&gt;
| Road Vehicles, Ships&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| power&lt;br /&gt;
| Trains, Road Vehicles&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_power&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
| Units are not (yet) available&lt;br /&gt;
|-&lt;br /&gt;
| weight&lt;br /&gt;
| Trains, Road Vehicles&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_weight&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
| Units are not (yet) available&lt;br /&gt;
|-&lt;br /&gt;
| length&lt;br /&gt;
| Trains, Road vehicles&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tractive_effort_coefficient&lt;br /&gt;
| Trains, Road Vehicles&lt;br /&gt;
| Yes, unless &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase_tractive_effort_coefficient&amp;lt;/code&amp;gt; is set separately&lt;br /&gt;
| Value range is 0 .. 255 instead of 0 .. 1.&lt;br /&gt;
|-&lt;br /&gt;
| bitmask_vehicle_info&lt;br /&gt;
| Trains&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| curve_speed_mod&lt;br /&gt;
| {{nml|0.7}} {{ottd|12.0}} Trains&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| {{nml|0.7.2}} {{ottd|14.0}} All&lt;br /&gt;
| Yes&lt;br /&gt;
| Can be used to display vehicle name differently depending on context (purchase menu, depot, nested variant depth etc). &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;extra_callback_info1&amp;lt;/code&amp;gt; contains detailed information about context - please see https://newgrf-specs.tt-wiki.net/wiki/Callbacks#Engine_name_.28161.29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sprites in GUI===&lt;br /&gt;
{{ottdp|1.2|no|ottdrev=r23080}} Since OpenTTD r23080 you can use variable &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 0, 8)&amp;lt;/code&amp;gt; to display different sprites in the GUI and on the map. Currently these cases are available:&lt;br /&gt;
{| |-&lt;br /&gt;
! getbits(extra_callback_info1, 0, 8) !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Vehicle is drawn in a viewport, i.e. on the map.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01..0x0F || reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Vehicle is drawn in the depot GUI. &amp;lt;ref&amp;gt;OpenTTD also uses this value with the purchase-list chain (cargotype FF) to determine the gridsize in ship and aircraft depots.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || Vehicle is drawn in the vehicle details GUI. (This includes the refit GUI.)&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || Vehicle is drawn in the vehicle list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x13..0x1F || reserved for other future GUIs.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Vehicle is drawn in the purchase list. (This includes the autoreplace GUI.)&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || Vehicle is drawn in the exclusive preview GUI or in the advertisement news.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22..0x2F || reserved for other future GUIs with non-purchased vehicles.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30..0xFF || reserved&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
The cases 0x20..0x2F are called using the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase&amp;lt;/code&amp;gt;-callback, the other cases are called for the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;default&amp;lt;/code&amp;gt;- or cargo-specific callbacks. Exception is the the special depot-gridsize call, which uses the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;purchase&amp;lt;/code&amp;gt;-callback.&lt;br /&gt;
&lt;br /&gt;
===Composing vehicles from multiple sprites===&lt;br /&gt;
{{ottdp|1.7|no|ottdrev=r27668}} Since OpenTTD r27668 you can draw vehicles by drawing multiple sprites on top of each other.&lt;br /&gt;
* The sprites can use different recolouring.&lt;br /&gt;
* When using 32bpp sprites, the sprites can use the alpha channel to blend with the other sprites. In particular you can use this to alpha-blend company colours over other sprites.&lt;br /&gt;
&lt;br /&gt;
To enable this, you need to set &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;XXX_FLAG_SPRITE_STACK&amp;lt;/code&amp;gt; in the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;misc_flags&amp;lt;/code&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
When enabled, sprites are resolved multiple times while incrementing an iteration number, that can be read via&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 8, 8)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For OpenTTD 1.7 to 12.0, this is limited to at most 4 sprites per articulated part.&lt;br /&gt;
&lt;br /&gt;
Increased to 8 sprites per articulated part for OpenTTD 13.0 {{ottdp|13.0|no}}&lt;br /&gt;
&lt;br /&gt;
In addition you need to set register 100 as additional result:&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;STORE_TEMP(CB_FLAG_MORE_SPRITES | recolouring, 0x100)&amp;lt;/code&amp;gt; if there are more sprites to draw.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;STORE_TEMP(recolouring, 0x100)&amp;lt;/code&amp;gt; if there are no more sprites to draw.&lt;br /&gt;
&amp;quot;recolouring&amp;quot; can be:&lt;br /&gt;
* &amp;lt;code&amp;gt;PALETTE_USE_DEFAULT&amp;lt;/code&amp;gt; to use the default vehicle recolouring.&lt;br /&gt;
* &amp;lt;code&amp;gt;PALETTE_IDENTITY&amp;lt;/code&amp;gt; to use no recolouring&lt;br /&gt;
* Any other default or custom recolouring sprite.&lt;br /&gt;
&lt;br /&gt;
===Sound events===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Event&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_START&lt;br /&gt;
| Vehicle leaves station or depot, plane takes off&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_TUNNEL&lt;br /&gt;
| Vehicle enters tunnel&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_BREAKDOWN&lt;br /&gt;
| Vehicle breaks down (not for planes)&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_RUNNING&lt;br /&gt;
| Once per engine tick, but no more than once per vehicle motion&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_TOUCHDOWN&lt;br /&gt;
| Aircraft touches down&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_VISUAL_EFFECT&lt;br /&gt;
| Visual effect is generated (steam plume, diesel smoke, electric spark)&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_RUNNING_16&lt;br /&gt;
| Every 16 engine ticks if in motion&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_STOPPED&lt;br /&gt;
| Every 16 engine ticks if stopped&lt;br /&gt;
|-&lt;br /&gt;
| SOUND_EVENT_LOAD_UNLOAD&lt;br /&gt;
| Consist loads or unloads cargo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Vehicle IDs ==&lt;br /&gt;
Picking an item ID requires keeping two cases in mind: OpenTTD with the engine pool enabled and OpenTTD with engine pool disabled / TTDPatch. The status of the engine pool may be checked with the global variable [[NML:General#General_variables|dynamic_engines]].&lt;br /&gt;
&lt;br /&gt;
Note that while vehicle ID affects the order in which vehicles appear in the purchase menu, this can be overridden using the [[NML:Sorting vehicles in the purchase list|sort block]].&lt;br /&gt;
&lt;br /&gt;
=== Engine pool enabled ===&lt;br /&gt;
With the engine pool enabled, each NewGRF has its own ID range, NewGRFs don&#039;t influence each other. IDs may freely be chosen between 0 and 65535. If the chosen ID belongs to an existing vehicle, this vehicle is overridden by your vehicle. If another NewGRF is already overriding that vehicle, a new vehicle will be allocated, but all the properties will be copied from the old vehicle. If you define an ID for which no original vehicle exists, a new (blank) vehicle is allocated.&lt;br /&gt;
&lt;br /&gt;
This behaviour can be modified using an [[NML:Overriding_vehicles_in_other_NewGRFs|engine_override]], this allows changing the properties of vehicles defined in other NewGRFs instead of allocating a new vehicle.&lt;br /&gt;
&lt;br /&gt;
=== TTDPatch / Engine pool disabled ===&lt;br /&gt;
Each new vehicle has to replace an existing vehicle. If multiple NewGRFs try to replace the same vehicle, the last NewGRF loaded &#039;wins&#039;. [[VehicleIDs|This page]] contains a list of valid vehicle IDs for each vehicle type, look in the &#039;NML ID&#039; column. Note that IDs are not bound to a specific sort of vehicle (e.g. monorail wagons) but to a feature (e.g. trains, road vehicles).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In general, you should take the following steps:&lt;br /&gt;
* If your NewGRF is intended as a complete replacement for the default vehicles, disable the relevant default vehicles using [[NML:Disable_items|disable_item]].&lt;br /&gt;
* Re-use IDs of existing vehicles as much as possible.&lt;br /&gt;
* If your NewGRF uses IDs outside of the normal range (for example, because you there are more vehicles than slots available), let your code check if dynamic_engies is enabled. If not, skip the vehicles outside the normal range (using an if-statement) and make sure that the remaining vehicles allow for reasonable gameplay. It is recommended to issue a warning to the user about this. Alternatively, it is also possible to disable your entire NewGRF. If you don&#039;t do this check and dynamic_engines is off, OpenTTD may disable your NewGRF with the somewhat cryptic message &#039;Attempt to use invalid ID&#039;, which will likely lead to bug reports about your NewGRF and/or your OpenTTD.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Cargos&amp;diff=5275</id>
		<title>Action0/Cargos</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Cargos&amp;diff=5275"/>
		<updated>2026-07-05T19:13:55Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* TextID for one unit of the type (0A) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The [[ttwiki:NewCargos|NewCargos]] switch of TTDPatch allows modifying the existing 12 cargos per climate, and allows adding 20 new cargos per climate as well. These cargo slots are numbered from 0 to 31, where slots 0-11 are used by default TTD cargos and slots 12-31 contain uninitialized garbage by default (so you can&#039;t trust them having meaningful information, you must set all of their properties).&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.9|no|ottdrev=11ab3c4e}} OpenTTD 1.9 increases the number of cargos to 64.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|08||B||{{ottdp|0.6|2.5}}||Bit number for bitmasks&lt;br /&gt;
|-&lt;br /&gt;
|09||W||{{ottdp|0.6|2.5}}||TextID for the cargo type name&lt;br /&gt;
|-&lt;br /&gt;
|0A||W||{{ottdp|0.6|2.5}}||TextID for the name of one unit from the cargo type&lt;br /&gt;
|-&lt;br /&gt;
|0B||W||{{ottdp|0.6|2.5}}||TextID to be displayed for 1 unit of cargo&lt;br /&gt;
|-&lt;br /&gt;
|0C||W||{{ottdp|0.6|2.5}}||TextID to be displayed for multiple units of cargo&lt;br /&gt;
|-&lt;br /&gt;
|0D||W||{{ottdp|0.6|2.5}}||TextID for cargo type abbreviation&lt;br /&gt;
|-&lt;br /&gt;
|0E||W||{{ottdp|0.6|2.5}}||Sprite number for the icon of the cargo&lt;br /&gt;
|-&lt;br /&gt;
|0F||B||{{ottdp|0.6|2.5}}||Weight of one unit of the cargo&lt;br /&gt;
|-&lt;br /&gt;
|10,11||B||{{ottdp|0.6|2.5}}||Penalty times&lt;br /&gt;
|-&lt;br /&gt;
|12||D||{{ottdp|0.6|2.5}}||Base price&lt;br /&gt;
|-&lt;br /&gt;
|13||B||{{ottdp|0.6|2.5}}||Colour for the station list window&lt;br /&gt;
|-&lt;br /&gt;
|14||B||{{ottdp|0.6|2.5}}||Colour for the cargo payment list window&lt;br /&gt;
|-&lt;br /&gt;
|15||B||{{ottdp|0.6|2.5}}||Freight status (for freight-weight-multiplier setting); 0=not freight, 1=is freight&lt;br /&gt;
|-&lt;br /&gt;
|16||W||{{ottdp|0.6|2.5}}||Cargo classes&lt;br /&gt;
|-&lt;br /&gt;
|17||D||{{ottdp|0.6|2.5}}||Cargo label&lt;br /&gt;
|-&lt;br /&gt;
|18||B||{{ottdp|0.6|2.5|ttdprev=alpha 72}}||Substitute type for town growth&lt;br /&gt;
|-&lt;br /&gt;
|19||W||{{ottdp|no|2.5|ttdprev=alpha 72}}||Multiplier for town growth&lt;br /&gt;
|-&lt;br /&gt;
|1A||B||{{ottdp|0.6|2.5|ttdprev=alpha 72}}||Callback flags&lt;br /&gt;
|-&lt;br /&gt;
|1B||W||{{ottdp|1.1|no|ottdrev=r21224}}||TextID for displaying the units of a cargo&lt;br /&gt;
|-&lt;br /&gt;
|1C||W||{{ottdp|1.1|no|ottdrev=r21224}}||TextID for displaying the amount of cargo&lt;br /&gt;
|-&lt;br /&gt;
|1D||W||{{ottdp|1.2|no|ottdrev=r23860}}||Capacity mulitplier&lt;br /&gt;
|-&lt;br /&gt;
|1E||B||{{ottdp|14.0|no}}||Town Production effect&lt;br /&gt;
|-&lt;br /&gt;
|1F||W||{{ottdp|14.0|no}}||Town Production multiplier&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Bit number for bitmasks (08) ===&lt;br /&gt;
&lt;br /&gt;
This value must be used in [[Action3]] and in cargo bit mask properties such as refit masks. Values 1C-1F should be safe to use (if they aren&#039;t already taken, of course) if you intend to maintain compatibility with GRFs unaware of the newcargos switch. Further assuming that no active GRFs support the toyland climate, you can use values 11-1A as well.&lt;br /&gt;
&lt;br /&gt;
Additionally, you can use the value FFh to disable the given cargo slot. This way, it won&#039;t appear in cargo type lists, but it won&#039;t be removed from things already on the map. If you disable a cargo, you&#039;ll probably want to zero out the cargo label (property 17) as well.&lt;br /&gt;
&lt;br /&gt;
This property only affects GRFs which do not have a [[Action0/Global Settings#Cargo_translation_table_.2809.29 | cargo translation table]]. GRFs with such a table generally use the index of the cargo in the table instead of the value of this property to access a cargo. As such this property is more or less a default value for GRFs without cargo translation table. If you are unsure what value to assign to this property, set it to the same value as the cargo slot ID.&lt;br /&gt;
&lt;br /&gt;
=== TextID for the cargo type name (09) ===&lt;br /&gt;
&lt;br /&gt;
This textID should refer to the name of the cargo, capitalized, to match the TTD style (e.g. &amp;quot;Passengers&amp;quot;, &amp;quot;Coal&amp;quot;, &amp;quot;Gold Ore&amp;quot;, &amp;quot;Milk&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
You can reuse existing [[TextIDs]] or create custom strings using [[Action4]] with an offset in the DCxx range. Note that you need to set language-id bit 7 as well in the Action4 for a custom string. (Also applies to properties 0A to 0D)&lt;br /&gt;
&lt;br /&gt;
=== TextID for one unit of the type (0A) ===&lt;br /&gt;
&lt;br /&gt;
This textID should refer to the cargo type name in the singular. {{ottd|12.1}} Currently unused, This ID was used only in subsidy messages (&amp;quot;First Passenger service...&amp;quot; instead of &amp;quot;First Passengers service...&amp;quot;, for example)&lt;br /&gt;
&lt;br /&gt;
=== TextID for 1 unit of cargo (0B) ===&lt;br /&gt;
&lt;br /&gt;
This textID will be used to display the amount of the cargo if there&#039;s exactly 1 unit waiting. Although there&#039;s only one unit waiting, you&#039;ll still have to use either the special character 7C (print signed word) or 87 (print amount in litres and add suffix &amp;quot; litres&amp;quot;) so TTD removes the amount from its internal reference stack. For example, if you have a new cargo named &amp;quot;gold ore&amp;quot;, this should be &amp;quot;\7C ton of gold ore&amp;quot;, which will expand to &amp;quot;1 ton of gold ore&amp;quot;. On the other hand, a liquid cargo named &amp;quot;milk&amp;quot; should be something like &amp;quot;\87 of milk&amp;quot;, which will expand to either &amp;quot;100 litres of milk&amp;quot; or &amp;quot;1,000 litres of milk&amp;quot; (The multiplier for liquid cargos depends on miscmods.dontfixlitres. If it&#039;s on, the multiplier is 100, otherwise it&#039;s 1000)&lt;br /&gt;
&lt;br /&gt;
=== TextID for multiple units of cargo (0C) ===&lt;br /&gt;
&lt;br /&gt;
This textID will be used to display the amount of cargo if the amount waiting isn&#039;t exactly 1. You&#039;ll need the same special characters as above, but now they will be expanded according to the actual cargo waiting. Sticking to the example above, you&#039;ll need &amp;quot;\7C tons of gold ore&amp;quot; and &amp;quot;\87 of milk&amp;quot;, which can expand to &amp;quot;42 tons of gold ore&amp;quot; and &amp;quot;42,000 litres of milk&amp;quot;, accordingly. You will note that liquid cargos can have the same textID for both property 0B and 0C since they always use the plural form.&lt;br /&gt;
&lt;br /&gt;
=== TextID for cargo type abbreviation (0D) ===&lt;br /&gt;
&lt;br /&gt;
This textID will be used in the station list window to represent the cargo waiting. It should be a two-letter abbreviation prefixed by the special character 0E to switch to the microscopic font. The microscopic font has every letter capitalized, so capitalization isn&#039;t important here. Continuing the above example, gold ore could have this as &amp;quot;GO&amp;quot; and milk as &amp;quot;MK&amp;quot; (&amp;quot;ML&amp;quot; is already taken by mail).&lt;br /&gt;
&lt;br /&gt;
=== Sprite number for icon (0E) ===&lt;br /&gt;
&lt;br /&gt;
This is a sprite number of an old TTD sprite to be displayed in the station window for this cargo, or FFFFh if the icon should be found by following the action 3 associated with this cargo. The icon must not be bigger than 10x10 pixels. One icon will be shown for every 10 units of the cargo waiting, up to 23 icons, which is the maximum.&lt;br /&gt;
&lt;br /&gt;
=== Weight of one unit of the cargo (0F) ===&lt;br /&gt;
&lt;br /&gt;
This property defines the weight of 1 unit from the cargo, which will be used to calculate the weight of the vehicles when loaded. The unit is 1/16 ton (which is 62.5 kg). With the examples above, gold ore should have this as 16 (since 1 ton of gold ore should weigh exactly 1 ton), while milk should have this slightly above 16 (milk is denser than water).&lt;br /&gt;
&lt;br /&gt;
=== Penalty times and price factor (10,11,12) ===&lt;br /&gt;
&lt;br /&gt;
These three values define how much is paid for the delivery of the cargo type. The price factor is subject to inflation, but GRFs needn&#039;t care about this, the programme will adjust the price for them.&lt;br /&gt;
&lt;br /&gt;
The income generated from cargo delivery is calculated as:&lt;br /&gt;
&lt;br /&gt;
income=((((distance/2) * timefactor * amount_moved) &amp;gt;&amp;gt; 7) * cargopricefactor) &amp;gt;&amp;gt; 13&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
; a &amp;gt;&amp;gt; b : means a is arithmetically shifted right by b bits&lt;br /&gt;
; distance : is the Manhattan distance between the two station signs&lt;br /&gt;
; amount_moved : is the number of cargo units moved&lt;br /&gt;
; cargopricefactor : is the value you set in property 12. Inflation will be applied automatically on it.&lt;br /&gt;
; timefactor : is a multiplier in the range 0..255, calculated in the following way: (T1 is the value of property 10, T2 is the value of property 11, t is the time the delivery took, the unit is 185 game ticks (roughly 2.5 game days) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    if t&amp;lt;=T1 then timefactor=255&lt;br /&gt;
    else if t&amp;lt;=(T1+T2) then timefactor=255-(t-T1)&lt;br /&gt;
    else timefactor=255-(t-T1)-(t-T1-T2)&lt;br /&gt;
    if the above rules result in a timefactor less than 31, 31 is used instead. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Color for the station list window (13) ===&lt;br /&gt;
&lt;br /&gt;
This color index will be used to draw the rectangle representing the amount waiting from the current cargo type in the station list window. The index should be given for the DOS palette. OpenTTD and TTDPatch will automatically translate the index for the Windows palette, if they use the windows base graphics.&lt;br /&gt;
&lt;br /&gt;
=== Color for the cargo payment list window (14) ===&lt;br /&gt;
&lt;br /&gt;
The graph of the current cargo will be drawn using this color in the cargo payment rates graph. The index should be given for the DOS palette, the Windows version of TTDPatch will automatically translate the index for the Windows palette.&lt;br /&gt;
&lt;br /&gt;
=== CargoClasses (16) ===&lt;br /&gt;
&lt;br /&gt;
See [[Action0Trains#Cargo classes .2828.2C_29.29|train prop. 28/29]] for a description of the utility of this property.&lt;br /&gt;
&lt;br /&gt;
The history of cargo classes is complex, and the meanings here may not be consistent with how classes are actually used by some grfs.&lt;br /&gt;
&lt;br /&gt;
GRFs including FIRS, AXIS, ITI, Sunshine Trains and Iron Horse do not conform to the classes here, and use the FRAX Cargo Class Scheme, please see: https://grf.farm/polar-fox/frax_latest.html&lt;br /&gt;
&lt;br /&gt;
This is a bit mask of all cargo classes to which this cargo could belong.&lt;br /&gt;
The following classes are available:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
!bit&lt;br /&gt;
!value&lt;br /&gt;
!class name&lt;br /&gt;
!wagon type&amp;lt;ref name=vehicle&amp;gt;Suggestion for vehicle types which transport this cargo&amp;lt;/ref&amp;gt;&lt;br /&gt;
!usage&amp;lt;ref name=refitusage&amp;gt;Suggestion how to best make use of this class in the refit masks of vehicles&amp;lt;br&amp;gt;OR to be included in the &#039;allowed classes&#039; (train prop. 28), AND NOT in the &#039;disallowed classes&#039; (train prop. 29)&amp;lt;/ref&amp;gt;&lt;br /&gt;
!vehicle tips&amp;lt;ref name=vehicleuse&amp;gt;Suggestions this class should be used in the property which excludes a class of cargos from a vehicle. One specific type of cargo could appear both as liquid or as piece goods (e.g. milk), which depends on the actual representation. Thus excluding the other would disallow refit to that cargo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
!industry tips&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|Passengers&lt;br /&gt;
|passenger wagon&lt;br /&gt;
|OR&lt;br /&gt;
|never exclude&lt;br /&gt;
|do not combine with other flags&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|Mail&lt;br /&gt;
|closed or mail wagon&lt;br /&gt;
|OR&lt;br /&gt;
|never exclude&lt;br /&gt;
|do not combine with other flags&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|4&lt;br /&gt;
|Express&lt;br /&gt;
|closed or mail wagon&lt;br /&gt;
|OR&lt;br /&gt;
|never exclude, suitable for airplane or maglev&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|Armored&lt;br /&gt;
|armored or mail wagon&lt;br /&gt;
|OR&lt;br /&gt;
|never exclude&lt;br /&gt;
|do not combine with other flags&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|10&lt;br /&gt;
|Bulk (Uncountable)&lt;br /&gt;
|open or hopper wagon&lt;br /&gt;
|OR&lt;br /&gt;
|never exclude&lt;br /&gt;
|may be combined with Piece Goods or Liquid to simulate multiple modes of transport&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|20&lt;br /&gt;
|Piece Goods (Countable)&lt;br /&gt;
|closed or open wagon&lt;br /&gt;
|OR&lt;br /&gt;
|never exclude&lt;br /&gt;
|may be combined with Bulk or Liquid to simulate multiple modes of transport&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|40&lt;br /&gt;
|Liquid&lt;br /&gt;
|tank wagon&lt;br /&gt;
|OR&lt;br /&gt;
|never exclude&lt;br /&gt;
|may be combined with Piece Goods or Bulk to simulate multiple modes of transport&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|80&lt;br /&gt;
|Refrigerated&lt;br /&gt;
|refrigerated wagon&lt;br /&gt;
|OR/AND NOT&lt;br /&gt;
|only exclude, when Piece Goods included&lt;br /&gt;
|also set Piece Goods&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|100&lt;br /&gt;
|Hazardous&lt;br /&gt;
|unknown&lt;br /&gt;
|OR/AND NOT&lt;br /&gt;
|only exclude, when special wagons are provided.&lt;br /&gt;
|combine with Piece Goods, Liquid, Bulk or Express&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|200&lt;br /&gt;
|Covered (weather protected)&lt;br /&gt;
|closed wagon, any other wagon with tarpaulin or weather cover&lt;br /&gt;
|OR/AND NOT&lt;br /&gt;
|do not exclude for Liquid&lt;br /&gt;
|combine with Piece Goods or Bulk&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|400&lt;br /&gt;
|Oversized&lt;br /&gt;
|stake/flatbed wagon&lt;br /&gt;
|OR/AND NOT&lt;br /&gt;
|only exclude, when Piece Goods included&lt;br /&gt;
|combine with Piece Goods&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|800&lt;br /&gt;
|Powderized (dry powdered materials that flow under air pressure)&lt;br /&gt;
|powder/silo vehicle equipped for compressed air unloading&lt;br /&gt;
|OR/AND NOT&lt;br /&gt;
|only exclude, when Bulk included&lt;br /&gt;
|combine with Bulk&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|1000&lt;br /&gt;
|Non-pourable&lt;br /&gt;
|open wagon, but not hopper wagon&lt;br /&gt;
|AND NOT&lt;br /&gt;
|only exclude, when Bulk included&lt;br /&gt;
|combine with Bulk&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|2000&lt;br /&gt;
|Potable&lt;br /&gt;
| exclude from non-food-grade vehicles&lt;br /&gt;
| AND NOT&lt;br /&gt;
| exclude&lt;br /&gt;
| set for all food-grade freight cargos&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|4000&lt;br /&gt;
|Non-potable.&lt;br /&gt;
| exclude from food-grade vehicles&lt;br /&gt;
| AND NOT&lt;br /&gt;
| exclude&lt;br /&gt;
| set for all non-food-grade freight cargos&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|8000&lt;br /&gt;
|special&lt;br /&gt;
|and not&lt;br /&gt;
|none&lt;br /&gt;
|special use&lt;br /&gt;
|do not set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only cargos which are in class 0 (passengers) will appear in bus stations. Only cargos which are &#039;&#039;not&#039;&#039; in class 0 will appear in truck stations.&lt;br /&gt;
&lt;br /&gt;
Disclaimer: there is no guarantee that classes won&#039;t vary over time or between sets.  The classes of a cargo may change between different versions of a specific industry/cargo newgrf, or different classes may be set for the same cargo label by different industry/cargo newgrfs.   Feel free to use classes in your set for conveniently refitting to cargos, but if you - the vehicle author - care about specific cargos being transported in specific vehicles, use label based refits (changing labels without a very good reason is considered to be bad practice).&lt;br /&gt;
&lt;br /&gt;
=== Cargo label (17) ===&lt;br /&gt;
&lt;br /&gt;
Cargo labels are globally [[CargoTypes#Cargo Labels|unique identifiers]] for a cargo type. They are used to allow vehicle grfs to easily support many cargo types, whether they are active or not and no matter what slot or bit they are using.&lt;br /&gt;
&lt;br /&gt;
Read about the [[Action0/Global Settings#Cargo translation table 09|cargo translation table]] for further info.&lt;br /&gt;
&lt;br /&gt;
=== Substitute type and multiplier for town growth (18, 19) ===&lt;br /&gt;
&lt;br /&gt;
These properties allow you to modify how a cargo type affects town growth. Property 18 can contain one of the following values:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Value!!Meaning!!{{ottdp|0.7|no}} Details&amp;lt;ref&amp;gt;This is the interpretation of OpenTTD. For TTDPatch see [http://www.tt-wiki.net/wiki/NewTownGrowthSwitches NewTownGrowthMechanism], which is quite different/unrelated.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|00||Affect towns as passengers do||Cargo produced by houses is added to the statistics in the town GUI.&lt;br /&gt;
|-&lt;br /&gt;
|02||Affect towns as mail does||Cargo produced by houses is added to the statistics in the town GUI.&lt;br /&gt;
|-&lt;br /&gt;
|05||Affect towns as goods/candy does||See note about subsidies below.&lt;br /&gt;
|-&lt;br /&gt;
|09||Affect towns as water does||Second required cargo for towngrowth in the desert&lt;br /&gt;
|-&lt;br /&gt;
|0B||Affect towns as food/fizzy drinks do||First required cargo for towngrowth in desert/above snowline. Alse see note about subsidies below.&lt;br /&gt;
|-&lt;br /&gt;
|FF||Don&#039;t affect town growth (default)|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ottdp|no|2.5|ttdprev=alpha 72}} The incoming cargo amount is multiplied by property 19, then divided by 256 before it is added to the town statistics. This allows you to have smaller or bigger impact than original cargoes do. &lt;br /&gt;
&lt;br /&gt;
If no cargos in the game are defined as food (0B), towns above the snowline will not require food to grow. If no cargos in the game are defined as food (0B) or water (09), towns in desert will not require food or water to grow.  This can be used positively for gameplay purposes, and is otherwise worth being aware of as an unintended side effect when designing cargos.&lt;br /&gt;
&lt;br /&gt;
Please note that cargoes accepted by industries affect the closest town as well; for example, if you have an industry that accepts passengers, every passenger brought to the industry affects the town just like if they were transported to the town directly. Usually, it&#039;s not a good idea to have industries that process such cargoes; they should be accepted by towns only.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|0.6-1.1|no}} In OpenTTD up to 1.1 (not 1.2) property 18 also affects the creation of subsidies. Usually subsidies apply to cargo transportation between two industries. For cargos with substitution-type 05 or 0B the destination will be a town instead. Independent of property 18 subsidies from town to town are only created for cargo slot 0 (Passengers).&lt;br /&gt;
&lt;br /&gt;
=== Callback flags (1A) ===&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Var. 0C!!Callback&lt;br /&gt;
|-&lt;br /&gt;
|0||1||39||Custom profit calculation&lt;br /&gt;
|-&lt;br /&gt;
|1||2||145||Custom station rating calculation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TextID for displaying the units of a cargo (1B) ===&lt;br /&gt;
&lt;br /&gt;
This textID is used by OpenTTD to show the &amp;quot;short cargo&amp;quot; form for cargo units, e.g. &amp;quot;10 litres&amp;quot; or &amp;quot;10 tonnes&amp;quot;. This textID must be set after property 0B. The text this textID refers to should properly handle plurals, e.g. &amp;quot;\7B item\9A\15\80\9A\10\9A\11s\9A\12&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The default for this textID depends on the default for property 0B; if the default 0B string has &amp;quot;litre&amp;quot;, then the default for this textID will be the unit for litres. OpenTTD maps the following textIDs so you don&#039;t need to provide translations:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!textID!!String&lt;br /&gt;
|-&lt;br /&gt;
|004f||&amp;lt;num&amp;gt; passenger(s)&lt;br /&gt;
|-&lt;br /&gt;
|0050||&amp;lt;num&amp;gt; tonne(s)&lt;br /&gt;
|-&lt;br /&gt;
|0051||&amp;lt;num&amp;gt; bag(s)&lt;br /&gt;
|-&lt;br /&gt;
|0052||&amp;lt;num&amp;gt; litre(s)&lt;br /&gt;
|-&lt;br /&gt;
|0053||&amp;lt;num&amp;gt; item(s)&lt;br /&gt;
|-&lt;br /&gt;
|0054||&amp;lt;num&amp;gt; crate(s)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tonne&amp;quot; and &amp;quot;litre&amp;quot; strings (textID 0050 and 0052) are automatically updated based on the user settings of unit display, e.g. they &amp;quot;tonne&amp;quot; might become &amp;quot;kg&amp;quot;. The &amp;quot;(s)&amp;quot; is for display purposes; in reality that is a choice list.&lt;br /&gt;
&lt;br /&gt;
=== TextID for displaying the amount of cargo (1C) ===&lt;br /&gt;
&lt;br /&gt;
This textID is used by OpenTTD to show the &amp;quot;long cargo&amp;quot; form for cargo units, e.g. &amp;quot;10 litres of water&amp;quot; or &amp;quot;10 tonnes of coal&amp;quot;. This textID must be set after property 0c. The text this textID refers to should properly handle plurals, e.g. &amp;quot;\7B item\9A\15\80\9A\10\9A\11s\9A\12 of livestock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The default for this textID depends on the default for property 0C, but with support for plurals. For &amp;quot;X litre(s)&amp;quot; or &amp;quot;X tonne(s)&amp;quot; you should respectively use string codes 87 and 9A 0D.&lt;br /&gt;
&lt;br /&gt;
=== Capacity multiplier (1D) ===&lt;br /&gt;
&lt;br /&gt;
This defines the capacity (and indirectly loading speed) of vehicles carrying this cargo type, if the vehicle sets no specific capacity to this specific cargo type.&lt;br /&gt;
&lt;br /&gt;
Set this property to the amount of cargo a vehicle shall carry, which can carry 0x100 (256) tons of coal or 0x100 (256) thousand litres of water (whatever comparison is more suitable for your cargotype). Depending on whether your cargo type is light or heavy you should set this property either comparing the weight or the volume.&lt;br /&gt;
&lt;br /&gt;
The default value of this property is:&lt;br /&gt;
{| |-&lt;br /&gt;
! Cargo slot !! Default cargo in this slot !! Property 1D !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 00 || PASS || 0x400 || A vehicle carrying 1 ton of coal, can carry 4 passengers.&lt;br /&gt;
|-&lt;br /&gt;
| 02 || MAIL || 0x200 || A vehicle carrying 1 ton of coal, can carry 2 bags of mail.&lt;br /&gt;
|-&lt;br /&gt;
| 05 || GOOD, SWET || 0x200 || A vehicle carrying 1 ton of coal, can carry 2 crates of goods/sweets.&lt;br /&gt;
|-&lt;br /&gt;
| xx || (everything else) || 0x100 || All other slots default to 0x100, i.e. 1 unit of cargo equals 1 ton of coal.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Town Production effect (1E) ===&lt;br /&gt;
&lt;br /&gt;
This properties allow you to directly modify how a town produces cargo. Property 1E can contain one of the following values:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Value!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|00||Towns produce cargo as passengers&lt;br /&gt;
|-&lt;br /&gt;
|02||Towns produce cargo as mail&lt;br /&gt;
|-&lt;br /&gt;
|FF||Towns don&#039;t produce cargo (default)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Town Production multiplier (1F) ===&lt;br /&gt;
&lt;br /&gt;
Set this property to the amount of cargo a town will produce, relative to the normal amount for that town production effect (passengers or mail.) The default value is 0x100 (256), use a lower value to produce less cargo, or a higher value to produce more cargo.&lt;br /&gt;
&lt;br /&gt;
Properties 1E and 1F are an alternative to the cargo production callback of houses, and allow for cargo to be set up to be produced by towns without having to redefine any houses, although it is not as flexible.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Cargos&amp;diff=5274</id>
		<title>NML:Cargos</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Cargos&amp;diff=5274"/>
		<updated>2026-07-05T19:10:54Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Cargo properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavPropVarCB}}&lt;br /&gt;
&lt;br /&gt;
==Cargo IDs==&lt;br /&gt;
For cargos, the item ID corresponds to the cargo type slot of the cargo. TTD default cargos occupy slots 0-11, so if you want to define a new cargo be sure to set this ID to 12 or higher. It is recommended to set the &#039;number&#039;-property to the same value as the item ID.&lt;br /&gt;
&lt;br /&gt;
==Cargo properties==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! value range&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| number&lt;br /&gt;
| 0..63&lt;br /&gt;
| Number of the cargo for bitmasks. Prior to {{ottd|1.9}} this was clamped to 0..31. This mostly affects old NewGRFs that don&#039;t have a cargo translation table.&lt;br /&gt;
|-&lt;br /&gt;
| type_name&lt;br /&gt;
| string&lt;br /&gt;
| String to use as cargo type name. Example: &amp;quot;Passengers&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_CARGO_PLURAL_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| unit_name&lt;br /&gt;
| string&lt;br /&gt;
| String to use for the name of one unit from the cargo type. Was used for subsidies only (First Passenger service to..). {{ottd|12.1}} Not used. Example string: &amp;quot;Passenger&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_CARGO_SINGULAR_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| units_of_cargo&lt;br /&gt;
| string&lt;br /&gt;
| String used to show the &amp;quot;short cargo&amp;quot; form for cargo units, e.g. &amp;quot;10 tonnes&amp;quot; or &amp;quot;20.000 litres&amp;quot;. Example: &amp;quot;{COMMA} item{P &amp;quot;&amp;quot; s}&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_PASSENGERS and further), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| items_of_cargo&lt;br /&gt;
| string&lt;br /&gt;
| String used to show the &amp;quot;long cargo&amp;quot; form for cargo units, e.g. &amp;quot;10 tonnes of coal&amp;quot; or &amp;quot;20.000 litres of water&amp;quot;. Example: &amp;quot;{COMMA} item{P &amp;quot;&amp;quot; s} of livestock&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_QUANTITY_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| type_abbreviation&lt;br /&gt;
| string&lt;br /&gt;
| String used for the two-letter cargo type abbreviation. Must start with a {TINYFONT} string-code. Example: &amp;quot;{TINYFONT}XX&amp;quot;. Make sure to avoid multiple cargos having the same abbreviation. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_ABBREV_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| sprite&lt;br /&gt;
| sprite&lt;br /&gt;
| TTD sprite number for the icon of the cargo. Alternatively, set to NEW_CARGO_SPRITE and use a graphics block to define a custom sprite.&lt;br /&gt;
|-&lt;br /&gt;
| weight&lt;br /&gt;
| float 0..255&lt;br /&gt;
| Weight of one unit of the cargo (in tons)&lt;br /&gt;
|-&lt;br /&gt;
| penalty_lowerbound&lt;br /&gt;
| 0..255&lt;br /&gt;
| Delivery time until penalty is applied. The units depend on the vehicle used (see vehicle property &#039;cargo_age_period&#039;), by default 1 unit = 2.5 days.&lt;br /&gt;
|-&lt;br /&gt;
| single_penalty_length&lt;br /&gt;
| 0..255&lt;br /&gt;
| Length of the interval where a single penalty is applied&lt;br /&gt;
|-&lt;br /&gt;
| price_factor&lt;br /&gt;
| float&lt;br /&gt;
| Payment for delivering 10 units of cargo across a distance of 20 squares (in British Pounds), when delivering in less than &#039;penalty_lowerbound&#039; time (no time penalty).&lt;br /&gt;
|-&lt;br /&gt;
| station_list_colour&lt;br /&gt;
| 0..255&lt;br /&gt;
|&lt;br /&gt;
Colour for the station list window (index from the [[NML:Graphic files|default (DOS) palette]])&lt;br /&gt;
|-&lt;br /&gt;
| cargo_payment_list_colour&lt;br /&gt;
| 0..255&lt;br /&gt;
|&lt;br /&gt;
Colour for the cargo payment list window (index from the [[NML:Graphic files|default (DOS) palette]])&lt;br /&gt;
|-&lt;br /&gt;
| is_freight&lt;br /&gt;
| 0 or 1&lt;br /&gt;
| Freight status (for the freighttrains switch); 0=not freight, 1=is freight&lt;br /&gt;
|-&lt;br /&gt;
| cargo_classes&lt;br /&gt;
|&lt;br /&gt;
bitmask([[#Cargo classes|cargo classes]])&lt;br /&gt;
| Cargo classes&lt;br /&gt;
|-&lt;br /&gt;
| cargo_label&lt;br /&gt;
| 4 letters&lt;br /&gt;
| [[CargoTypes|Cargo label]], as used in the [[NML:Cargotable|cargo table]]&lt;br /&gt;
|-&lt;br /&gt;
| town_growth_effect&lt;br /&gt;
| TOWNGROWTH_XXX&lt;br /&gt;
|&lt;br /&gt;
Effect for town growth, see [[#Cargo effects on town growth|Cargo effects on town growth]]&lt;br /&gt;
|-&lt;br /&gt;
| town_growth_multiplier&lt;br /&gt;
| float 0..255&lt;br /&gt;
| {{ottd|no}} Multiplier for town growth. To be used in conjuction with town_growth_effect, when that is not TOWNGROWTH_NONE. For example, a value of 4 makes your cargo have the same effect on town growth as 4 units of food/goods/etc.&lt;br /&gt;
|-&lt;br /&gt;
| callback_flags&lt;br /&gt;
| bitmask(flags)&lt;br /&gt;
|&lt;br /&gt;
Do not set this, unless you use [[NML:Old style callbacks|old-style callbacks]].&lt;br /&gt;
|-&lt;br /&gt;
| capacity_multiplier&lt;br /&gt;
| float 0 .. 255&lt;br /&gt;
| {{ottd|1.2|r22860}} This defines the capacity of vehicles carrying this cargo type, if the vehicle sets no specific capacity to this specific cargo type. Set this property to the amount of cargo a vehicle shall carry, which can carry 1 ton of coal or 1000 thousand litres of water (whatever comparison is more suitable for your cargotype). Depending on whether your cargo type is light or heavy you should set this property either comparing the weight or the volume. Default values are 4 for passengers, 2 for mail, goods and sweets and 1 for all other cargos.&lt;br /&gt;
|-&lt;br /&gt;
| town_production_effect&lt;br /&gt;
| TOWNPRODUCTION_XXX&lt;br /&gt;
| {{ottdp|14.0|no}} Effect for town production, see [[#Town production effect|Town production effect]]&lt;br /&gt;
|-&lt;br /&gt;
| town_production_multiplier&lt;br /&gt;
| float 0..255&lt;br /&gt;
| {{ottdp|14.0|no}} Multiplier for town production, to be used in conjunction with town_production_effect, when that is not TOWNPRODUCTION_NONE. For example, a value of 4 makes a town produce 4 times as much cargo as normal.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cargo payment is computed from &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;price_factor&amp;lt;/code&amp;gt;, amount of cargo transported, distance, and a time delivery factor. Unit of the delivery time is 185 ticks, roughly 2.5 days. The factor is constant (with value 255) if delivery time is less than &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;penalty_lowerbound&amp;lt;/code&amp;gt;. It goes down with rate 1 between &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;penalty_lowerbound + single_penalty_length&amp;lt;/code&amp;gt;, and goes down with rate 2 if the delivery time is even longer. Time delivery factor is never less than 31.&lt;br /&gt;
&lt;br /&gt;
===Cargo classes===&lt;br /&gt;
&lt;br /&gt;
Available cargo classes are listed in the following table. Cargos may be in more than one class. Cargo classes are always used as a bitmask, use the built-in function &amp;lt;code&amp;gt;bitmask()&amp;lt;/code&amp;gt;. For example, &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(CC_EXPRESS, CC_REFRIGERATED)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The history of cargo classes is complex, and the meanings here may not be consistent with how classes are actually used by some grfs.&lt;br /&gt;
&lt;br /&gt;
FIRS and Iron Horse do not conform to the classes here, and use the FRAX Cargo Class Scheme, please see: https://grf.farm/polar-fox/frax_latest.html&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! type of cargo&lt;br /&gt;
|-&lt;br /&gt;
| CC_PASSENGERS&lt;br /&gt;
| passengers, also tourists (ECS)&lt;br /&gt;
|-&lt;br /&gt;
| CC_MAIL&lt;br /&gt;
| mail&lt;br /&gt;
|-&lt;br /&gt;
| CC_EXPRESS&lt;br /&gt;
| express goods, also tourists (ECS)&lt;br /&gt;
|-&lt;br /&gt;
| CC_ARMOURED&lt;br /&gt;
| valuables, diamonds, gold and alike&lt;br /&gt;
|-&lt;br /&gt;
| CC_BULK&lt;br /&gt;
| coal, ore, grain,...&lt;br /&gt;
|-&lt;br /&gt;
| CC_PIECE_GOODS&lt;br /&gt;
| containers, crates, livestock&lt;br /&gt;
|-&lt;br /&gt;
| CC_LIQUID&lt;br /&gt;
| oil, milk, water, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_REFRIGERATED&lt;br /&gt;
| food, milk, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_HAZARDOUS&lt;br /&gt;
| chemicals?, uranium, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_COVERED&lt;br /&gt;
| grain, cement, fruit, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_OVERSIZED&lt;br /&gt;
| vehicles, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_POWDERIZED&lt;br /&gt;
| cement, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_NON_POURABLE&amp;lt;br&amp;gt;CC_NEO_BULK&lt;br /&gt;
| sugar cane, wool or straw bales, ... (these are synonyms for cargos that are bulk, but can&#039;t be handled in e.g. hoppers)&lt;br /&gt;
|-&lt;br /&gt;
| CC_POTABLE&lt;br /&gt;
| exclude from non-food-grade vehicles&lt;br /&gt;
|-&lt;br /&gt;
| CC_NON_POTABLE&lt;br /&gt;
| exclude from food-grade vehicles&lt;br /&gt;
|-&lt;br /&gt;
| CC_SPECIAL&lt;br /&gt;
| Deprecated, do not set.&lt;br /&gt;
|-&lt;br /&gt;
| NO_CARGO_CLASS&lt;br /&gt;
| Special value that you can used to instead of 0.&lt;br /&gt;
|-&lt;br /&gt;
| ALL_NORMAL_CARGO_CLASSES&lt;br /&gt;
| Bitmask of all cargo classes except CC_SPECIAL. This is the same as &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(CC_PASSENGERS, CC_MAIL, ..., CC_NON_POTABLE)&amp;lt;/code&amp;gt;. Note: This is already a bitmask, don&#039;t use the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(..)&amp;lt;/code&amp;gt; function with this.&lt;br /&gt;
|-&lt;br /&gt;
| ALL_CARGO_CLASSES&lt;br /&gt;
| Bitmask of all cargo classes. Same as &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;ALL_NORMAL_CARGO_CLASSES | bitmask(CC_SPECIAL)&amp;lt;/code&amp;gt; Note: This is already a bitmask, don&#039;t use the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(..)&amp;lt;/code&amp;gt; function with this.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Cargo effects on town growth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! value&lt;br /&gt;
! effect&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_PASSENGERS&lt;br /&gt;
| Affect towns as passengers do&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_MAIL&lt;br /&gt;
| Affect towns as mail does&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_GOODS&lt;br /&gt;
| Affect towns as goods/candy does&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_WATER&lt;br /&gt;
| Affect towns as water does (second required cargo for towngrowth in the desert)&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_FOOD&lt;br /&gt;
| Affect towns as food/fizzy drinks do (first required cargo for towngrowth in desert/above snowline)&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_NONE&lt;br /&gt;
| Don&#039;t affect town growth (default)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no cargos in the game are defined as TOWNGROWTH_FOOD, towns above the snowline will not require food to grow. If no cargos in the game are defined as TOWNGROWTH_FOOD or TOWNGROWTH_WATER, towns in desert will not require food or water to grow. This can be used positively for gameplay purposes, and is otherwise worth being aware of as an unintended side effect when designing cargos.&lt;br /&gt;
&lt;br /&gt;
There are some additional effects of these flags on subsidies and town cargo transport statistics.  See the nfo docs for details: https://newgrf-specs.tt-wiki.net/wiki/Action0/Cargos#Substitute_type_and_multiplier_for_town_growth_.2818.2C_19.29&lt;br /&gt;
&lt;br /&gt;
===Town production effect===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! value&lt;br /&gt;
! effect&lt;br /&gt;
|-&lt;br /&gt;
| TOWNPRODUCTION_PASSENGERS&lt;br /&gt;
| Town produces cargo as like passengers&lt;br /&gt;
|-&lt;br /&gt;
| TOWNPRODUCTION_MAIL&lt;br /&gt;
| Town produces cargo as like mail&lt;br /&gt;
|-&lt;br /&gt;
| TOWNPRODUCTION_NONE&lt;br /&gt;
| Town does not produce cargo (default)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Cargo variables==&lt;br /&gt;
&lt;br /&gt;
Cargos have no variables (yet).&lt;br /&gt;
&lt;br /&gt;
==Cargo callbacks==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! callback&lt;br /&gt;
! return value&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| default&lt;br /&gt;
| Sprite set (with 1 sprite)&lt;br /&gt;
| Graphics for the cargo icon (only if property &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;sprite&amp;lt;/code&amp;gt; is set to NEW_CARGO_SPRITE)&lt;br /&gt;
|-&lt;br /&gt;
| station_rating&lt;br /&gt;
| -16384 .. 16383&lt;br /&gt;
| See detailed explanation below&lt;br /&gt;
|-&lt;br /&gt;
| profit&lt;br /&gt;
| -12748 .. 12748&lt;br /&gt;
| Called whenever cargo is delivered.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 0, 16):&amp;lt;/code&amp;gt; The manhattan distance the cargo was transported.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 16, 8):&amp;lt;/code&amp;gt; The amount of cargo delivered.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 24, 8):&amp;lt;/code&amp;gt; The time spent en-route (1 unit = 2.5 days).&lt;br /&gt;
The returned value is multiplied by the amount and the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;price_factor&amp;lt;/code&amp;gt; to determine the income the player receives. Returning negative values is possible, it makes players pay for the delivery.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Station rating callback===&lt;br /&gt;
&lt;br /&gt;
The station rating callback is quite complicated and deserves some detailed explanation. The default station rating calculation works as follows:&lt;br /&gt;
&lt;br /&gt;
Internally, station rating is byte with values 0 .. 255, representing respectively 0% and 100%. Every 2.5 days, the transportation &#039;performance&#039; is calculated using some factors outlined below. The station rating is then set to this performance value, with the caveat that the rating change cannot exceed 2 points. Therefore, rating changes are always slow, this callback cannot change this. The initial rating is 175 points (69%). The following factors are parts of the performance, their effects are summed.&lt;br /&gt;
&lt;br /&gt;
====Time since the cargo was last picked up====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Time units (days)&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;gt;21 (&amp;amp;gt;52.5 days)&lt;br /&gt;
| 0 (0%)&lt;br /&gt;
|-&lt;br /&gt;
| 13 .. 21 (32.5 days .. 52.5 days)&lt;br /&gt;
| 25 (10%)&lt;br /&gt;
|-&lt;br /&gt;
| 7 .. 12 (17.5 days .. 32.5 days)&lt;br /&gt;
| 50 (20%)&lt;br /&gt;
|-&lt;br /&gt;
| 4 .. 6 (10 days .. 17.5 days)&lt;br /&gt;
| 95 (37%)&lt;br /&gt;
|-&lt;br /&gt;
| 0..3 (0 days..10 days)&lt;br /&gt;
| 130 (51%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The time unit used equals 185 engine ticks, or 2.5 TTD days. For ships, the time units are divided by 4 before calculating this component, so ships have four times more time before the ratings start dropping.&lt;br /&gt;
&lt;br /&gt;
====Amount of cargo waiting====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Amount of cargo&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;gt;1500&lt;br /&gt;
| -90 (-35%)&lt;br /&gt;
|-&lt;br /&gt;
| 1001..1500&lt;br /&gt;
| -35 (-14%)&lt;br /&gt;
|-&lt;br /&gt;
| 601..1000&lt;br /&gt;
| 0 (0%)&lt;br /&gt;
|-&lt;br /&gt;
| 301..600&lt;br /&gt;
| 10 (4%)&lt;br /&gt;
|-&lt;br /&gt;
| 101..300&lt;br /&gt;
| 30 (12%)&lt;br /&gt;
|-&lt;br /&gt;
| 0..100&lt;br /&gt;
| 40 (16%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Max. speed of the last vehicle picking up the cargo====&lt;br /&gt;
&lt;br /&gt;
This calculation is somewhat complicated. The maximum speed of the vehicle is expressed in &amp;quot;speed units&amp;quot;. For trains and road vehicles, the speed unit is 1 km/h; for ships, it&#039;s 0.5 km/h; for aircraft, it&#039;s 8 mph. If the max. speed is above 255 speed units, 255 is used instead. If the vehicle is slower than 85 units, no points are awarded; otherwise, you get (speed_units-85)/4 points. Therefore, the maximum you can get is 42 points, or 16%.&lt;br /&gt;
&lt;br /&gt;
====Age of the last carrier picking up the cargo====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Age of vehicle (years)&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 10 (4%)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 20 (8%)&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 33 (13%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In TTDPatch this changes when the &#039;newagerating&#039; switch is enabled&lt;br /&gt;
&lt;br /&gt;
====Bonus for AI companies (TTDPatch only)====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! AI intelligence setting&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| Low&lt;br /&gt;
| 0 (0%)&lt;br /&gt;
|-&lt;br /&gt;
| Medium&lt;br /&gt;
| 31 (12%)&lt;br /&gt;
|-&lt;br /&gt;
| High&lt;br /&gt;
| 63 (25%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Bonus for statue in nearest town====&lt;br /&gt;
&lt;br /&gt;
If your company has erected a statue in the nearest town, you get 26 points (10%) bonus to all cargo ratings.&lt;br /&gt;
&lt;br /&gt;
====Callback parameters====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 0, 8)&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| |-&lt;br /&gt;
!value!!meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x10||the last vehicle entering the station was a train&lt;br /&gt;
|-&lt;br /&gt;
|0x11||the last vehicle entering the station was a road vehicle&lt;br /&gt;
|-&lt;br /&gt;
|0x12||the last vehicle entering the station was a ship&lt;br /&gt;
|-&lt;br /&gt;
|0x13||the last vehicle entering the station was an aircraft&lt;br /&gt;
|-&lt;br /&gt;
|0||no vehicle entered the station yet, or (TTDPatch) the last one entering was sold&lt;br /&gt;
|}&lt;br /&gt;
Please note that there&#039;s only one &amp;quot;last vehicle type&amp;quot; field per station, so the vehicle this refers to may not have picked up any of your cargo.&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 0, 8)&amp;lt;/code&amp;gt;: The time since the cargo was last picked up, in the time units described above (1 unit = 2.5 days independent of vehicle type)&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 8, 16)&amp;lt;/code&amp;gt;: The amount of cargo waiting.&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 24, 8)&amp;lt;/code&amp;gt;: The speed of the last vehicle picking the cargo up, in the speed units described above (if no vehicle entered the station yet, the value is 0xFF).&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Effect of callback====&lt;br /&gt;
&lt;br /&gt;
The return value of the callback replaces the first three components (time since pickup, amount of cargo, max speed) of the calculation. The bonus for statues, TTDPatch AIs and new vehicles is always in effect, you cannot (yet) change this.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Badges&amp;diff=5220</id>
		<title>Action0/Badges</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Badges&amp;diff=5220"/>
		<updated>2026-01-14T14:26:34Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&#039;Action 0 properties for badges&#039;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Action 0 - Properties for badges =&lt;br /&gt;
&lt;br /&gt;
Defining properties of badges.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Number&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;[[GRFActionsDetailed|Size]]&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Version&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|08&lt;br /&gt;
|S&lt;br /&gt;
|{{ottdp|15}}&lt;br /&gt;
|Badge label. A zero-terminated string.&lt;br /&gt;
|-&lt;br /&gt;
|09&lt;br /&gt;
|D&lt;br /&gt;
|{{ottdp|15}}&lt;br /&gt;
|Flags.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Badge label (08) ==&lt;br /&gt;
&lt;br /&gt;
These are globally unique strings.&lt;br /&gt;
&lt;br /&gt;
Badge labels comprise a badge class, for grouping similar badges, and badge name, separated by a &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
Classes and names are arbitrary, but to be useful must follow a standard scheme. For instance, the badge label power/steam will define a badge for steam powered vehicles within the power class.&lt;br /&gt;
&lt;br /&gt;
Proposed initial classes are:&lt;br /&gt;
&lt;br /&gt;
* flag&lt;br /&gt;
* role&lt;br /&gt;
* manufacturer&lt;br /&gt;
* operator&lt;br /&gt;
* power&lt;br /&gt;
* livery&lt;br /&gt;
&lt;br /&gt;
It is also possible to assign a badge to everything within a NewGRF by defining the badge label `newgrf/&amp;lt;GRFID&amp;gt;`, with the GRFID in full hexadecimal form. This will work even if the badge is defined outside of the NewGRF it is for.&lt;br /&gt;
&lt;br /&gt;
=== Naming Proposal ===&lt;br /&gt;
&lt;br /&gt;
To work consistently, a naming standard needs to be agreed on, e.g.:&lt;br /&gt;
&lt;br /&gt;
 /role/passenger&lt;br /&gt;
 /role/freight&lt;br /&gt;
&lt;br /&gt;
 /livery/&amp;lt;country&amp;gt;/&amp;lt;operator&amp;gt;/&amp;lt;name&amp;gt;&lt;br /&gt;
 /livery/uk/british_rail/blue&lt;br /&gt;
 /livery/uk/british_rail/swallow&lt;br /&gt;
 /livery/fr/sncf/tgv&lt;br /&gt;
&lt;br /&gt;
The game could then present these as a filterable list, e.g.:&lt;br /&gt;
&lt;br /&gt;
 Role&lt;br /&gt;
   Passenger&lt;br /&gt;
   Freight&lt;br /&gt;
&lt;br /&gt;
 Livery&lt;br /&gt;
   UK&lt;br /&gt;
     British Rail - Blue&lt;br /&gt;
     British Rail - Swallow&lt;br /&gt;
   France&lt;br /&gt;
     SNCF - TGV&lt;br /&gt;
&lt;br /&gt;
== Flags (09) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bit&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|Copy. Badge can be copied to related entity (e.g. badge on a railtype can be copied to rail vehicles of that railtype.)&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|NameListStop. Stops adding more names to the visible name list.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|4&lt;br /&gt;
|NameListFirstOnly. Add this name to the visible name list only if this is the first name.&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|UseCompanyColour. Apply appropriate company colour palette to the icon. If the icon is applied to a vehicle with 2CC support, then the 2CC palette will be used.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|16&lt;br /&gt;
|NameListSkip. Allow the badge to be excluded from the badge name list.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Badges&amp;diff=5219</id>
		<title>Action0/Badges</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Badges&amp;diff=5219"/>
		<updated>2026-01-14T14:25:58Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&#039;Action 0 properties for badges&#039;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Action 0 - Properties for badges =&lt;br /&gt;
&lt;br /&gt;
Defining properties of badges.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Number&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Version&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;[[GRFActionsDetailed|Size]]&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|08&lt;br /&gt;
|{{ottdp|15}}&lt;br /&gt;
|S&lt;br /&gt;
|Badge label. A zero-terminated string.&lt;br /&gt;
|-&lt;br /&gt;
|09&lt;br /&gt;
|{{ottdp|15}}&lt;br /&gt;
|D&lt;br /&gt;
|Flags.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Badge label (08) ==&lt;br /&gt;
&lt;br /&gt;
These are globally unique strings.&lt;br /&gt;
&lt;br /&gt;
Badge labels comprise a badge class, for grouping similar badges, and badge name, separated by a &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
Classes and names are arbitrary, but to be useful must follow a standard scheme. For instance, the badge label power/steam will define a badge for steam powered vehicles within the power class.&lt;br /&gt;
&lt;br /&gt;
Proposed initial classes are:&lt;br /&gt;
&lt;br /&gt;
* flag&lt;br /&gt;
* role&lt;br /&gt;
* manufacturer&lt;br /&gt;
* operator&lt;br /&gt;
* power&lt;br /&gt;
* livery&lt;br /&gt;
&lt;br /&gt;
It is also possible to assign a badge to everything within a NewGRF by defining the badge label `newgrf/&amp;lt;GRFID&amp;gt;`, with the GRFID in full hexadecimal form. This will work even if the badge is defined outside of the NewGRF it is for.&lt;br /&gt;
&lt;br /&gt;
=== Naming Proposal ===&lt;br /&gt;
&lt;br /&gt;
To work consistently, a naming standard needs to be agreed on, e.g.:&lt;br /&gt;
&lt;br /&gt;
 /role/passenger&lt;br /&gt;
 /role/freight&lt;br /&gt;
&lt;br /&gt;
 /livery/&amp;lt;country&amp;gt;/&amp;lt;operator&amp;gt;/&amp;lt;name&amp;gt;&lt;br /&gt;
 /livery/uk/british_rail/blue&lt;br /&gt;
 /livery/uk/british_rail/swallow&lt;br /&gt;
 /livery/fr/sncf/tgv&lt;br /&gt;
&lt;br /&gt;
The game could then present these as a filterable list, e.g.:&lt;br /&gt;
&lt;br /&gt;
 Role&lt;br /&gt;
   Passenger&lt;br /&gt;
   Freight&lt;br /&gt;
&lt;br /&gt;
 Livery&lt;br /&gt;
   UK&lt;br /&gt;
     British Rail - Blue&lt;br /&gt;
     British Rail - Swallow&lt;br /&gt;
   France&lt;br /&gt;
     SNCF - TGV&lt;br /&gt;
&lt;br /&gt;
== Flags (09) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bit&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|Copy. Badge can be copied to related entity (e.g. badge on a railtype can be copied to rail vehicles of that railtype.)&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|NameListStop. Stops adding more names to the visible name list.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|4&lt;br /&gt;
|NameListFirstOnly. Add this name to the visible name list only if this is the first name.&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|UseCompanyColour. Apply appropriate company colour palette to the icon. If the icon is applied to a vehicle with 2CC support, then the 2CC palette will be used.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|16&lt;br /&gt;
|NameListSkip. Allow the badge to be excluded from the badge name list.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Properties_and_variables_and_callbacks&amp;diff=5216</id>
		<title>NML:Properties and variables and callbacks</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Properties_and_variables_and_callbacks&amp;diff=5216"/>
		<updated>2026-01-06T14:23:53Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavPropVarCB}}&lt;br /&gt;
&lt;br /&gt;
Select a topic from the table below or use the navigation pane at the right.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[NML:General|General]] ||  || [[NML:General#General variables|variables]] || &lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Vehicles|Vehicles]] || [[NML:Vehicles#Properties common to all vehicle types|common properties]] || [[NML:Vehicles#Vehicle variables|variables]] || [[NML:Vehicles#Vehicle callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Train properties|train properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Road vehicle properties|road vehicle properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Ship properties|ship properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Plane properties|aircraft properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Stations|Stations]] || [[NML:Stations#Station properties|properties]] || [[NML:Stations#Station variables|variables]] || [[NML:Stations#Station callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Canals|Canals]] || [[NML:Canals#Canal properties|properties]] || [[NML:Canals#Canal variables|variables]] || [[NML:Canals#Canal callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Bridges|Bridges]] || [[NML:Bridges#Bridge properties|properties]] || [[NML:Bridges#Bridge variables|variables]] || [[NML:Bridges#Bridge callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Towns|Towns]] || || [[NML:Towns#Town variables|variables]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Houses|Houses]] || [[NML:Houses#House properties|properties]] || [[NML:Houses#House variables|variables]] || [[NML:Houses#House callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Industries|Industries]]||  || [[NML:Industries#Common variables|common variables]] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Industries#Industry properties|industry properties]] || [[NML:Industries#Industry variables|industry variables]] || [[NML:Industries#Industry callbacks|industry callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:IndustryTiles#Industry tile properties|tile properties]] || [[NML:IndustryTiles#Industry tile variables|tile variables]] || [[NML:IndustryTiles#Industry tile callbacks|tile callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Cargos|Cargos]] || [[NML:Cargos#Cargo properties|properties]] || [[NML:Cargos#Cargo variables|variables]] || [[NML:Cargos#Cargo callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Airports|Airports]] || [[NML:Airports#Airport properties|properties]] || [[NML:Airports#Airport variables|variables]] || [[NML:Airports#Airport callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Airports#Airport tile properties|tile properties]] || [[NML:Airports#Airport tile variables|tile variables]] || [[NML:Airports#Airport tile callbacks|tile callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Objects|Objects]] || [[NML:Objects#Object properties|properties]] || [[NML:Objects#Object variables|variables]] || [[NML:Objects#Object callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Railtypes|Railtypes]] || [[NML:Railtypes#Railtype properties|properties]] || [[NML:Railtypes#Railtype variables|variables]] || [[NML:Railtypes#Railtype callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Roadtypes|Roadtypes]] || [[NML:Roadtypes#Roadtype properties|properties]] || [[NML:Roadtypes#Roadtype variables|variables]] || [[NML:Roadtypes#Roadtype callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Tramtypes|Tramtypes]] || [[NML:Tramtypes#Tramtype properties|properties]] || [[NML:Tramtypes#Tramtype variables|variables]] || [[NML:Tramtypes#Tramtype callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Bridges|Bridges]] || [[NML:Bridges#Bridge properties|properties]] || [[NML:Bridges#Bridge variables|variables]] || [[NML:Bridges#Bridge callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Badges|Badges]] || [[NML:Badges#Badge properties|properties]] || [[NML:Badges#Badge variables|variables]] || [[NML:Badges#Badge callbacks|callbacks]]&lt;br /&gt;
|- &lt;br /&gt;
|Signals|| || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Properties_and_variables_and_callbacks&amp;diff=5215</id>
		<title>NML:Properties and variables and callbacks</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Properties_and_variables_and_callbacks&amp;diff=5215"/>
		<updated>2026-01-06T14:23:30Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavPropVarCB}}&lt;br /&gt;
&lt;br /&gt;
Select a topic from the table below or use the navigation pane at the right.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[NML:General|General]] ||  || [[NML:General#General variables|variables]] || &lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Vehicles|Vehicles]] || [[NML:Vehicles#Properties common to all vehicle types|common properties]] || [[NML:Vehicles#Vehicle variables|variables]] || [[NML:Vehicles#Vehicle callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Train properties|train properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Road vehicle properties|road vehicle properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Ship properties|ship properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Vehicles#Plane properties|aircraft properties]] || || &lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Stations|Stations]] || [[NML:Stations#Station properties|properties]] || [[NML:Stations#Station variables|variables]] || [[NML:Stations#Station callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Canals|Canals]] || [[NML:Canals#Canal properties|properties]] || [[NML:Canals#Canal variables|variables]] || [[NML:Canals#Canal callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Bridges|Bridges]] || [[NML:Bridges#Bridge properties|properties]] || [[NML:Bridges#Bridge variables|variables]] || [[NML:Bridges#Bridge callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Towns|Towns]] || || [[NML:Towns#Town variables|variables]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Houses|Houses]] || [[NML:Houses#House properties|properties]] || [[NML:Houses#House variables|variables]] || [[NML:Houses#House callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Industries|Industries]]||  || [[NML:Industries#Common variables|common variables]] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Industries#Industry properties|industry properties]] || [[NML:Industries#Industry variables|industry variables]] || [[NML:Industries#Industry callbacks|industry callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:IndustryTiles#Industry tile properties|tile properties]] || [[NML:IndustryTiles#Industry tile variables|tile variables]] || [[NML:IndustryTiles#Industry tile callbacks|tile callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Cargos|Cargos]] || [[NML:Cargos#Cargo properties|properties]] || [[NML:Cargos#Cargo variables|variables]] || [[NML:Cargos#Cargo callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Airports|Airports]] || [[NML:Airports#Airport properties|properties]] || [[NML:Airports#Airport variables|variables]] || [[NML:Airports#Airport callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
| || [[NML:Airports#Airport tile properties|tile properties]] || [[NML:Airports#Airport tile variables|tile variables]] || [[NML:Airports#Airport tile callbacks|tile callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Objects|Objects]] || [[NML:Objects#Object properties|properties]] || [[NML:Objects#Object variables|variables]] || [[NML:Objects#Object callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Railtypes|Railtypes]] || [[NML:Railtypes#Railtype properties|properties]] || [[NML:Railtypes#Railtype variables|variables]] || [[NML:Railtypes#Railtype callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Roadtypes|Roadtypes]] || [[NML:Roadtypes#Roadtype properties|properties]] || [[NML:Roadtypes#Roadtype variables|variables]] || [[NML:Roadtypes#Roadtype callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Tramtypes|Tramtypes]] || [[NML:Tramtypes#Tramtype properties|properties]] || [[NML:Tramtypes#Tramtype variables|variables]] || [[NML:Tramtypes#Tramtype callbacks|callbacks]]&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Bridges|Bridges]] || [[NML:Bridges#Bridge properties|properties]] || [[NML:Bridges#Bridge variables|variables]] || [[NML:Bridges#Bridge callbacks|callbacks]] || FEAT_BRIDGES&lt;br /&gt;
|-&lt;br /&gt;
|[[NML:Badges|Badges]] || [[NML:Badges#Badge properties|properties]] || [[NML:Badges#Badge variables|variables]] || [[NML:Badges#Badge callbacks|callbacks]] || FEAT_BADGES&lt;br /&gt;
|- &lt;br /&gt;
|Signals|| || || || FEAT_SIGNALS&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5126</id>
		<title>Guide to railtypes</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5126"/>
		<updated>2025-12-07T15:48:54Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Correct property name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trains and Railtypes both affect where a train can run and not, on top of this trains also need the correct railtypes to be defined in order to show up. This means that train and railtype sets need to coordinate so that the expected behavior can be reached.&lt;br /&gt;
&lt;br /&gt;
This guide is writen for nml but it should be possible to follow if you subsititute the nml properties with the NFO ones, see below:&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==The railtypetable==&lt;br /&gt;
The railtypetable maps the track type specified in the property track_type to a railtype label. NML will only use the RAIL, MONO and MGLV labels if no railtypetable is provided.&lt;br /&gt;
&lt;br /&gt;
For more info see [https://www.tt-wiki.net/wiki/NMLTutorial/Railtypetable NMLTutorial/Railtypetable] and [[NML:Railtypetable-Roadtypetable-Tramtypetable]]&lt;br /&gt;
&lt;br /&gt;
==Railtype properties==&lt;br /&gt;
The following properties are relevant for how vehicles and railtypes interact with each other:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| names of default rail types: &amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;, &amp;quot;MGLV&amp;quot;. See the [[RailtypeLabels|List of railtype labels]] in the NewGRF Specs for currently defined custom labels.&lt;br /&gt;
|-&lt;br /&gt;
| compatible_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type can also run on. e.g. [&amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;]. Note that when routing trains, the compatibility is only evaluated for the lead engine of a consist. This means that trains will run on incompatible rail types if they are in a consist where the lead engine is compatible with the rail type. This applies to both engines and wagons.&lt;br /&gt;
|-&lt;br /&gt;
| powered_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type are powered on.&lt;br /&gt;
|-&lt;br /&gt;
| alternative_railtype_list&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r23758}} List of rail types which this rail type will act as fallback for, if the corresponding rail type is not defined separately&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trains with only one track type==&lt;br /&gt;
&lt;br /&gt;
 item (FEAT_TRAINS, train) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		track_type: REF_TO_RAILTYPE_TABLE;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
By default OpenTTD will always make sure the railtypes RAIL, ELRL, MONO and MGLV exist, as such you are free to use these as you see fit.&lt;br /&gt;
&lt;br /&gt;
===Tracks not provided by default===&lt;br /&gt;
You may very well want more types of tracks that those provided by OpenTTD for this you will need to use a trackset. They define more tracks with their own labels. We can&#039;t possibly know which tracks to use and which tracks exist. To solve this the [[Standardized Railtype Scheme]] was created, it defines generic interpertaions of certain labels so that trainsets and tracksets can trust that things will work as expected. You don&#039;t have to use the standard but it is highly recommended as it will allow your set to work with almost all tracksets, else you might have to make your own. There are also a few labels not in the standard which can be found at [[TracktypeLabels]].&lt;br /&gt;
&lt;br /&gt;
A given may not exist at all times however which will mean your train won&#039;t show up in game. To solve this you can use the fallback syntax in the trailtype table which is as follows:&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	RAILTYPE: [SAAN, RAIL]&lt;br /&gt;
 }&lt;br /&gt;
This is quite powerful, but it does not affect compatibility for that you should instead read the section below about multiple track types on one train. You should also consider if you want and need the track type to have fallbacks, narrow gauge vehicles probably don&#039;t need to show up on standard gauge tracks for example.&lt;br /&gt;
&lt;br /&gt;
==Trains with multiple track types==&lt;br /&gt;
Some trains of yours might need to have multiple railtypes in order to work. Examples of this include UK thameslink trains and the russian EP10.&lt;br /&gt;
&lt;br /&gt;
For this we need the following railtypetable which uses labels from the standardized railtype scheme.&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD, SAAE, ELRL],&lt;br /&gt;
 	AC_25KV: [SAAA, SAAE, ELRL],&lt;br /&gt;
 	DC_3RD: [SAA3, &amp;quot;3RDR&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
Thameslink train&lt;br /&gt;
 item (FEAT_TRAINS, train2) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		track_type: [AC_25, DC_3RD];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
EP10 train&lt;br /&gt;
 item (FEAT_TRAINS, train3) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		track_type: [AC_25, DC_3KV];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
The thameslink train will work without issue in this example however the EP10 will not. This is because if a trackset provides tracks for 25 kv ac (SAAA) and 15 kv ac. In that case the DC_3KV track type would become SAAE which is allowed on 15 kv ac tracks, this isn&#039;t intended as we only want the train to use SAAE when both SAAD and SAAA don&#039;t exist. This could be eliviated by not including SAAE and ELRL in the track type definition, but then the train will not show up on the default tracks. Another solution is to use [[NML:If|if]] blocks to change the used track type. In the future it may be possible that nmlc is extended to allow testing for both SAAA and SAAD in the railtypetable before falling back, until then the below provided solution will have to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD],&lt;br /&gt;
 	AC_25KV: [SAAA],&lt;br /&gt;
 	ACDC: [SAAE, ELRL]&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 if (railtype_available(&amp;quot;SAAA&amp;quot;) || railtype_available(&amp;quot;SAAD&amp;quot;)) {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			track_type: [AC_25, DC_3KV];&lt;br /&gt;
  		}&lt;br /&gt;
     	}&lt;br /&gt;
 } else {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			track_type: ACDC;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changing speed and/or power of trains based on railtype==&lt;br /&gt;
One might be interested in implementing a train which speed and/or power depends on the voltage in the overhead line electrification. In order for this to work properly the newgrf needs to test the track with [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. In practice this will look like the following:&lt;br /&gt;
&lt;br /&gt;
 tile_powers_railtype(&amp;quot;ELRL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Below is a more complex example from RUKTS code, where a train with a diesel generator has higher speed on high voltage ac tracks. We need to test for only SAAA if it is avaliable, as otherwise we would have the train gain the benefits on all electrified tracks. If it however isn&#039;t avaliable we still want to know if the track is electrified which is why we have the second part. This is only neccesary if your set cares about voltages.&lt;br /&gt;
&lt;br /&gt;
 railtype_available(&amp;quot;SAAA&amp;quot;) ? tile_powers_railtype(&amp;quot;SAAA&amp;quot;) : (tile_powers_railtype(&amp;quot;SAAE&amp;quot;) || tile_powers_railtype(&amp;quot;ELRL&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==Rack rail==&lt;br /&gt;
There are two different types of rack rail engines, pure rack and rack and adhesion. Pure rack engines may only move on tracks fitted with racks (xRxx) whilst rack and adhesion engines may also move on regular tracks but at a lower tractive effort.&lt;br /&gt;
&lt;br /&gt;
Rack rail is currently implemented in the speed class as a &amp;quot;special type&amp;quot;, this is unfurtunate as the speed class would otherwise be trackset private.&lt;br /&gt;
&lt;br /&gt;
===Alternative 1===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *R** as label. A trackset could then prevent these trains from traversing *A** tracks.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *A** as label and test for *R** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. This assumes the trackset will allow *A** on *R**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
*French Narrow Gauge Trains Set uses NRAN for rack and adhesion engines so tracksets can not support it as intended and pure rack systems at the same time.&lt;br /&gt;
&lt;br /&gt;
===Alternative 2===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *r** (not in scheme) as label. A trackset would then prevent these trains from traversing *A** tracks but allow them on *R**.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *R** as label and test for *r** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. Tracksets will allow *R** on *A** and *r**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Requires more track types than alternative 1.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5125</id>
		<title>Guide to railtypes</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5125"/>
		<updated>2025-12-06T19:46:46Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Tracks not provided by default */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trains and Railtypes both affect where a train can run and not, on top of this trains also need the correct railtypes to be defined in order to show up. This means that train and railtype sets need to coordinate so that the expected behavior can be reached.&lt;br /&gt;
&lt;br /&gt;
This guide is writen for nml but it should be possible to follow if you subsititute the nml properties with the NFO ones, see below:&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==The railtypetable==&lt;br /&gt;
The railtypetable maps the tracktype specified in the property tracktype to a railtype label. NML will only use the RAIL, MONO and MGLV labels if no railtypetable is provided.&lt;br /&gt;
&lt;br /&gt;
For more info see [https://www.tt-wiki.net/wiki/NMLTutorial/Railtypetable NMLTutorial/Railtypetable] and [[NML:Railtypetable-Roadtypetable-Tramtypetable]]&lt;br /&gt;
&lt;br /&gt;
==Railtype properties==&lt;br /&gt;
The following properties are relevant for how vehicles and railtypes interact with each other:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| names of default rail types: &amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;, &amp;quot;MGLV&amp;quot;. See the [[RailtypeLabels|List of railtype labels]] in the NewGRF Specs for currently defined custom labels.&lt;br /&gt;
|-&lt;br /&gt;
| compatible_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type can also run on. e.g. [&amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;]. Note that when routing trains, the compatibility is only evaluated for the lead engine of a consist. This means that trains will run on incompatible rail types if they are in a consist where the lead engine is compatible with the rail type. This applies to both engines and wagons.&lt;br /&gt;
|-&lt;br /&gt;
| powered_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type are powered on.&lt;br /&gt;
|-&lt;br /&gt;
| alternative_railtype_list&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r23758}} List of rail types which this rail type will act as fallback for, if the corresponding rail type is not defined separately&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trains with only one tracktype==&lt;br /&gt;
&lt;br /&gt;
 item (FEAT_TRAINS, train) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: REF_TO_RAILTYPE_TABLE;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
By default OpenTTD will always make sure the railtypes RAIL, ELRL, MONO and MGLV exist, as such you are free to use these as you see fit.&lt;br /&gt;
&lt;br /&gt;
===Tracks not provided by default===&lt;br /&gt;
You may very well want more types of tracks that those provided by OpenTTD for this you will need to use a trackset. They define more tracks with their own labels. We can&#039;t possibly know which tracks to use and which tracks exist. To solve this the [[Standardized Railtype Scheme]] was created, it defines generic interpertaions of certain labels so that trainsets and tracksets can trust that things will work as expected. You don&#039;t have to use the standard but it is highly recommended as it will allow your set to work with almost all tracksets, else you might have to make your own. There are also a few labels not in the standard which can be found at [[TracktypeLabels]].&lt;br /&gt;
&lt;br /&gt;
A given may not exist at all times however which will mean your train won&#039;t show up in game. To solve this you can use the fallback syntax in the trailtype table which is as follows:&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	RAILTYPE: [SAAN, RAIL]&lt;br /&gt;
 }&lt;br /&gt;
This is quite powerful, but it does not affect compatibility for that you should instead read the section below about multiple tracktypes on one train. You should also consider if you want and need the tracktype to have fallbacks, narrow gauge vehicles probably don&#039;t need to show up on standard gauge tracks for example.&lt;br /&gt;
&lt;br /&gt;
==Trains with multiple tracktypes==&lt;br /&gt;
Some trains of yours might need to have multiple railtypes in order to work. Examples of this include UK thameslink trains and the russian EP10.&lt;br /&gt;
&lt;br /&gt;
For this we need the following railtypetable which uses labels from the standardized railtype scheme.&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD, SAAE, ELRL],&lt;br /&gt;
 	AC_25KV: [SAAA, SAAE, ELRL],&lt;br /&gt;
 	DC_3RD: [SAA3, &amp;quot;3RDR&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
Thameslink train&lt;br /&gt;
 item (FEAT_TRAINS, train2) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3RD];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
EP10 train&lt;br /&gt;
 item (FEAT_TRAINS, train3) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3KV];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
The thameslink train will work without issue in this example however the EP10 will not. This is because if a trackset provides tracks for 25 kv ac (SAAA) and 15 kv ac. In that case the DC_3KV tracktype would become SAAE which is allowed on 15 kv ac tracks, this isn&#039;t intended as we only want the train to use SAAE when both SAAD and SAAA don&#039;t exist. This could be eliviated by not including SAAE and ELRL in the tracktype definition, but then the train will not show up on the default tracks. Another solution is to use [[NML:If|if]] blocks to change the used tracktype. In the future it may be possible that nmlc is extended to allow testing for both SAAA and SAAD in the railtypetable before falling back, until then the below provided solution will have to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD],&lt;br /&gt;
 	AC_25KV: [SAAA],&lt;br /&gt;
 	ACDC: [SAAE, ELRL]&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 if (railtype_available(&amp;quot;SAAA&amp;quot;) || railtype_available(&amp;quot;SAAD&amp;quot;)) {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: [AC_25, DC_3KV];&lt;br /&gt;
  		}&lt;br /&gt;
     	}&lt;br /&gt;
 } else {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: ACDC;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changing speed and/or power of trains based on railtype==&lt;br /&gt;
One might be interested in implementing a train which speed and/or power depends on the voltage in the overhead line electrification. In order for this to work properly the newgrf needs to test the track with [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. In practice this will look like the following:&lt;br /&gt;
&lt;br /&gt;
 tile_powers_railtype(&amp;quot;ELRL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Below is a more complex example from RUKTS code, where a train with a diesel generator has higher speed on high voltage ac tracks. We need to test for only SAAA if it is avaliable, as otherwise we would have the train gain the benefits on all electrified tracks. If it however isn&#039;t avaliable we still want to know if the track is electrified which is why we have the second part. This is only neccesary if your set cares about voltages.&lt;br /&gt;
&lt;br /&gt;
 railtype_available(&amp;quot;SAAA&amp;quot;) ? tile_powers_railtype(&amp;quot;SAAA&amp;quot;) : (tile_powers_railtype(&amp;quot;SAAE&amp;quot;) || tile_powers_railtype(&amp;quot;ELRL&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==Rack rail==&lt;br /&gt;
There are two different types of rack rail engines, pure rack and rack and adhesion. Pure rack engines may only move on tracks fitted with racks (xRxx) whilst rack and adhesion engines may also move on regular tracks but at a lower tractive effort.&lt;br /&gt;
&lt;br /&gt;
Rack rail is currently implemented in the speed class as a &amp;quot;special type&amp;quot;, this is unfurtunate as the speed class would otherwise be trackset private.&lt;br /&gt;
&lt;br /&gt;
===Alternative 1===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *R** as label. A trackset could then prevent these trains from traversing *A** tracks.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *A** as label and test for *R** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. This assumes the trackset will allow *A** on *R**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
*French Narrow Gauge Trains Set uses NRAN for rack and adhesion engines so tracksets can not support it as intended and pure rack systems at the same time.&lt;br /&gt;
&lt;br /&gt;
===Alternative 2===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *r** (not in scheme) as label. A trackset would then prevent these trains from traversing *A** tracks but allow them on *R**.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *R** as label and test for *r** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. Tracksets will allow *R** on *A** and *r**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Requires more track types than alternative 1.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5124</id>
		<title>Guide to railtypes</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5124"/>
		<updated>2025-12-06T19:18:51Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* The railtypetable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trains and Railtypes both affect where a train can run and not, on top of this trains also need the correct railtypes to be defined in order to show up. This means that train and railtype sets need to coordinate so that the expected behavior can be reached.&lt;br /&gt;
&lt;br /&gt;
This guide is writen for nml but it should be possible to follow if you subsititute the nml properties with the NFO ones, see below:&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==The railtypetable==&lt;br /&gt;
The railtypetable maps the tracktype specified in the property tracktype to a railtype label. NML will only use the RAIL, MONO and MGLV labels if no railtypetable is provided.&lt;br /&gt;
&lt;br /&gt;
For more info see [https://www.tt-wiki.net/wiki/NMLTutorial/Railtypetable NMLTutorial/Railtypetable] and [[NML:Railtypetable-Roadtypetable-Tramtypetable]]&lt;br /&gt;
&lt;br /&gt;
==Railtype properties==&lt;br /&gt;
The following properties are relevant for how vehicles and railtypes interact with each other:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| names of default rail types: &amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;, &amp;quot;MGLV&amp;quot;. See the [[RailtypeLabels|List of railtype labels]] in the NewGRF Specs for currently defined custom labels.&lt;br /&gt;
|-&lt;br /&gt;
| compatible_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type can also run on. e.g. [&amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;]. Note that when routing trains, the compatibility is only evaluated for the lead engine of a consist. This means that trains will run on incompatible rail types if they are in a consist where the lead engine is compatible with the rail type. This applies to both engines and wagons.&lt;br /&gt;
|-&lt;br /&gt;
| powered_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type are powered on.&lt;br /&gt;
|-&lt;br /&gt;
| alternative_railtype_list&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r23758}} List of rail types which this rail type will act as fallback for, if the corresponding rail type is not defined separately&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trains with only one tracktype==&lt;br /&gt;
&lt;br /&gt;
 item (FEAT_TRAINS, train) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: REF_TO_RAILTYPE_TABLE;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
By default OpenTTD will always make sure the railtypes RAIL, ELRL, MONO and MGLV exist, as such you are free to use these as you see fit.&lt;br /&gt;
&lt;br /&gt;
===Tracks not provided by default===&lt;br /&gt;
&lt;br /&gt;
==Trains with multiple tracktypes==&lt;br /&gt;
Some trains of yours might need to have multiple railtypes in order to work. Examples of this include UK thameslink trains and the russian EP10.&lt;br /&gt;
&lt;br /&gt;
For this we need the following railtypetable which uses labels from the standardized railtype scheme.&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD, SAAE, ELRL],&lt;br /&gt;
 	AC_25KV: [SAAA, SAAE, ELRL],&lt;br /&gt;
 	DC_3RD: [SAA3, &amp;quot;3RDR&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
Thameslink train&lt;br /&gt;
 item (FEAT_TRAINS, train2) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3RD];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
EP10 train&lt;br /&gt;
 item (FEAT_TRAINS, train3) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3KV];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
The thameslink train will work without issue in this example however the EP10 will not. This is because if a trackset provides tracks for 25 kv ac (SAAA) and 15 kv ac. In that case the DC_3KV tracktype would become SAAE which is allowed on 15 kv ac tracks, this isn&#039;t intended as we only want the train to use SAAE when both SAAD and SAAA don&#039;t exist. This could be eliviated by not including SAAE and ELRL in the tracktype definition, but then the train will not show up on the default tracks. Another solution is to use [[NML:If|if]] blocks to change the used tracktype. In the future it may be possible that nmlc is extended to allow testing for both SAAA and SAAD in the railtypetable before falling back, until then the below provided solution will have to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD],&lt;br /&gt;
 	AC_25KV: [SAAA],&lt;br /&gt;
 	ACDC: [SAAE, ELRL]&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 if (railtype_available(&amp;quot;SAAA&amp;quot;) || railtype_available(&amp;quot;SAAD&amp;quot;)) {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: [AC_25, DC_3KV];&lt;br /&gt;
  		}&lt;br /&gt;
     	}&lt;br /&gt;
 } else {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: ACDC;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changing speed and/or power of trains based on railtype==&lt;br /&gt;
One might be interested in implementing a train which speed and/or power depends on the voltage in the overhead line electrification. In order for this to work properly the newgrf needs to test the track with [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. In practice this will look like the following:&lt;br /&gt;
&lt;br /&gt;
 tile_powers_railtype(&amp;quot;ELRL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Below is a more complex example from RUKTS code, where a train with a diesel generator has higher speed on high voltage ac tracks. We need to test for only SAAA if it is avaliable, as otherwise we would have the train gain the benefits on all electrified tracks. If it however isn&#039;t avaliable we still want to know if the track is electrified which is why we have the second part. This is only neccesary if your set cares about voltages.&lt;br /&gt;
&lt;br /&gt;
 railtype_available(&amp;quot;SAAA&amp;quot;) ? tile_powers_railtype(&amp;quot;SAAA&amp;quot;) : (tile_powers_railtype(&amp;quot;SAAE&amp;quot;) || tile_powers_railtype(&amp;quot;ELRL&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==Rack rail==&lt;br /&gt;
There are two different types of rack rail engines, pure rack and rack and adhesion. Pure rack engines may only move on tracks fitted with racks (xRxx) whilst rack and adhesion engines may also move on regular tracks but at a lower tractive effort.&lt;br /&gt;
&lt;br /&gt;
Rack rail is currently implemented in the speed class as a &amp;quot;special type&amp;quot;, this is unfurtunate as the speed class would otherwise be trackset private.&lt;br /&gt;
&lt;br /&gt;
===Alternative 1===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *R** as label. A trackset could then prevent these trains from traversing *A** tracks.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *A** as label and test for *R** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. This assumes the trackset will allow *A** on *R**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
*French Narrow Gauge Trains Set uses NRAN for rack and adhesion engines so tracksets can not support it as intended and pure rack systems at the same time.&lt;br /&gt;
&lt;br /&gt;
===Alternative 2===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *r** (not in scheme) as label. A trackset would then prevent these trains from traversing *A** tracks but allow them on *R**.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *R** as label and test for *r** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. Tracksets will allow *R** on *A** and *r**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Requires more track types than alternative 1.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5123</id>
		<title>Guide to railtypes</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5123"/>
		<updated>2025-12-06T19:18:34Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* The railtypetable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trains and Railtypes both affect where a train can run and not, on top of this trains also need the correct railtypes to be defined in order to show up. This means that train and railtype sets need to coordinate so that the expected behavior can be reached.&lt;br /&gt;
&lt;br /&gt;
This guide is writen for nml but it should be possible to follow if you subsititute the nml properties with the NFO ones, see below:&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==The railtypetable==&lt;br /&gt;
The railtype table maps the tracktype specified in the property tracktype to a railtype label. NML will only use the RAIL, MONO and MGLV labels if no railtypetable is provided.&lt;br /&gt;
&lt;br /&gt;
For more info see [https://www.tt-wiki.net/wiki/NMLTutorial/Railtypetable NMLTutorial/Railtypetable] and [[NML:Railtypetable-Roadtypetable-Tramtypetable]]&lt;br /&gt;
&lt;br /&gt;
==Railtype properties==&lt;br /&gt;
The following properties are relevant for how vehicles and railtypes interact with each other:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| names of default rail types: &amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;, &amp;quot;MGLV&amp;quot;. See the [[RailtypeLabels|List of railtype labels]] in the NewGRF Specs for currently defined custom labels.&lt;br /&gt;
|-&lt;br /&gt;
| compatible_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type can also run on. e.g. [&amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;]. Note that when routing trains, the compatibility is only evaluated for the lead engine of a consist. This means that trains will run on incompatible rail types if they are in a consist where the lead engine is compatible with the rail type. This applies to both engines and wagons.&lt;br /&gt;
|-&lt;br /&gt;
| powered_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type are powered on.&lt;br /&gt;
|-&lt;br /&gt;
| alternative_railtype_list&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r23758}} List of rail types which this rail type will act as fallback for, if the corresponding rail type is not defined separately&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trains with only one tracktype==&lt;br /&gt;
&lt;br /&gt;
 item (FEAT_TRAINS, train) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: REF_TO_RAILTYPE_TABLE;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
By default OpenTTD will always make sure the railtypes RAIL, ELRL, MONO and MGLV exist, as such you are free to use these as you see fit.&lt;br /&gt;
&lt;br /&gt;
===Tracks not provided by default===&lt;br /&gt;
&lt;br /&gt;
==Trains with multiple tracktypes==&lt;br /&gt;
Some trains of yours might need to have multiple railtypes in order to work. Examples of this include UK thameslink trains and the russian EP10.&lt;br /&gt;
&lt;br /&gt;
For this we need the following railtypetable which uses labels from the standardized railtype scheme.&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD, SAAE, ELRL],&lt;br /&gt;
 	AC_25KV: [SAAA, SAAE, ELRL],&lt;br /&gt;
 	DC_3RD: [SAA3, &amp;quot;3RDR&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
Thameslink train&lt;br /&gt;
 item (FEAT_TRAINS, train2) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3RD];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
EP10 train&lt;br /&gt;
 item (FEAT_TRAINS, train3) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3KV];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
The thameslink train will work without issue in this example however the EP10 will not. This is because if a trackset provides tracks for 25 kv ac (SAAA) and 15 kv ac. In that case the DC_3KV tracktype would become SAAE which is allowed on 15 kv ac tracks, this isn&#039;t intended as we only want the train to use SAAE when both SAAD and SAAA don&#039;t exist. This could be eliviated by not including SAAE and ELRL in the tracktype definition, but then the train will not show up on the default tracks. Another solution is to use [[NML:If|if]] blocks to change the used tracktype. In the future it may be possible that nmlc is extended to allow testing for both SAAA and SAAD in the railtypetable before falling back, until then the below provided solution will have to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD],&lt;br /&gt;
 	AC_25KV: [SAAA],&lt;br /&gt;
 	ACDC: [SAAE, ELRL]&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 if (railtype_available(&amp;quot;SAAA&amp;quot;) || railtype_available(&amp;quot;SAAD&amp;quot;)) {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: [AC_25, DC_3KV];&lt;br /&gt;
  		}&lt;br /&gt;
     	}&lt;br /&gt;
 } else {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: ACDC;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changing speed and/or power of trains based on railtype==&lt;br /&gt;
One might be interested in implementing a train which speed and/or power depends on the voltage in the overhead line electrification. In order for this to work properly the newgrf needs to test the track with [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. In practice this will look like the following:&lt;br /&gt;
&lt;br /&gt;
 tile_powers_railtype(&amp;quot;ELRL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Below is a more complex example from RUKTS code, where a train with a diesel generator has higher speed on high voltage ac tracks. We need to test for only SAAA if it is avaliable, as otherwise we would have the train gain the benefits on all electrified tracks. If it however isn&#039;t avaliable we still want to know if the track is electrified which is why we have the second part. This is only neccesary if your set cares about voltages.&lt;br /&gt;
&lt;br /&gt;
 railtype_available(&amp;quot;SAAA&amp;quot;) ? tile_powers_railtype(&amp;quot;SAAA&amp;quot;) : (tile_powers_railtype(&amp;quot;SAAE&amp;quot;) || tile_powers_railtype(&amp;quot;ELRL&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==Rack rail==&lt;br /&gt;
There are two different types of rack rail engines, pure rack and rack and adhesion. Pure rack engines may only move on tracks fitted with racks (xRxx) whilst rack and adhesion engines may also move on regular tracks but at a lower tractive effort.&lt;br /&gt;
&lt;br /&gt;
Rack rail is currently implemented in the speed class as a &amp;quot;special type&amp;quot;, this is unfurtunate as the speed class would otherwise be trackset private.&lt;br /&gt;
&lt;br /&gt;
===Alternative 1===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *R** as label. A trackset could then prevent these trains from traversing *A** tracks.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *A** as label and test for *R** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. This assumes the trackset will allow *A** on *R**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
*French Narrow Gauge Trains Set uses NRAN for rack and adhesion engines so tracksets can not support it as intended and pure rack systems at the same time.&lt;br /&gt;
&lt;br /&gt;
===Alternative 2===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *r** (not in scheme) as label. A trackset would then prevent these trains from traversing *A** tracks but allow them on *R**.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *R** as label and test for *r** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. Tracksets will allow *R** on *A** and *r**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Requires more track types than alternative 1.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5122</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5122"/>
		<updated>2025-12-06T19:05:34Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Extensions and best practice */ moved some stuff so needed to update this&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to provide a way to allow players to easily mix and match different train and track sets. It does this by grouping the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track type and gauge, speed class, allowable axle weight and electrification type. To limit combinatorial explosions of rail types, the track properties are abstracted away from strict real-life representations.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set. Additionally, due to the decoupling, depending on the specific train and track sets used, not all defined vehicles and/or track types might be available in a specific set combination. This is fully intended behaviour.&lt;br /&gt;
&lt;br /&gt;
== When to use the scheme and when &#039;&#039;not&#039;&#039; to use the scheme ==&lt;br /&gt;
&lt;br /&gt;
When to use:&lt;br /&gt;
* If you only want to develop a track or a train set.&lt;br /&gt;
* If you want players to be able to mix-and-match sets.&lt;br /&gt;
* If you are okay with abstractions from real life.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;not&#039;&#039; to use:&lt;br /&gt;
* If you consider it a crime against humanity when one of your vehicles or track types is not available in a specific game.&lt;br /&gt;
* If you want your tracks or vehicles to exactly mirror real-life counterparts down to the last mm of gauge width.&lt;br /&gt;
* If your train set is specifically designed to work with your track set only.&lt;br /&gt;
* If you feel the compulsory need to fill all 64 railtype slots.&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track type and gauge class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track type and gauge class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track type and/or track gauge class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All track types or gauges are abstractions of real-life types and do not correspond to specific examples used in real-life. For example &#039;&#039;&#039;N&#039;&#039;&#039; is any gauge that is smaller than standard gauge, but not corresponding to any specific gauge that exists in real life, just like &#039;&#039;&#039;n&#039;&#039;&#039; is smaller than &#039;&#039;&#039;N&#039;&#039;&#039;, but does not corresponds to a specific real-life gauge.&lt;br /&gt;
&lt;br /&gt;
A train set may define vehicles for gauge &#039;&#039;&#039;n&#039;&#039;&#039; while not defining vehicles for gauge &#039;&#039;&#039;N&#039;&#039;&#039;, but this is likely only useful for sets that are specifically designed to be used along-side other sets, and the used railtype fallbacks should be carefully considered.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit/appearance class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit/appearance class. This can be used to provide tracks with different speed limits or appearance variations. The speed limit/appearance class is &#039;&#039;not&#039;&#039; used for trains and a train set should always use the class letter &#039;&#039;&#039;A&#039;&#039;&#039; in this position.&lt;br /&gt;
&lt;br /&gt;
There is no fixed numeric mapping for this class, but speed limits should start at &#039;&#039;&#039;A&#039;&#039;&#039; for the lowest speed limit and progress with &#039;&#039;&#039;B/C/...&#039;&#039;&#039; for higher limits. If you do not want to employ speed limits in your track set, always use the class &#039;&#039;&#039;A&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Additionally this class can also be used to distinguish different track appearances like normal or full width ballast, grass or concrete ground, etc. Train sets must not define vehicles for appearance classes. If you think you have special vehicles that should only run on the appearance class, it is &#039;&#039;not&#039;&#039; appearance but a separate track type/gauge.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a higher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track type/gauge and trains in the set. &lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Ideally, all five standard axle load classes should be used, but a train set may use only some weight classes, as the vehicle rooster might not make it feasible to use all five. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. If you do not use all classes, try to spread the classes out (don&#039;t use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;B&#039;&#039;&#039; for two classes, but e.g. &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existence of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so think about providing appropriate fallbacks in your railtype table. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First D, then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All energy source types are abstractions of real-life types and do not correspond to specific examples used in real-life. For example &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039; are treated as two different DC voltage levels, but do not correspond to any specific real-life voltage level used.&lt;br /&gt;
&lt;br /&gt;
A train set may define vehicles for energy source &#039;&#039;&#039;d&#039;&#039;&#039; while not defining vehicles for energy source &#039;&#039;&#039;D&#039;&#039;&#039; (as an example, applies to other energy sources, too), but this is likely only useful for sets that are specifically designed to be used along-side other sets, and the used railtype fallbacks should be carefully considered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary and notes for track sets ==&lt;br /&gt;
This section summarizes and comments the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track type and gauge class&lt;br /&gt;
* Define at least one track type for every track type/gauge class you want in your set.&lt;br /&gt;
* If you only provide tracks for one type/gauge, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
* Don&#039;t use specialized sub-types (e.g. d, a) unless you also use the main specialized class (e.g. D, A).&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always re-define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent label(s) from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
; Powered/compatible rail types&lt;br /&gt;
* For the speed limit/appearance class, every type should be powered and compatible with each other.&lt;br /&gt;
* Axle load classes implemented as real railtypes should be powered and compatible in ascending order, i.e. a lower axle load is compatible with a higher axle load, but not vice versa.&lt;br /&gt;
* Different energy sources should be compatible with each other but not powered on each other, expect for multi-system energy source classes.&lt;br /&gt;
* Different track type and gauge classes should be neither powered nor compatible with each other.&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each type/gauge, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
== Summary and notes for train sets ==&lt;br /&gt;
This section summarizes and comments the above for train sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track type and gauge class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
** Think about your set design and how for example standard gauge and narrow gauge vehicles differ to decide if a fallback from narrow gauge to standard gauge has gameplay meaning.&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded. This is a decision you need to make depending on the design of your train set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations. This can mean that some vehicles may not appear with some set combinations, but if a player does not want to have e.g. narrow gauge tracks, they might not want  narrow gauge vehicles either.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;br /&gt;
&lt;br /&gt;
==Extensions and best practice==&lt;br /&gt;
See [https://newgrf-specs.tt-wiki.net/wiki/Standardized_Railtype_Scheme_extensions Standardized Railtype Scheme extensions] and [[Guide to railtypes]]&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5121</id>
		<title>Guide to railtypes</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5121"/>
		<updated>2025-12-06T19:03:20Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Move stuff from standard scheme extended page and add info about having multiple tracktypes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trains and Railtypes both affect where a train can run and not, on top of this trains also need the correct railtypes to be defined in order to show up. This means that train and railtype sets need to coordinate so that the expected behavior can be reached.&lt;br /&gt;
&lt;br /&gt;
This guide is writen for nml but it should be possible to follow if you subsititute the nml properties with the NFO ones, see below:&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==The railtypetable==&lt;br /&gt;
See [https://www.tt-wiki.net/wiki/NMLTutorial/Railtypetable NMLTutorial/Railtypetable] and [[NML:Railtypetable-Roadtypetable-Tramtypetable]]&lt;br /&gt;
&lt;br /&gt;
==Railtype properties==&lt;br /&gt;
The following properties are relevant for how vehicles and railtypes interact with each other:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| names of default rail types: &amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;, &amp;quot;MGLV&amp;quot;. See the [[RailtypeLabels|List of railtype labels]] in the NewGRF Specs for currently defined custom labels.&lt;br /&gt;
|-&lt;br /&gt;
| compatible_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type can also run on. e.g. [&amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;]. Note that when routing trains, the compatibility is only evaluated for the lead engine of a consist. This means that trains will run on incompatible rail types if they are in a consist where the lead engine is compatible with the rail type. This applies to both engines and wagons.&lt;br /&gt;
|-&lt;br /&gt;
| powered_railtype_list&lt;br /&gt;
| Provide a list of rail types that trains of this type are powered on.&lt;br /&gt;
|-&lt;br /&gt;
| alternative_railtype_list&lt;br /&gt;
|&lt;br /&gt;
{{ottd|1.2|r23758}} List of rail types which this rail type will act as fallback for, if the corresponding rail type is not defined separately&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trains with only one tracktype==&lt;br /&gt;
&lt;br /&gt;
 item (FEAT_TRAINS, train) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: REF_TO_RAILTYPE_TABLE;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
By default OpenTTD will always make sure the railtypes RAIL, ELRL, MONO and MGLV exist, as such you are free to use these as you see fit.&lt;br /&gt;
&lt;br /&gt;
===Tracks not provided by default===&lt;br /&gt;
&lt;br /&gt;
==Trains with multiple tracktypes==&lt;br /&gt;
Some trains of yours might need to have multiple railtypes in order to work. Examples of this include UK thameslink trains and the russian EP10.&lt;br /&gt;
&lt;br /&gt;
For this we need the following railtypetable which uses labels from the standardized railtype scheme.&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD, SAAE, ELRL],&lt;br /&gt;
 	AC_25KV: [SAAA, SAAE, ELRL],&lt;br /&gt;
 	DC_3RD: [SAA3, &amp;quot;3RDR&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
Thameslink train&lt;br /&gt;
 item (FEAT_TRAINS, train2) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3RD];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
EP10 train&lt;br /&gt;
 item (FEAT_TRAINS, train3) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [AC_25, DC_3KV];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
The thameslink train will work without issue in this example however the EP10 will not. This is because if a trackset provides tracks for 25 kv ac (SAAA) and 15 kv ac. In that case the DC_3KV tracktype would become SAAE which is allowed on 15 kv ac tracks, this isn&#039;t intended as we only want the train to use SAAE when both SAAD and SAAA don&#039;t exist. This could be eliviated by not including SAAE and ELRL in the tracktype definition, but then the train will not show up on the default tracks. Another solution is to use [[NML:If|if]] blocks to change the used tracktype. In the future it may be possible that nmlc is extended to allow testing for both SAAA and SAAD in the railtypetable before falling back, until then the below provided solution will have to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	DC_3KV: [SAAD],&lt;br /&gt;
 	AC_25KV: [SAAA],&lt;br /&gt;
 	ACDC: [SAAE, ELRL]&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 if (railtype_available(&amp;quot;SAAA&amp;quot;) || railtype_available(&amp;quot;SAAD&amp;quot;)) {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: [AC_25, DC_3KV];&lt;br /&gt;
  		}&lt;br /&gt;
     	}&lt;br /&gt;
 } else {&lt;br /&gt;
 	item (FEAT_TRAINS, train3) {&lt;br /&gt;
 		properties {&lt;br /&gt;
 			tracktype: ACDC;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changing speed and/or power of trains based on railtype==&lt;br /&gt;
One might be interested in implementing a train which speed and/or power depends on the voltage in the overhead line electrification. In order for this to work properly the newgrf needs to test the track with [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. In practice this will look like the following:&lt;br /&gt;
&lt;br /&gt;
 tile_powers_railtype(&amp;quot;ELRL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Below is a more complex example from RUKTS code, where a train with a diesel generator has higher speed on high voltage ac tracks. We need to test for only SAAA if it is avaliable, as otherwise we would have the train gain the benefits on all electrified tracks. If it however isn&#039;t avaliable we still want to know if the track is electrified which is why we have the second part. This is only neccesary if your set cares about voltages.&lt;br /&gt;
&lt;br /&gt;
 railtype_available(&amp;quot;SAAA&amp;quot;) ? tile_powers_railtype(&amp;quot;SAAA&amp;quot;) : (tile_powers_railtype(&amp;quot;SAAE&amp;quot;) || tile_powers_railtype(&amp;quot;ELRL&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==Rack rail==&lt;br /&gt;
There are two different types of rack rail engines, pure rack and rack and adhesion. Pure rack engines may only move on tracks fitted with racks (xRxx) whilst rack and adhesion engines may also move on regular tracks but at a lower tractive effort.&lt;br /&gt;
&lt;br /&gt;
Rack rail is currently implemented in the speed class as a &amp;quot;special type&amp;quot;, this is unfurtunate as the speed class would otherwise be trackset private.&lt;br /&gt;
&lt;br /&gt;
===Alternative 1===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *R** as label. A trackset could then prevent these trains from traversing *A** tracks.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *A** as label and test for *R** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. This assumes the trackset will allow *A** on *R**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
*French Narrow Gauge Trains Set uses NRAN for rack and adhesion engines so tracksets can not support it as intended and pure rack systems at the same time.&lt;br /&gt;
&lt;br /&gt;
===Alternative 2===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *r** (not in scheme) as label. A trackset would then prevent these trains from traversing *A** tracks but allow them on *R**.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *R** as label and test for *r** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. Tracksets will allow *R** on *A** and *r**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Requires more track types than alternative 1.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5120</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5120"/>
		<updated>2025-12-06T18:20:52Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Restore extensions to match implementations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why use extended schemes and when &#039;&#039;not&#039;&#039; to use them ==&lt;br /&gt;
Why use:&lt;br /&gt;
* You want to ignore axle loads.&lt;br /&gt;
* You want to have more specific definitions than what the standard allows for.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;not&#039;&#039; to use:&lt;br /&gt;
* If you want immediate payoff; most if not all these possibilities are barely, if ever, used.&lt;br /&gt;
* If you do not want this level of complexity in your mod. It &#039;&#039;is&#039;&#039; optional, the extensions are only for edge cases.&lt;br /&gt;
* If you want to create a simple set which will be easy to pick up where real life accuracy isn&#039;t the goal.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Maglev extensions==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS, the Maglev Track Set, and in one case JP+, which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear induction ||N/A &lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor||N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==JP+ extensions==&lt;br /&gt;
These are extensions to the gauge and energy source type classes currently supported by JP+ tracks and used by JP+ train sets.&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge || S&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|I ||linear induction motor|| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Multi-voltage extensions DEPRECATED==&lt;br /&gt;
{{ottdp|15|no|ottdrev=g52e97c981c}} As of openttd 15 it will be possible to use multiple tracktypes for one vehicle, removing the need to create superfluous railtypes for voltages to work out right.&lt;br /&gt;
&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CURRENTLY NOT IMPLEMENTED AND MOSTLY NOT OF VALUE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge (1067mm)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit/appearance class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The appearance class can be tested for by trains using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] (which the French Set uses to change vehicle properties on rack rail), but this is generally not standardized, limits interoperability and is only useful for co-developed train and track sets.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||[[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] would need to contain literally everything you can think of, so instead developers of track sets should always add &amp;quot;_R_t&amp;quot; to the [[NML:Railtypes#Railtype_properties|compatible_railtype_list and powered_railtype_list (NML)]] of their railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal &amp;quot;no energy&amp;quot; type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put both &amp;quot;***N&amp;quot; and &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label, but neither under the [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]]) ||(&#039;&#039;Do not give a fallback to a &amp;quot;***-&amp;quot; label, or add a &amp;quot;***-&amp;quot; label to any [[NML:Railtypes#Railtype_properties|compatible_railtype_list, powered_railtype_list or alternative_railtype_list (NML)]], this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks); improbable, but not physically impossible ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|8 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, 3-phase catenary (literally had 3 cables) and universal catenary (SA_E); a total of 5 rails (2 for wheels, 3 for electricity; plus 3 overhead catenary lines equals 8) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|v ||750v &amp;amp; 600v DC catenary ||U ||Combines both necessary voltages of 600mm catenary.&lt;br /&gt;
|-&lt;br /&gt;
|z ||25kV AC catenary &amp;amp; 750v 3rd Rail ||U ||Used in New York City on the New Haven Line.&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||Not applicable ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||N/A ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5119</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5119"/>
		<updated>2025-12-06T18:11:53Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why use extended schemes and when &#039;&#039;not&#039;&#039; to use them ==&lt;br /&gt;
Why use:&lt;br /&gt;
* You want to ignore axle loads.&lt;br /&gt;
* You want to have more specific definitions than what the standard allows for.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;not&#039;&#039; to use:&lt;br /&gt;
* If you want immediate payoff; most if not all these possibilities are barely, if ever, used.&lt;br /&gt;
* If you do not want this level of complexity in your mod. It &#039;&#039;is&#039;&#039; optional, the extensions are only for edge cases.&lt;br /&gt;
* If you want to create a simple set which will be easy to pick up where real life accuracy isn&#039;t the goal.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Maglev extensions==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS, the Maglev Track Set, and in one case JP+, which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback !!Notes !!Examples&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear induction motor (EDS) ||V ||(Electrodynamic) Requires onboard supercooling ||SCMaglev (LABS)&lt;br /&gt;
|-&lt;br /&gt;
|V ||VacTrain with synchronous linear motor track (EDS) ||N/A ||Requires soft vacuum or advanced onboard supercooling ||&amp;quot;JR-VacLev&amp;quot; (fictional, LABV)&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor (EMS) ||e, then v ||(Electromagnetic) Relies on track power ||Transrapid (TABI), Linimo (LABI)&lt;br /&gt;
|-&lt;br /&gt;
|e ||Maglevs that use a synchronous linear induction motor (EDS) ||I ||(Electrodynamic) Requires onboard supercooling ||CRRC (TACe)&lt;br /&gt;
|-&lt;br /&gt;
|W ||VacTrain with linear induction motor track (EMS or EDS) ||N/A ||Requires hard vacuum, relies on track power ||&amp;quot;Vacrapid&amp;quot; (fictional, TABv)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==JP+ extensions==&lt;br /&gt;
These are extensions to the gauge and energy source type classes currently supported by JP+ tracks and used by JP+ train sets.&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge || S&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor (EMS) || N/A ||(Electromagnetic Suspension) Relies on track power; Unpublished, likely used for Linimo (JP+)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Multi-voltage extensions DEPRECATED==&lt;br /&gt;
{{ottdp|15|no|ottdrev=g52e97c981c}} As of openttd 15 it will be possible to use multiple tracktypes for one vehicle, removing the need to create superfluous railtypes for voltages to work out right.&lt;br /&gt;
&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CURRENTLY NOT IMPLEMENTED AND MOSTLY NOT OF VALUE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge (1067mm)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit/appearance class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The appearance class can be tested for by trains using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] (which the French Set uses to change vehicle properties on rack rail), but this is generally not standardized, limits interoperability and is only useful for co-developed train and track sets.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||[[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] would need to contain literally everything you can think of, so instead developers of track sets should always add &amp;quot;_R_t&amp;quot; to the [[NML:Railtypes#Railtype_properties|compatible_railtype_list and powered_railtype_list (NML)]] of their railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal &amp;quot;no energy&amp;quot; type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put both &amp;quot;***N&amp;quot; and &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label, but neither under the [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]]) ||(&#039;&#039;Do not give a fallback to a &amp;quot;***-&amp;quot; label, or add a &amp;quot;***-&amp;quot; label to any [[NML:Railtypes#Railtype_properties|compatible_railtype_list, powered_railtype_list or alternative_railtype_list (NML)]], this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks); improbable, but not physically impossible ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|8 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, 3-phase catenary (literally had 3 cables) and universal catenary (SA_E); a total of 5 rails (2 for wheels, 3 for electricity; plus 3 overhead catenary lines equals 8) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|v ||750v &amp;amp; 600v DC catenary ||U ||Combines both necessary voltages of 600mm catenary.&lt;br /&gt;
|-&lt;br /&gt;
|z ||25kV AC catenary &amp;amp; 750v 3rd Rail ||U ||Used in New York City on the New Haven Line.&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||Not applicable ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||N/A ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5118</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5118"/>
		<updated>2025-12-06T18:10:11Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Multi-voltage extensions is deprecated and the other stuff is better of on a separete page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why use extended schemes and when &#039;&#039;not&#039;&#039; to use them ==&lt;br /&gt;
Why use:&lt;br /&gt;
* You want to ignore axle loads.&lt;br /&gt;
* You want to have more specific definitions than what the standard allows for.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;not&#039;&#039; to use:&lt;br /&gt;
* If you want immediate payoff; most if not all these possibilities are barely, if ever, used.&lt;br /&gt;
* If you do not want this level of complexity in your mod. It &#039;&#039;is&#039;&#039; optional, the extensions are only for edge cases.&lt;br /&gt;
* If you want to create a simple set which will be easy to pick up where real life accuracy isn&#039;t the goal.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Maglev extensions==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS, the Maglev Track Set, and in one case JP+, which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback !!Notes !!Examples&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear induction motor (EDS) ||V ||(Electrodynamic) Requires onboard supercooling ||SCMaglev (LABS)&lt;br /&gt;
|-&lt;br /&gt;
|V ||VacTrain with synchronous linear motor track (EDS) ||N/A ||Requires soft vacuum or advanced onboard supercooling ||&amp;quot;JR-VacLev&amp;quot; (fictional, LABV)&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor (EMS) ||e, then v ||(Electromagnetic) Relies on track power ||Transrapid (TABI), Linimo (LABI)&lt;br /&gt;
|-&lt;br /&gt;
|e ||Maglevs that use a synchronous linear induction motor (EDS) ||I ||(Electrodynamic) Requires onboard supercooling ||CRRC (TACe)&lt;br /&gt;
|-&lt;br /&gt;
|W ||VacTrain with linear induction motor track (EMS or EDS) ||N/A ||Requires hard vacuum, relies on track power ||&amp;quot;Vacrapid&amp;quot; (fictional, TABv)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==JP+ extensions==&lt;br /&gt;
These are extensions to the gauge and energy source type classes currently supported by JP+ tracks and used by JP+ train sets.&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge || S&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor (EMS) || N/A ||(Electromagnetic Suspension) Relies on track power; Unpublished, likely used for Linimo (JP+)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Multi-voltage extensions==&lt;br /&gt;
&#039;&#039;&#039;DEPRICATED&#039;&#039;&#039;&lt;br /&gt;
{{ottdp|15|no|ottdrev=g52e97c981c}} As of openttd 15 it will be possible to use multiple tracktypes for one vehicle, removing the need to create superfluous railtypes for voltages to work out right.&lt;br /&gt;
&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CURRENTLY NOT IMPLEMENTED AND MOSTLY NOT OF VALUE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge (1067mm)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit/appearance class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The appearance class can be tested for by trains using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] (which the French Set uses to change vehicle properties on rack rail), but this is generally not standardized, limits interoperability and is only useful for co-developed train and track sets.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||[[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] would need to contain literally everything you can think of, so instead developers of track sets should always add &amp;quot;_R_t&amp;quot; to the [[NML:Railtypes#Railtype_properties|compatible_railtype_list and powered_railtype_list (NML)]] of their railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal &amp;quot;no energy&amp;quot; type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put both &amp;quot;***N&amp;quot; and &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label, but neither under the [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]]) ||(&#039;&#039;Do not give a fallback to a &amp;quot;***-&amp;quot; label, or add a &amp;quot;***-&amp;quot; label to any [[NML:Railtypes#Railtype_properties|compatible_railtype_list, powered_railtype_list or alternative_railtype_list (NML)]], this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks); improbable, but not physically impossible ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|8 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, 3-phase catenary (literally had 3 cables) and universal catenary (SA_E); a total of 5 rails (2 for wheels, 3 for electricity; plus 3 overhead catenary lines equals 8) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|v ||750v &amp;amp; 600v DC catenary ||U ||Combines both necessary voltages of 600mm catenary.&lt;br /&gt;
|-&lt;br /&gt;
|z ||25kV AC catenary &amp;amp; 750v 3rd Rail ||U ||Used in New York City on the New Haven Line.&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||Not applicable ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||N/A ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5117</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5117"/>
		<updated>2025-12-06T17:59:41Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Clean up when to use. it just restated previous information which was not entierly relevant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why use extended schemes and when &#039;&#039;not&#039;&#039; to use them ==&lt;br /&gt;
Why use:&lt;br /&gt;
* You want to ignore axle loads.&lt;br /&gt;
* You want to have more specific definitions than what the standard allows for.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;not&#039;&#039; to use:&lt;br /&gt;
* If you want immediate payoff; most if not all these possibilities are barely, if ever, used.&lt;br /&gt;
* If you do not want this level of complexity in your mod. It &#039;&#039;is&#039;&#039; optional, the extensions are only for edge cases.&lt;br /&gt;
* If you want to create a simple set which will be easy to pick up where real life accuracy isn&#039;t the goal.&lt;br /&gt;
&lt;br /&gt;
==Multi-voltage Trains==&lt;br /&gt;
One might be interested in implementing a train which speed and/or power depends on the voltage in the overhead line electrification. In order for this to work properly the newgrf needs to test the track with [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype].&lt;br /&gt;
&lt;br /&gt;
Below is an example from RUKTS code, where a train with a diesel generator has higher speed on high voltage ac tracks. We need to test for only SAAA if it is avaliable, as otherwise we would have the train gain the benefits on all electrified tracks. If it however isn&#039;t avaliable we still want to know if the track is electrified which is why we have the second part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;railtype_available(&amp;quot;SAAA&amp;quot;) ? tile_powers_railtype(&amp;quot;SAAA&amp;quot;) : (tile_powers_railtype(&amp;quot;SAAE&amp;quot;) || tile_powers_railtype(&amp;quot;ELRL&amp;quot;))&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rack rail==&lt;br /&gt;
There are two different types of rack rail engines, pure rack and rack and adhesion. Pure rack engines may only move on tracks fitted with racks (xRxx) whilst rack and adhesion engines may also move on regular tracks but at a lower tractive effort.&lt;br /&gt;
&lt;br /&gt;
Rack rail is currently implemented in the speed class as a &amp;quot;special type&amp;quot;, this is unfurtunate as the speed class would otherwise be trackset private.&lt;br /&gt;
&lt;br /&gt;
===Alternative 1===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *R** as label. A trackset could then prevent these trains from traversing *A** tracks.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *A** as label and test for *R** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. This assumes the trackset will allow *A** on *R**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
*French Narrow Gauge Trains Set uses NRAN for rack and adhesion engines so tracksets can not support it as intended and pure rack systems at the same time.&lt;br /&gt;
&lt;br /&gt;
===Alternative 2===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *r** (not in scheme) as label. A trackset would then prevent these trains from traversing *A** tracks but allow them on *R**.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *R** as label and test for *r** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. Tracksets will allow *R** on *A** and *r**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Requires more track types than alternative 1.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Multi-voltage extensions==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Maglev extensions==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS, the Maglev Track Set, and in one case JP+, which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback !!Notes !!Examples&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear induction motor (EDS) ||V ||(Electrodynamic) Requires onboard supercooling ||SCMaglev (LABS)&lt;br /&gt;
|-&lt;br /&gt;
|V ||VacTrain with synchronous linear motor track (EDS) ||N/A ||Requires soft vacuum or advanced onboard supercooling ||&amp;quot;JR-VacLev&amp;quot; (fictional, LABV)&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor (EMS) ||e, then v ||(Electromagnetic) Relies on track power ||Transrapid (TABI), Linimo (LABI)&lt;br /&gt;
|-&lt;br /&gt;
|e ||Maglevs that use a synchronous linear induction motor (EDS) ||I ||(Electrodynamic) Requires onboard supercooling ||CRRC (TACe)&lt;br /&gt;
|-&lt;br /&gt;
|W ||VacTrain with linear induction motor track (EMS or EDS) ||N/A ||Requires hard vacuum, relies on track power ||&amp;quot;Vacrapid&amp;quot; (fictional, TABv)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==JP+ extensions==&lt;br /&gt;
These are extensions to the gauge and energy source type classes currently supported by JP+ tracks and used by JP+ train sets.&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge || S&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor (EMS) || N/A ||(Electromagnetic Suspension) Relies on track power; Unpublished, likely used for Linimo (JP+)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CURRENTLY NOT IMPLEMENTED AND MOSTLY NOT OF VALUE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge (1067mm)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit/appearance class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The appearance class can be tested for by trains using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] (which the French Set uses to change vehicle properties on rack rail), but this is generally not standardized, limits interoperability and is only useful for co-developed train and track sets.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||[[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] would need to contain literally everything you can think of, so instead developers of track sets should always add &amp;quot;_R_t&amp;quot; to the [[NML:Railtypes#Railtype_properties|compatible_railtype_list and powered_railtype_list (NML)]] of their railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal &amp;quot;no energy&amp;quot; type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put both &amp;quot;***N&amp;quot; and &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label, but neither under the [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]]) ||(&#039;&#039;Do not give a fallback to a &amp;quot;***-&amp;quot; label, or add a &amp;quot;***-&amp;quot; label to any [[NML:Railtypes#Railtype_properties|compatible_railtype_list, powered_railtype_list or alternative_railtype_list (NML)]], this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks); improbable, but not physically impossible ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|8 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, 3-phase catenary (literally had 3 cables) and universal catenary (SA_E); a total of 5 rails (2 for wheels, 3 for electricity; plus 3 overhead catenary lines equals 8) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||v, then U ||&lt;br /&gt;
|-&lt;br /&gt;
|v ||750v &amp;amp; 600v DC catenary ||U ||Combines both necessary voltages of 600mm catenary.&lt;br /&gt;
|-&lt;br /&gt;
|z ||25kV AC catenary &amp;amp; 750v 3rd Rail ||U ||Used in New York City on the New Haven Line.&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||Not applicable ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||N/A ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5114</id>
		<title>Guide to railtypes</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Guide_to_railtypes&amp;diff=5114"/>
		<updated>2025-11-17T19:14:14Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Start writing the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trains and Railtypes both affect where a train can run and not, on top of this trains also need the correct railtypes to be defined in order to show up. This means that train and railtype sets need to coordinate so that the expected behavior can be reached.&lt;br /&gt;
&lt;br /&gt;
This guide is writen for nml but it should be possible to follow if you subsititute the nml properties with the NFO ones, see below:&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==Preliminaries==&lt;br /&gt;
&lt;br /&gt;
==How to make trains show up==&lt;br /&gt;
&lt;br /&gt;
 item (FEAT_TRAINS, train) {&lt;br /&gt;
 	properties {&lt;br /&gt;
 		tracktype: [railtype label goes here];&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
Note the square brackets are not part of the syntax here.&lt;br /&gt;
&lt;br /&gt;
By default OpenTTD will always make sure the railtypes RAIL, ELRL, MONO and MGLV exist, as such you are free to use these as you see fit.&lt;br /&gt;
&lt;br /&gt;
===What to do when the tracks you want don&#039;t exist===&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Railtypetable-Roadtypetable-Tramtypetable&amp;diff=5113</id>
		<title>NML:Railtypetable-Roadtypetable-Tramtypetable</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Railtypetable-Roadtypetable-Tramtypetable&amp;diff=5113"/>
		<updated>2025-11-17T18:53:38Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Add referance to new page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavBlocksyntax}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The syntax for &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;roadtypetable&amp;lt;/code&amp;gt; and &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;tramtypetable&amp;lt;/code&amp;gt; are identical to that of &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;railtypetable&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	ITEM [, ITEM]*&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;ITEM&amp;lt;/code&amp;gt; can be either a 4-byte long Identifier or string or it can have this format:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 ID : [ ID[, ID]* ]&lt;br /&gt;
&lt;br /&gt;
The first ID is the name (doesn&#039;t have to be 4-bytes long), the other IDs are a list of labels that are assigned to the given name if they are available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 railtypetable {&lt;br /&gt;
 	RAIL,&lt;br /&gt;
 	ELRL,&lt;br /&gt;
 	&amp;quot;3RDR&amp;quot;,&lt;br /&gt;
 	RT_SHINY_RAIL: [SHNY, RAIL]&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The label 3RDR is written as a string because an identifier can&#039;t start with a numeric value. To reference it later you can write &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;railtype(&amp;quot;3RDR&amp;quot;)&amp;lt;/code&amp;gt;. If another grf defines a railtype with label SHNY then RT_SHINY_RAIL will refer to that track type. If the railtype SHNY is not available then trains using RT_SHINY_RAIL as track type will fallback to RAIL.&lt;br /&gt;
&lt;br /&gt;
* The default railtype labels are &amp;quot;RAIL&amp;quot;, &amp;quot;ELRL&amp;quot;, &amp;quot;MONO&amp;quot;, &amp;quot;MGLV&amp;quot;. See the [[RailtypeLabels|List of railtype labels]] in the NewGRF Specs for currently defined custom labels.&lt;br /&gt;
* By default there is only one roadtype &amp;quot;ROAD&amp;quot; defined.&lt;br /&gt;
* By default there is only one tramtype &amp;quot;ELRL&amp;quot; defined. By convention tramtypes shall reuse railtype labels for similar types.&lt;br /&gt;
&lt;br /&gt;
Note that labels are not shared between features, so the same label can be used for multiple items. For example, the label &amp;quot;RAIL&amp;quot; can be used for a railtype, roadtype, tramtype, and cargotype simultaneously without conflict.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|15|no|ottdrev=g52e97c981c}} Note that trains may have multiple railtypes at once, this can lead to unexpected behavior see [[Guide_to_railtypes|guide to railtypes]].&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=5059</id>
		<title>Standardized Roadtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=5059"/>
		<updated>2025-06-08T14:54:26Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Remove confusing additions part&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This scheme was originally conceived in order to decrease the amount of necessary hidden road and tramtrack types. This is done by standardizing which labels vehicles and infrastructure should use. The standard also allows for more gameplay depth by having the option to limit vehicles to certain types of roads. It does similarly to the railtype scheme allow mixing of any vehicle set with any infrastructure set. It does however not allow multiple infrastructure sets to be used at the same time. It does not prevent it but all of the sets used have to be made to be used with each other, or use different surfaces/types which don&#039;t conflict with each other. The standard sets no limit on how vehicle sets can be used.&lt;br /&gt;
&lt;br /&gt;
It is ultimately up to the infrastructure set to chose what roadtypes are available and thereby what vehicles are available. Infrastructure and vehicles can both be in the same set, it is however recommended to be able to disable the infrastructure with parameters (preferably on an individual basis per roadtype) in case the player wants to use a different set for their infrastructure.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Surface / Type [X***] ===&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Roadtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Road&lt;br /&gt;
| RI(S)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(S)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Guided busway&lt;br /&gt;
| RPG&lt;br /&gt;
| P then R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| RB(Z)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| W&lt;br /&gt;
| Waterway&lt;br /&gt;
| W&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Amphibious on road (hidden)&lt;br /&gt;
| RPI(S)W&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Snowy or Iced Track&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Amphibious on snow (hidden)&lt;br /&gt;
| SW&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Pedestrian Zone&lt;br /&gt;
| Z&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Pump/Pipeline&lt;br /&gt;
| p&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Rail&lt;br /&gt;
| RI(M)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(M)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| (R)B&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Suspended Monorail&lt;br /&gt;
| S&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| M&lt;br /&gt;
| Metro&lt;br /&gt;
| M(RP)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| Trackless trams&lt;br /&gt;
| O&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy/Electrical infrastructure&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is the vehicle set&#039;s responsibility to implement fallbacks to other appropriate surfaces. It is also up to the author to decide if they want to do it or not. This means that road/tramtrack sets shouldn&#039;t add these to their [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] and [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]]&lt;br /&gt;
&lt;br /&gt;
It is up to the track set to implement all powered roadtypes in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. It is further advised to implement support for the roadtypes/tramtypes in brackets, if applicable.&lt;br /&gt;
&lt;br /&gt;
Hidden roadtypes for compatibility should be implemented by road sets. It is up to the author to decide if they want to implement it as a hidden roadtype or not.&lt;br /&gt;
&lt;br /&gt;
=== Speed / Feature [*X**] ===&lt;br /&gt;
Any character may be used for roads, but at least one road must have &amp;quot;A&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Vehicles should use &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Terrain / Stability [**X*] ===&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| a&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| c&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability.&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
=== Energy [***X] ===&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| N&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Ground electrified&lt;br /&gt;
| Ground electrified&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| E or G&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| n/a&lt;br /&gt;
| Third Rail&lt;br /&gt;
| G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| n/a&lt;br /&gt;
| Fourth Rail&lt;br /&gt;
| 3 then G&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| n/a&lt;br /&gt;
| Cable&lt;br /&gt;
| G&lt;br /&gt;
|}&lt;br /&gt;
A tramtrack set that only uses specialized types, should map the generic types to the most suitable specialized type in the set with the help of the [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
=== The default labels (ROAD, ELRL) and non-standard labels===&lt;br /&gt;
OpenTTD will allways define ROAD and ELRL incase there are vehicles for them. It is therefore recomended to have these present in the set so that you can map them to appropriete labels from the standard. There are a few ways of doing this:&lt;br /&gt;
*Replacing one of the standardised types with the default label and putting the standardised label in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
*Defining ROAD and/or ELRL separately from the standardised labels and adding the standard ones to the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. The main advantage of this is that you can use a parameter to map ROAD and/or ELRL to the standardised labels. This allows the player to chose where there non standardised vehicles will be able to go.&lt;br /&gt;
&lt;br /&gt;
Vehicle set authors might want to add the default labels and non-standard labels as a fallback. If not implemented for the defualt labels, their vehicles won&#039;t show up on the default roads and/or tracks, leading to countless bug reports from players. Non standard labels that might be worth adding fallbacks too are: ELRD, RAIL, HAUL and probably some more.&lt;br /&gt;
&lt;br /&gt;
== Summary for Road/Tramtrack sets ==&lt;br /&gt;
This section summarizes the above for road/tramtrack sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Chose which Surfaces and types you want in your set and give them the correct [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* If you only provide roads/tramtracks for one surface/type, consider leaving some free road/tramtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed / Feature&lt;br /&gt;
* Make sure class A is always available.&lt;br /&gt;
* Use B, C and so on if you have multible roads/tramtracks with the otherwise the same label.&lt;br /&gt;
; [**X*] Terrain / Stability &lt;br /&gt;
* Always define classes A through C for every road/tramtrack surface/type energy combination, either:&lt;br /&gt;
** Directly via a real road/tramtype definition;&lt;br /&gt;
** Indirectly via the alternate road/tramtype label list, [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Always define the default labels when possible, instead of what would be the equivalent of the default label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the default labels using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* Map common non-standard labels to the most similar label in this scheme using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
== Summary for vehicle sets ==&lt;br /&gt;
This section summarizes the above for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Use the surface / type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the road/tramtype table in case you want the vehicle to be available on a different road or tramtrack if no matching road/tramtrack set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;G&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;P&amp;quot; or &amp;quot;R&amp;quot;).&lt;br /&gt;
; [*X**] Speed / Feature &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Terrain / Stability&lt;br /&gt;
* Use A, B or C depending on where you want your vehicles to be able to drive.&lt;br /&gt;
** A is used for slow offroad capable vehicles which aren&#039;t allowed on Motorways and similar Roads&lt;br /&gt;
** B is used for vehicles which can drive offroad but are also allowed on Motorways.&lt;br /&gt;
** C is used for vehicles which can&#039;t go offroad or similar.&lt;br /&gt;
** Use B if you aren&#039;t sure what to chose.&lt;br /&gt;
* Never use a or c.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Define a fallback type to the default labels via the road/tramtype table in case you want the vehicle to be available on the default roads/track if no matching set is loaded.&lt;br /&gt;
* Do the same for any non-standard labels that may be relevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the road/tramtype, it is the job of the road/track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
=== Example of fallback order for vehicle sets ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Unchanged label&lt;br /&gt;
! Fallback order&lt;br /&gt;
|-&lt;br /&gt;
| GACE (road)&lt;br /&gt;
| GACE -&amp;gt; PACE -&amp;gt; RACE -&amp;gt; (ROAD)&lt;br /&gt;
|-&lt;br /&gt;
| PAB4 (tram)&lt;br /&gt;
| PAB4 -&amp;gt; PAB3 -&amp;gt; PABG -&amp;gt; RAB4 -&amp;gt; RAB3 -&amp;gt; RABG&lt;br /&gt;
|-&lt;br /&gt;
| IAAG (road)&lt;br /&gt;
| IAAG -&amp;gt; RAAG&lt;br /&gt;
|-&lt;br /&gt;
| AACE (road)&lt;br /&gt;
| AACE -&amp;gt; RAAE -&amp;gt; (ELRD)&lt;br /&gt;
|-&lt;br /&gt;
| RABE (tram)&lt;br /&gt;
| RABE -&amp;gt; (ELRL)&lt;br /&gt;
|-&lt;br /&gt;
| PAAN (tram)&lt;br /&gt;
| PAAN -&amp;gt; RAAN -&amp;gt; (RAIL)&lt;br /&gt;
|}&lt;br /&gt;
== Forum topic ==&lt;br /&gt;
Feel free to discuss and ask questions about the scheme at the forum topic [https://www.tt-forums.net/viewtopic.php?t=90715 Here].&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5058</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5058"/>
		<updated>2025-06-08T14:52:17Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Add JP+ extensions, guide on rack rail and multivoltage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Multi-voltage Trains==&lt;br /&gt;
One might be interested in implementing a train which speed and/or power depends on the voltage in the overhead line electrification. In order for this to work properly the newgrf needs to test the track with [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype].&lt;br /&gt;
&lt;br /&gt;
Below is an example from RUKTS code, where a train with a diesel generator has higher speed on high voltage ac tracks. We need to test for only SAAA if it is avaliable, as otherwise we would have the train gain the benefits on all electrified tracks. If it however isn&#039;t avaliable we still want to know if the track is electrified which is why we have the second part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;railtype_available(&amp;quot;SAAA&amp;quot;) ? tile_powers_railtype(&amp;quot;SAAA&amp;quot;) : (tile_powers_railtype(&amp;quot;SAAE&amp;quot;) || tile_powers_railtype(&amp;quot;ELRL&amp;quot;))&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rack rail==&lt;br /&gt;
There are two different types of rack rail engines, pure rack and rack and adhesion. Pure rack engines may only move on tracks fitted with racks (xRxx) whilst rack and adhesion engines may also move on regular tracks but at a lower tractive effort.&lt;br /&gt;
&lt;br /&gt;
Rack rail is currently implemented in the speed class as a &amp;quot;special type&amp;quot;, this is unfurtunate as the speed class would otherwise be trackset private.&lt;br /&gt;
&lt;br /&gt;
===Alternative 1===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *R** as label. A trackset could then prevent these trains from traversing *A** tracks.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *A** as label and test for *R** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. This assumes the trackset will allow *A** on *R**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
*French Narrow Gauge Trains Set uses NRAN for rack and adhesion engines so tracksets can not support it as intended and pure rack systems at the same time.&lt;br /&gt;
&lt;br /&gt;
===Alternative 2===&lt;br /&gt;
&lt;br /&gt;
====Pure rack engines====&lt;br /&gt;
These engines should use *r** (not in scheme) as label. A trackset would then prevent these trains from traversing *A** tracks but allow them on *R**.&lt;br /&gt;
&lt;br /&gt;
====Rack and adhesion engines====&lt;br /&gt;
These engines should use *R** as label and test for *r** using [https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Vehicles#Track-type_test_against_another_track-type_.2863.29 var 63] or [https://newgrf-specs.tt-wiki.net/wiki/NML:Vehicles#Variables_that_require_an_argument NML tile_powers_railtype]. Tracksets will allow *R** on *A** and *r**.&lt;br /&gt;
&lt;br /&gt;
====Issues====&lt;br /&gt;
*Requires more track types than alternative 1.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Multi-voltage extensions==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Maglev extensions==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==JP+ extensions==&lt;br /&gt;
These are extensions to the gauge and energy source type classes currently supported by JP+ tracks and used by JP+ train sets.&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge || S&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|I ||Linear induction motor || D&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CURRENTLY NOT IMPLEMENTED AND MOSTLY NOT OF VALUE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||U, then E ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||U, then E||&lt;br /&gt;
|-&lt;br /&gt;
|z ||Atypical catenary voltage ||U, then E&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5057</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5057"/>
		<updated>2025-06-08T13:22:18Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Add link to separete extensions page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|R ||rack rail, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;br /&gt;
&lt;br /&gt;
==Extensions and best practice==&lt;br /&gt;
See [https://newgrf-specs.tt-wiki.net/wiki/Standardized_Railtype_Scheme_extensions Standardized Railtype Scheme extensions]&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5056</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5056"/>
		<updated>2025-06-08T13:19:02Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Possible additions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CURRENTLY NOT IMPLEMENTED AND MOSTLY NOT OF VALUE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||U, then E ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||U, then E||&lt;br /&gt;
|-&lt;br /&gt;
|z ||Atypical catenary voltage ||U, then E&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5055</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5055"/>
		<updated>2025-06-08T13:16:28Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Extended maglev support addition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||U, then E ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||U, then E||&lt;br /&gt;
|-&lt;br /&gt;
|z ||Atypical catenary voltage ||U, then E&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5054</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5054"/>
		<updated>2025-06-08T13:15:10Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Energy source type class [***X] */ Only include the ones in (F)RIMS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Fallback&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||U, then E ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||U, then E||&lt;br /&gt;
|-&lt;br /&gt;
|z ||Atypical catenary voltage ||U, then E&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5053</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5053"/>
		<updated>2025-06-08T13:10:25Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor || TCAI (the whole label) || If using SCMaglev/&amp;quot;Vanilla&amp;quot; maglev then add MGLV (the whole label) as an extra fallback.&lt;br /&gt;
|-&lt;br /&gt;
|V ||Vactrains/Hyperloop ||t, then I || If using SCMaglev/&amp;quot;Vanilla&amp;quot; maglev then add MGLV (the whole label) as an extra fallback. See proposed &amp;quot;universal tunnel&amp;quot; electrification below for the &amp;quot;t&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||U, then E ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||U, then E||&lt;br /&gt;
|-&lt;br /&gt;
|z ||Atypical catenary voltage ||U, then E&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5052</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5052"/>
		<updated>2025-06-08T13:09:49Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|R ||rack rail, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5051</id>
		<title>Standardized Railtype Scheme extensions</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme_extensions&amp;diff=5051"/>
		<updated>2025-06-08T13:06:04Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Create page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor || TCAI (the whole label) || If using SCMaglev/&amp;quot;Vanilla&amp;quot; maglev then add MGLV (the whole label) as an extra fallback.&lt;br /&gt;
|-&lt;br /&gt;
|V ||Vactrains/Hyperloop ||t, then I || If using SCMaglev/&amp;quot;Vanilla&amp;quot; maglev then add MGLV (the whole label) as an extra fallback. See proposed &amp;quot;universal tunnel&amp;quot; electrification below for the &amp;quot;t&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), or 16 in (406 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|2 ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge. Use this if you don&#039;t mind gameplay abstractions but don&#039;t want physically impossible combinations (e.g. rail, monorail and maglev cannot have any level crossings with each other). Specifically, this accommodates B (ultrabroad), g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm).&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use if you want to provide a cheaper alternative to X that doesn&#039;t support fictional &amp;quot;supertrain&amp;quot; gauges. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow. Specifically, this accommodates g (2140 mm), V (1600mm), S (1435 mm), and R (1000 mm). Use with minus (&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow. Specifically, this accommodates V (1600mm), S (1435 mm), R (1000 mm), and n (600 mm). Use with plus (&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) if you want to give a bit of a puzzle to players over how to design a network limited by a &amp;quot;one or the other&amp;quot; pair of railtypes.&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
====Axle Loads by Real World Implementation====&lt;br /&gt;
The table below is compatible with those above but functions differently than the ones above. It assumes that, in lieu of a train set that has ever implemented &amp;quot;d&amp;quot; as an axle weight, that instead &amp;quot;4&amp;quot; be used and a &amp;quot;3&amp;quot; placed between C and D for similar reasons. All the same classes are listed, however axle weight guidelines have been run by a research LLM which suggested different ranges of weight and different dates of availability. 4 is identical to d in practice. If &amp;quot;d&amp;quot; is not defined as a lighter axle weight than &amp;quot;c&amp;quot;, then **4* should be used alongside it in an alternative_tracktype_list for any **D** track type with axle weight &amp;quot;D&amp;quot;. If &amp;quot;d&amp;quot; is defined as a lighter axle weight than &amp;quot;c&amp;quot;, only tracktypes with axle weight &amp;quot;4&amp;quot; (**4*) should be listed in the alternative_tracktype list for any **D* tracktype.&lt;br /&gt;
&lt;br /&gt;
Use **4* on all applicable rolling stock going forward, and rely on track sets to define &amp;quot;d&amp;quot; for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||5 metric tonnes (5000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||10 metric tonnes (10000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|~1820 (Focused on carrying capacity over speed)&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||15 metric tonnes (15000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1870&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1890&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1910&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Medium, lightweight &amp;quot;FLEXX Eco&amp;quot; and &amp;quot;FLEXX Eco Commuter&amp;quot; bogies ||26 metric tonnes (26000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2001 (FLEXX Eco)&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||31 metric tonnes (31000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1930&lt;br /&gt;
|-&lt;br /&gt;
|4 (Formerly d) ||High, extra-lean &amp;quot;DYNAFREIGHT&amp;quot; and &amp;quot;FLEXX Eco Regional&amp;quot; bogies ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2016 (FLEXX Eco, Regional var.)&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||40 metric tonnes (40000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|F ||Fortescue/Future-proofed ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||750v DC catenary ||U, then E ||&lt;br /&gt;
|-&lt;br /&gt;
|6 ||600v DC catenary ||U, then E||&lt;br /&gt;
|-&lt;br /&gt;
|z ||Atypical catenary voltage ||U, then E&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5050</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=5050"/>
		<updated>2025-06-08T13:05:50Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Mostly restore the scheme&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|R ||rack rail, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Global_Settings&amp;diff=5038</id>
		<title>Action0/Global Settings</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Global_Settings&amp;diff=5038"/>
		<updated>2025-05-24T14:39:44Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Roadtype translation table (16) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Global variables can be set in one of two ways. (This) action 0 using feature 8, or [[ActionD|Action D]]. Variables in arrays will usually be set using an action 0, whereas action D will most commonly set single variables.&lt;br /&gt;
&lt;br /&gt;
In addition to global variables, this action can also set some general grf-specific variables.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|08||B||{{ottdp|0.6|2.5|ttdprev=alpha 40}}||Cost base multipliers&lt;br /&gt;
|-&lt;br /&gt;
|09||D||{{ottdp|0.6|2.5|ttdprev=alpha 66}}||Cargo translation table&lt;br /&gt;
|-&lt;br /&gt;
|0A||W||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency display names&lt;br /&gt;
|-&lt;br /&gt;
|0B||D||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency multipliers&lt;br /&gt;
|-&lt;br /&gt;
|0C||W||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency options&lt;br /&gt;
|-&lt;br /&gt;
|0D,0E||D||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency symbols&lt;br /&gt;
|-&lt;br /&gt;
|0F||W||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Euro introduction dates&lt;br /&gt;
|-&lt;br /&gt;
|10||12*32*B||{{ottdp|0.6|2.5|ttdprev=alpha 74}}||Snow line height table&lt;br /&gt;
|-&lt;br /&gt;
|11||2*D||{{ottdp|0.7|no|ottdrev=r12924}}||GRFID overrides for engines&lt;br /&gt;
|-&lt;br /&gt;
|12||D||{{ottdp|0.7|no|ottdrev=r15417}}||Railtype translation table&lt;br /&gt;
|-&lt;br /&gt;
|13,14||V||{{ottdp|1.1|no|ottdrev=r21208}} {{grfFrom|7}}||Gender/case translation table&lt;br /&gt;
|-&lt;br /&gt;
|15||B||{{ottdp|1.1|no|ottdrev=r21216}} {{grfFrom|7}}||Plural form&lt;br /&gt;
|-&lt;br /&gt;
|16,17||D||{{ottdp|1.10|no}}||Road-/tramtype translation table&lt;br /&gt;
|-&lt;br /&gt;
|18||S||{{ottdp|15}}||Badge translation table&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Cost base multipliers (08) ===&lt;br /&gt;
&lt;br /&gt;
TTD has 49 [[BaseCosts|base costs]] (66 in OpenTTD currently) which govern how much everything costs. Each cost is calculated from a (fixed) factor times the base cost, which is adjusted by inflation every month.&lt;br /&gt;
&lt;br /&gt;
Setting this property allows changing these base costs by factors of two. The default value of the property is 08 which leaves the base cost unchanged. Adding one to the property doubles the base cost, subtracting one halves it.&lt;br /&gt;
&lt;br /&gt;
Using math: NewBaseCost = OldBaseCost * 2^(n-8), where n is the value of property 08.&lt;br /&gt;
&lt;br /&gt;
Modifying the base costs incurs a small rounding error every time the game is saved, because the costs have to be set back to the default in the savegame. However, this error is unnoticable until many years of inflation have passed and should therefore be of little concern.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.0|no}} In OpenTTD rounding happens towards 1 or -1 depending on the old base cost; i.e. if the old base cost is positive round towards 1, if negative round towards -1. This prevents the base cost to be zero.&lt;br /&gt;
&lt;br /&gt;
=== Cargo translation table (09) ===&lt;br /&gt;
&lt;br /&gt;
To aid with coding vehicle grf files that wish to support more than the standard cargo types, the easiest way is to install a cargo translation table using this property.&lt;br /&gt;
&lt;br /&gt;
The cargo translation table is a list of [[Action0Cargos#Cargo label 17|cargo labels]]. Each entry means that the corresponding cargo is meant when using this ID in an [[Action3|action 3]] or for a bit in the vehicle&#039;s refit mask.&lt;br /&gt;
&lt;br /&gt;
In other words, if for example the fourth entry (number 03) in the list is &amp;quot;MAIL&amp;quot;, then defining graphics for cargo 03 will define graphics for mail, and bit 3 in the refit mask will be for mail as well.&lt;br /&gt;
&lt;br /&gt;
This way, the vehicle grf file doesn&#039;t need to know or care which cargo slot and cargo bit a certain cargo type uses, it can define its own ID for each cargo that it wishes to support, and thus be independent of both what cargo types are really available in the game and what slots/bits they use.&lt;br /&gt;
&lt;br /&gt;
Because the refit mask contains only 32 bits, only the first 32 entries in the translation table can make use of the refit mask. Other cargo types have to be added via the cargo classes, so put the cargos that need exceptions to the cargo class based refitting first so that they can go in the refit mask.&lt;br /&gt;
&lt;br /&gt;
Note that this property cannot be set incrementally, you must set all types in a single action 0 starting from ID 0.&lt;br /&gt;
&lt;br /&gt;
See below for an example.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
 // Cargo translation table&lt;br /&gt;
   1 * 169      00 08 01 29 00 09&lt;br /&gt;
           &amp;quot;COAL&amp;quot; &amp;quot;WATR&amp;quot; &amp;quot;RUBB&amp;quot; &amp;quot;MAIL&amp;quot; &amp;quot;OIL_&amp;quot; // 0-4&lt;br /&gt;
           &amp;quot;LVST&amp;quot; &amp;quot;GOOD&amp;quot; &amp;quot;CERE&amp;quot; &amp;quot;GRAN&amp;quot; &amp;quot;WHET&amp;quot; // 5-9&lt;br /&gt;
           &amp;quot;MAIZ&amp;quot; &amp;quot;WOOD&amp;quot; &amp;quot;WODT&amp;quot; &amp;quot;IORE&amp;quot; &amp;quot;CORE&amp;quot; // 10-14&lt;br /&gt;
           &amp;quot;STEL&amp;quot; &amp;quot;PLAS&amp;quot; &amp;quot;VALU&amp;quot; &amp;quot;GOLD&amp;quot; &amp;quot;DIAM&amp;quot; // 15-19&lt;br /&gt;
           &amp;quot;PAPR&amp;quot; &amp;quot;FOOD&amp;quot; &amp;quot;FRUT&amp;quot; &amp;quot;FISH&amp;quot; &amp;quot;WOOL&amp;quot; // 20-24&lt;br /&gt;
           &amp;quot;POTA&amp;quot; &amp;quot;SAND&amp;quot; &amp;quot;GLAS&amp;quot; &amp;quot;WDPR&amp;quot; &amp;quot;DYES&amp;quot; // 25-29&lt;br /&gt;
           &amp;quot;FERT&amp;quot; &amp;quot;OLSD&amp;quot; &amp;quot;RFPR&amp;quot; &amp;quot;VEHI&amp;quot; &amp;quot;PETR&amp;quot; // 30-34&lt;br /&gt;
           &amp;quot;BRCK&amp;quot; &amp;quot;SULP&amp;quot; &amp;quot;CMNT&amp;quot; &amp;quot;FICR&amp;quot; &amp;quot;LIME&amp;quot; // 35-39&lt;br /&gt;
           &amp;quot;MILK&amp;quot; // 40&lt;br /&gt;
 // Train wagon that has special graphics for grain (8),&lt;br /&gt;
 // wheat (9), maize (10) and cereals (7)&lt;br /&gt;
   2 * 29       03 00 01 1B 04&lt;br /&gt;
           08 &amp;lt;grain-cid&amp;gt; 09 &amp;lt;wheat-cid&amp;gt; 0A &amp;lt;maize-cid&amp;gt;&lt;br /&gt;
           07 &amp;lt;cereals-cid&amp;gt; &amp;lt;default-cid&amp;gt;&lt;br /&gt;
 // Train wagon that has graphics for water (1), rubber (2),&lt;br /&gt;
 // oil (4), petrol (34) and milk (40)&lt;br /&gt;
   3 * 31       03 00 01 1C 05&lt;br /&gt;
           01 &amp;lt;water-cid&amp;gt; 02 &amp;lt;rubber-cid&amp;gt; 04 &amp;lt;oil-cid&amp;gt;&lt;br /&gt;
           22 &amp;lt;petrol-cid&amp;gt; 28 &amp;lt;milk-cid&amp;gt; &amp;lt;default-cid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currency display names (0A) ===&lt;br /&gt;
This and the following properties can be used to modify currencies. Each of them can have IDs 0-18 (decimal), the IDs being ordered the same as in the Currency drop-down list.&lt;br /&gt;
&lt;br /&gt;
This property allows changing currency names that are displayed in the Currency drop-down in the Game Options window. This property is a textID, and if you need to supply your own text, it must be a DCxx one.&lt;br /&gt;
&lt;br /&gt;
=== Currency multipliers (0B) ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of 1 British pound in this currency, multiplied by 1000. For example, 1 GBP=2 USD, so this should be 2000 for US dollars. The multiplication by 1000 allows you to have decimals in the multiplier without requiring floating-point calculations. This value is used for display purposes only, TTD always uses British pounds for internal calculations.&lt;br /&gt;
&lt;br /&gt;
=== Currency options (0C) ===&lt;br /&gt;
&lt;br /&gt;
The low byte of this word specifies the thousands separator to be used for this currency ( usually dot &amp;quot;.&amp;quot; or comma &amp;quot;,&amp;quot;). The high byte should be zero if the currency symbol should be in front of the number ($123,456) and should be 1 if the currency symbol should be shown after the number (123,456$). The symbol placement can be overridden by the TTDPatch settings.&lt;br /&gt;
&lt;br /&gt;
=== Currency symbols (0D,0E) ===&lt;br /&gt;
&lt;br /&gt;
These doublewords are interpreted as a string of up to 4 characters. If you need fewer characters, the remaining bytes should be zero. Property 0D is printed before the number, property 0E is printed after the number. These two usually differ only if the symbol is separated by a space from the number (for example, &amp;quot;$ &amp;quot; vs. &amp;quot; $&amp;quot;). You should specify both properties since the player can override your preferred symbol placement.&lt;br /&gt;
&lt;br /&gt;
=== Euro introduction dates (0F) ===&lt;br /&gt;
&lt;br /&gt;
This value allows you to have Euro introduced instead the currency at a given time. If this value is zero, the currency is never substituted with the Euro (USD, for example). If it&#039;s nonzero, it gives the year when the currency is replaced by Euro (for example, 2002 for DM).&lt;br /&gt;
&lt;br /&gt;
=== Snow line height table (10) ===&lt;br /&gt;
&lt;br /&gt;
This property allows you to specify the snow line height for every day of the year. The only ID you can set is 0, and the value must be 12*32=384 bytes long. To simplify things for the patch, every month has 32 entries, and the impossible combinations (like 32th January or 31th April) will never be read.&lt;br /&gt;
&lt;br /&gt;
{{grfTill|7}} For GRF version 7 and below: The values should be multiple of 8 between 10h and 88h.&lt;br /&gt;
Values below 10h and above EFh may result in overflow and should not be used. Since the highest possible land is 78h high, giving 88h or above will effectively disable the snow line.&lt;br /&gt;
&lt;br /&gt;
{{grfFrom|8}} For GRF version 8 and above: The values can be any value between 0 and FFh.&lt;br /&gt;
FF means &#039;no snow&#039;; other values are scaled to the number of possible heightlevels of the map.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|no|2.5}} If the temperate snow line is enabled, this table applies on temperate as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Some code in TTD assumes that the snow line will remain constant: Some industries are built only above/below snowline and assume that the snow line won&#039;t move when they&#039;re already built. Similarly, snowy houses on arctic will still appear snowy even when the snow disappears around them. If you want to use this feature, make sure to counter these effects by overriding arctic houses and industries with snow-aware versions.&lt;br /&gt;
&lt;br /&gt;
=== GRFID overrides for engines (11) ===&lt;br /&gt;
&lt;br /&gt;
Allows you to provide a list of &#039;source&#039; and &#039;target&#039; GRFIDs to let vehicles in the source GRF override those in the target GRF, when dynamic engines is enabled. Each entry is 8 bytes, containing two GRFIDs. Multiple entries can be used, and different GRFs can be set to override the same &#039;target&#039; GRF, but only the last instance of a &#039;source&#039; GRF is active. GRFIDs that are not present will have no effect.&lt;br /&gt;
&lt;br /&gt;
The scope of this feature is quite limited and it should be used only for sets that modify data of another set, for example the DBSetXL ECS addon for DBSetXL, or the censored version of LV4.&lt;br /&gt;
&lt;br /&gt;
=== Railtype translation table (12) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify railtypes via a translation table, similar to using a cargo translation table. Each railtype label is a DWord. The default labels are RAIL, ELRL, MONO and MGLV. If a table is installed, then changing engine traction type will not affect the railtype.&lt;br /&gt;
&lt;br /&gt;
Note that labels are not shared between features, so the same label can be used for multiple items. For example, the label &amp;quot;RAIL&amp;quot; can be used for a railtype, roadtype, tramtype, and cargotype simultaneously without conflict.&lt;br /&gt;
&lt;br /&gt;
=== Gender/case translation table (13,14) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify genders or cases via a translation table. These map NewGRF internal IDs for the genders or cases to the genders or cases as defined in OpenTTD&#039;s language files so NewGRF strings and OpenTTD strings can interact on eachother&#039;s gender or cases. Property 13 is for mapping genders whereas property 14 is for mapping cases.&lt;br /&gt;
&lt;br /&gt;
The ID used for these translation tables is the Action 4 (GRF version 7 or higher) language-id, i.e. this mapping only works with GRF version 7 or higher. Language-id 7F (any) is not allowed. You can can define an ID multiple times in which case the new mappings are simply appended to the already known mappings.&lt;br /&gt;
&lt;br /&gt;
The format is simply a 00 terminated list of mappings:&lt;br /&gt;
&lt;br /&gt;
 (&amp;lt;id&amp;gt; &amp;lt;name&amp;gt;)+ 00&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||id||NewGRF internal ID for the gender or case name, may not be 00&lt;br /&gt;
|-&lt;br /&gt;
|V||name||A 00 terminated string with the gender or case name as in OpenTTD&#039;s translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An NewGRF internal ID may be mapped multiple times for the same language as may an OpenTTD gender or case name be (reverse) mapped multiple times. This can be used for coping with OpenTTD translators adding or removing genders or cases over time. The NewGRF internal ID may not be 00 as this ID will be used in the Action 4 strings which may not contain 00 except for terminating the string.&lt;br /&gt;
&lt;br /&gt;
These mappings are used for [[StringCodes]] 9A 0E, 9A 0F, 9A 13 and 9A 14. How the mapping is used precisely can be found there.&lt;br /&gt;
&lt;br /&gt;
=== Plural form (15) ===&lt;br /&gt;
&lt;br /&gt;
Defines the plural form for a language. The ID used is the Action 4 (GRF version 7 or higher) language-id, i.e. this only works with GRF version 7 or higher. Language-id 7F (any) is not allowed. More information about the different valid plural forms can be found on the [[StringCodes]] page. This property is used for [[StringCodes|StringCode]] 9A 15.&lt;br /&gt;
&lt;br /&gt;
=== Roadtype translation table (16) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify roadtypes via a translation table, similar to using a cargo translation table. Each roadtype label is a DWord. The default labels are ROAD.&lt;br /&gt;
&lt;br /&gt;
Note that labels are not shared between features, so the same label can be used for multiple items. For example, the label &amp;quot;RAIL&amp;quot; can be used for a railtype, roadtype, tramtype, and cargotype simultaneously without conflict.&lt;br /&gt;
&lt;br /&gt;
=== Tramtype translation table (17) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify tramtypes via a translation table, similar to using a cargo translation table. Each tramtype label is a DWord. The default labels is ELRL.&lt;br /&gt;
&lt;br /&gt;
Note that labels are not shared between features, so the same label can be used for multiple items. For example, the label &amp;quot;RAIL&amp;quot; can be used for a railtype, roadtype, tramtype, and cargotype simultaneously without conflict.&lt;br /&gt;
&lt;br /&gt;
=== Badge translation table (18) ===&lt;br /&gt;
&lt;br /&gt;
Required to allow badges to be assigned to other items. Each badge translation table entry is zero-terminated string corresponding to the badge&#039;s label.&lt;br /&gt;
&lt;br /&gt;
Unlike the other DWord label systems, a badge listed in a translation will automatically be created if it is not otherwise provided, and is fully usable internally.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Global_Settings&amp;diff=5037</id>
		<title>Action0/Global Settings</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Global_Settings&amp;diff=5037"/>
		<updated>2025-05-24T14:39:14Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Tramtype translation table (17) */ RAIL is not provided by the game&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Global variables can be set in one of two ways. (This) action 0 using feature 8, or [[ActionD|Action D]]. Variables in arrays will usually be set using an action 0, whereas action D will most commonly set single variables.&lt;br /&gt;
&lt;br /&gt;
In addition to global variables, this action can also set some general grf-specific variables.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|08||B||{{ottdp|0.6|2.5|ttdprev=alpha 40}}||Cost base multipliers&lt;br /&gt;
|-&lt;br /&gt;
|09||D||{{ottdp|0.6|2.5|ttdprev=alpha 66}}||Cargo translation table&lt;br /&gt;
|-&lt;br /&gt;
|0A||W||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency display names&lt;br /&gt;
|-&lt;br /&gt;
|0B||D||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency multipliers&lt;br /&gt;
|-&lt;br /&gt;
|0C||W||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency options&lt;br /&gt;
|-&lt;br /&gt;
|0D,0E||D||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Currency symbols&lt;br /&gt;
|-&lt;br /&gt;
|0F||W||{{ottdp|0.6|2.5|ttdprev=alpha 69}}||Euro introduction dates&lt;br /&gt;
|-&lt;br /&gt;
|10||12*32*B||{{ottdp|0.6|2.5|ttdprev=alpha 74}}||Snow line height table&lt;br /&gt;
|-&lt;br /&gt;
|11||2*D||{{ottdp|0.7|no|ottdrev=r12924}}||GRFID overrides for engines&lt;br /&gt;
|-&lt;br /&gt;
|12||D||{{ottdp|0.7|no|ottdrev=r15417}}||Railtype translation table&lt;br /&gt;
|-&lt;br /&gt;
|13,14||V||{{ottdp|1.1|no|ottdrev=r21208}} {{grfFrom|7}}||Gender/case translation table&lt;br /&gt;
|-&lt;br /&gt;
|15||B||{{ottdp|1.1|no|ottdrev=r21216}} {{grfFrom|7}}||Plural form&lt;br /&gt;
|-&lt;br /&gt;
|16,17||D||{{ottdp|1.10|no}}||Road-/tramtype translation table&lt;br /&gt;
|-&lt;br /&gt;
|18||S||{{ottdp|15}}||Badge translation table&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Cost base multipliers (08) ===&lt;br /&gt;
&lt;br /&gt;
TTD has 49 [[BaseCosts|base costs]] (66 in OpenTTD currently) which govern how much everything costs. Each cost is calculated from a (fixed) factor times the base cost, which is adjusted by inflation every month.&lt;br /&gt;
&lt;br /&gt;
Setting this property allows changing these base costs by factors of two. The default value of the property is 08 which leaves the base cost unchanged. Adding one to the property doubles the base cost, subtracting one halves it.&lt;br /&gt;
&lt;br /&gt;
Using math: NewBaseCost = OldBaseCost * 2^(n-8), where n is the value of property 08.&lt;br /&gt;
&lt;br /&gt;
Modifying the base costs incurs a small rounding error every time the game is saved, because the costs have to be set back to the default in the savegame. However, this error is unnoticable until many years of inflation have passed and should therefore be of little concern.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.0|no}} In OpenTTD rounding happens towards 1 or -1 depending on the old base cost; i.e. if the old base cost is positive round towards 1, if negative round towards -1. This prevents the base cost to be zero.&lt;br /&gt;
&lt;br /&gt;
=== Cargo translation table (09) ===&lt;br /&gt;
&lt;br /&gt;
To aid with coding vehicle grf files that wish to support more than the standard cargo types, the easiest way is to install a cargo translation table using this property.&lt;br /&gt;
&lt;br /&gt;
The cargo translation table is a list of [[Action0Cargos#Cargo label 17|cargo labels]]. Each entry means that the corresponding cargo is meant when using this ID in an [[Action3|action 3]] or for a bit in the vehicle&#039;s refit mask.&lt;br /&gt;
&lt;br /&gt;
In other words, if for example the fourth entry (number 03) in the list is &amp;quot;MAIL&amp;quot;, then defining graphics for cargo 03 will define graphics for mail, and bit 3 in the refit mask will be for mail as well.&lt;br /&gt;
&lt;br /&gt;
This way, the vehicle grf file doesn&#039;t need to know or care which cargo slot and cargo bit a certain cargo type uses, it can define its own ID for each cargo that it wishes to support, and thus be independent of both what cargo types are really available in the game and what slots/bits they use.&lt;br /&gt;
&lt;br /&gt;
Because the refit mask contains only 32 bits, only the first 32 entries in the translation table can make use of the refit mask. Other cargo types have to be added via the cargo classes, so put the cargos that need exceptions to the cargo class based refitting first so that they can go in the refit mask.&lt;br /&gt;
&lt;br /&gt;
Note that this property cannot be set incrementally, you must set all types in a single action 0 starting from ID 0.&lt;br /&gt;
&lt;br /&gt;
See below for an example.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
 // Cargo translation table&lt;br /&gt;
   1 * 169      00 08 01 29 00 09&lt;br /&gt;
           &amp;quot;COAL&amp;quot; &amp;quot;WATR&amp;quot; &amp;quot;RUBB&amp;quot; &amp;quot;MAIL&amp;quot; &amp;quot;OIL_&amp;quot; // 0-4&lt;br /&gt;
           &amp;quot;LVST&amp;quot; &amp;quot;GOOD&amp;quot; &amp;quot;CERE&amp;quot; &amp;quot;GRAN&amp;quot; &amp;quot;WHET&amp;quot; // 5-9&lt;br /&gt;
           &amp;quot;MAIZ&amp;quot; &amp;quot;WOOD&amp;quot; &amp;quot;WODT&amp;quot; &amp;quot;IORE&amp;quot; &amp;quot;CORE&amp;quot; // 10-14&lt;br /&gt;
           &amp;quot;STEL&amp;quot; &amp;quot;PLAS&amp;quot; &amp;quot;VALU&amp;quot; &amp;quot;GOLD&amp;quot; &amp;quot;DIAM&amp;quot; // 15-19&lt;br /&gt;
           &amp;quot;PAPR&amp;quot; &amp;quot;FOOD&amp;quot; &amp;quot;FRUT&amp;quot; &amp;quot;FISH&amp;quot; &amp;quot;WOOL&amp;quot; // 20-24&lt;br /&gt;
           &amp;quot;POTA&amp;quot; &amp;quot;SAND&amp;quot; &amp;quot;GLAS&amp;quot; &amp;quot;WDPR&amp;quot; &amp;quot;DYES&amp;quot; // 25-29&lt;br /&gt;
           &amp;quot;FERT&amp;quot; &amp;quot;OLSD&amp;quot; &amp;quot;RFPR&amp;quot; &amp;quot;VEHI&amp;quot; &amp;quot;PETR&amp;quot; // 30-34&lt;br /&gt;
           &amp;quot;BRCK&amp;quot; &amp;quot;SULP&amp;quot; &amp;quot;CMNT&amp;quot; &amp;quot;FICR&amp;quot; &amp;quot;LIME&amp;quot; // 35-39&lt;br /&gt;
           &amp;quot;MILK&amp;quot; // 40&lt;br /&gt;
 // Train wagon that has special graphics for grain (8),&lt;br /&gt;
 // wheat (9), maize (10) and cereals (7)&lt;br /&gt;
   2 * 29       03 00 01 1B 04&lt;br /&gt;
           08 &amp;lt;grain-cid&amp;gt; 09 &amp;lt;wheat-cid&amp;gt; 0A &amp;lt;maize-cid&amp;gt;&lt;br /&gt;
           07 &amp;lt;cereals-cid&amp;gt; &amp;lt;default-cid&amp;gt;&lt;br /&gt;
 // Train wagon that has graphics for water (1), rubber (2),&lt;br /&gt;
 // oil (4), petrol (34) and milk (40)&lt;br /&gt;
   3 * 31       03 00 01 1C 05&lt;br /&gt;
           01 &amp;lt;water-cid&amp;gt; 02 &amp;lt;rubber-cid&amp;gt; 04 &amp;lt;oil-cid&amp;gt;&lt;br /&gt;
           22 &amp;lt;petrol-cid&amp;gt; 28 &amp;lt;milk-cid&amp;gt; &amp;lt;default-cid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currency display names (0A) ===&lt;br /&gt;
This and the following properties can be used to modify currencies. Each of them can have IDs 0-18 (decimal), the IDs being ordered the same as in the Currency drop-down list.&lt;br /&gt;
&lt;br /&gt;
This property allows changing currency names that are displayed in the Currency drop-down in the Game Options window. This property is a textID, and if you need to supply your own text, it must be a DCxx one.&lt;br /&gt;
&lt;br /&gt;
=== Currency multipliers (0B) ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of 1 British pound in this currency, multiplied by 1000. For example, 1 GBP=2 USD, so this should be 2000 for US dollars. The multiplication by 1000 allows you to have decimals in the multiplier without requiring floating-point calculations. This value is used for display purposes only, TTD always uses British pounds for internal calculations.&lt;br /&gt;
&lt;br /&gt;
=== Currency options (0C) ===&lt;br /&gt;
&lt;br /&gt;
The low byte of this word specifies the thousands separator to be used for this currency ( usually dot &amp;quot;.&amp;quot; or comma &amp;quot;,&amp;quot;). The high byte should be zero if the currency symbol should be in front of the number ($123,456) and should be 1 if the currency symbol should be shown after the number (123,456$). The symbol placement can be overridden by the TTDPatch settings.&lt;br /&gt;
&lt;br /&gt;
=== Currency symbols (0D,0E) ===&lt;br /&gt;
&lt;br /&gt;
These doublewords are interpreted as a string of up to 4 characters. If you need fewer characters, the remaining bytes should be zero. Property 0D is printed before the number, property 0E is printed after the number. These two usually differ only if the symbol is separated by a space from the number (for example, &amp;quot;$ &amp;quot; vs. &amp;quot; $&amp;quot;). You should specify both properties since the player can override your preferred symbol placement.&lt;br /&gt;
&lt;br /&gt;
=== Euro introduction dates (0F) ===&lt;br /&gt;
&lt;br /&gt;
This value allows you to have Euro introduced instead the currency at a given time. If this value is zero, the currency is never substituted with the Euro (USD, for example). If it&#039;s nonzero, it gives the year when the currency is replaced by Euro (for example, 2002 for DM).&lt;br /&gt;
&lt;br /&gt;
=== Snow line height table (10) ===&lt;br /&gt;
&lt;br /&gt;
This property allows you to specify the snow line height for every day of the year. The only ID you can set is 0, and the value must be 12*32=384 bytes long. To simplify things for the patch, every month has 32 entries, and the impossible combinations (like 32th January or 31th April) will never be read.&lt;br /&gt;
&lt;br /&gt;
{{grfTill|7}} For GRF version 7 and below: The values should be multiple of 8 between 10h and 88h.&lt;br /&gt;
Values below 10h and above EFh may result in overflow and should not be used. Since the highest possible land is 78h high, giving 88h or above will effectively disable the snow line.&lt;br /&gt;
&lt;br /&gt;
{{grfFrom|8}} For GRF version 8 and above: The values can be any value between 0 and FFh.&lt;br /&gt;
FF means &#039;no snow&#039;; other values are scaled to the number of possible heightlevels of the map.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|no|2.5}} If the temperate snow line is enabled, this table applies on temperate as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Some code in TTD assumes that the snow line will remain constant: Some industries are built only above/below snowline and assume that the snow line won&#039;t move when they&#039;re already built. Similarly, snowy houses on arctic will still appear snowy even when the snow disappears around them. If you want to use this feature, make sure to counter these effects by overriding arctic houses and industries with snow-aware versions.&lt;br /&gt;
&lt;br /&gt;
=== GRFID overrides for engines (11) ===&lt;br /&gt;
&lt;br /&gt;
Allows you to provide a list of &#039;source&#039; and &#039;target&#039; GRFIDs to let vehicles in the source GRF override those in the target GRF, when dynamic engines is enabled. Each entry is 8 bytes, containing two GRFIDs. Multiple entries can be used, and different GRFs can be set to override the same &#039;target&#039; GRF, but only the last instance of a &#039;source&#039; GRF is active. GRFIDs that are not present will have no effect.&lt;br /&gt;
&lt;br /&gt;
The scope of this feature is quite limited and it should be used only for sets that modify data of another set, for example the DBSetXL ECS addon for DBSetXL, or the censored version of LV4.&lt;br /&gt;
&lt;br /&gt;
=== Railtype translation table (12) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify railtypes via a translation table, similar to using a cargo translation table. Each railtype label is a DWord. The default labels are RAIL, ELRL, MONO and MGLV. If a table is installed, then changing engine traction type will not affect the railtype.&lt;br /&gt;
&lt;br /&gt;
Note that labels are not shared between features, so the same label can be used for multiple items. For example, the label &amp;quot;RAIL&amp;quot; can be used for a railtype, roadtype, tramtype, and cargotype simultaneously without conflict.&lt;br /&gt;
&lt;br /&gt;
=== Gender/case translation table (13,14) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify genders or cases via a translation table. These map NewGRF internal IDs for the genders or cases to the genders or cases as defined in OpenTTD&#039;s language files so NewGRF strings and OpenTTD strings can interact on eachother&#039;s gender or cases. Property 13 is for mapping genders whereas property 14 is for mapping cases.&lt;br /&gt;
&lt;br /&gt;
The ID used for these translation tables is the Action 4 (GRF version 7 or higher) language-id, i.e. this mapping only works with GRF version 7 or higher. Language-id 7F (any) is not allowed. You can can define an ID multiple times in which case the new mappings are simply appended to the already known mappings.&lt;br /&gt;
&lt;br /&gt;
The format is simply a 00 terminated list of mappings:&lt;br /&gt;
&lt;br /&gt;
 (&amp;lt;id&amp;gt; &amp;lt;name&amp;gt;)+ 00&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||id||NewGRF internal ID for the gender or case name, may not be 00&lt;br /&gt;
|-&lt;br /&gt;
|V||name||A 00 terminated string with the gender or case name as in OpenTTD&#039;s translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An NewGRF internal ID may be mapped multiple times for the same language as may an OpenTTD gender or case name be (reverse) mapped multiple times. This can be used for coping with OpenTTD translators adding or removing genders or cases over time. The NewGRF internal ID may not be 00 as this ID will be used in the Action 4 strings which may not contain 00 except for terminating the string.&lt;br /&gt;
&lt;br /&gt;
These mappings are used for [[StringCodes]] 9A 0E, 9A 0F, 9A 13 and 9A 14. How the mapping is used precisely can be found there.&lt;br /&gt;
&lt;br /&gt;
=== Plural form (15) ===&lt;br /&gt;
&lt;br /&gt;
Defines the plural form for a language. The ID used is the Action 4 (GRF version 7 or higher) language-id, i.e. this only works with GRF version 7 or higher. Language-id 7F (any) is not allowed. More information about the different valid plural forms can be found on the [[StringCodes]] page. This property is used for [[StringCodes|StringCode]] 9A 15.&lt;br /&gt;
&lt;br /&gt;
=== Roadtype translation table (16) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify roadtypes via a translation table, similar to using a cargo translation table. Each roadtype label is a DWord. The default labels are ROAD and ELRD.&lt;br /&gt;
&lt;br /&gt;
Note that labels are not shared between features, so the same label can be used for multiple items. For example, the label &amp;quot;RAIL&amp;quot; can be used for a railtype, roadtype, tramtype, and cargotype simultaneously without conflict.&lt;br /&gt;
&lt;br /&gt;
=== Tramtype translation table (17) ===&lt;br /&gt;
&lt;br /&gt;
Provides ability to specify tramtypes via a translation table, similar to using a cargo translation table. Each tramtype label is a DWord. The default labels is ELRL.&lt;br /&gt;
&lt;br /&gt;
Note that labels are not shared between features, so the same label can be used for multiple items. For example, the label &amp;quot;RAIL&amp;quot; can be used for a railtype, roadtype, tramtype, and cargotype simultaneously without conflict.&lt;br /&gt;
&lt;br /&gt;
=== Badge translation table (18) ===&lt;br /&gt;
&lt;br /&gt;
Required to allow badges to be assigned to other items. Each badge translation table entry is zero-terminated string corresponding to the badge&#039;s label.&lt;br /&gt;
&lt;br /&gt;
Unlike the other DWord label systems, a badge listed in a translation will automatically be created if it is not otherwise provided, and is fully usable internally.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=User:Brickblock1&amp;diff=4987</id>
		<title>User:Brickblock1</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=User:Brickblock1&amp;diff=4987"/>
		<updated>2025-04-15T13:31:08Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!nr	!!litt	!!lev. år	!!leverantör	!!ombyggd år	!!anm.&lt;br /&gt;
|-&lt;br /&gt;
|851	||Bp	||1961	||ASJ(A) 	||      ||Fd SJ Bop. &amp;quot;Skivpass&amp;quot;. Omb. till manövervagn UBp 104 1985.&lt;br /&gt;
|-&lt;br /&gt;
|852	||Bp	||1961	||ASJ(A) 	||      ||Fd SJ Bop. &amp;quot;Skivpass&amp;quot;. Omb. till manövervagn BUp 100 1984.&lt;br /&gt;
|-&lt;br /&gt;
|853-857||Bp	||1961	||ASJ(A)	|| 	||Fd SJ Bop. &amp;quot;Skivpass&amp;quot;. Omb. till manövervagnar UBp 103, 106. 102, 107 resp. 105 1985.&lt;br /&gt;
|-&lt;br /&gt;
|859	||Bp	||1913	||ASJ(L)	||1949	||Fd SJ Bop, fd SRJ Co 22. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|863	||Bp	||1899	||Atlas/ASJ(L)	||1947	||Fd SJ Bop, fd SRJ Co 35. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|868	||Bp	||1906	||Fole	        ||1941	||Fd SJ Bop, fd SRJ Co 50. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|876	||Bp	||1908	||Fole	        ||1945  ||Fd SJ Bop, fd SRJ Co 64. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|878	||Bp	||1911	||Södertälje	||1944	||Fd SJ Bop, fd SRJ Co 66. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|879	||Bp	||1911	||Södertälje	||1945	||Fd SJ Bop, fd SRJ Co 67. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|880	||Bp	||1914	||ASEA	 	||      ||Öppna plattformar. Fd SJ Bop, fd SRJ Co 68 Museivagn (veterantåg) 1993.&lt;br /&gt;
|-&lt;br /&gt;
|886	||Bp	||1920	||Bautzen	||1948	||Fd SJ Bop, fd SRJ Co 74. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|887	||Bp	||1920	||Bautzen	||1953	||Fd SJ Bop, fd SRJ Co 75. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|888-889||Bp	||1920	||Bautzen	||1952	||Fd SJ Bop, fd SRJ Co 76-77. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|890	||Bp	||1921	||Bautzen	||1953	||Fd SJ Bop, fd SRJ Co 78. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|891-893||Bp	||1921	||Bautzen	|| 	||Öppna plattformar. Fd SJ Bop, fd SRJ Co 79-81. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|894	||Bp	||1921	||Bautzen	||1952	||Fd SJ Bop, fd SRJ Co 82. Ur trafik 1988.&lt;br /&gt;
|-&lt;br /&gt;
|895-897||Bp	||1954	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 83-85. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|898-901||Bp	||1936	||ASEA	 	||      ||Fd SJ Bop, fd SRJ Co 86-89. &amp;quot;Djursholmspass&amp;quot;. Ur trafik 1988-92.&lt;br /&gt;
|-&lt;br /&gt;
|902-904||Bp	||1937	||Bautzen	||1948	||Fd SJ Bop, fd SRJ Co 90-92. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|905-906||Bp	||1937	||Bautzen	||1949	||Fd SJ Bop, fd SRJ Co 93-94. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|907	||Bp	||1939	||ASEA	 	||      ||Fd SJ Bop, fd SRJ Co 95. &amp;quot;Djursholmspass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|909-910||Bp	||1939	||Bautzen	|| 	||Öppna plattformar. Fd SJ Bop, fd SRJ Co 97-98. Ur trafik 1988-92.&lt;br /&gt;
|-&lt;br /&gt;
|911	||Bp	||1954	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 99. &amp;quot;Stålpass&amp;quot;. Omb. till manövervagn UBp 118 1986.&lt;br /&gt;
|-&lt;br /&gt;
|912	||Bp	||1954	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 100. &amp;quot;Stålpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|913-914||Bp	||1941	||Bautzen	|| 	||Fd SJ Bop, fd SRJ Co 101-102. &amp;quot;Bautzenpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|915-916||Bp	||1941	||Maskinverken	|| 	||Fd SJ Bop, fd SRJ Co 103-104. &amp;quot;Södertäljepass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|917-918||Bp	||1943	||Bautzen	|| 	||Fd SJ Bop, fd SRJ Co 106-107. &amp;quot;Bautzenpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|919-922||Bp	||1944	||Bautzen	|| 	||Fd SJ Bop, fd SRJ Co 108-111. &amp;quot;Bautzenpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|923-925||Bp	||1948	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 112-114. &amp;quot;Norrtäljepass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|926-930||Bp	||1949	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 115-119. &amp;quot;Norrtäljepass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|931-940||Bp	||1956	||ASJ(A)	|| 	||Fd SJ Bop, fd SRJ Bo 120-129. &amp;quot;Stålpass&amp;quot;. Omb. Till Manövervagnar UBp 113, 109, 111, 115, 117, 110, 108, 116, 114 resp. 112 1985-86.&lt;br /&gt;
|}&lt;br /&gt;
Grindvagn = wagon with open end&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Litt&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Typ&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;I trafik&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Ombyggd&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Omlittrerad&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Ny ägare&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Ur trafik&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[#A7 - A8|A7]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1979&lt;br /&gt;
| [[#AB9|AB9]] &amp;amp; [[#B9|B9]] &amp;amp; [[#BFS9|BFS9]] (1994), [[#A11|A11]] (2001), [[#B7|B7A]] (2009)&lt;br /&gt;
|&lt;br /&gt;
| SSRT&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#A11|A11]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2001&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#AB7|AB7]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2009&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#AB9|AB9]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1994&lt;br /&gt;
| [[#AB7|AB7]] (2009)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2009&lt;br /&gt;
|-&lt;br /&gt;
| [[#B2R|B2R]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1988&lt;br /&gt;
| [[#B10|B10]] (2001)&lt;br /&gt;
|&lt;br /&gt;
| SSRT&lt;br /&gt;
| 2003 (SJ)&lt;br /&gt;
|-&lt;br /&gt;
| [[#B4|B4]]&lt;br /&gt;
| Sitt- och resgodsvagn&lt;br /&gt;
| 1985&lt;br /&gt;
| BF7 (2010)&lt;br /&gt;
| BF4 (1994)&lt;br /&gt;
| SSRT&lt;br /&gt;
| 2010 (SJ BF4)&lt;br /&gt;
|-&lt;br /&gt;
| [[#B7|B7]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1979&lt;br /&gt;
| [[#B7B|B8]] (1990), [[#AB9|AB9]] &amp;amp; [[#B9|B9]] &amp;amp; [[#BFS9|BFS9]] (1994), [[#B11|B11]] (2001), [[#BF8|BF8]] (2017)&lt;br /&gt;
| &lt;br /&gt;
| TÅGAB (2014)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#B7B|B7B]]&lt;br /&gt;
| Familjevagn&lt;br /&gt;
| 1990&lt;br /&gt;
| [[#BFS9|BFS9]] (1994), [[#B7|B7B]] (2009)&lt;br /&gt;
| B8&lt;br /&gt;
| &lt;br /&gt;
| 2010&lt;br /&gt;
|-&lt;br /&gt;
| [[#B9|B9]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1994&lt;br /&gt;
| [[#B7|B7C]] (2009)&lt;br /&gt;
| &lt;br /&gt;
| SSRT&lt;br /&gt;
| 2010 (SJ)&lt;br /&gt;
|-&lt;br /&gt;
| [[#B10|B10]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2001&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2025&lt;br /&gt;
|-&lt;br /&gt;
| [[#B11|B11]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[#BC4|BC4]]&lt;br /&gt;
| Liggvagn&lt;br /&gt;
| 1985&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| SSRT (2001)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[#BF8|BF8]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2017&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#BFS9|BFS9]]&lt;br /&gt;
| Sittvagn, kiosk&lt;br /&gt;
| 1994&lt;br /&gt;
| [[#RB7|RB7]] (2013)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#R4R|R4R]]&lt;br /&gt;
| Restaurangvagn&lt;br /&gt;
| 1987&lt;br /&gt;
| [[#S12|S12]] (1994), [[#RB11|RB11]] (2001)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#RB7|RB7]]&lt;br /&gt;
| Bistro- och lekvagn&lt;br /&gt;
| 2013&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#RB11|RB11]]&lt;br /&gt;
| Bistrovagn&lt;br /&gt;
| 2001&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#S1|S1]]&lt;br /&gt;
| Konferensvagn&lt;br /&gt;
| 1981&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| Blå tåget (2014), TÅGAB (2014)&lt;br /&gt;
| 2014 (SJ)&lt;br /&gt;
|-&lt;br /&gt;
| [[#S4|S4]]&lt;br /&gt;
| Kontorsvagn&lt;br /&gt;
| 1986 (ASEA)&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| SJ (1989)&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| [[#S12|S12]]&lt;br /&gt;
| Bistro- och biovagn&lt;br /&gt;
| 1994&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#UA7R|UA7R]]&lt;br /&gt;
| Manövervagn&lt;br /&gt;
| 1988&lt;br /&gt;
| &lt;br /&gt;
| AF7X (1994), AFM7&lt;br /&gt;
| &lt;br /&gt;
| 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[#WL4|WL4]]&lt;br /&gt;
| Sovvagn&lt;br /&gt;
| 1990&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SSRT (2001)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#WL6|WL6]]&lt;br /&gt;
| Sovvagn&lt;br /&gt;
| 1993&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SSRT (2001)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=User:Brickblock1&amp;diff=4986</id>
		<title>User:Brickblock1</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=User:Brickblock1&amp;diff=4986"/>
		<updated>2025-04-15T13:29:00Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!nr	!!litt	!!lev. år	!!leverantör	!!ombyggd år	!!anm.&lt;br /&gt;
|-&lt;br /&gt;
|851	||Bp	||1961	||ASJ(A) 	||      ||Fd SJ Bop. &amp;quot;Skivpass&amp;quot;. Omb. till manövervagn UBp 104 1985.&lt;br /&gt;
|-&lt;br /&gt;
|852	||Bp	||1961	||ASJ(A) 	||      ||Fd SJ Bop. &amp;quot;Skivpass&amp;quot;. Omb. till manövervagn BUp 100 1984.&lt;br /&gt;
|-&lt;br /&gt;
|853-857||Bp	||1961	||ASJ(A)	|| 	||Fd SJ Bop. &amp;quot;Skivpass&amp;quot;. Omb. till manövervagnar UBp 103, 106. 102, 107 resp. 105 1985.&lt;br /&gt;
|-&lt;br /&gt;
|859	||Bp	||1913	||ASJ(L)	||1949	||Fd SJ Bop, fd SRJ Co 22. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|863	||Bp	||1899	||Atlas/ASJ(L)	||1947	||Fd SJ Bop, fd SRJ Co 35. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|868	||Bp	||1906	||Fole	        ||1941	||Fd SJ Bop, fd SRJ Co 50. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|876	||Bp	||1908	||Fole	        ||1945  ||Fd SJ Bop, fd SRJ Co 64. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|878	||Bp	||1911	||Södertälje	||1944	||Fd SJ Bop, fd SRJ Co 66. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|879	||Bp	||1911	||Södertälje	||1945	||Fd SJ Bop, fd SRJ Co 67. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|880	||Bp	||1914	||ASEA	 	||      ||Öppna plattformar. Fd SJ Bop, fd SRJ Co 68 Museivagn (veterantåg) 1993.&lt;br /&gt;
|-&lt;br /&gt;
|886	||Bp	||1920	||Bautzen	||1948	||Fd SJ Bop, fd SRJ Co 74. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|887	||Bp	||1920	||Bautzen	||1953	||Fd SJ Bop, fd SRJ Co 75. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|888-889||Bp	||1920	||Bautzen	||1952	||Fd SJ Bop, fd SRJ Co 76-77. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|890	||Bp	||1921	||Bautzen	||1953	||Fd SJ Bop, fd SRJ Co 78. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|891-893||Bp	||1921	||Bautzen	|| 	||Öppna plattformar. Fd SJ Bop, fd SRJ Co 79-81. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|894	||Bp	||1921	||Bautzen	||1952	||Fd SJ Bop, fd SRJ Co 82. Ur trafik 1988.&lt;br /&gt;
|-&lt;br /&gt;
|895-897||Bp	||1954	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 83-85. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|898-901||Bp	||1936	||ASEA	 	||      ||Fd SJ Bop, fd SRJ Co 86-89. &amp;quot;Djursholmspass&amp;quot;. Ur trafik 1988-92.&lt;br /&gt;
|-&lt;br /&gt;
|902-904||Bp	||1937	||Bautzen	||1948	||Fd SJ Bop, fd SRJ Co 90-92. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|905-906||Bp	||1937	||Bautzen	||1949	||Fd SJ Bop, fd SRJ Co 93-94. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|907	||Bp	||1939	||ASEA	 	||      ||Fd SJ Bop, fd SRJ Co 95. &amp;quot;Djursholmspass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|909-910||Bp	||1939	||Bautzen	|| 	||Öppna plattformar. Fd SJ Bop, fd SRJ Co 97-98. Ur trafik 1988-92.&lt;br /&gt;
|-&lt;br /&gt;
|911	||Bp	||1954	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 99. &amp;quot;Stålpass&amp;quot;. Omb. till manövervagn UBp 118 1986.&lt;br /&gt;
|-&lt;br /&gt;
|912	||Bp	||1954	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 100. &amp;quot;Stålpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|913-914||Bp	||1941	||Bautzen	|| 	||Fd SJ Bop, fd SRJ Co 101-102. &amp;quot;Bautzenpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|915-916||Bp	||1941	||Maskinverken	|| 	||Fd SJ Bop, fd SRJ Co 103-104. &amp;quot;Södertäljepass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|917-918||Bp	||1943	||Bautzen	|| 	||Fd SJ Bop, fd SRJ Co 106-107. &amp;quot;Bautzenpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|919-922||Bp	||1944	||Bautzen	|| 	||Fd SJ Bop, fd SRJ Co 108-111. &amp;quot;Bautzenpass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|923-925||Bp	||1948	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 112-114. &amp;quot;Norrtäljepass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|926-930||Bp	||1949	||ASJ(L)	|| 	||Fd SJ Bop, fd SRJ Co 115-119. &amp;quot;Norrtäljepass&amp;quot;. Ur trafik 1988-93.&lt;br /&gt;
|-&lt;br /&gt;
|931-940||Bp	||1956	||ASJ(A)	|| 	||Fd SJ Bop, fd SRJ Bo 120-129. &amp;quot;Stålpass&amp;quot;. Omb. Till Manövervagnar UBp 113, 109, 111, 115, 117, 110, 108, 116, 114 resp. 112 1985-86.&lt;br /&gt;
|}&lt;br /&gt;
Grindvagn = wagon with open end&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Litt&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Typ&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;I trafik&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Ombyggd&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Omlittrerad&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Ny ägare&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Ur trafik&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[#A7 - A8|A7]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1979&lt;br /&gt;
| [[#AB9|AB9]] &amp;amp; [[#B9|B9]] &amp;amp; [[#BFS9|BFS9]] (1994), [[#A11|A11]] (2001), [[#B7|B7A]] (2009)&lt;br /&gt;
|&lt;br /&gt;
| SSRT&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#A11|A11]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2001&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#AB7|AB7]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2009&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#AB9|AB9]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1994&lt;br /&gt;
| [[#AB7|AB7]] (2009)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2009&lt;br /&gt;
|-&lt;br /&gt;
| [[#B2R|B2R]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1988&lt;br /&gt;
| [[#B10|B10]] (2001)&lt;br /&gt;
|&lt;br /&gt;
| SSRT&lt;br /&gt;
| 2003 (SJ)&lt;br /&gt;
|-&lt;br /&gt;
| [[#B4|B4]]&lt;br /&gt;
| Sitt- och resgodsvagn&lt;br /&gt;
| 1985&lt;br /&gt;
| BF7 (2010)&lt;br /&gt;
| BF4 (1994)&lt;br /&gt;
| SSRT&lt;br /&gt;
| 2010 (SJ BF4)&lt;br /&gt;
|-&lt;br /&gt;
| [[#B7|B7]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1979&lt;br /&gt;
| [[#B7B|B8]] (1990), [[#AB9|AB9]] &amp;amp; [[#B9|B9]] &amp;amp; [[#BFS9|BFS9]] (1994), [[#B11|B11]] (2001), [[#BF8|BF8]] (2017)&lt;br /&gt;
| &lt;br /&gt;
| TÅGAB (2014)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#B7B|B7B]]&lt;br /&gt;
| Familjevagn&lt;br /&gt;
| 1990&lt;br /&gt;
| [[#BFS9|BFS9]] (1994), [[#B7|B7B]] (2009)&lt;br /&gt;
| B8&lt;br /&gt;
| &lt;br /&gt;
| 2010&lt;br /&gt;
|-&lt;br /&gt;
| [[#B9|B9]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 1994&lt;br /&gt;
| [[#B7|B7C]] (2009)&lt;br /&gt;
| &lt;br /&gt;
| SSRT&lt;br /&gt;
| 2010 (SJ)&lt;br /&gt;
|-&lt;br /&gt;
| [[#B10|B10]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2001&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2025&lt;br /&gt;
|-&lt;br /&gt;
| [[#B11|B11]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[#BC4|BC4]]&lt;br /&gt;
| Liggvagn&lt;br /&gt;
| 1985&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| SSRT (2001)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[#BF8|BF8]]&lt;br /&gt;
| Sittvagn&lt;br /&gt;
| 2017&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#BFS9|BFS9]]&lt;br /&gt;
| Sittvagn, kiosk&lt;br /&gt;
| 1994&lt;br /&gt;
| [[#RB7|RB7]] (2013)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#R4R|R4R]]&lt;br /&gt;
| Restaurangvagn&lt;br /&gt;
| 1987&lt;br /&gt;
| [[#S12|S12]] (1994), [[#RB11|RB11]] (2001)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#RB7|RB7]]&lt;br /&gt;
| Bistro- och lekvagn&lt;br /&gt;
| 2013&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#RB11|RB11]]&lt;br /&gt;
| Bistrovagn&lt;br /&gt;
| 2001&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#S1|S1]]&lt;br /&gt;
| Konferensvagn&lt;br /&gt;
| 1981&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| Blå tåget (2014), TÅGAB (2014)&lt;br /&gt;
| 2014 (SJ)&lt;br /&gt;
|-&lt;br /&gt;
| [[#S4|S4]]&lt;br /&gt;
| Kontorsvagn&lt;br /&gt;
| 1986 (ASEA)&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| SJ (1989)&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| [[#S12|S12]]&lt;br /&gt;
| Bistro- och biovagn&lt;br /&gt;
| 1994&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#UA7R|UA7R]]&lt;br /&gt;
| Manövervagn&lt;br /&gt;
| 1988&lt;br /&gt;
| &lt;br /&gt;
| AF7X (1994), AFM7&lt;br /&gt;
| &lt;br /&gt;
| 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[#WL4|WL4]]&lt;br /&gt;
| Sovvagn&lt;br /&gt;
| 1990&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SSRT (2001)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[#WL6|WL6]]&lt;br /&gt;
| Sovvagn&lt;br /&gt;
| 1993&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SSRT (2001)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4910</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4910"/>
		<updated>2024-12-28T22:06:47Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Speed limit class [*X**] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|R ||rack rail, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack-rail set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, incompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor || TCAI (the whole label) || If using SCMaglev/&amp;quot;Vanilla&amp;quot; maglev then add MGLV (the whole label) as an extra fallback.&lt;br /&gt;
|-&lt;br /&gt;
|V ||Vactrains/Hyperloop ||t, then I || If using SCMaglev/&amp;quot;Vanilla&amp;quot; maglev then add MGLV (the whole label) as an extra fallback. See proposed &amp;quot;universal tunnel&amp;quot; electrification below for the &amp;quot;t&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), 16 in (406 mm), 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1422+ mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SAbN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|d ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Cargos&amp;diff=4909</id>
		<title>NML:Cargos</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Cargos&amp;diff=4909"/>
		<updated>2024-12-28T11:29:57Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Cargo properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavPropVarCB}}&lt;br /&gt;
&lt;br /&gt;
==Cargo IDs==&lt;br /&gt;
For cargos, the item ID corresponds to the cargo type slot of the cargo. TTD default cargos occupy slots 0-11, so if you want to define a new cargo be sure to set this ID to 12 or higher. It is recommended to set the &#039;number&#039;-property to the same value as the item ID.&lt;br /&gt;
&lt;br /&gt;
==Cargo properties==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! value range&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| number&lt;br /&gt;
| 0..63&lt;br /&gt;
| Number of the cargo for bitmasks. Prior to {{ottd|1.9}} this was clamped to 0..31. This mostly affects old NewGRFs that don&#039;t have a cargo translation table.&lt;br /&gt;
|-&lt;br /&gt;
| type_name&lt;br /&gt;
| string&lt;br /&gt;
| String to use as cargo type name. Example: &amp;quot;Passengers&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_CARGO_PLURAL_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| unit_name&lt;br /&gt;
| string&lt;br /&gt;
| String to use for the name of one unit from the cargo type. Currently used for subsidies only (First Passenger service to..). Example string: &amp;quot;Passenger&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_CARGO_SINGULAR_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| units_of_cargo&lt;br /&gt;
| string&lt;br /&gt;
| String used to show the &amp;quot;short cargo&amp;quot; form for cargo units, e.g. &amp;quot;10 tonnes&amp;quot; or &amp;quot;20.000 litres&amp;quot;. Example: &amp;quot;{COMMA} item{P &amp;quot;&amp;quot; s}&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_PASSENGERS and further), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| items_of_cargo&lt;br /&gt;
| string&lt;br /&gt;
| String used to show the &amp;quot;long cargo&amp;quot; form for cargo units, e.g. &amp;quot;10 tonnes of coal&amp;quot; or &amp;quot;20.000 litres of water&amp;quot;. Example: &amp;quot;{COMMA} item{P &amp;quot;&amp;quot; s} of livestock&amp;quot;. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_QUANTITY_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| type_abbreviation&lt;br /&gt;
| string&lt;br /&gt;
| String used for the two-letter cargo type abbreviation. Must start with a {TINYFONT} string-code. Example: &amp;quot;{TINYFONT}XX&amp;quot;. Make sure to avoid multiple cargos having the same abbreviation. The list of [[NML:Default_TTD_strings|default TTD strings]] contains the strings used by the default cargos (TTD_STR_ABBREV_XXX), which may be re-used.&lt;br /&gt;
|-&lt;br /&gt;
| sprite&lt;br /&gt;
| sprite&lt;br /&gt;
| TTD sprite number for the icon of the cargo. Alternatively, set to NEW_CARGO_SPRITE and use a graphics block to define a custom sprite.&lt;br /&gt;
|-&lt;br /&gt;
| weight&lt;br /&gt;
| float 0..255&lt;br /&gt;
| Weight of one unit of the cargo (in tons)&lt;br /&gt;
|-&lt;br /&gt;
| penalty_lowerbound&lt;br /&gt;
| 0..255&lt;br /&gt;
| Delivery time until penalty is applied. The units depend on the vehicle used (see vehicle property &#039;cargo_age_period&#039;), by default 1 unit = 2.5 days.&lt;br /&gt;
|-&lt;br /&gt;
| single_penalty_length&lt;br /&gt;
| 0..255&lt;br /&gt;
| Length of the interval where a single penalty is applied&lt;br /&gt;
|-&lt;br /&gt;
| price_factor&lt;br /&gt;
| float&lt;br /&gt;
| Payment for delivering 10 units of cargo across a distance of 20 squares (in British Pounds), when delivering in less than &#039;penalty_lowerbound&#039; time (no time penalty).&lt;br /&gt;
|-&lt;br /&gt;
| station_list_colour&lt;br /&gt;
| 0..255&lt;br /&gt;
|&lt;br /&gt;
Colour for the station list window (index from the [[NML:Graphic files|default (DOS) palette]])&lt;br /&gt;
|-&lt;br /&gt;
| cargo_payment_list_colour&lt;br /&gt;
| 0..255&lt;br /&gt;
|&lt;br /&gt;
Colour for the cargo payment list window (index from the [[NML:Graphic files|default (DOS) palette]])&lt;br /&gt;
|-&lt;br /&gt;
| is_freight&lt;br /&gt;
| 0 or 1&lt;br /&gt;
| Freight status (for the freighttrains switch); 0=not freight, 1=is freight&lt;br /&gt;
|-&lt;br /&gt;
| cargo_classes&lt;br /&gt;
|&lt;br /&gt;
bitmask([[#Cargo classes|cargo classes]])&lt;br /&gt;
| Cargo classes&lt;br /&gt;
|-&lt;br /&gt;
| cargo_label&lt;br /&gt;
| 4 letters&lt;br /&gt;
| [[CargoTypes|Cargo label]], as used in the [[NML:Cargotable|cargo table]]&lt;br /&gt;
|-&lt;br /&gt;
| town_growth_effect&lt;br /&gt;
| TOWNGROWTH_XXX&lt;br /&gt;
|&lt;br /&gt;
Effect for town growth, see [[#Cargo effects on town growth|Cargo effects on town growth]]&lt;br /&gt;
|-&lt;br /&gt;
| town_growth_multiplier&lt;br /&gt;
| float 0..255&lt;br /&gt;
| {{ottd|no}} Multiplier for town growth. To be used in conjuction with town_growth_effect, when that is not TOWNGROWTH_NONE. For example, a value of 4 makes your cargo have the same effect on town growth as 4 units of food/goods/etc.&lt;br /&gt;
|-&lt;br /&gt;
| callback_flags&lt;br /&gt;
| bitmask(flags)&lt;br /&gt;
|&lt;br /&gt;
Do not set this, unless you use [[NML:Old style callbacks|old-style callbacks]].&lt;br /&gt;
|-&lt;br /&gt;
| capacity_multiplier&lt;br /&gt;
| float 0 .. 255&lt;br /&gt;
| {{ottd|1.2|r22860}} This defines the capacity of vehicles carrying this cargo type, if the vehicle sets no specific capacity to this specific cargo type. Set this property to the amount of cargo a vehicle shall carry, which can carry 1 ton of coal or 1000 thousand litres of water (whatever comparison is more suitable for your cargotype). Depending on whether your cargo type is light or heavy you should set this property either comparing the weight or the volume. Default values are 4 for passengers, 2 for mail, goods and sweets and 1 for all other cargos.&lt;br /&gt;
|-&lt;br /&gt;
| town_production_effect&lt;br /&gt;
| TOWNPRODUCTION_XXX&lt;br /&gt;
| {{ottdp|14.0|no}} Effect for town production, see [[#Town production effect|Town production effect]]&lt;br /&gt;
|-&lt;br /&gt;
| town_production_multiplier&lt;br /&gt;
| float 0..255&lt;br /&gt;
| {{ottdp|14.0|no}} Multiplier for town production, to be used in conjunction with town_production_effect, when that is not TOWNPRODUCTION_NONE. For example, a value of 4 makes a town produce 4 times as much cargo as normal.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cargo payment is computed from &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;price_factor&amp;lt;/code&amp;gt;, amount of cargo transported, distance, and a time delivery factor. Unit of the delivery time is 185 ticks, roughly 2.5 days. The factor is constant (with value 255) if delivery time is less than &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;penalty_lowerbound&amp;lt;/code&amp;gt;. It goes down with rate 1 between &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;penalty_lowerbound + single_penalty_length&amp;lt;/code&amp;gt;, and goes down with rate 2 if the delivery time is even longer. Time delivery factor is never less than 31.&lt;br /&gt;
&lt;br /&gt;
===Cargo classes===&lt;br /&gt;
&lt;br /&gt;
Available cargo classes are listed in the following table. Cargos may be in more than one class. Cargo classes are always used as a bitmask, use the built-in function &amp;lt;code&amp;gt;bitmask()&amp;lt;/code&amp;gt;. For example, &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(CC_EXPRESS, CC_REFRIGERATED)&amp;lt;/code&amp;gt; is used for food.&lt;br /&gt;
&lt;br /&gt;
The history of cargo classes is complex, and the meanings here may not be consistent with how classes are actually used by some grfs.&lt;br /&gt;
&lt;br /&gt;
FIRS and Iron Horse do not conform to the classes here, and use the FRAX Cargo Class Scheme, please see: https://grf.farm/polar_fox/frax_latest.html&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! type of cargo&lt;br /&gt;
|-&lt;br /&gt;
| CC_PASSENGERS&lt;br /&gt;
| passengers, also tourists (ECS)&lt;br /&gt;
|-&lt;br /&gt;
| CC_MAIL&lt;br /&gt;
| mail&lt;br /&gt;
|-&lt;br /&gt;
| CC_EXPRESS&lt;br /&gt;
| express goods, also tourists (ECS)&lt;br /&gt;
|-&lt;br /&gt;
| CC_ARMOURED&lt;br /&gt;
| valuables, diamonds, gold and alike&lt;br /&gt;
|-&lt;br /&gt;
| CC_BULK&lt;br /&gt;
| coal, ore, grain,...&lt;br /&gt;
|-&lt;br /&gt;
| CC_PIECE_GOODS&lt;br /&gt;
| containers, crates, livestock&lt;br /&gt;
|-&lt;br /&gt;
| CC_LIQUID&lt;br /&gt;
| oil, milk, water, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_REFRIGERATED&lt;br /&gt;
| food, milk, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_HAZARDOUS&lt;br /&gt;
| chemicals?, uranium, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_COVERED&lt;br /&gt;
| grain, cement, fruit, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_OVERSIZED&lt;br /&gt;
| vehicles, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_POWDERIZED&lt;br /&gt;
| cement, ...&lt;br /&gt;
|-&lt;br /&gt;
| CC_NON_POURABLE&amp;lt;br&amp;gt;CC_NEO_BULK&lt;br /&gt;
| sugar cane, wool or straw bales, ... (these are synonyms for cargos that are bulk, but can&#039;t be handled in e.g. hoppers)&lt;br /&gt;
|-&lt;br /&gt;
| CC_POTABLE&lt;br /&gt;
| exclude from non-food-grade vehicles&lt;br /&gt;
|-&lt;br /&gt;
| CC_NON_POTABLE&lt;br /&gt;
| exclude from food-grade vehicles&lt;br /&gt;
|-&lt;br /&gt;
| CC_SPECIAL&lt;br /&gt;
| Deprecated, do not set.&lt;br /&gt;
|-&lt;br /&gt;
| NO_CARGO_CLASS&lt;br /&gt;
| Special value that you can used to instead of 0.&lt;br /&gt;
|-&lt;br /&gt;
| ALL_NORMAL_CARGO_CLASSES&lt;br /&gt;
| Bitmask of all cargo classes except CC_SPECIAL. This is the same as &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(CC_PASSENGERS, CC_MAIL, ..., CC_OVERSIZED)&amp;lt;/code&amp;gt;. Note: This is already a bitmask, don&#039;t use the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(..)&amp;lt;/code&amp;gt; function with this.&lt;br /&gt;
|-&lt;br /&gt;
| ALL_CARGO_CLASSES&lt;br /&gt;
| Bitmask of all cargo classes. Same as &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;ALL_NORMAL_CARGO_CLASSES | bitmask(CC_SPECIAL)&amp;lt;/code&amp;gt; Note: This is already a bitmask, don&#039;t use the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;bitmask(..)&amp;lt;/code&amp;gt; function with this.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Cargo effects on town growth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! value&lt;br /&gt;
! effect&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_PASSENGERS&lt;br /&gt;
| Affect towns as passengers do&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_MAIL&lt;br /&gt;
| Affect towns as mail does&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_GOODS&lt;br /&gt;
| Affect towns as goods/candy does&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_WATER&lt;br /&gt;
| Affect towns as water does (second required cargo for towngrowth in the desert)&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_FOOD&lt;br /&gt;
| Affect towns as food/fizzy drinks do (first required cargo for towngrowth in desert/above snowline)&lt;br /&gt;
|-&lt;br /&gt;
| TOWNGROWTH_NONE&lt;br /&gt;
| Don&#039;t affect town growth (default)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no cargos in the game are defined as TOWNGROWTH_FOOD, towns above the snowline will not require food to grow. If no cargos in the game are defined as TOWNGROWTH_FOOD or TOWNGROWTH_WATER, towns in desert will not require food or water to grow. This can be used positively for gameplay purposes, and is otherwise worth being aware of as an unintended side effect when designing cargos.&lt;br /&gt;
&lt;br /&gt;
There are some additional effects of these flags on subsidies and town cargo transport statistics.  See the nfo docs for details: https://newgrf-specs.tt-wiki.net/wiki/Action0/Cargos#Substitute_type_and_multiplier_for_town_growth_.2818.2C_19.29&lt;br /&gt;
&lt;br /&gt;
===Town production effect===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! value&lt;br /&gt;
! effect&lt;br /&gt;
|-&lt;br /&gt;
| TOWNPRODUCTION_PASSENGERS&lt;br /&gt;
| Town produces cargo as like passengers&lt;br /&gt;
|-&lt;br /&gt;
| TOWNPRODUCTION_MAIL&lt;br /&gt;
| Town produces cargo as like mail&lt;br /&gt;
|-&lt;br /&gt;
| TOWNPRODUCTION_NONE&lt;br /&gt;
| Town does not produce cargo (default)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Cargo variables==&lt;br /&gt;
&lt;br /&gt;
Cargos have no variables (yet).&lt;br /&gt;
&lt;br /&gt;
==Cargo callbacks==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! callback&lt;br /&gt;
! return value&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| default&lt;br /&gt;
| Sprite set (with 1 sprite)&lt;br /&gt;
| Graphics for the cargo icon (only if property &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;sprite&amp;lt;/code&amp;gt; is set to NEW_CARGO_SPRITE)&lt;br /&gt;
|-&lt;br /&gt;
| station_rating&lt;br /&gt;
| -16384 .. 16383&lt;br /&gt;
| See detailed explanation below&lt;br /&gt;
|-&lt;br /&gt;
| profit&lt;br /&gt;
| -12748 .. 12748&lt;br /&gt;
| Called whenever cargo is delivered.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 0, 16):&amp;lt;/code&amp;gt; The manhattan distance the cargo was transported.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 16, 8):&amp;lt;/code&amp;gt; The amount of cargo delivered.&lt;br /&gt;
* &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 24, 8):&amp;lt;/code&amp;gt; The time spent en-route (1 unit = 2.5 days).&lt;br /&gt;
The returned value is multiplied by the amount and the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;price_factor&amp;lt;/code&amp;gt; to determine the income the player receives. Returning negative values is possible, it makes players pay for the delivery.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Station rating callback===&lt;br /&gt;
&lt;br /&gt;
The station rating callback is quite complicated and deserves some detailed explanation. The default station rating calculation works as follows:&lt;br /&gt;
&lt;br /&gt;
Internally, station rating is byte with values 0 .. 255, representing respectively 0% and 100%. Every 2.5 days, the transportation &#039;performance&#039; is calculated using some factors outlined below. The station rating is then set to this performance value, with the caveat that the rating change cannot exceed 2 points. Therefore, rating changes are always slow, this callback cannot change this. The initial rating is 175 points (69%). The following factors are parts of the performance, their effects are summed.&lt;br /&gt;
&lt;br /&gt;
====Time since the cargo was last picked up====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Time units (days)&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;gt;21 (&amp;amp;gt;52.5 days)&lt;br /&gt;
| 0 (0%)&lt;br /&gt;
|-&lt;br /&gt;
| 13 .. 21 (32.5 days .. 52.5 days)&lt;br /&gt;
| 25 (10%)&lt;br /&gt;
|-&lt;br /&gt;
| 7 .. 12 (17.5 days .. 32.5 days)&lt;br /&gt;
| 50 (20%)&lt;br /&gt;
|-&lt;br /&gt;
| 4 .. 6 (10 days .. 17.5 days)&lt;br /&gt;
| 95 (37%)&lt;br /&gt;
|-&lt;br /&gt;
| 0..3 (0 days..10 days)&lt;br /&gt;
| 130 (51%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The time unit used equals 185 engine ticks, or 2.5 TTD days. For ships, the time units are divided by 4 before calculating this component, so ships have four times more time before the ratings start dropping.&lt;br /&gt;
&lt;br /&gt;
====Amount of cargo waiting====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Amount of cargo&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;gt;1500&lt;br /&gt;
| -90 (-35%)&lt;br /&gt;
|-&lt;br /&gt;
| 1001..1500&lt;br /&gt;
| -35 (-14%)&lt;br /&gt;
|-&lt;br /&gt;
| 601..1000&lt;br /&gt;
| 0 (0%)&lt;br /&gt;
|-&lt;br /&gt;
| 301..600&lt;br /&gt;
| 10 (4%)&lt;br /&gt;
|-&lt;br /&gt;
| 101..300&lt;br /&gt;
| 30 (12%)&lt;br /&gt;
|-&lt;br /&gt;
| 0..100&lt;br /&gt;
| 40 (16%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Max. speed of the last vehicle picking up the cargo====&lt;br /&gt;
&lt;br /&gt;
This calculation is somewhat complicated. The maximum speed of the vehicle is expressed in &amp;quot;speed units&amp;quot;. For trains and road vehicles, the speed unit is 1 km/h; for ships, it&#039;s 0.5 km/h; for aircraft, it&#039;s 8 mph. If the max. speed is above 255 speed units, 255 is used instead. If the vehicle is slower than 85 units, no points are awarded; otherwise, you get (speed_units-85)/4 points. Therefore, the maximum you can get is 42 points, or 16%.&lt;br /&gt;
&lt;br /&gt;
====Age of the last carrier picking up the cargo====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Age of vehicle (years)&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 10 (4%)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 20 (8%)&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 33 (13%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In TTDPatch this changes when the &#039;newagerating&#039; switch is enabled&lt;br /&gt;
&lt;br /&gt;
====Bonus for AI companies (TTDPatch only)====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! AI intelligence setting&lt;br /&gt;
! Score (%, rounded)&lt;br /&gt;
|-&lt;br /&gt;
| Low&lt;br /&gt;
| 0 (0%)&lt;br /&gt;
|-&lt;br /&gt;
| Medium&lt;br /&gt;
| 31 (12%)&lt;br /&gt;
|-&lt;br /&gt;
| High&lt;br /&gt;
| 63 (25%)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Bonus for statue in nearest town====&lt;br /&gt;
&lt;br /&gt;
If your company has erected a statue in the nearest town, you get 26 points (10%) bonus to all cargo ratings.&lt;br /&gt;
&lt;br /&gt;
====Callback parameters====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info1, 0, 8)&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| |-&lt;br /&gt;
!value!!meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x10||the last vehicle entering the station was a train&lt;br /&gt;
|-&lt;br /&gt;
|0x11||the last vehicle entering the station was a road vehicle&lt;br /&gt;
|-&lt;br /&gt;
|0x12||the last vehicle entering the station was a ship&lt;br /&gt;
|-&lt;br /&gt;
|0x13||the last vehicle entering the station was an aircraft&lt;br /&gt;
|-&lt;br /&gt;
|0||no vehicle entered the station yet, or (TTDPatch) the last one entering was sold&lt;br /&gt;
|}&lt;br /&gt;
Please note that there&#039;s only one &amp;quot;last vehicle type&amp;quot; field per station, so the vehicle this refers to may not have picked up any of your cargo.&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 0, 8)&amp;lt;/code&amp;gt;: The time since the cargo was last picked up, in the time units described above (1 unit = 2.5 days independent of vehicle type)&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 8, 16)&amp;lt;/code&amp;gt;: The amount of cargo waiting.&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;getbits(extra_callback_info2, 24, 8)&amp;lt;/code&amp;gt;: The speed of the last vehicle picking the cargo up, in the speed units described above (if no vehicle entered the station yet, the value is 0xFF).&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Effect of callback====&lt;br /&gt;
&lt;br /&gt;
The return value of the callback replaces the first three components (time since pickup, amount of cargo, max speed) of the calculation. The bonus for statues, TTDPatch AIs and new vehicles is always in effect, you cannot (yet) change this.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4902</id>
		<title>Standardized Roadtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4902"/>
		<updated>2024-12-01T00:45:32Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This scheme was originally conceived in order to decrease the amount of necessary hidden road and tramtrack types. This is done by standardizing which labels vehicles and infrastructure should use. The standard also allows for more gameplay depth by having the option to limit vehicles to certain types of roads. It does similarly to the railtype scheme allow mixing of any vehicle set with any infrastructure set. It does however not allow multiple infrastructure sets to be used at the same time. It does not prevent it but all of the sets used have to be made to be used with each other, or use different surfaces/types which don&#039;t conflict with each other. The standard sets no limit on how vehicle sets can be used.&lt;br /&gt;
&lt;br /&gt;
It is ultimately up to the infrastructure set to chose what roadtypes are available and thereby what vehicles are available. Infrastructure and vehicles can both be in the same set, it is however recommended to be able to disable the infrastructure with parameters (preferably on an individual basis per roadtype) in case the player wants to use a different set for their infrastructure.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Surface / Type [X***] ===&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Roadtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Road&lt;br /&gt;
| RI(S)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(S)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Guided busway&lt;br /&gt;
| RPG&lt;br /&gt;
| P then R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| RB(Z)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| W&lt;br /&gt;
| Waterway&lt;br /&gt;
| W&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Amphibious on road (hidden)&lt;br /&gt;
| RPI(S)W&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Snowy or Iced Track&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Amphibious on snow (hidden)&lt;br /&gt;
| SW&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Pedestrian Zone&lt;br /&gt;
| Z&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Pump/Pipeline&lt;br /&gt;
| p&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Rail&lt;br /&gt;
| RI(M)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(M)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| (R)B&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Suspended Monorail&lt;br /&gt;
| S&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| M&lt;br /&gt;
| Metro&lt;br /&gt;
| M(RP)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| Trackless trams&lt;br /&gt;
| O&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy/Electrical infrastructure&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is the vehicle set&#039;s responsibility to implement fallbacks to other appropriate surfaces. It is also up to the author to decide if they want to do it or not. This means that road/tramtrack sets shouldn&#039;t add these to their [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] and [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]]&lt;br /&gt;
&lt;br /&gt;
It is up to the track set to implement all powered roadtypes in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. It is further advised to implement support for the roadtypes/tramtypes in brackets, if applicable.&lt;br /&gt;
&lt;br /&gt;
Hidden roadtypes for compatibility should be implemented by road sets. It is up to the author to decide if they want to implement it as a hidden roadtype or not.&lt;br /&gt;
&lt;br /&gt;
=== Speed / Feature [*X**] ===&lt;br /&gt;
Any character may be used for roads, but at least one road must have &amp;quot;A&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Vehicles should use &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Terrain / Stability [**X*] ===&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| a&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| c&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability.&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
=== Energy [***X] ===&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| N&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Ground electrified&lt;br /&gt;
| Ground electrified&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| E or G&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| n/a&lt;br /&gt;
| Third Rail&lt;br /&gt;
| G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| n/a&lt;br /&gt;
| Fourth Rail&lt;br /&gt;
| 3 then G&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| n/a&lt;br /&gt;
| Cable&lt;br /&gt;
| G&lt;br /&gt;
|}&lt;br /&gt;
A tramtrack set that only uses specialized types, should map the generic types to the most suitable specialized type in the set with the help of the [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
=== The default labels (ROAD, ELRL) and non-standard labels===&lt;br /&gt;
OpenTTD will allways define ROAD and ELRL incase there are vehicles for them. It is therefore recomended to have these present in the set so that you can map them to appropriete labels from the standard. There are a few ways of doing this:&lt;br /&gt;
*Replacing one of the standardised types with the default label and putting the standardised label in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
*Defining ROAD and/or ELRL separately from the standardised labels and adding the standard ones to the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. The main advantage of this is that you can use a parameter to map ROAD and/or ELRL to the standardised labels. This allows the player to chose where there non standardised vehicles will be able to go.&lt;br /&gt;
&lt;br /&gt;
Vehicle set authors might want to add the default labels and non-standard labels as a fallback. If not implemented for the defualt labels, their vehicles won&#039;t show up on the default roads and/or tracks, leading to countless bug reports from players. Non standard labels that might be worth adding fallbacks too are: ELRD, RAIL, HAUL and probably some more.&lt;br /&gt;
&lt;br /&gt;
== Summary for Road/Tramtrack sets ==&lt;br /&gt;
This section summarizes the above for road/tramtrack sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Chose which Surfaces and types you want in your set and give them the correct [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* If you only provide roads/tramtracks for one surface/type, consider leaving some free road/tramtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed / Feature&lt;br /&gt;
* Make sure class A is always available.&lt;br /&gt;
* Use B, C and so on if you have multible roads/tramtracks with the otherwise the same label.&lt;br /&gt;
; [**X*] Terrain / Stability &lt;br /&gt;
* Always define classes A through C for every road/tramtrack surface/type energy combination, either:&lt;br /&gt;
** Directly via a real road/tramtype definition;&lt;br /&gt;
** Indirectly via the alternate road/tramtype label list, [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Always define the default labels when possible, instead of what would be the equivalent of the default label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the default labels using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* Map common non-standard labels to the most similar label in this scheme using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
== Summary for vehicle sets ==&lt;br /&gt;
This section summarizes the above for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Use the surface / type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the road/tramtype table in case you want the vehicle to be available on a different road or tramtrack if no matching road/tramtrack set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;G&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;P&amp;quot; or &amp;quot;R&amp;quot;).&lt;br /&gt;
; [*X**] Speed / Feature &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Terrain / Stability&lt;br /&gt;
* Use A, B or C depending on where you want your vehicles to be able to drive.&lt;br /&gt;
** A is used for slow offroad capable vehicles which aren&#039;t allowed on Motorways and similar Roads&lt;br /&gt;
** B is used for vehicles which can drive offroad but are also allowed on Motorways.&lt;br /&gt;
** C is used for vehicles which can&#039;t go offroad or similar.&lt;br /&gt;
** Use B if you aren&#039;t sure what to chose.&lt;br /&gt;
* Never use a or c.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Define a fallback type to the default labels via the road/tramtype table in case you want the vehicle to be available on the default roads/track if no matching set is loaded.&lt;br /&gt;
* Do the same for any non-standard labels that may be relevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the road/tramtype, it is the job of the road/track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
=== Example of fallback order for vehicle sets ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Unchanged label&lt;br /&gt;
! Fallback order&lt;br /&gt;
|-&lt;br /&gt;
| GACE (road)&lt;br /&gt;
| GACE -&amp;gt; PACE -&amp;gt; RACE -&amp;gt; (ROAD)&lt;br /&gt;
|-&lt;br /&gt;
| PAB4 (tram)&lt;br /&gt;
| PAB4 -&amp;gt; PAB3 -&amp;gt; PABG -&amp;gt; RAB4 -&amp;gt; RAB3 -&amp;gt; RABG&lt;br /&gt;
|-&lt;br /&gt;
| IAAG (road)&lt;br /&gt;
| IAAG -&amp;gt; RAAG&lt;br /&gt;
|-&lt;br /&gt;
| AACE (road)&lt;br /&gt;
| AACE -&amp;gt; RAAE -&amp;gt; (ELRD)&lt;br /&gt;
|-&lt;br /&gt;
| RABE (tram)&lt;br /&gt;
| RABE -&amp;gt; (ELRL)&lt;br /&gt;
|-&lt;br /&gt;
| PAAN (tram)&lt;br /&gt;
| PAAN -&amp;gt; RAAN -&amp;gt; (RAIL)&lt;br /&gt;
|}&lt;br /&gt;
== Forum topic ==&lt;br /&gt;
Feel free to discuss and ask questions about the scheme at the forum topic [https://www.tt-forums.net/viewtopic.php?t=90715 Here].&lt;br /&gt;
&lt;br /&gt;
== Possible additions ==&lt;br /&gt;
To be discussed in the forum topic...&lt;br /&gt;
&lt;br /&gt;
==== Surface / Type [X***] ====&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Deep-Bore Metro&lt;br /&gt;
| (For subsurface logistics systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| z&lt;br /&gt;
| Passenger-only (Deep-Bore Metro)&lt;br /&gt;
| (For subsurface metro systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| X or x&lt;br /&gt;
| Multiple guidance systems or guages&lt;br /&gt;
| (Depends on intent; only two tramtype rail system combinations can exist for a given set of standardized labels - i.e. XABE and xABE - making it necessary to plan accordingly)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0 (#)&lt;br /&gt;
| Invisible&lt;br /&gt;
| For invisible tramtypes; Fallback for INVI, BKVI, 0000 and other &amp;quot;null&amp;quot; tramtypes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| s&lt;br /&gt;
| Regular Rail (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Passenger-only (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| r&lt;br /&gt;
| Multi-gauge Rail (Standard Gauge, Metre Gauge, 600mm Gauge)&lt;br /&gt;
| s, R, p, P&lt;br /&gt;
| P or p, depending on the vehicle&#039;s gauge (City tram); R, s or 6, depending on the vehicle&#039;s gauge (Cargo tram)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Industrial Tramway (600mm Gauge - default tramway rails graphics)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Terrain / Stability [**X*] ====&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier. &#039;&#039;(This is edited to include the potential &amp;quot;Low Clearance&amp;quot; hidden roadtype.)&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| aA&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| Regular (Low clearance)&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| Cc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability. Class &amp;quot;b&amp;quot; should only be used for a hidden roadtype, such as &amp;quot;RAbN&amp;quot;, &amp;quot;PAbN&amp;quot; and electrified variants. This is optional, but if used it should be applied to the [[NML:Vehicles#Road_vehicle_properties|roadtype (NML) or tram_type (NML)]] property of all vehicles able to travel under the relevant low-clearance obstacles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;As a frame of reference, realistically &amp;quot;RAbN&amp;quot; should be used for all eye-candy cars small cargo vans and single-decker non-electrified cargo trams, while trucks (excluding trolleytrucks) and non-electrified double-decker trams should default to &amp;quot;RABN&amp;quot;. &amp;quot;RAbE&amp;quot; and other powered vehicles should be used by trolleytrucks and electric cargo trams (excluding double-decker trams). &amp;quot;PAbN&amp;quot; should be used by double-decker busses, and most non-electric trams (excluding double-decker trams). &amp;quot;PAbE&amp;quot; should be used by most passenger trams, excluding double-decker passenger trams. For other energy sources, the instructions for&amp;quot;RAbE&amp;quot; and &amp;quot;PAbE&amp;quot; can easily be adapted for any other power source (&amp;quot;RAbG&amp;quot; and &amp;quot;PAbG&amp;quot;, &amp;quot;RAbI&amp;quot; and &amp;quot;PAbI&amp;quot;, etc.).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
Class &amp;quot;b&amp;quot; is also optional for road/tramtype sets but should have ROADTYPE_FLAG_HIDDEN set in the bitmask of [[NML:Roadtypes#Roadtype_properties|roadtype_flags (NML)]]. Instead, a low-clearance variant of a standardized roadtype or tramtype should be compatible with all other standard classes (&amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, B&amp;quot;, &amp;quot;C&amp;quot; and &amp;quot;c&amp;quot;) using the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] in a road/tramtype set that sets the standardized labels (i.e. &amp;quot;RAbN&amp;quot; should be used for small cargo vans and must fallback to &amp;quot;RAaN, RAAN, RABN, RACN, RAcN&amp;quot;, and &amp;quot;PAbE&amp;quot; should be used by all busses and must fallback to &amp;quot;PAaN, PAAN, PABN, PACN, PAcN&amp;quot;). If a complex roadtype (i.e. RAaN) needs a low-clearance variant, create a non-standard label (i.e. XMPL), then define the relevant standard labels (RAaN in this case, and RAbN in turn) in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] of the non-standard label (XMPL), and define the entire class of labels (RAaN, RAAN, RABN, RAbN, RACN, RAcN) in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] of the non-standard label (XMPL).&lt;br /&gt;
&lt;br /&gt;
==== Energy [***X] ====&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Z then G then N&lt;br /&gt;
|-&lt;br /&gt;
| i&lt;br /&gt;
| Eyecandy/Pipeline Infrastructure&lt;br /&gt;
| Eyecandy/Electric &amp;amp; Telecom Infrastructure&lt;br /&gt;
| Z then E then G then I&lt;br /&gt;
|-&lt;br /&gt;
| L&lt;br /&gt;
| Reclaimed Elevated Rail Eco-Park&lt;br /&gt;
| Elevated Rail&lt;br /&gt;
| I then Z then G then N (Roadtype); E then Z then G then I (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| No Commercial Vehicles/Parking Lot (restricted roads for RABN-compatible cars that busses and trucks cannot use; eye candy cars should use RAbP as the primary label if intended to support this)&lt;br /&gt;
| &amp;quot;PneuMetro&amp;quot; (Pneumatic Metro/Subway)&lt;br /&gt;
| I then N then i (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| &amp;quot;SolaRoad&amp;quot; (Solar Roadway) or &amp;quot;SmartStreet&amp;quot; (smartgrid network-enabled roads)&lt;br /&gt;
| Superscience/Supernatural/Special (For anything that isn&#039;t fuel and isn&#039;t based on any real energy source; psychokinetic, mana, creative energy, etc.)&lt;br /&gt;
| I then Z then E then G then N&lt;br /&gt;
|-&lt;br /&gt;
| V&lt;br /&gt;
| Viaduct/Voltaic Variant (For a second bridge variant of a road, or a trolleybus variant of a road with limited overhead clearance)&lt;br /&gt;
| &amp;quot;VacTube&amp;quot; (VacTrain Metro/Subway)&lt;br /&gt;
| P (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| t&lt;br /&gt;
| Cheat-like &amp;quot;electrification&amp;quot; for unified tunnels (to save on railtype labels)&lt;br /&gt;
| System-agnostic electricity in underground road/metro&lt;br /&gt;
| Use with speed &amp;quot;S&amp;quot; (&amp;quot;Subterranean&amp;quot;) and surface X or x (e.g. XSB_ and xSB_) or surface R (road, or a rail-based tramtype). ; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| X&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Use with surface X or x (e.g. XABX and xABX) or surface R (road, or a rail-based tramtype). For use only when at least one standardized label is an energy supply and multiple non-conflicting energy types are all at the same level, such as electrified, ground electrified and induction-charging overlap; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, incompatible&lt;br /&gt;
| Use this with surface x (e.g. xABx) or the surface systems (e.g. SABx, RABx, MABx). For use when tramtypes are at different heights but all are fundamentally incompatible (i.e. suspended monorail, trackless tram and pneumatic metro); Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, mix of compatible/incompatible; &amp;quot;cheat&amp;quot;&lt;br /&gt;
| For use when tramtypes are a mix of compatible and fundamentally incompatible (i.e. electrified, ground electrified, trackless tram, suspended monorail, tram and pneumatic metro); Do not set powered_railtype_list for these, instead use alternative_railtype_list, or define these in another label&#039;s powered_railtype_list (i.e. XABc for XABN/XABE/XABX and RABc for RABN/RABE/RABX).&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4901</id>
		<title>Standardized Roadtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4901"/>
		<updated>2024-12-01T00:44:56Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This scheme was originally conceived in order to decrease the amount of necessary hidden road and tramtrack types. This is done by standardizing which labels vehicles and infrastructure should use. The standard also allows for more gameplay depth by having the option to limit vehicles to certain types of roads. It does similarly to the railtype scheme allow mixing of any vehicle set with any infrastructure set. It does however not allow multiple infrastructure sets to be used at the same time. It does not prevent it but all of the sets used have to be made to be used with each other, or use different surfaces/types which don&#039;t conflict with each other. The standard sets no limit on how vehicle sets can be used.&lt;br /&gt;
&lt;br /&gt;
It is ultimately up to the infrastructure set to chose what roadtypes are available and thereby what vehicles are available. Infrastructure and vehicles can both be in the same set, it is however recommended to be able to disable the infrastructure with parameters (preferably on an individual basis per roadtype) in case the player wants to use a different set for their infrastructure.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Surface / Type [X***] ===&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Roadtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Road&lt;br /&gt;
| RI(S)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(S)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Guided busway&lt;br /&gt;
| RPG&lt;br /&gt;
| P then R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| RB(Z)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| W&lt;br /&gt;
| Waterway&lt;br /&gt;
| W&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Amphibious on road (hidden)&lt;br /&gt;
| RPI(S)W&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Snowy or Iced Track&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Amphibious on snow (hidden)&lt;br /&gt;
| SW&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Pedestrian Zone&lt;br /&gt;
| Z&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Pump/Pipeline&lt;br /&gt;
| p&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Rail&lt;br /&gt;
| RI(M)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(M)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| (R)B&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Suspended Monorail&lt;br /&gt;
| S&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| M&lt;br /&gt;
| Metro&lt;br /&gt;
| M(RP)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| Trackless trams&lt;br /&gt;
| O&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy/Electrical infrastructure&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is the vehicle set&#039;s responsibility to implement fallbacks to other appropriate surfaces. It is also up to the author to decide if they want to do it or not. This means that road/tramtrack sets shouldn&#039;t add these to their [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] and [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]]&lt;br /&gt;
&lt;br /&gt;
It is up to the track set to implement all powered roadtypes in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. It is further advised to implement support for the roadtypes/tramtypes in brackets, if applicable.&lt;br /&gt;
&lt;br /&gt;
Hidden roadtypes for compatibility should be implemented by road sets. It is up to the author to decide if they want to implement it as a hidden roadtype or not.&lt;br /&gt;
&lt;br /&gt;
=== Speed / Feature [*X**] ===&lt;br /&gt;
Any character may be used for roads, but at least one road must have &amp;quot;A&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Vehicles should use &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Terrain / Stability [**X*] ===&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| a&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| c&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability.&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
=== Energy [***X] ===&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| N&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Ground electrified&lt;br /&gt;
| Ground electrified&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| E or G&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| n/a&lt;br /&gt;
| Third Rail&lt;br /&gt;
| G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| n/a&lt;br /&gt;
| Fourth Rail&lt;br /&gt;
| 3 then G&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| n/a&lt;br /&gt;
| Cable&lt;br /&gt;
| G&lt;br /&gt;
|}&lt;br /&gt;
A tramtrack set that only uses specialized types, should map the generic types to the most suitable specialized type in the set with the help of the [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
=== The default labels (ROAD, ELRL) and non-standard labels===&lt;br /&gt;
OpenTTD will allways define ROAD and ELRL incase there are vehicles for them. It is therefore recomended to have these present in the set so that you can map them to appropriete labels from the standard. There are a few ways of doing this:&lt;br /&gt;
*Replacing one of the standardised types with the default label and putting the standardised label in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
*Defining ROAD and/or ELRL separately from the standardised labels and adding the standard ones to the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. The main advantage of this is that you can use a parameter to map ROAD and/or ELRL to the standardised labels. This allows the player to chose where there non standardised vehicles will be able to go.&lt;br /&gt;
&lt;br /&gt;
Vehicle set authors might want to add the default labels and non-standard labels as a fallback. If not implemented for the defualt labels, their vehicles won&#039;t show up on the default roads and/or tracks, leading to countless bug reports from players. Non standard labels that might be worth adding fallbacks too are: ELRD, RAIL, HAUL and probably some more.&lt;br /&gt;
&lt;br /&gt;
== Summary for Road/Tramtrack sets ==&lt;br /&gt;
This section summarizes the above for road/tramtrack sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Chose which Surfaces and types you want in your set and give them the correct [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* If you only provide roads/tramtracks for one surface/type, consider leaving some free road/tramtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed / Feature&lt;br /&gt;
* Make sure class A is always available.&lt;br /&gt;
* Use B, C and so on if you have multible roads/tramtracks with the otherwise the same label.&lt;br /&gt;
; [**X*] Terrain / Stability &lt;br /&gt;
* Always define classes A through C for every road/tramtrack surface/type energy combination, either:&lt;br /&gt;
** Directly via a real road/tramtype definition;&lt;br /&gt;
** Indirectly via the alternate road/tramtype label list, [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Always define the default labels when possible, instead of what would be the equivalent of the default label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the default labels using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* Map common non-standard labels to the most similar label in this scheme using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
== Summary for vehicle sets ==&lt;br /&gt;
This section summarizes the above for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Use the surface / type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the road/tramtype table in case you want the vehicle to be available on a different road or tramtrack if no matching road/tramtrack set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;G&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;P&amp;quot; or &amp;quot;R&amp;quot;).&lt;br /&gt;
; [*X**] Speed / Feature &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Terrain / Stability&lt;br /&gt;
* Use A, B or C depending on where you want your vehicles to be able to drive.&lt;br /&gt;
** A is used for slow offroad capable vehicles which aren&#039;t allowed on Motorways and similar Roads&lt;br /&gt;
** B is used for vehicles which can drive offroad but are also allowed on Motorways.&lt;br /&gt;
** C is used for vehicles which can&#039;t go offroad or similar.&lt;br /&gt;
** Use B if you aren&#039;t sure what to chose.&lt;br /&gt;
* Never use a or c.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Define a fallback type to the default labels via the road/tramtype table in case you want the vehicle to be available on the default roads/track if no matching set is loaded.&lt;br /&gt;
* Do the same for any non-standard labels that may be relevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the road/tramtype, it is the job of the road/track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
=== Example of fallback order for vehicle sets ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Unchanged label&lt;br /&gt;
! Fallback order&lt;br /&gt;
|-&lt;br /&gt;
| GACE (road)&lt;br /&gt;
| GACE -&amp;gt; PACE -&amp;gt; RACE -&amp;gt; (ROAD)&lt;br /&gt;
|-&lt;br /&gt;
| PAB4 (tram)&lt;br /&gt;
| PAB4 -&amp;gt; PAB3 -&amp;gt; PABG -&amp;gt; RAB4 -&amp;gt; RAB3 -&amp;gt; RABG&lt;br /&gt;
|-&lt;br /&gt;
| IAAG (road)&lt;br /&gt;
| IAAG -&amp;gt; RAAG&lt;br /&gt;
|-&lt;br /&gt;
| AACE (road)&lt;br /&gt;
| AACE -&amp;gt; RAAE -&amp;gt; (ELRD)&lt;br /&gt;
|-&lt;br /&gt;
| RABE (tram)&lt;br /&gt;
| RABE -&amp;gt; (ELRL)&lt;br /&gt;
|-&lt;br /&gt;
| PAAN (tram)&lt;br /&gt;
| PAAN -&amp;gt; RAAN -&amp;gt; (RAIL)&lt;br /&gt;
|}&lt;br /&gt;
== Forum topic ==&lt;br /&gt;
Feel free to discuss and ask questions about the scheme at the forum topic [https://www.tt-forums.net/viewtopic.php?t=90715 Here].&lt;br /&gt;
&lt;br /&gt;
=== Possible additions ===&lt;br /&gt;
To be discussed in the forum topic...&lt;br /&gt;
&lt;br /&gt;
==== Surface / Type [X***] ====&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Deep-Bore Metro&lt;br /&gt;
| (For subsurface logistics systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| z&lt;br /&gt;
| Passenger-only (Deep-Bore Metro)&lt;br /&gt;
| (For subsurface metro systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| X or x&lt;br /&gt;
| Multiple guidance systems or guages&lt;br /&gt;
| (Depends on intent; only two tramtype rail system combinations can exist for a given set of standardized labels - i.e. XABE and xABE - making it necessary to plan accordingly)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0 (#)&lt;br /&gt;
| Invisible&lt;br /&gt;
| For invisible tramtypes; Fallback for INVI, BKVI, 0000 and other &amp;quot;null&amp;quot; tramtypes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| s&lt;br /&gt;
| Regular Rail (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Passenger-only (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| r&lt;br /&gt;
| Multi-gauge Rail (Standard Gauge, Metre Gauge, 600mm Gauge)&lt;br /&gt;
| s, R, p, P&lt;br /&gt;
| P or p, depending on the vehicle&#039;s gauge (City tram); R, s or 6, depending on the vehicle&#039;s gauge (Cargo tram)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Industrial Tramway (600mm Gauge - default tramway rails graphics)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Terrain / Stability [**X*] ====&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier. &#039;&#039;(This is edited to include the potential &amp;quot;Low Clearance&amp;quot; hidden roadtype.)&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| aA&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| Regular (Low clearance)&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| Cc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability. Class &amp;quot;b&amp;quot; should only be used for a hidden roadtype, such as &amp;quot;RAbN&amp;quot;, &amp;quot;PAbN&amp;quot; and electrified variants. This is optional, but if used it should be applied to the [[NML:Vehicles#Road_vehicle_properties|roadtype (NML) or tram_type (NML)]] property of all vehicles able to travel under the relevant low-clearance obstacles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;As a frame of reference, realistically &amp;quot;RAbN&amp;quot; should be used for all eye-candy cars small cargo vans and single-decker non-electrified cargo trams, while trucks (excluding trolleytrucks) and non-electrified double-decker trams should default to &amp;quot;RABN&amp;quot;. &amp;quot;RAbE&amp;quot; and other powered vehicles should be used by trolleytrucks and electric cargo trams (excluding double-decker trams). &amp;quot;PAbN&amp;quot; should be used by double-decker busses, and most non-electric trams (excluding double-decker trams). &amp;quot;PAbE&amp;quot; should be used by most passenger trams, excluding double-decker passenger trams. For other energy sources, the instructions for&amp;quot;RAbE&amp;quot; and &amp;quot;PAbE&amp;quot; can easily be adapted for any other power source (&amp;quot;RAbG&amp;quot; and &amp;quot;PAbG&amp;quot;, &amp;quot;RAbI&amp;quot; and &amp;quot;PAbI&amp;quot;, etc.).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
Class &amp;quot;b&amp;quot; is also optional for road/tramtype sets but should have ROADTYPE_FLAG_HIDDEN set in the bitmask of [[NML:Roadtypes#Roadtype_properties|roadtype_flags (NML)]]. Instead, a low-clearance variant of a standardized roadtype or tramtype should be compatible with all other standard classes (&amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, B&amp;quot;, &amp;quot;C&amp;quot; and &amp;quot;c&amp;quot;) using the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] in a road/tramtype set that sets the standardized labels (i.e. &amp;quot;RAbN&amp;quot; should be used for small cargo vans and must fallback to &amp;quot;RAaN, RAAN, RABN, RACN, RAcN&amp;quot;, and &amp;quot;PAbE&amp;quot; should be used by all busses and must fallback to &amp;quot;PAaN, PAAN, PABN, PACN, PAcN&amp;quot;). If a complex roadtype (i.e. RAaN) needs a low-clearance variant, create a non-standard label (i.e. XMPL), then define the relevant standard labels (RAaN in this case, and RAbN in turn) in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] of the non-standard label (XMPL), and define the entire class of labels (RAaN, RAAN, RABN, RAbN, RACN, RAcN) in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] of the non-standard label (XMPL).&lt;br /&gt;
&lt;br /&gt;
==== Energy [***X] ====&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Z then G then N&lt;br /&gt;
|-&lt;br /&gt;
| i&lt;br /&gt;
| Eyecandy/Pipeline Infrastructure&lt;br /&gt;
| Eyecandy/Electric &amp;amp; Telecom Infrastructure&lt;br /&gt;
| Z then E then G then I&lt;br /&gt;
|-&lt;br /&gt;
| L&lt;br /&gt;
| Reclaimed Elevated Rail Eco-Park&lt;br /&gt;
| Elevated Rail&lt;br /&gt;
| I then Z then G then N (Roadtype); E then Z then G then I (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| No Commercial Vehicles/Parking Lot (restricted roads for RABN-compatible cars that busses and trucks cannot use; eye candy cars should use RAbP as the primary label if intended to support this)&lt;br /&gt;
| &amp;quot;PneuMetro&amp;quot; (Pneumatic Metro/Subway)&lt;br /&gt;
| I then N then i (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| &amp;quot;SolaRoad&amp;quot; (Solar Roadway) or &amp;quot;SmartStreet&amp;quot; (smartgrid network-enabled roads)&lt;br /&gt;
| Superscience/Supernatural/Special (For anything that isn&#039;t fuel and isn&#039;t based on any real energy source; psychokinetic, mana, creative energy, etc.)&lt;br /&gt;
| I then Z then E then G then N&lt;br /&gt;
|-&lt;br /&gt;
| V&lt;br /&gt;
| Viaduct/Voltaic Variant (For a second bridge variant of a road, or a trolleybus variant of a road with limited overhead clearance)&lt;br /&gt;
| &amp;quot;VacTube&amp;quot; (VacTrain Metro/Subway)&lt;br /&gt;
| P (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| t&lt;br /&gt;
| Cheat-like &amp;quot;electrification&amp;quot; for unified tunnels (to save on railtype labels)&lt;br /&gt;
| System-agnostic electricity in underground road/metro&lt;br /&gt;
| Use with speed &amp;quot;S&amp;quot; (&amp;quot;Subterranean&amp;quot;) and surface X or x (e.g. XSB_ and xSB_) or surface R (road, or a rail-based tramtype). ; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| X&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Use with surface X or x (e.g. XABX and xABX) or surface R (road, or a rail-based tramtype). For use only when at least one standardized label is an energy supply and multiple non-conflicting energy types are all at the same level, such as electrified, ground electrified and induction-charging overlap; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, incompatible&lt;br /&gt;
| Use this with surface x (e.g. xABx) or the surface systems (e.g. SABx, RABx, MABx). For use when tramtypes are at different heights but all are fundamentally incompatible (i.e. suspended monorail, trackless tram and pneumatic metro); Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, mix of compatible/incompatible; &amp;quot;cheat&amp;quot;&lt;br /&gt;
| For use when tramtypes are a mix of compatible and fundamentally incompatible (i.e. electrified, ground electrified, trackless tram, suspended monorail, tram and pneumatic metro); Do not set powered_railtype_list for these, instead use alternative_railtype_list, or define these in another label&#039;s powered_railtype_list (i.e. XABc for XABN/XABE/XABX and RABc for RABN/RABE/RABX).&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4900</id>
		<title>Standardized Roadtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4900"/>
		<updated>2024-12-01T00:35:54Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Undo revision 4813 by Desertbus95 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This scheme was originally conceived in order to decrease the amount of necessary hidden road and tramtrack types. This is done by standardizing which labels vehicles and infrastructure should use. The standard also allows for more gameplay depth by having the option to limit vehicles to certain types of roads. It does similarly to the railtype scheme allow mixing of any vehicle set with any infrastructure set. It does however not allow multiple infrastructure sets to be used at the same time. It does not prevent it but all of the sets used have to be made to be used with each other, or use different surfaces/types which don&#039;t conflict with each other. The standard sets no limit on how vehicle sets can be used.&lt;br /&gt;
&lt;br /&gt;
It is ultimately up to the infrastructure set to chose what roadtypes are available and thereby what vehicles are available. Infrastructure and vehicles can both be in the same set, it is however recommended to be able to disable the infrastructure with parameters (preferably on an individual basis per roadtype) in case the player wants to use a different set for their infrastructure.&lt;br /&gt;
&lt;br /&gt;
* While this is a guide rather than a hard rule, it is recommended to think of standardized roadtypes vs. &amp;quot;fancy&amp;quot; roadtypes (not a default - ROAD for roadtypes, ELRL for tramtypes - and not to this standard; for example &amp;quot;FNCY&amp;quot;, &amp;quot;HAUL&amp;quot; and &amp;quot;NSTD&amp;quot; would be fancy labels) as a microcosm of the difference between a base set (OpenGFX) and a NewGRF that provides new graphics; The goal is for a basic roadtype set to cover as many standardized labels as is appropriate, and leave the more niche uses of the system to another set. This reduces the number of necessary roadtypes to a bare minimum, allowing optional roadtypes more room to cover corner cases.&lt;br /&gt;
** The reason to keep the above in mind is that if done in this way the effect works very differently than railtypes, where the primary concern is to allow gauge, energy source and so on to exist and bind trains from all sets to only the logically compatible railtypes. Roads and, by extension, streetcar tracks are more compatible with vehicles but also have much more variation. This is complicated by game engine limitations; only 60 - or 61 without ELRL - tracktype slots exist in recent versions of OpenTTD, but reaching that limit is usually a non-issue. Roadtypes and Tramtypes are considered the same on that front by the game engine, leaving 62 tramtypes - 64, including ROAD and ELRL - to be split in a pool between the two.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Surface / Type [X***] ===&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Roadtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Road&lt;br /&gt;
| RI(S)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(S)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Guided busway&lt;br /&gt;
| RPG&lt;br /&gt;
| P then R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| RB(Z)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| W&lt;br /&gt;
| Waterway&lt;br /&gt;
| W&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Amphibious on road (hidden)&lt;br /&gt;
| RPI(S)W&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Snowy or Iced Track&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Amphibious on snow (hidden)&lt;br /&gt;
| SW&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Pedestrian Zone&lt;br /&gt;
| Z&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Pump/Pipeline&lt;br /&gt;
| p&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Rail&lt;br /&gt;
| RI(M)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(M)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| (R)B&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Suspended Monorail&lt;br /&gt;
| S&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| M&lt;br /&gt;
| Metro&lt;br /&gt;
| M(RP)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| Trackless trams&lt;br /&gt;
| O&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy/Electrical infrastructure&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is the vehicle set&#039;s responsibility to implement fallbacks to other appropriate surfaces. It is also up to the author to decide if they want to do it or not. This means that road/tramtrack sets shouldn&#039;t add these to their [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] and [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]]&lt;br /&gt;
&lt;br /&gt;
It is up to the track set to implement all powered roadtypes in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. It is further advised to implement support for the roadtypes/tramtypes in brackets, if applicable.&lt;br /&gt;
&lt;br /&gt;
Hidden roadtypes for compatibility should be implemented by road sets. It is up to the author to decide if they want to implement it as a hidden roadtype or not.&lt;br /&gt;
&lt;br /&gt;
=== Speed / Feature [*X**] ===&lt;br /&gt;
Any character may be used for roads, but at least one road must have &amp;quot;A&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Vehicles should use &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Terrain / Stability [**X*] ===&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| a&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| c&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability.&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
=== Energy [***X] ===&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| N&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Ground electrified&lt;br /&gt;
| Ground electrified&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| E or G&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| n/a&lt;br /&gt;
| Third Rail&lt;br /&gt;
| G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| n/a&lt;br /&gt;
| Fourth Rail&lt;br /&gt;
| 3 then G&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| n/a&lt;br /&gt;
| Cable&lt;br /&gt;
| G&lt;br /&gt;
|}&lt;br /&gt;
A tramtrack set that only uses specialized types, should map the generic types to the most suitable specialized type in the set with the help of the [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
=== The default labels (ROAD, ELRL) and non-standard labels===&lt;br /&gt;
OpenTTD will allways define ROAD and ELRL incase there are vehicles for them. It is therefore recomended to have these present in the set so that you can map them to appropriete labels from the standard. There are a few ways of doing this:&lt;br /&gt;
*Replacing one of the standardised types with the default label and putting the standardised label in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
*Defining ROAD and/or ELRL separately from the standardised labels and adding the standard ones to the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. The main advantage of this is that you can use a parameter to map ROAD and/or ELRL to the standardised labels. This allows the player to chose where there non standardised vehicles will be able to go.&lt;br /&gt;
&lt;br /&gt;
Vehicle set authors might want to add the default labels and non-standard labels as a fallback. If not implemented for the defualt labels, their vehicles won&#039;t show up on the default roads and/or tracks, leading to countless bug reports from players. Non standard labels that might be worth adding fallbacks too are: ELRD, RAIL, HAUL and probably some more.&lt;br /&gt;
&lt;br /&gt;
== Summary for Road/Tramtrack sets ==&lt;br /&gt;
This section summarizes the above for road/tramtrack sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Chose which Surfaces and types you want in your set and give them the correct [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* If you only provide roads/tramtracks for one surface/type, consider leaving some free road/tramtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed / Feature&lt;br /&gt;
* Make sure class A is always available.&lt;br /&gt;
* Use B, C and so on if you have multible roads/tramtracks with the otherwise the same label.&lt;br /&gt;
; [**X*] Terrain / Stability &lt;br /&gt;
* Always define classes A through C for every road/tramtrack surface/type energy combination, either:&lt;br /&gt;
** Directly via a real road/tramtype definition;&lt;br /&gt;
** Indirectly via the alternate road/tramtype label list, [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Always define the default labels when possible, instead of what would be the equivalent of the default label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the default labels using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* Map common non-standard labels to the most similar label in this scheme using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
== Summary for vehicle sets ==&lt;br /&gt;
This section summarizes the above for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Use the surface / type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the road/tramtype table in case you want the vehicle to be available on a different road or tramtrack if no matching road/tramtrack set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;G&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;P&amp;quot; or &amp;quot;R&amp;quot;).&lt;br /&gt;
; [*X**] Speed / Feature &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Terrain / Stability&lt;br /&gt;
* Use A, B or C depending on where you want your vehicles to be able to drive.&lt;br /&gt;
** A is used for slow offroad capable vehicles which aren&#039;t allowed on Motorways and similar Roads&lt;br /&gt;
** B is used for vehicles which can drive offroad but are also allowed on Motorways.&lt;br /&gt;
** C is used for vehicles which can&#039;t go offroad or similar.&lt;br /&gt;
** Use B if you aren&#039;t sure what to chose.&lt;br /&gt;
* Never use a or c.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Define a fallback type to the default labels via the road/tramtype table in case you want the vehicle to be available on the default roads/track if no matching set is loaded.&lt;br /&gt;
* Do the same for any non-standard labels that may be relevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the road/tramtype, it is the job of the road/track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
=== Example of fallback order for vehicle sets ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Unchanged label&lt;br /&gt;
! Fallback order&lt;br /&gt;
|-&lt;br /&gt;
| GACE (road)&lt;br /&gt;
| GACE -&amp;gt; PACE -&amp;gt; RACE -&amp;gt; (ROAD)&lt;br /&gt;
|-&lt;br /&gt;
| PAB4 (tram)&lt;br /&gt;
| PAB4 -&amp;gt; PAB3 -&amp;gt; PABG -&amp;gt; RAB4 -&amp;gt; RAB3 -&amp;gt; RABG&lt;br /&gt;
|-&lt;br /&gt;
| IAAG (road)&lt;br /&gt;
| IAAG -&amp;gt; RAAG&lt;br /&gt;
|-&lt;br /&gt;
| AACE (road)&lt;br /&gt;
| AACE -&amp;gt; RAAE -&amp;gt; (ELRD)&lt;br /&gt;
|-&lt;br /&gt;
| RABE (tram)&lt;br /&gt;
| RABE -&amp;gt; (ELRL)&lt;br /&gt;
|-&lt;br /&gt;
| PAAN (tram)&lt;br /&gt;
| PAAN -&amp;gt; RAAN -&amp;gt; (RAIL)&lt;br /&gt;
|}&lt;br /&gt;
== Forum topic ==&lt;br /&gt;
Feel free to discuss and ask questions about the scheme at the forum topic [https://www.tt-forums.net/viewtopic.php?t=90715 Here].&lt;br /&gt;
&lt;br /&gt;
=== Possible additions ===&lt;br /&gt;
To be discussed in the forum topic...&lt;br /&gt;
&lt;br /&gt;
==== Surface / Type [X***] ====&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Deep-Bore Metro&lt;br /&gt;
| (For subsurface logistics systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| z&lt;br /&gt;
| Passenger-only (Deep-Bore Metro)&lt;br /&gt;
| (For subsurface metro systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| X or x&lt;br /&gt;
| Multiple guidance systems or guages&lt;br /&gt;
| (Depends on intent; only two tramtype rail system combinations can exist for a given set of standardized labels - i.e. XABE and xABE - making it necessary to plan accordingly)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0 (#)&lt;br /&gt;
| Invisible&lt;br /&gt;
| For invisible tramtypes; Fallback for INVI, BKVI, 0000 and other &amp;quot;null&amp;quot; tramtypes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| s&lt;br /&gt;
| Regular Rail (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Passenger-only (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| r&lt;br /&gt;
| Multi-gauge Rail (Standard Gauge, Metre Gauge, 600mm Gauge)&lt;br /&gt;
| s, R, p, P&lt;br /&gt;
| P or p, depending on the vehicle&#039;s gauge (City tram); R, s or 6, depending on the vehicle&#039;s gauge (Cargo tram)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Industrial Tramway (600mm Gauge - default tramway rails graphics)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Terrain / Stability [**X*] ====&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier. &#039;&#039;(This is edited to include the potential &amp;quot;Low Clearance&amp;quot; hidden roadtype.)&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| aA&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| Regular (Low clearance)&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| Cc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability. Class &amp;quot;b&amp;quot; should only be used for a hidden roadtype, such as &amp;quot;RAbN&amp;quot;, &amp;quot;PAbN&amp;quot; and electrified variants. This is optional, but if used it should be applied to the [[NML:Vehicles#Road_vehicle_properties|roadtype (NML) or tram_type (NML)]] property of all vehicles able to travel under the relevant low-clearance obstacles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;As a frame of reference, realistically &amp;quot;RAbN&amp;quot; should be used for all eye-candy cars small cargo vans and single-decker non-electrified cargo trams, while trucks (excluding trolleytrucks) and non-electrified double-decker trams should default to &amp;quot;RABN&amp;quot;. &amp;quot;RAbE&amp;quot; and other powered vehicles should be used by trolleytrucks and electric cargo trams (excluding double-decker trams). &amp;quot;PAbN&amp;quot; should be used by double-decker busses, and most non-electric trams (excluding double-decker trams). &amp;quot;PAbE&amp;quot; should be used by most passenger trams, excluding double-decker passenger trams. For other energy sources, the instructions for&amp;quot;RAbE&amp;quot; and &amp;quot;PAbE&amp;quot; can easily be adapted for any other power source (&amp;quot;RAbG&amp;quot; and &amp;quot;PAbG&amp;quot;, &amp;quot;RAbI&amp;quot; and &amp;quot;PAbI&amp;quot;, etc.).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
Class &amp;quot;b&amp;quot; is also optional for road/tramtype sets but should have ROADTYPE_FLAG_HIDDEN set in the bitmask of [[NML:Roadtypes#Roadtype_properties|roadtype_flags (NML)]]. Instead, a low-clearance variant of a standardized roadtype or tramtype should be compatible with all other standard classes (&amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, B&amp;quot;, &amp;quot;C&amp;quot; and &amp;quot;c&amp;quot;) using the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] in a road/tramtype set that sets the standardized labels (i.e. &amp;quot;RAbN&amp;quot; should be used for small cargo vans and must fallback to &amp;quot;RAaN, RAAN, RABN, RACN, RAcN&amp;quot;, and &amp;quot;PAbE&amp;quot; should be used by all busses and must fallback to &amp;quot;PAaN, PAAN, PABN, PACN, PAcN&amp;quot;). If a complex roadtype (i.e. RAaN) needs a low-clearance variant, create a non-standard label (i.e. XMPL), then define the relevant standard labels (RAaN in this case, and RAbN in turn) in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] of the non-standard label (XMPL), and define the entire class of labels (RAaN, RAAN, RABN, RAbN, RACN, RAcN) in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] of the non-standard label (XMPL).&lt;br /&gt;
&lt;br /&gt;
==== Energy [***X] ====&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Z then G then N&lt;br /&gt;
|-&lt;br /&gt;
| i&lt;br /&gt;
| Eyecandy/Pipeline Infrastructure&lt;br /&gt;
| Eyecandy/Electric &amp;amp; Telecom Infrastructure&lt;br /&gt;
| Z then E then G then I&lt;br /&gt;
|-&lt;br /&gt;
| L&lt;br /&gt;
| Reclaimed Elevated Rail Eco-Park&lt;br /&gt;
| Elevated Rail&lt;br /&gt;
| I then Z then G then N (Roadtype); E then Z then G then I (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| No Commercial Vehicles/Parking Lot (restricted roads for RABN-compatible cars that busses and trucks cannot use; eye candy cars should use RAbP as the primary label if intended to support this)&lt;br /&gt;
| &amp;quot;PneuMetro&amp;quot; (Pneumatic Metro/Subway)&lt;br /&gt;
| I then N then i (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| &amp;quot;SolaRoad&amp;quot; (Solar Roadway) or &amp;quot;SmartStreet&amp;quot; (smartgrid network-enabled roads)&lt;br /&gt;
| Superscience/Supernatural/Special (For anything that isn&#039;t fuel and isn&#039;t based on any real energy source; psychokinetic, mana, creative energy, etc.)&lt;br /&gt;
| I then Z then E then G then N&lt;br /&gt;
|-&lt;br /&gt;
| V&lt;br /&gt;
| Viaduct/Voltaic Variant (For a second bridge variant of a road, or a trolleybus variant of a road with limited overhead clearance)&lt;br /&gt;
| &amp;quot;VacTube&amp;quot; (VacTrain Metro/Subway)&lt;br /&gt;
| P (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| t&lt;br /&gt;
| Cheat-like &amp;quot;electrification&amp;quot; for unified tunnels (to save on railtype labels)&lt;br /&gt;
| System-agnostic electricity in underground road/metro&lt;br /&gt;
| Use with speed &amp;quot;S&amp;quot; (&amp;quot;Subterranean&amp;quot;) and surface X or x (e.g. XSB_ and xSB_) or surface R (road, or a rail-based tramtype). ; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| X&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Use with surface X or x (e.g. XABX and xABX) or surface R (road, or a rail-based tramtype). For use only when at least one standardized label is an energy supply and multiple non-conflicting energy types are all at the same level, such as electrified, ground electrified and induction-charging overlap; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, incompatible&lt;br /&gt;
| Use this with surface x (e.g. xABx) or the surface systems (e.g. SABx, RABx, MABx). For use when tramtypes are at different heights but all are fundamentally incompatible (i.e. suspended monorail, trackless tram and pneumatic metro); Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, mix of compatible/incompatible; &amp;quot;cheat&amp;quot;&lt;br /&gt;
| For use when tramtypes are a mix of compatible and fundamentally incompatible (i.e. electrified, ground electrified, trackless tram, suspended monorail, tram and pneumatic metro); Do not set powered_railtype_list for these, instead use alternative_railtype_list, or define these in another label&#039;s powered_railtype_list (i.e. XABc for XABN/XABE/XABX and RABc for RABN/RABE/RABX).&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4899</id>
		<title>Standardized Roadtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4899"/>
		<updated>2024-12-01T00:35:39Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Undo revision 4872 by Desertbus95 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This scheme was originally conceived in order to decrease the amount of necessary hidden road and tramtrack types. This is done by standardizing which labels vehicles and infrastructure should use. The standard also allows for more gameplay depth by having the option to limit vehicles to certain types of roads. It does similarly to the railtype scheme allow mixing of any vehicle set with any infrastructure set. It does however not allow multiple infrastructure sets to be used at the same time. It does not prevent it but all of the sets used have to be made to be used with each other, or use different surfaces/types which don&#039;t conflict with each other. The standard sets no limit on how vehicle sets can be used.&lt;br /&gt;
&lt;br /&gt;
It is ultimately up to the infrastructure set to chose what roadtypes are available and thereby what vehicles are available. Infrastructure and vehicles can both be in the same set, it is however recommended to be able to disable the infrastructure with parameters (preferably on an individual basis per roadtype) in case the player wants to use a different set for their infrastructure.&lt;br /&gt;
&lt;br /&gt;
* While this is a guide rather than a hard rule, it is recommended to think of standardized roadtypes vs. &amp;quot;fancy&amp;quot; roadtypes (not a default - ROAD for roadtypes, ELRL for tramtypes - and not to this standard; for example &amp;quot;FNCY&amp;quot;, &amp;quot;HAUL&amp;quot; and &amp;quot;NSTD&amp;quot; would be fancy labels) as a microcosm of the difference between a base set (OpenGFX) and a NewGRF that provides new graphics; The goal is for a basic roadtype set to cover as many standardized labels as is appropriate, and leave the more niche uses of the system to another set. This reduces the number of necessary roadtypes to a bare minimum, allowing optional roadtypes more room to cover corner cases.&lt;br /&gt;
** The reason to keep the above in mind is that if done in this way the effect works very differently than railtypes, where the primary concern is to allow gauge, energy source and so on to exist and bind trains from all sets to only the logically compatible railtypes. Roads and, by extension, streetcar tracks are more compatible with vehicles but also have much more variation. This is complicated by game engine limitations; only 60 - or 61 without ELRL - tracktype slots exist in recent versions of OpenTTD, but reaching that limit is usually a non-issue. Roadtypes and Tramtypes are considered the same on that front by the game engine, leaving 62 tramtypes - 64, including ROAD and ELRL - to be split in a pool between the two.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Surface / Type [X***] ===&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Roadtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Road&lt;br /&gt;
| RI(S)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(S)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Guided busway&lt;br /&gt;
| RPG&lt;br /&gt;
| P then R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| RB(Z)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| W&lt;br /&gt;
| Waterway&lt;br /&gt;
| W&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Amphibious on road (hidden)&lt;br /&gt;
| RPI(S)W&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Snowy or Iced Track&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Amphibious on snow (hidden)&lt;br /&gt;
| SW&lt;br /&gt;
| S&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Pedestrian Zone&lt;br /&gt;
| Z&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Pump/Pipeline&lt;br /&gt;
| p&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Rail&lt;br /&gt;
| RI(M)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only&lt;br /&gt;
| RPI(M)&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| (R)B&lt;br /&gt;
| R&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Suspended Monorail&lt;br /&gt;
| S&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| M&lt;br /&gt;
| Metro&lt;br /&gt;
| M(RP)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| Trackless trams&lt;br /&gt;
| O&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy/Electrical infrastructure&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is the vehicle set&#039;s responsibility to implement fallbacks to other appropriate surfaces. It is also up to the author to decide if they want to do it or not. This means that road/tramtrack sets shouldn&#039;t add these to their [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] and [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]]&lt;br /&gt;
&lt;br /&gt;
It is up to the track set to implement all powered roadtypes in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. It is further advised to implement support for the roadtypes/tramtypes in brackets, if applicable.&lt;br /&gt;
&lt;br /&gt;
Hidden roadtypes for compatibility should be implemented by road sets. It is up to the author to decide if they want to implement it as a hidden roadtype or not.&lt;br /&gt;
&lt;br /&gt;
=== Speed / Feature [*X**] ===&lt;br /&gt;
Any character may be used for roads, but at least one road must have &amp;quot;A&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Vehicles should use &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Terrain / Stability [**X*] ===&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| a&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| c&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability.&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
=== Energy [***X] ===&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| N&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Ground electrified&lt;br /&gt;
| Ground electrified&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| E or G&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| n/a&lt;br /&gt;
| Third Rail&lt;br /&gt;
| G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| n/a&lt;br /&gt;
| Fourth Rail&lt;br /&gt;
| 3 then G&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| n/a&lt;br /&gt;
| Cable&lt;br /&gt;
| G&lt;br /&gt;
|}&lt;br /&gt;
A tramtrack set that only uses specialized types, should map the generic types to the most suitable specialized type in the set with the help of the [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
=== The default labels (ROAD, ELRL) and non-standard labels===&lt;br /&gt;
OpenTTD will allways define ROAD and ELRL incase there are vehicles for them. It is therefore recomended to have these present in the set so that you can map them to appropriete labels from the standard. There are a few ways of doing this:&lt;br /&gt;
*Replacing one of the standardised types with the default label and putting the standardised label in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
*Defining ROAD and/or ELRL separately from the standardised labels and adding the standard ones to the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. The main advantage of this is that you can use a parameter to map ROAD and/or ELRL to the standardised labels. This allows the player to chose where there non standardised vehicles will be able to go.&lt;br /&gt;
&lt;br /&gt;
Vehicle set authors might want to add the default labels and non-standard labels as a fallback. If not implemented for the defualt labels, their vehicles won&#039;t show up on the default roads and/or tracks, leading to countless bug reports from players. Non standard labels that might be worth adding fallbacks too are: ELRD, RAIL, HAUL and probably some more.&lt;br /&gt;
&lt;br /&gt;
== Summary for Road/Tramtrack sets ==&lt;br /&gt;
This section summarizes the above for road/tramtrack sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Chose which Surfaces and types you want in your set and give them the correct [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* If you only provide roads/tramtracks for one surface/type, consider leaving some free road/tramtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed / Feature&lt;br /&gt;
* Make sure class A is always available.&lt;br /&gt;
* Use B, C and so on if you have multible roads/tramtracks with the otherwise the same label.&lt;br /&gt;
; [**X*] Terrain / Stability &lt;br /&gt;
* Always define classes A through C for every road/tramtrack surface/type energy combination, either:&lt;br /&gt;
** Directly via a real road/tramtype definition;&lt;br /&gt;
** Indirectly via the alternate road/tramtype label list, [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Always define the default labels when possible, instead of what would be the equivalent of the default label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the default labels using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* Map common non-standard labels to the most similar label in this scheme using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
== Summary for vehicle sets ==&lt;br /&gt;
This section summarizes the above for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Use the surface / type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the road/tramtype table in case you want the vehicle to be available on a different road or tramtrack if no matching road/tramtrack set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;G&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;P&amp;quot; or &amp;quot;R&amp;quot;).&lt;br /&gt;
; [*X**] Speed / Feature &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Terrain / Stability&lt;br /&gt;
* Use A, B or C depending on where you want your vehicles to be able to drive.&lt;br /&gt;
** A is used for slow offroad capable vehicles which aren&#039;t allowed on Motorways and similar Roads&lt;br /&gt;
** B is used for vehicles which can drive offroad but are also allowed on Motorways.&lt;br /&gt;
** C is used for vehicles which can&#039;t go offroad or similar.&lt;br /&gt;
** Use B if you aren&#039;t sure what to chose.&lt;br /&gt;
* Never use a or c.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Define a fallback type to the default labels via the road/tramtype table in case you want the vehicle to be available on the default roads/track if no matching set is loaded.&lt;br /&gt;
* Do the same for any non-standard labels that may be relevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the road/tramtype, it is the job of the road/track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
=== Example of fallback order for vehicle sets ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Unchanged label&lt;br /&gt;
! Fallback order&lt;br /&gt;
|-&lt;br /&gt;
| GACE (road)&lt;br /&gt;
| GACE -&amp;gt; PACE -&amp;gt; RACE -&amp;gt; (ROAD)&lt;br /&gt;
|-&lt;br /&gt;
| PAB4 (tram)&lt;br /&gt;
| PAB4 -&amp;gt; PAB3 -&amp;gt; PABG -&amp;gt; RAB4 -&amp;gt; RAB3 -&amp;gt; RABG&lt;br /&gt;
|-&lt;br /&gt;
| IAAG (road)&lt;br /&gt;
| IAAG -&amp;gt; RAAG&lt;br /&gt;
|-&lt;br /&gt;
| AACE (road)&lt;br /&gt;
| AACE -&amp;gt; RAAE -&amp;gt; (ELRD)&lt;br /&gt;
|-&lt;br /&gt;
| RABE (tram)&lt;br /&gt;
| RABE -&amp;gt; (ELRL)&lt;br /&gt;
|-&lt;br /&gt;
| PAAN (tram)&lt;br /&gt;
| PAAN -&amp;gt; RAAN -&amp;gt; (RAIL)&lt;br /&gt;
|}&lt;br /&gt;
== Forum topic ==&lt;br /&gt;
Feel free to discuss and ask questions about the scheme at the forum topic [https://www.tt-forums.net/viewtopic.php?t=90715 Here].&lt;br /&gt;
&lt;br /&gt;
=== Possible additions ===&lt;br /&gt;
To be discussed in the forum topic...&lt;br /&gt;
&lt;br /&gt;
==== Surface / Type [X***] ====&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Deep-Bore Metro&lt;br /&gt;
| (For subsurface logistics systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| z&lt;br /&gt;
| Passenger-only (Deep-Bore Metro)&lt;br /&gt;
| (For subsurface metro systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| X or x&lt;br /&gt;
| Multiple guidance systems or guages&lt;br /&gt;
| (Depends on intent; only two tramtype rail system combinations can exist for a given set of standardized labels - i.e. XABE and xABE - making it necessary to plan accordingly)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0 (#)&lt;br /&gt;
| Invisible&lt;br /&gt;
| For invisible tramtypes; Fallback for INVI, BKVI, 0000 and other &amp;quot;null&amp;quot; tramtypes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| s&lt;br /&gt;
| Regular Rail (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Passenger-only (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| r&lt;br /&gt;
| Multi-gauge Rail (Standard Gauge, Metre Gauge, 600mm Gauge)&lt;br /&gt;
| s, R, p, P&lt;br /&gt;
| P or p, depending on the vehicle&#039;s gauge (City tram); R, s or 6, depending on the vehicle&#039;s gauge (Cargo tram)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Industrial Tramway (600mm Gauge - default tramway rails graphics)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Terrain / Stability [**X*] ====&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier. &#039;&#039;(This is edited to include the potential &amp;quot;Low Clearance&amp;quot; hidden roadtype.)&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| aA&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| Regular (Low clearance)&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| Cc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability. Class &amp;quot;b&amp;quot; should only be used for a hidden roadtype, such as &amp;quot;RAbN&amp;quot;, &amp;quot;PAbN&amp;quot; and electrified variants. This is optional, but if used it should be applied to the [[NML:Vehicles#Road_vehicle_properties|roadtype (NML) or tram_type (NML)]] property of all vehicles able to travel under the relevant low-clearance obstacles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;As a frame of reference, realistically &amp;quot;RAbN&amp;quot; should be used for all eye-candy cars small cargo vans and single-decker non-electrified cargo trams, while trucks (excluding trolleytrucks) and non-electrified double-decker trams should default to &amp;quot;RABN&amp;quot;. &amp;quot;RAbE&amp;quot; and other powered vehicles should be used by trolleytrucks and electric cargo trams (excluding double-decker trams). &amp;quot;PAbN&amp;quot; should be used by double-decker busses, and most non-electric trams (excluding double-decker trams). &amp;quot;PAbE&amp;quot; should be used by most passenger trams, excluding double-decker passenger trams. For other energy sources, the instructions for&amp;quot;RAbE&amp;quot; and &amp;quot;PAbE&amp;quot; can easily be adapted for any other power source (&amp;quot;RAbG&amp;quot; and &amp;quot;PAbG&amp;quot;, &amp;quot;RAbI&amp;quot; and &amp;quot;PAbI&amp;quot;, etc.).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
Class &amp;quot;b&amp;quot; is also optional for road/tramtype sets but should have ROADTYPE_FLAG_HIDDEN set in the bitmask of [[NML:Roadtypes#Roadtype_properties|roadtype_flags (NML)]]. Instead, a low-clearance variant of a standardized roadtype or tramtype should be compatible with all other standard classes (&amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, B&amp;quot;, &amp;quot;C&amp;quot; and &amp;quot;c&amp;quot;) using the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] in a road/tramtype set that sets the standardized labels (i.e. &amp;quot;RAbN&amp;quot; should be used for small cargo vans and must fallback to &amp;quot;RAaN, RAAN, RABN, RACN, RAcN&amp;quot;, and &amp;quot;PAbE&amp;quot; should be used by all busses and must fallback to &amp;quot;PAaN, PAAN, PABN, PACN, PAcN&amp;quot;). If a complex roadtype (i.e. RAaN) needs a low-clearance variant, create a non-standard label (i.e. XMPL), then define the relevant standard labels (RAaN in this case, and RAbN in turn) in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] of the non-standard label (XMPL), and define the entire class of labels (RAaN, RAAN, RABN, RAbN, RACN, RAcN) in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] of the non-standard label (XMPL).&lt;br /&gt;
&lt;br /&gt;
==== Energy [***X] ====&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Z then G then N&lt;br /&gt;
|-&lt;br /&gt;
| i&lt;br /&gt;
| Eyecandy/Pipeline Infrastructure&lt;br /&gt;
| Eyecandy/Electric &amp;amp; Telecom Infrastructure&lt;br /&gt;
| Z then E then G then I&lt;br /&gt;
|-&lt;br /&gt;
| L&lt;br /&gt;
| Reclaimed Elevated Rail Eco-Park&lt;br /&gt;
| Elevated Rail&lt;br /&gt;
| I then Z then G then N (Roadtype); E then Z then G then I (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| No Commercial Vehicles/Parking Lot (restricted roads for RABN-compatible cars that busses and trucks cannot use; eye candy cars should use RAbP as the primary label if intended to support this)&lt;br /&gt;
| &amp;quot;PneuMetro&amp;quot; (Pneumatic Metro/Subway)&lt;br /&gt;
| I then N then i (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| &amp;quot;SolaRoad&amp;quot; (Solar Roadway) or &amp;quot;SmartStreet&amp;quot; (smartgrid network-enabled roads)&lt;br /&gt;
| Superscience/Supernatural/Special (For anything that isn&#039;t fuel and isn&#039;t based on any real energy source; psychokinetic, mana, creative energy, etc.)&lt;br /&gt;
| I then Z then E then G then N&lt;br /&gt;
|-&lt;br /&gt;
| V&lt;br /&gt;
| Viaduct/Voltaic Variant (For a second bridge variant of a road, or a trolleybus variant of a road with limited overhead clearance)&lt;br /&gt;
| &amp;quot;VacTube&amp;quot; (VacTrain Metro/Subway)&lt;br /&gt;
| P (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| N/A&lt;br /&gt;
| Cheat-like &amp;quot;electrification&amp;quot; for unified tramtype tunnels, to save on roadtype/tramtype labels make a single tramtype labelled EAbt and provide catenary sprites that place a &amp;quot;roof&amp;quot; but no (visible) rails (see [https://www.tt-forums.net/viewtopic.php?t=90804&amp;amp;hilit=Quast65+metro&amp;amp;start=60 Quast65&#039;s tramtypes] for potential graphics, GPL v2 license), and then provide a version with tram rails using a ??bt type. You should define one or two tramtypes with speed &amp;quot;t&amp;quot; (&amp;quot;Tunnel&amp;quot;) and surface &amp;quot;0&amp;quot; (&amp;quot;Invisible&amp;quot;) to provide road tunnels (e.g. 0tbt for single-height tunnels and 0tBt for high-clearance tunnels) as a decorative tramtype, whose catenary should override the trolleybus catenary with the eyecandy tram catenary. Use a, A, B, C, or c as stability if you plan to include a &amp;quot;tall tunnel&amp;quot; for double-decker vehicles.&lt;br /&gt;
| N/A; Do not set powered_railtype_list for these, instead use its&#039; alternative_railtype_list to link compatible tramtypes to it.&lt;br /&gt;
|-&lt;br /&gt;
| X&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| E; Use with surface X or x (e.g. XABX and xABX) or surface R (road, or a rail-based tramtype). For use only when at least one standardized label is an energy supply and multiple non-conflicting energy types are all at the same level, such as electrified, ground electrified and induction-charging overlap; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, height-incompatible&lt;br /&gt;
| N/A; Use this with surface x (e.g. xABx) or the surface systems (e.g. SABx, RABx, MABx). For use when tramtypes are at different heights but all are fundamentally incompatible (i.e. suspended monorail, trackless tram and pneumatic metro all on the same tile); Do not set powered_railtype_list for these, instead use alternative_railtype_list to link other railtypes to it.&lt;br /&gt;
|-&lt;br /&gt;
| +&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, mix of compatible/height-incompatible&lt;br /&gt;
| For use when tramtypes are a mix of compatible and height-incompatible (i.e. electrified, ground electrified, trackless tram, suspended monorail, tram and pneumatic metro) tramtypes, provided their presence is possible in real life; Do not set powered_railtype_list for these, instead use alternative_railtype_list, or define these in another label&#039;s powered_railtype_list (i.e. XAB+ for XABN/XABE/XABX and RAB+ for RABN/RABE/RABX).&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| &amp;quot;Cheat electrification&amp;quot; for network conversion; Arguably unneeded currently as there is only one type of road electrification as of this writing.&lt;br /&gt;
| &amp;quot;Cheat electrification&amp;quot; for network conversion; Anything where all instances of the real life systems co-existing in the real world are physically impossible, which obviously doesn&#039;t have much bearing on imaginary tramtypes but could be inferred that typical trains and monorails are not fictional and don&#039;t go well together.&lt;br /&gt;
| Define the &amp;quot;RA_c&amp;quot; for both roadtype and tramtype, totaling 2 label IDs. Define non-standard roadtypes in [[Roadtypes#Roadtype_properties alternative_roadtype_list]]/[[Tramtypes#Tramtype_properties|alternative_tramtype_list]] of &amp;quot;RA_c&amp;quot;, and define &amp;quot;RA_c&amp;quot; in powered_roadtype_list for all other standardized roadtypes.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4898</id>
		<title>Standardized Roadtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Roadtype_Scheme&amp;diff=4898"/>
		<updated>2024-12-01T00:35:19Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: Undo revision 4873 by Desertbus95 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This scheme was originally conceived in order to decrease the amount of necessary hidden road and tramtrack types. This is done by standardizing which labels vehicles and infrastructure should use. The standard also allows for more gameplay depth by having the option to limit vehicles to certain types of roads. It does similarly to the railtype scheme allow mixing of any vehicle set with any infrastructure set. It does however not allow multiple infrastructure sets to be used at the same time. It does not prevent it but all of the sets used have to be made to be used with each other, or use different surfaces/types which don&#039;t conflict with each other. The standard sets no limit on how vehicle sets can be used.&lt;br /&gt;
&lt;br /&gt;
It is ultimately up to the infrastructure set to chose what roadtypes are available and thereby what vehicles are available. Infrastructure and vehicles can both be in the same set, it is however recommended to be able to disable the infrastructure with parameters (preferably on an individual basis per roadtype) in case the player wants to use a different set for their infrastructure.&lt;br /&gt;
&lt;br /&gt;
* While this is a guide rather than a hard rule, it is recommended to think of standardized roadtypes vs. &amp;quot;fancy&amp;quot; roadtypes (not a default and not to this standard; for example &amp;quot;FNCY&amp;quot;, &amp;quot;HAUL&amp;quot; and &amp;quot;NSTD&amp;quot; would be fancy labels but ROAD for roadtypes, and ELRL for tramtypes, would not) as a microcosm of the difference between a base set (OpenGFX) and a NewGRF that provides new graphics; The goal is for a basic roadtype set to cover as many standardized labels as is appropriate, and leave the more niche uses of the system to another set. This reduces the number of necessary roadtypes to a bare minimum, allowing optional roadtypes more room to cover corner cases.&lt;br /&gt;
** The reason to keep the above in mind is that if done in this way the effect works very differently than railtypes, where the primary concern is to allow gauge, energy source and so on to exist and bind trains from all sets to only the logically compatible railtypes. Roads and, by extension, streetcar tracks are more compatible with vehicles but also have much more variation. This is complicated by game engine limitations; only 60 - or 61 without ELRL - tracktype slots exist in recent versions of OpenTTD, but reaching that limit is usually a non-issue. Roadtypes and Tramtypes are considered the same on that front by the game engine, leaving 62 tramtypes - 64, including ROAD and ELRL - to be split in a pool between the two.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Surface / Type [X***] ===&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Roadtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Powered Roadtypes (Optional Powered)&lt;br /&gt;
! Recommended vehicle set fallbacks&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Road&lt;br /&gt;
| R, I, (S)&lt;br /&gt;
| R&lt;br /&gt;
| RABN = ROAD&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only (busses, cars, bikes)&lt;br /&gt;
| R, P, (I), (S)&lt;br /&gt;
| P, then R&lt;br /&gt;
| HOV lane, public parking, or town road. Relevant non-standard types include TOWN, TRD_ and _TRD&lt;br /&gt;
|-&lt;br /&gt;
| g&lt;br /&gt;
| Bus lane (no AI street traffic)&lt;br /&gt;
| R, P&lt;br /&gt;
| P, then R&lt;br /&gt;
| Bus-exclusive road, or privately-owned parking lot. No guided bus sets or roadtypes exist yet but existing busses should be updated to use g and guided busses should also use it; for busses only.&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Guided busway (Specialized busses only)&lt;br /&gt;
| R, P, G&lt;br /&gt;
| P, then R&lt;br /&gt;
| Once g has been integrated into existing vehicle sets, new guided busses should use both g and G. Existing busses should NOT be updated to use G once roadtype sets provide it, guided busways are only for specially-equipped guided busses.&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Industrial Site (ISR)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
| For tiles with concrete underneath, usually for use with Industrial Stations Renewal.&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| B, b, P, R, (Z)&lt;br /&gt;
| R and b&lt;br /&gt;
| For bicycles that can serve as AI traffic&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| Bus Lane with Bicycle Lane&lt;br /&gt;
| b&lt;br /&gt;
| R and B&lt;br /&gt;
| For bicycles that can serve as AI traffic crossing paths with a bus lane (see &amp;quot;g&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| W&lt;br /&gt;
| Waterway&lt;br /&gt;
| W&lt;br /&gt;
| W and w&lt;br /&gt;
| For gondolas and other urban waterways.&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Amphibious on road (hidden)&lt;br /&gt;
| R, P, I, (S), W&lt;br /&gt;
| R and W&lt;br /&gt;
| Optionally, for amphibious road vehicles that are allowed on high speed roads with stability labels B (and possibly b), C or c (e.g. RABN, RACN and RAcN, and possibly RAbN) but not low speed roads.&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Snowy or Iced Track&lt;br /&gt;
| S&lt;br /&gt;
| R&lt;br /&gt;
| A road which is not plowed in winter, or an ice road.&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Amphibious on snow (hidden)&lt;br /&gt;
| SW&lt;br /&gt;
| S&lt;br /&gt;
| Optionally, for amphibious road vehicles that are allowed on rough roads with stability labels a, A or B (e.g. RAaN, RAAN and RABN, and possibly RAbN) but not highways or limited access motorways.&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Pedestrian Zone&lt;br /&gt;
| Z&lt;br /&gt;
| &lt;br /&gt;
| Dedicated pedestrian zone, for use with some AI traffic eyecandy vehicle sets.&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy&lt;br /&gt;
| E&lt;br /&gt;
| &lt;br /&gt;
| EAbi is the only label that should be defined for this. Set all eyecandy roadtypes to have custom labels and to be powered on EAbi.&lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Pump/Pipeline&lt;br /&gt;
| p&lt;br /&gt;
| &lt;br /&gt;
| EAbi, EBbi, ECbi, EDbi and EEbi are the only labels that should be defined for this. These are for utility pipeline &amp;quot;vehicles&amp;quot; such as &amp;quot;pumps&amp;quot; which exclusively move liquid and gaseous cargo classes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes (Optional Powered)&lt;br /&gt;
! Recommended vehicle set fallbacks&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| Regular Rail (1000 mm to 1067 mm)&lt;br /&gt;
| R, I, (M)&lt;br /&gt;
| R, then the ELRL label.&lt;br /&gt;
| Most mixed-use tramways are actually meter gauge, with standard gauge and similar widths of track making up the remainder.&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| Passenger-only (1000 mm to 1067 mm)&lt;br /&gt;
| RPI(M)&lt;br /&gt;
| R&lt;br /&gt;
| Most streetcars are actually meter gauge, with standard gauge and similar widths of track making up the remainder.&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| (ISR) Industrial Site (1000 mm to 1067 mm)&lt;br /&gt;
| I&lt;br /&gt;
| R&lt;br /&gt;
| Most mixed-use tramways are actually meter gauge, with standard gauge and similar widths of track making up the remainder.&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Bicycle Lane&lt;br /&gt;
| (R)B&lt;br /&gt;
| R&lt;br /&gt;
| For North American style bicycle lanes and cycling trails; does not allow U-Turns as it is a tramtype.&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| Suspended Monorail&lt;br /&gt;
| S&lt;br /&gt;
| &lt;br /&gt;
| JP+ suspended monorail tracks. SABN is the only type that needs compatibility to be implemented.&lt;br /&gt;
|-&lt;br /&gt;
| M&lt;br /&gt;
| Metro (1000 mm to 1067 mm)&lt;br /&gt;
| If vehicle carries passengers, P then R; if vehicle carries freight, R.&lt;br /&gt;
| &lt;br /&gt;
| Some metro systems are actually meter gauge, with standard gauge and similar widths of track making up the majority. Sets should define both M?Bc and M?bc speed variants.&lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| Trackless trams&lt;br /&gt;
| Do not set fallbacks&lt;br /&gt;
| &lt;br /&gt;
| These use an optical guidance system to create a &amp;quot;virtual&amp;quot; tram track as a line painted on a road or a series of LED beacons. Sets should define (depending on which electrification methods will be desired in a vehicle roster) both O?BN/O?BE/O?BG/O?BZ and O?bN/O?bE/O?bG/O?bZ speed variants with both A-H road speeds and K-R high-friction speeds.&lt;br /&gt;
|-&lt;br /&gt;
| V&lt;br /&gt;
| Vacuum Tube Capsules&lt;br /&gt;
| Do not set fallbacks&lt;br /&gt;
| &lt;br /&gt;
| A futuristic tramway from the VacTram set, consisting of pneumatic tubes which propel small VacBalls at high speeds using pressure or lack of it. VEBi a as buildable type and and VACT as a hidden type are the only types that need to be implemented.&lt;br /&gt;
|-&lt;br /&gt;
| v&lt;br /&gt;
| Deep-Bore VacMetro&lt;br /&gt;
| Do not set fallbacks&lt;br /&gt;
| &lt;br /&gt;
| A futuristic metro system, in a more realistic manner than VacTrains and VacTrams. Ideally, would be implemented as vSbV and vUbV (narrow tube for single-deck trains), and as vSBV and vUBV (broad tube for the double-deck futuristic subway) with similar graphics to the Fake Subways Set and not the existing metro tunnels.&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Eyecandy/Electrical infrastructure (hidden)&lt;br /&gt;
| Do not set fallbacks&lt;br /&gt;
| Eyecandy, the only standardized type that should be defined is EEbc. Use as a fallback for i when a tramtype is decorative and electrical infrastructure could exist within it, to make bridges unnecessary for intersecting utility lines. These should be given graphics meant to be decorative but functional, such as &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| i&lt;br /&gt;
| Electrical infrastructure&lt;br /&gt;
| E, then the ELRL label&lt;br /&gt;
| Infrastructure, the only standardized type that should be defined is iEbi. Use for non-decorative &amp;quot;eyecandy&amp;quot; roadtypes meant to potentially carry electricity, phone, internet, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is the vehicle set&#039;s responsibility to implement fallbacks to other appropriate surfaces. It is also up to the author to decide if they want to do it or not. This means that road/tramtrack sets shouldn&#039;t add these to their [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] and [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]]&lt;br /&gt;
&lt;br /&gt;
It is up to the track set to implement all powered roadtypes in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. It is further advised to implement support for the roadtypes/tramtypes in brackets, if applicable.&lt;br /&gt;
&lt;br /&gt;
Hidden roadtypes for compatibility should be implemented by road sets. It is up to the author to decide if they want to implement it as a hidden roadtype or not.&lt;br /&gt;
&lt;br /&gt;
=== Speed / Feature [*X**] ===&lt;br /&gt;
Any character may be used for roads, but at least one road must have &amp;quot;A&amp;quot;. It has been proposed that speeds from A to H are reserved for standardized roadtype and tramtype labels. Speeds from K to R and from k-r would only be reserved for tramtypes which have comparable surface friction to a road vehicle, and would not need to be dedicated to special traction in a roadtype set that does not include tramtypes.&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved (road &amp;amp; tram)&lt;br /&gt;
|- &lt;br /&gt;
|a-h ||fixed-route transport, that allows a vehicle to not slow down going uphill but requires dedicated tracks or infrastructure; use for ski chair lifts, industrial cable lifts, and the Wuppertal monorail. ||special ||none yet&lt;br /&gt;
|-&lt;br /&gt;
|I-J ||general use ||colspan=&amp;quot;2&amp;quot;| unreserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||high-friction with unfixed position, that allows a tram vehicle to go uphill and downhill under the same mechanics as road vehicles; use for cable-drawn streetcars, conveyor belts and trackless trams. ||special ||none yet&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||high-friction with unfixed position, that allows a tram vehicle to go uphill under the same mechanics as road vehicles but requires a dedicated Right-of-Way; Rubber-tired rail transport, including Paris/Quebec metro and some suspended monorails, goes here. ||colspan=&amp;quot;2&amp;quot;| unreserved&lt;br /&gt;
|- &lt;br /&gt;
|S ||suburban tunnel ||eyecandy ||Metro Tram Set&lt;br /&gt;
|-&lt;br /&gt;
|T ||general use ||colspan=&amp;quot;2&amp;quot;| unreserved&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Tram Set&lt;br /&gt;
|-&lt;br /&gt;
|V-Z ||general use ||colspan=&amp;quot;2&amp;quot;| unreserved&lt;br /&gt;
|-&lt;br /&gt;
|s-z ||general use ||colspan=&amp;quot;2&amp;quot;| unreserved&lt;br /&gt;
|-&lt;br /&gt;
|0-9 ||general use ||colspan=&amp;quot;2&amp;quot;| unreserved&lt;br /&gt;
|}&lt;br /&gt;
All other characters which are valid (you&#039;ll get a warning from nmlc if they aren&#039;t) are also currently unrserved and are likely to remain so.&lt;br /&gt;
&lt;br /&gt;
High-friction and fixed-route need a bit greater of a explanation. They are based on the intended system for rack rails in the [[Standardized_Railtype_Scheme#Speed_limit_class_.5B.2AX.2A.2A.5D Standardized Railtype Scheme]]. As of 2024, the French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
In this case the problem is similar but worse. Ideally it would be coded in a way where all systems are only supported if such would be possible in real life. This can be partly achieved by making regular trams powered on a rackrail-equivalent such as a cablecar track (i.e. San Francisco cablecars) without the opposite being true, and by making others such as rubber-tired metros only run on rubber-tire compatible tracks. This means vehicles defined for RABC (SFBA cablecar) can&#039;t go on RABN (like a pure rack system) but RABN vehicles (meter-gauge steam/deisel/battery trams) can go on RABC (like a rack-and-adhesion system). However, there is no way to force a tram to adhere to the speed limits of the roadtype (rather than just the tramtype) it is currently on, nor any way to bar a tramtype from overlapping on roadtypes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Should this be implemented, K-R would be equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only. Finally, a-h would be equivalent to A-H for systems where the &amp;quot;vehicles&amp;quot; are adjoined to a cable or propelled via outside factors, such as pipelines, electrical/phone/internet lines, ski lifts and industrial bucket lifts.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vehicles should use &amp;quot;A&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;K&amp;quot; or &amp;quot;k&amp;quot; accordingly; if in doubt, assume &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Terrain / Stability [**X*] ===&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| a&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| c&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability.&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
=== Energy [***X] ===&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| N&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
| Overhead electrified (Catenary)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| Ground electrified&lt;br /&gt;
| Ground electrified&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| Ground and overhead electrified&lt;br /&gt;
| E or G&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| n/a&lt;br /&gt;
| Third Rail&lt;br /&gt;
| G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| n/a&lt;br /&gt;
| Fourth Rail&lt;br /&gt;
| 3 then G&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| n/a&lt;br /&gt;
| Cable&lt;br /&gt;
| G&lt;br /&gt;
|}&lt;br /&gt;
A tramtrack set that only uses specialized types, should map the generic types to the most suitable specialized type in the set with the help of the [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
=== The default labels (ROAD, ELRL) and non-standard labels===&lt;br /&gt;
OpenTTD will allways define ROAD and ELRL incase there are vehicles for them. It is therefore recomended to have these present in the set so that you can map them to appropriete labels from the standard. There are a few ways of doing this:&lt;br /&gt;
*Replacing one of the standardised types with the default label and putting the standardised label in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
*Defining ROAD and/or ELRL separately from the standardised labels and adding the standard ones to the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]]. The main advantage of this is that you can use a parameter to map ROAD and/or ELRL to the standardised labels. This allows the player to chose where there non standardised vehicles will be able to go.&lt;br /&gt;
&lt;br /&gt;
Vehicle set authors might want to add the default labels and non-standard labels as a fallback. If not implemented for the defualt labels, their vehicles won&#039;t show up on the default roads and/or tracks, leading to countless bug reports from players. Non standard labels that might be worth adding fallbacks too are: ELRD, RAIL, HAUL and probably some more.&lt;br /&gt;
&lt;br /&gt;
== Summary for Road/Tramtrack sets ==&lt;br /&gt;
This section summarizes the above for road/tramtrack sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Chose which Surfaces and types you want in your set and give them the correct [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* If you only provide roads/tramtracks for one surface/type, consider leaving some free road/tramtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed / Feature&lt;br /&gt;
* Make sure class A is always available.&lt;br /&gt;
* Use B, C and so on if you have multible roads/tramtracks with the otherwise the same label.&lt;br /&gt;
; [**X*] Terrain / Stability &lt;br /&gt;
* Always define classes A through C for every road/tramtrack surface/type energy combination, either:&lt;br /&gt;
** Directly via a real road/tramtype definition;&lt;br /&gt;
** Indirectly via the alternate road/tramtype label list, [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Always define the default labels when possible, instead of what would be the equivalent of the default label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the default labels using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
* Map common non-standard labels to the most similar label in this scheme using [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] or [[NML:Tramtypes#Tramtype_properties|powered_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
== Summary for vehicle sets ==&lt;br /&gt;
This section summarizes the above for vehicle sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Surface / Type&lt;br /&gt;
* Use the surface / type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the road/tramtype table in case you want the vehicle to be available on a different road or tramtrack if no matching road/tramtrack set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;G&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;P&amp;quot; or &amp;quot;R&amp;quot;).&lt;br /&gt;
; [*X**] Speed / Feature &lt;br /&gt;
* Always use class A for every vehicle, unless you are absolutely certain you will be introducing something cable-drawn, with tires as traction, or with a rack rail.&lt;br /&gt;
; [**X*] Terrain / Stability&lt;br /&gt;
* Use A, B or C depending on where you want your vehicles to be able to drive.&lt;br /&gt;
** A is used for slow offroad capable vehicles which aren&#039;t allowed on Motorways and similar Roads&lt;br /&gt;
** B is used for vehicles which can drive offroad but are also allowed on Motorways.&lt;br /&gt;
** C is used for vehicles which can&#039;t go offroad or similar.&lt;br /&gt;
** Use B if you aren&#039;t sure what to chose.&lt;br /&gt;
* Never use a or c.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Default labels [ROAD, ELRL] and non-standard labels&lt;br /&gt;
* Define a fallback type to the default labels via the road/tramtype table in case you want the vehicle to be available on the default roads/track if no matching set is loaded.&lt;br /&gt;
* Do the same for any non-standard labels that may be relevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the road/tramtype, it is the job of the road/track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
=== Example of fallback order for vehicle sets ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Unchanged label&lt;br /&gt;
! Fallback order&lt;br /&gt;
|-&lt;br /&gt;
| GACE (road)&lt;br /&gt;
| GACE -&amp;gt; PACE -&amp;gt; RACE -&amp;gt; (ROAD)&lt;br /&gt;
|-&lt;br /&gt;
| PAB4 (tram)&lt;br /&gt;
| PAB4 -&amp;gt; PAB3 -&amp;gt; PABG -&amp;gt; RAB4 -&amp;gt; RAB3 -&amp;gt; RABG&lt;br /&gt;
|-&lt;br /&gt;
| IAAG (road)&lt;br /&gt;
| IAAG -&amp;gt; RAAG&lt;br /&gt;
|-&lt;br /&gt;
| AACE (road)&lt;br /&gt;
| AACE -&amp;gt; RAAE -&amp;gt; (ELRD)&lt;br /&gt;
|-&lt;br /&gt;
| RABE (tram)&lt;br /&gt;
| RABE -&amp;gt; (ELRL)&lt;br /&gt;
|-&lt;br /&gt;
| PAAN (tram)&lt;br /&gt;
| PAAN -&amp;gt; RAAN -&amp;gt; (RAIL)&lt;br /&gt;
|}&lt;br /&gt;
== Forum topic ==&lt;br /&gt;
Feel free to discuss and ask questions about the scheme at the forum topic [https://www.tt-forums.net/viewtopic.php?t=90715 Here].&lt;br /&gt;
&lt;br /&gt;
=== Possible additions ===&lt;br /&gt;
To be discussed in the forum topic...&lt;br /&gt;
&lt;br /&gt;
==== Surface / Type [X***] ====&lt;br /&gt;
Describes the road surface / rail type and thus the vehicle type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tramtype:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Powered Tramtypes&lt;br /&gt;
! Recomended vehicle set fallbacks&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| Deep-Bore Metro&lt;br /&gt;
| (For subsurface logistics systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| z&lt;br /&gt;
| Passenger-only (Deep-Bore Metro)&lt;br /&gt;
| (For subsurface metro systems that are normally never visible on the surface)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| X or x&lt;br /&gt;
| Multiple guidance systems or gauges&lt;br /&gt;
| (Depends on intent; only two tramtype rail system combinations can exist for a given set of standardized labels - i.e. XABE and xABE - making it necessary to plan accordingly)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0 (#)&lt;br /&gt;
| Invisible&lt;br /&gt;
| For invisible tramtypes; Fallback for INVI, BKVI, 0000 and other &amp;quot;null&amp;quot; tramtypes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| s&lt;br /&gt;
| Regular Rail (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| Passenger-only (Standard Gauge)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| r&lt;br /&gt;
| Multi-gauge Rail (Standard Gauge, Metre Gauge, 600mm Gauge)&lt;br /&gt;
| s, R, p, P&lt;br /&gt;
| P or p, depending on the vehicle&#039;s gauge (City tram); R, s or 6, depending on the vehicle&#039;s gauge (Cargo tram)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Industrial Tramway (600mm Gauge - default tramway rails graphics)&lt;br /&gt;
| r&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Terrain / Stability [**X*] ====&lt;br /&gt;
Describes the roughness of the road surface / trackbed stability, and thus the vehicle tier. &#039;&#039;(This is edited to include the potential &amp;quot;Low Clearance&amp;quot; hidden roadtype.)&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning&lt;br /&gt;
! Powered Roadtypes&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| Very slow / rough / light&lt;br /&gt;
| aA&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| Slow / rough / light&lt;br /&gt;
| aAB&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| Regular&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| Regular (Low clearance)&lt;br /&gt;
| ABC&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| Fast / stable&lt;br /&gt;
| BCc&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| Very fast / stable&lt;br /&gt;
| Cc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If all classes aren&#039;t defined by the road set, the other ones should be in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]]. The same goes for tramtypes: [[NML:Tramtypes#Tramtype_properties|alternative_tramtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Road vehicle sets should not implement fallbacks for terrain / stability. Class &amp;quot;b&amp;quot; should only be used for a hidden roadtype, such as &amp;quot;RAbN&amp;quot;, &amp;quot;PAbN&amp;quot; and electrified variants. This is optional, but if used it should be applied to the [[NML:Vehicles#Road_vehicle_properties|roadtype (NML) or tram_type (NML)]] property of all vehicles able to travel under the relevant low-clearance obstacles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;As a frame of reference, realistically &amp;quot;RAbN&amp;quot; should be used for all eye-candy cars small cargo vans and single-decker non-electrified cargo trams, while trucks (excluding trolleytrucks) and non-electrified double-decker trams should default to &amp;quot;RABN&amp;quot;. &amp;quot;RAbE&amp;quot; and other powered vehicles should be used by trolleytrucks and electric cargo trams (excluding double-decker trams). &amp;quot;PAbN&amp;quot; should be used by double-decker busses, and most non-electric trams (excluding double-decker trams). &amp;quot;PAbE&amp;quot; should be used by most passenger trams, excluding double-decker passenger trams. For other energy sources, the instructions for&amp;quot;RAbE&amp;quot; and &amp;quot;PAbE&amp;quot; can easily be adapted for any other power source (&amp;quot;RAbG&amp;quot; and &amp;quot;PAbG&amp;quot;, &amp;quot;RAbI&amp;quot; and &amp;quot;PAbI&amp;quot;, etc.).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Classes &amp;quot;a&amp;quot; and &amp;quot;c&amp;quot; are entirely optional for road/tramtype sets and should under no circumstances be used by vehicles.&lt;br /&gt;
&lt;br /&gt;
Class &amp;quot;b&amp;quot; is also optional for road/tramtype sets but should have ROADTYPE_FLAG_HIDDEN set in the bitmask of [[NML:Roadtypes#Roadtype_properties|roadtype_flags (NML)]]. Instead, a low-clearance variant of a standardized roadtype or tramtype should be compatible with all other standard classes (&amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, B&amp;quot;, &amp;quot;C&amp;quot; and &amp;quot;c&amp;quot;) using the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] in a road/tramtype set that sets the standardized labels (i.e. &amp;quot;RAbN&amp;quot; should be used for small cargo vans and must fallback to &amp;quot;RAaN, RAAN, RABN, RACN, RAcN&amp;quot;, and &amp;quot;PAbE&amp;quot; should be used by all busses and must fallback to &amp;quot;PAaN, PAAN, PABN, PACN, PAcN&amp;quot;). If a complex roadtype (i.e. RAaN) needs a low-clearance variant, create a non-standard label (i.e. XMPL), then define the relevant standard labels (RAaN in this case, and RAbN in turn) in the [[NML:Roadtypes#Roadtype_properties|alternative_roadtype_list (NML)]] of the non-standard label (XMPL), and define the entire class of labels (RAaN, RAAN, RABN, RAbN, RACN, RAcN) in the [[NML:Roadtypes#Roadtype_properties|powered_roadtype_list (NML)]] of the non-standard label (XMPL).&lt;br /&gt;
&lt;br /&gt;
==== Energy [***X] ====&lt;br /&gt;
Describes the energy source of the track / vehicle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generic classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Induction-charge electrified&lt;br /&gt;
| Z then G then N&lt;br /&gt;
|-&lt;br /&gt;
| i&lt;br /&gt;
| Eyecandy/Pipeline Infrastructure&lt;br /&gt;
| Eyecandy/Electric &amp;amp; Telecom Infrastructure&lt;br /&gt;
| Z then E then G then I&lt;br /&gt;
|-&lt;br /&gt;
| L&lt;br /&gt;
| Reclaimed Elevated Rail Eco-Park&lt;br /&gt;
| Elevated Rail&lt;br /&gt;
| I then Z then G then N (Roadtype); E then Z then G then I (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| No Commercial Vehicles/Parking Lot (restricted roads for RABN-compatible cars that busses and trucks cannot use; eye candy cars should use RAbP as the primary label if intended to support this)&lt;br /&gt;
| &amp;quot;PneuMetro&amp;quot; (Pneumatic Metro/Subway)&lt;br /&gt;
| I then N then i (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| &amp;quot;SolaRoad&amp;quot; (Solar Roadway) or &amp;quot;SmartStreet&amp;quot; (smartgrid network-enabled roads)&lt;br /&gt;
| Superscience/Supernatural/Special (For anything that isn&#039;t fuel and isn&#039;t based on any real energy source; psychokinetic, mana, creative energy, etc.)&lt;br /&gt;
| I then Z then E then G then N&lt;br /&gt;
|-&lt;br /&gt;
| V&lt;br /&gt;
| Viaduct/Voltaic Variant (For a second bridge variant of a road, or a trolleybus variant of a road with limited overhead clearance)&lt;br /&gt;
| &amp;quot;VacTube&amp;quot; (VacTrain Metro/Subway)&lt;br /&gt;
| P (Roadtype); N/A (Tramtype)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specialized classes:&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-style:italic;&amp;quot;&lt;br /&gt;
! Letter&lt;br /&gt;
! Meaning (Road)&lt;br /&gt;
! Meaning (Tram)&lt;br /&gt;
! Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| N/A&lt;br /&gt;
| Cheat-like &amp;quot;electrification&amp;quot; for unified tramtype tunnels, to save on roadtype/tramtype labels make a single tramtype labelled EAbt and provide catenary sprites that place a &amp;quot;roof&amp;quot; but no (visible) rails (see [https://www.tt-forums.net/viewtopic.php?t=90804&amp;amp;hilit=Quast65+metro&amp;amp;start=60 Quast65&#039;s tramtypes] for potential graphics, GPL v2 license), and then provide a version with tram rails using a ?Abt tramtype. You should define one or two tramtypes with speed &amp;quot;t&amp;quot; (&amp;quot;Tunnel&amp;quot;) and surface &amp;quot;0&amp;quot; (&amp;quot;Invisible&amp;quot;) to provide road tunnels (e.g. 0tbt for single-height tunnels and 0tBt for high-clearance tunnels) as a decorative tramtype, whose catenary should override the trolleybus catenary with the eyecandy tram catenary. Use a, A, B, C, or c as stability if you plan to include a &amp;quot;tall tunnel&amp;quot; for double-decker vehicles.&lt;br /&gt;
| N/A; Do not set powered_railtype_list for these, instead use its&#039; alternative_railtype_list to link compatible tramtypes to it.&lt;br /&gt;
|-&lt;br /&gt;
| X&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| Multiple systems of electricity&lt;br /&gt;
| E; Use with surface X or x (e.g. XABX and xABX) or surface R (road, or a rail-based tramtype). For use only when at least one standardized label is an energy supply and multiple non-conflicting energy types are all at the same level, such as electrified, ground electrified and induction-charging overlap; Do not set powered_railtype_list for these, instead use alternative_railtype_list.&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, height-incompatible&lt;br /&gt;
| N/A; Use this with surface x (e.g. xABx) or the surface systems (e.g. SABx, RABx, MABx). For use when tramtypes are at different heights but all are fundamentally incompatible (i.e. suspended monorail, trackless tram and pneumatic metro all on the same tile); Do not set powered_railtype_list for these, instead use alternative_railtype_list to link other railtypes to it.&lt;br /&gt;
|-&lt;br /&gt;
| +&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiple systems of guidance, mix of compatible/height-incompatible&lt;br /&gt;
| For use when tramtypes are a mix of compatible and height-incompatible (i.e. electrified, ground electrified, trackless tram, suspended monorail, tram and pneumatic metro) tramtypes, provided their presence is possible in real life; Do not set powered_railtype_list for these, instead use alternative_railtype_list, or define these in another label&#039;s powered_railtype_list (i.e. XAB+ for XABN/XABE/XABX and RAB+ for RABN/RABE/RABX).&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| &amp;quot;Cheat electrification&amp;quot; for network conversion; Arguably unneeded currently as there is only one type of road electrification as of this writing.&lt;br /&gt;
| &amp;quot;Cheat electrification&amp;quot; for network conversion; Anything where all instances of the real life systems co-existing in the real world are physically impossible, which obviously doesn&#039;t have much bearing on imaginary tramtypes but could be inferred that typical trains and monorails are not fictional and don&#039;t go well together.&lt;br /&gt;
| Define the &amp;quot;RA_c&amp;quot; for both roadtype and tramtype, totaling 2 label IDs. Define non-standard roadtypes in [[Roadtypes#Roadtype_properties alternative_roadtype_list]]/[[Tramtypes#Tramtype_properties|alternative_tramtype_list]] of &amp;quot;RA_c&amp;quot;, and define &amp;quot;RA_c&amp;quot; in powered_roadtype_list for all other standardized roadtypes.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=CargoTypes&amp;diff=4880</id>
		<title>CargoTypes</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=CargoTypes&amp;diff=4880"/>
		<updated>2024-11-16T16:38:53Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Cargo Labels */ Remove firs and link to firs docs instead by request from Andythenorth&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cargo labels in OpenTTD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{grfFrom|8}} In GRF version 8 the value to be used in all vehicle and industry properties, and in [[Action3|action 3]], is the position of the cargo label in the [[Action0/Global_Settings#Cargo_translation_table_.2809.29|cargo translation table]] included in the GRF.&lt;br /&gt;
&lt;br /&gt;
{{grfTill|7}} GRF version 7 and below used different cargo properties for different properties (called &amp;quot;Type A&amp;quot; or &amp;quot;translated&amp;quot; and &amp;quot;Type B&amp;quot; or &amp;quot;untranslated&amp;quot; cargo slots), for historical reasons.  This method is deprecated as it meant relying solely on cargos always using the same slots.  You can see the table of Type A and Type B slots [http://newgrf-specs.tt-wiki.net/index.php?title=CargoTypes&amp;amp;oldid=2861 here] if you really want to.&lt;br /&gt;
&lt;br /&gt;
{{ottd|15.0}} Since 15.0, a default cargo translation table corresponding to the climate (see [[CargoDefaultProps]]) is used if one is not provided.&amp;lt;br/&amp;gt;&lt;br /&gt;
{{grfFrom|8}} In GRF version 8, the default translation table is 32 entries long and maps &amp;quot;Type B&amp;quot; slots to each cargo label.&amp;lt;br/&amp;gt;&lt;br /&gt;
{{grfTill|7}} In GRF version 7, the default translation table is 12 entries long and uses &amp;quot;Type A&amp;quot; slots to each cargo label.&amp;lt;br/&amp;gt;&lt;br /&gt;
The default translation table works just like a GRF provided table: If a cargo label is redefined in a different slot this is correctly translated, and if the cargo label is replaced the cargo type is mapped to invalid.&lt;br /&gt;
&lt;br /&gt;
== Cargo Labels ==&lt;br /&gt;
&lt;br /&gt;
The following cargo labels have been defined so far:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Label&lt;br /&gt;
! Cargo Description&lt;br /&gt;
! [[Action0Cargos#CargoClasses_.2816.29|Cargo classes]]&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Usage&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Basic Cargos&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;9&amp;quot; | These cargos are present when no NewGRF is used, or in some common Industry NewGRFs&lt;br /&gt;
|-&lt;br /&gt;
| PASS&lt;br /&gt;
| Passengers&lt;br /&gt;
| 0001 Passengers&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COAL&lt;br /&gt;
| Coal&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MAIL&lt;br /&gt;
| Mail&lt;br /&gt;
| 0002 Mail&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| OIL_&lt;br /&gt;
| Oil&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LVST&lt;br /&gt;
| Livestock&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GOOD&lt;br /&gt;
| Goods&lt;br /&gt;
| 0004 Express&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GRAI&lt;br /&gt;
| Grain&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| Temperate; see also WHEA, MAIZ, CERE. YETI &amp;amp; OTIS: 0210 Covered, bulk&lt;br /&gt;
|-&lt;br /&gt;
| WOOD&lt;br /&gt;
| Wood&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| Named Logs in some industry sets (2TT)&lt;br /&gt;
|-&lt;br /&gt;
| IORE&lt;br /&gt;
| Iron Ore&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STEL&lt;br /&gt;
| Steel&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| YETI: Renamed &amp;quot;Balls of Steel&amp;quot;, OTIS: Renamed &amp;quot;Metal&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| VALU&lt;br /&gt;
| Valuables&lt;br /&gt;
| 0008 Armoured&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Temperate; see also GOLD, DIAM&lt;br /&gt;
|-&lt;br /&gt;
| PAPR&lt;br /&gt;
| Paper&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| OTIS: 0220 Covered, piece goods&lt;br /&gt;
|-&lt;br /&gt;
| WHEA&lt;br /&gt;
| Wheat&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Arctic; see also GRAI, MAIZ, CERE&lt;br /&gt;
|-&lt;br /&gt;
| FOOD&lt;br /&gt;
| Food&lt;br /&gt;
| 0084 Express, refrigerated&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| YETI: 00A0 Refrigerated, piece goods&lt;br /&gt;
|-&lt;br /&gt;
| GOLD&lt;br /&gt;
| Gold&lt;br /&gt;
| 0008 Armoured&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Arctic; see also VALU, DIAM&lt;br /&gt;
|-&lt;br /&gt;
| RUBR&lt;br /&gt;
| Rubber&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FRUT&lt;br /&gt;
| Fruit&lt;br /&gt;
| 0090 Bulk, refrigerated&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| XIS: 00A4 Express, piece goods, refrigerated, YETI: 00A0 Piece goods, covered.&lt;br /&gt;
|-&lt;br /&gt;
| MAIZ&lt;br /&gt;
| Maize&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Tropic; see also GRAI, WHEA, CERE. OTIS: Renamed &amp;quot;Animal Feed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| CORE&lt;br /&gt;
| Copper Ore&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| WATR&lt;br /&gt;
| Water&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| OTIS: 0044 Express, liquid&lt;br /&gt;
|-&lt;br /&gt;
| DIAM&lt;br /&gt;
| Diamonds&lt;br /&gt;
| 0008 Armoured&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Tropic; see also VALU, GOLD&lt;br /&gt;
|-&lt;br /&gt;
| SUGR&lt;br /&gt;
| Sugar&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| AORE&lt;br /&gt;
| Bauxite (Aluminium ore)&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| BDMT&lt;br /&gt;
| Building Materials&lt;br /&gt;
| 0220 Piece goods, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| XIS: 0030 Bulk, piece goods. YETI: 0020 Piece goods.&lt;br /&gt;
|-&lt;br /&gt;
| BEAN&lt;br /&gt;
| Beans&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| CZIS renamed to Potatoes&lt;br /&gt;
|-&lt;br /&gt;
| BEER&lt;br /&gt;
| Alcohol&lt;br /&gt;
| 0064 Express, piece goods, liquids&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| BOOM&lt;br /&gt;
| Explosives&lt;br /&gt;
| 0024 Express, piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| OTIS: 0124 Express, Piece goods, hazardous &lt;br /&gt;
|-&lt;br /&gt;
| BRCK&lt;br /&gt;
| Bricks&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CBLK&lt;br /&gt;
| Carbon Black&lt;br /&gt;
| 0230 Piece goods, bulk, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CERA&lt;br /&gt;
| Ceramics&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CERE&lt;br /&gt;
| Cereals&lt;br /&gt;
| 0210 Bulk, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| ECS: &amp;lt;ref name=&amp;quot;ecs_cargo_change&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CLAY&lt;br /&gt;
| Clay&lt;br /&gt;
| 0210 Bulk covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CMNT&lt;br /&gt;
| Cement&lt;br /&gt;
| 0210 Bulk covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COPR&lt;br /&gt;
| Copper&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CSTI&lt;br /&gt;
| Cast Iron&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CTAR&lt;br /&gt;
| Coal Tar&lt;br /&gt;
| 0140 Liquids, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| DYES&lt;br /&gt;
| Dyes&lt;br /&gt;
| 0060 Piece goods, liquids&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ENSP&lt;br /&gt;
| Engineering Supplies&lt;br /&gt;
| 0024 Express, piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| 2TT Industries of the Caribbean: named Machinery&lt;br /&gt;
|-&lt;br /&gt;
| FECR&lt;br /&gt;
| Ferrochrome&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FERT&lt;br /&gt;
| Fertiliser&lt;br /&gt;
| 0030 Bulk, piece goods&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| OTIS: 0034 Express, piece goods, bulk. XIS: 0230 Covered, piece goods, bulk. ECS: &amp;lt;ref name=&amp;quot;ecs_cargo_change&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FICR&lt;br /&gt;
| Fibre crops&lt;br /&gt;
| 0030 Bulk, piece goods&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| OTIS: 0230 Piece goods, bulk, covered/sheltered, renamed &amp;quot;Cotton&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FISH&lt;br /&gt;
| Fish&lt;br /&gt;
| 0084 Express, refrigerated&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FMSP&lt;br /&gt;
| Farm Supplies&lt;br /&gt;
| 0024 Express, piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GLAS&lt;br /&gt;
| Glass&lt;br /&gt;
| 0420 Piece goods, oversized&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| OTIS: 0410 Piece goods, bulk&lt;br /&gt;
|-&lt;br /&gt;
| GRVL&lt;br /&gt;
| Stone&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| Renamed from &amp;quot;Gravel / Ballast&amp;quot; XIS: Renamed &amp;quot;Aggregate&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| JAVA&lt;br /&gt;
| Coffee&lt;br /&gt;
| 0024 Piece goods, express&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| KAOL&lt;br /&gt;
| Kaolin (China Clay)&lt;br /&gt;
| 0250 Bulk, liquids, covered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| XIS: Renamed &amp;quot;Lithium&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| LIME&lt;br /&gt;
| Lime stone&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MILK&lt;br /&gt;
| Milk&lt;br /&gt;
| 00C4 Express, liquid, refrigerated&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| OLSD&lt;br /&gt;
| Oil seed&lt;br /&gt;
| 0210 Bulk, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| ECS: &amp;lt;ref name=&amp;quot;ecs_cargo_change&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| PEAT&lt;br /&gt;
| Peat&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| XIS: Renamed &amp;quot;Biomass&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| PETR&lt;br /&gt;
| Petrol / Fuel Oil&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| OTIS: 0130 Hazardous, liquid&lt;br /&gt;
|-&lt;br /&gt;
| PHOS&lt;br /&gt;
| Phosphate&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| XIS: Renamed &amp;quot;Oil sands&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| PLAS&lt;br /&gt;
| Plastic&lt;br /&gt;
| 0060 Piece goods, liquid&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PORE&lt;br /&gt;
| Pyrite Ore&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| XIS: Renamed &amp;quot;Zinc ore&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| POTA&lt;br /&gt;
| Potash&lt;br /&gt;
| 0210 Bulk, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| ECS: &amp;lt;ref name=&amp;quot;ecs_cargo_change&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RFPR&lt;br /&gt;
| Refined products&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| OTIS: renamed &amp;quot;Sewage&amp;quot;, XIS: renamed &amp;quot;Petrochemicals&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SAND&lt;br /&gt;
| Sand&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SCMT&lt;br /&gt;
| Scrap Metal&lt;br /&gt;
| 1010 Bulk, non-pourable&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| OTIS: Renamed &amp;quot;Waste/Garbage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SULP&lt;br /&gt;
| Sulphur&lt;br /&gt;
| 0250 Bulk, liquid, covered/sheltered.&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| ECS: 0210 Bulk, covered/sheltered &amp;lt;ref name=&amp;quot;ecs_cargo_change&amp;quot;&amp;gt;ECS cargo classes changed as of Dec 31, 2010&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TOUR&lt;br /&gt;
| Tourists&lt;br /&gt;
| 0005 Passengers, express&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| ECS; see also OTI2&lt;br /&gt;
|-&lt;br /&gt;
| TYRE&lt;br /&gt;
| Tyres&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| URAN&lt;br /&gt;
| Uranium&lt;br /&gt;
| 0110 Bulk, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| 2TT: Piece goods, hazardous&lt;br /&gt;
|-&lt;br /&gt;
| VEHI&lt;br /&gt;
| Vehicles&lt;br /&gt;
| 0420 Piece goods, oversized&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| XIS: 0020 Piece goods. OTIS: 0020 Piece goods, renamed &amp;quot;Cars&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| WDPR&lt;br /&gt;
| Wood Products&lt;br /&gt;
| 0030 Bulk, piece goods&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| XIS &amp;amp; OTIS: Renamed &amp;quot;Timber&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| WOOL&lt;br /&gt;
| Wool&lt;br /&gt;
| 0220 Piece goods, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FFCC00; color: black&amp;quot; | [[ttwiki:ECS|ECS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| ECS: &amp;lt;ref name=&amp;quot;ecs_cargo_change&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ZINC&lt;br /&gt;
| Zinc&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Extended Cargos&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;9&amp;quot; | these cargos are only present in rare/specialized situations&lt;br /&gt;
|-&lt;br /&gt;
| ACID&lt;br /&gt;
| Acid&lt;br /&gt;
| 0140 Liquids, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ALUM&lt;br /&gt;
| Aluminium&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| See also METL&lt;br /&gt;
|-&lt;br /&gt;
| BAKE&lt;br /&gt;
| Flour&lt;br /&gt;
| 0A30 Bulk, powderized, piece goods, covered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CASS&lt;br /&gt;
| Cassava&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CHLO&lt;br /&gt;
| Chlorine&lt;br /&gt;
| 0140 Liquids, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CHSE&lt;br /&gt;
| Cheese&lt;br /&gt;
| 00C4 Express, liquid, refrigerated&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CIGR&lt;br /&gt;
| Cigars&lt;br /&gt;
| 0024 Piece goods, express&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Industries of the Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| COAT&lt;br /&gt;
| Paints &amp;amp; Coatings&lt;br /&gt;
| 0060 Piece goods, liquids&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| 2TT Lumberjack Industries: renamed Varnish&lt;br /&gt;
|-&lt;br /&gt;
| COBL&lt;br /&gt;
| Cobalt&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Industries of the Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| COKE&lt;br /&gt;
| Coke&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ELTR&lt;br /&gt;
| Electricity&lt;br /&gt;
| 8000 Special&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|CZIS uses its own labels... see ELEC and NODC&lt;br /&gt;
|-&lt;br /&gt;
| EOIL&lt;br /&gt;
| Edible Oil&lt;br /&gt;
| 0060 Piece goods, liquids&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FRVG&lt;br /&gt;
| Fruit (and optionally Vegetables)&lt;br /&gt;
| 00A4 Express, piece goods, refrigerated&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| See also FRUT&lt;br /&gt;
|-&lt;br /&gt;
| FUEL&lt;br /&gt;
| Natural Gas&lt;br /&gt;
| 0140 Liquid, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Use PETR for refined-oil fuel&lt;br /&gt;
|-&lt;br /&gt;
| FURN&lt;br /&gt;
| Furniture&lt;br /&gt;
| 0230 Piece goods, bulk, covered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| IRON&lt;br /&gt;
| Pig Iron&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LYE_&lt;br /&gt;
| Sodium Hydroxide (Lye)&lt;br /&gt;
| 0140 Liquids, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MEAT&lt;br /&gt;
| Meat&lt;br /&gt;
| 00A4 Express, piece goods, refrigerated&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| METL&lt;br /&gt;
| Metal&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| XIS: Renamed &amp;quot;Aluminium&amp;quot;; See also ALUM&lt;br /&gt;
|-&lt;br /&gt;
| MNO2&lt;br /&gt;
| Manganese&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MNSP&lt;br /&gt;
| Manufacturing Supplies&lt;br /&gt;
| 0024 Piece goods, express&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| XIS: Renamed &amp;quot;Packaging&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| MOLS&lt;br /&gt;
| Molasses&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Industries of the Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| MPTS&lt;br /&gt;
| Machine parts&lt;br /&gt;
| 0220 Covered, piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| NH3_&lt;br /&gt;
| Ammonia&lt;br /&gt;
| 0140 Liquids, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| NHNO&lt;br /&gt;
| [https://en.wikipedia.org/wiki/Ammonium_nitrate NH4NO3 chemical]&lt;br /&gt;
| 0130 Hazardous, bulk, piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| NUTS&lt;br /&gt;
| Nuts&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| NICK&lt;br /&gt;
| Nickel&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| NITR&lt;br /&gt;
| Nitrate&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| NKOR&lt;br /&gt;
| Nickel ore&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| OTIS: Renamed &amp;quot;Nickel&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| NUKF&lt;br /&gt;
| Nuclear fuel&lt;br /&gt;
| Piece goods, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Improved Town Industries&lt;br /&gt;
|-&lt;br /&gt;
| NUKW&lt;br /&gt;
| Nuclear waste&lt;br /&gt;
| Piece goods, hazardous&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Improved Town Industries&lt;br /&gt;
|-&lt;br /&gt;
| OILI&lt;br /&gt;
| Oil (imported)&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Industries of the Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| OILD&lt;br /&gt;
| Oil (domestic)&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Industries of the Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| OTI1&lt;br /&gt;
| Workers&lt;br /&gt;
| 0001 Passengers&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| OTI2&lt;br /&gt;
| Tourists&lt;br /&gt;
| 0001 Passengers&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| OYST&lt;br /&gt;
| Oysters&lt;br /&gt;
| 00A4 Express, piece goods, refrigerated&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| O2__&lt;br /&gt;
| Oxygen&lt;br /&gt;
| 0040 Liquids&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PACK&lt;br /&gt;
| Packaging&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|Packaging used mostly for food production.&lt;br /&gt;
|-&lt;br /&gt;
| PCL_&lt;br /&gt;
| Parcels&lt;br /&gt;
| 0006 Express, mail&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PIPE&lt;br /&gt;
| Pipe&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| POWR&lt;br /&gt;
| Electrical Parts&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| OTIS: 0220 Covered, piece goods, renamed &amp;quot;Electrical Machines&amp;quot;. XIS and CZIS: Renamed &amp;quot;Electrical Machines&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| QLME&lt;br /&gt;
| Quicklime&lt;br /&gt;
| 0210 Bulk, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RCYC&lt;br /&gt;
| Recyclables&lt;br /&gt;
| 0030 Bulk, piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SALT&lt;br /&gt;
| Salt&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SASH&lt;br /&gt;
| Soda Ash&lt;br /&gt;
| 0210 Bulk, covered/sheltered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SEED&lt;br /&gt;
| Seed&lt;br /&gt;
| 0230 Piece goods, bulk, covered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SESP&lt;br /&gt;
| Marine Supplies&lt;br /&gt;
| 0024 Express, piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SGBT&lt;br /&gt;
| Sugar beet&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| not in tropical&lt;br /&gt;
|-&lt;br /&gt;
| SGCN&lt;br /&gt;
| Sugarcane&lt;br /&gt;
| 1010 Bulk, non-pourable&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| only tropical&lt;br /&gt;
|-&lt;br /&gt;
| SLAG&lt;br /&gt;
| Slag&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SOAP&lt;br /&gt;
| Cleaning Agents&lt;br /&gt;
| 0060 Piece goods, liquids&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STAL&lt;br /&gt;
| Alloy Steel&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STCB&lt;br /&gt;
| Carbon Steel&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STSE&lt;br /&gt;
| Steel Sections&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STSH&lt;br /&gt;
| Steel Sheet&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STST&lt;br /&gt;
| Stainless Steel&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STWR&lt;br /&gt;
| Steel Wire Rod&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TATO&lt;br /&gt;
| Potatoes&lt;br /&gt;
| 00A4 Express, piece goods, refrigerated&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| CZIS uses renamed Beans&lt;br /&gt;
|-&lt;br /&gt;
| TEXT&lt;br /&gt;
| Textile&lt;br /&gt;
| 0220 Piece goods, covered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TBCO&lt;br /&gt;
| Tobacco&lt;br /&gt;
| 1010 Bulk, non-pourable&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Industries of the Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| TWOD&lt;br /&gt;
| Tropic Wood&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #D1D1D1; color: black&amp;quot; | [[ttwiki:OTIS|OTIS]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| formerly intended as a default cargo&lt;br /&gt;
|-&lt;br /&gt;
| VBOD&lt;br /&gt;
| Vehicle bodies&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VENG&lt;br /&gt;
| Vehicle Engines&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VPTS&lt;br /&gt;
| Vehicle Parts&lt;br /&gt;
| 0024 Piece goods, express&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #80A0D0; color: white&amp;quot; | [[ttwiki:XIS|XIS]]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| XIS: 0020 Piece goods, renamed &amp;quot;Parts&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| WSTE&lt;br /&gt;
| Waste&lt;br /&gt;
| 0230 Piece goods, bulk, covered&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #B4A7D6; color: white&amp;quot; | [[ttwiki:2TT|2TT]]&lt;br /&gt;
|&lt;br /&gt;
| Used by Improved Town Industries.&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Fantasy Cargos&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;9&amp;quot; | these cargos are for use in fantasy or science fiction settings&lt;br /&gt;
|-&lt;br /&gt;
| BATT&lt;br /&gt;
| Batteries&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| BUBL&lt;br /&gt;
| Bubbles&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| COLA&lt;br /&gt;
| Cola&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| CTCD&lt;br /&gt;
| Cotton Candy (Candyfloss)&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| FZDR&lt;br /&gt;
| Fizzy Drinks&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| PLST&lt;br /&gt;
| Plastic&lt;br /&gt;
| 0040 Liquid&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland; see also PLAS&lt;br /&gt;
|-&lt;br /&gt;
| SWET&lt;br /&gt;
| Sweets (Candy)&lt;br /&gt;
| 0004 Express&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| TOFF&lt;br /&gt;
| Toffee&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| TOYS&lt;br /&gt;
| Toys&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
| style=&amp;quot;background: #CC00CC; color: black&amp;quot; | TTD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Toyland&lt;br /&gt;
|-&lt;br /&gt;
| YETI&lt;br /&gt;
| Workers, YETI dudes&lt;br /&gt;
| 0404 Express, oversized&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| YETY&lt;br /&gt;
| Tired Workers, Tired YETI dudes&lt;br /&gt;
| 0404 Express, oversized&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #009fe3; color: black&amp;quot; | [[ttwiki:YETI|YETI]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ELEC&lt;br /&gt;
| Charged Batteries (electricity from PP)&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
| Used as means of electricity transportation.&lt;br /&gt;
|-&lt;br /&gt;
| NODC&lt;br /&gt;
| Uncharged Batteries (return of batteries) aka No Direct Current&lt;br /&gt;
| 0020 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background: #FF0000; color: white&amp;quot; | CZIS&lt;br /&gt;
|Used as means of electricity transportation.&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Special Cargos&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;9&amp;quot; | these cargos are for use outside industry sets and do not represent transporting anything&lt;br /&gt;
|-&lt;br /&gt;
| GEAR&lt;br /&gt;
| Locomotive regearing&lt;br /&gt;
| 8000 Special&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Using this cargo may make your vehicle set incompatible with some industry sets&lt;br /&gt;
use CB36 instead to set capacity to 0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Deprecated Cargos&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;9&amp;quot; | these cargos are not used by any current industry set, and are listed here for backwards compatibility&lt;br /&gt;
|-&lt;br /&gt;
| RSGR&lt;br /&gt;
| Raw Sugar&lt;br /&gt;
| 0010 Bulk&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Deprecated see SGBT and SGCN&lt;br /&gt;
|-&lt;br /&gt;
| SCRP&lt;br /&gt;
| Scrap Metal&lt;br /&gt;
| 0010 Piece goods&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Deprecated see SCMT instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An overview of FIRS cargos is avaliable [https://grf.farm/firs/code_reference_latest.html here] for the latest version.&lt;br /&gt;
&lt;br /&gt;
If you write or publish a NewGRF which introduces a new cargo label, please also add a comment where the new label is used.&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4862</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4862"/>
		<updated>2024-09-24T08:01:51Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Rail System/Gauge [X***] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&#039;&#039; (See proposals below.)&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, ncompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| &lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor ||MGLV (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|V ||Vactrains/Hyperloop ||t, then I, then MGLV (the whole label) ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), 16 in (406 mm), 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1432 mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SABN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|d ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4861</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4861"/>
		<updated>2024-09-24T08:01:32Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Energy source type class [***X] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&#039;&#039; (See proposals below.)&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Extended maglev support addition==&lt;br /&gt;
These are extensions to the rail system and energy source type classes currently supported by RIMS, FRIMS and the Maglev Track Set which allow trainsets to code trains which use different, ncompatible maglev variations. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for all maglevs in trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track (SCMaglev)&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track (Transrapid/China)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{|&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor ||MGLV (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|V ||Vactrains/Hyperloop ||t, then I, then MGLV (the whole label) ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
There are a number of proposed labels for standardization of non-standardized labels...&lt;br /&gt;
&lt;br /&gt;
===Rail System/Gauge [X***]===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_H_c&amp;quot; and &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|compatible_railtype_list (NML)]], and ALWAYS add &amp;quot;_S_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]] if you intend to support this&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|A ||Alweg-based Monorail&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), 16 in (406 mm), 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1432 mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SABN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm), Dresden (1450 mm) and Leipzig (1458 mm) gauges are all based on streetcar/tram systems and may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm)&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|K-R ||rack rail with speed limits, that allows rack-equipped vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|k-r ||rack rail with speed limits, that powers a rack-only vehicle ||special ||&lt;br /&gt;
|- &lt;br /&gt;
|s ||subterranean (low-clearance) ||eyecandy, should not be supported by double-deck passenger carriages or double-stack container wagons ||&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, ideally it would be coded in a way where both pure rack and rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails (the most popular rack set) implements compatibility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
Should another rack rail set be implemented, it might be prudent to make K-R equivalent to A-H for rack-and-adhesion, and k-r equivalent to A-H for rack rail only.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|d ||High, extra-lean freight bogies ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle (update in 2030 or so?)|| style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2050 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2048&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the above scheme is used, &amp;quot;d&amp;quot; should NEVER be used as the axle weight of a railtype. Instead, if your train set supports axle weights, use SAdN/SAdE/etc. as a vehicle&#039;s axle weight if they are a freight car available between 2008 and 2028 but are more than 40 metric tonnes (40000kg) per axle, and add the railtype to the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of SADN or equivalent.&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=TracktypeLabels&amp;diff=4776</id>
		<title>TracktypeLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=TracktypeLabels&amp;diff=4776"/>
		<updated>2024-04-05T12:55:37Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Labels for rail types, road types and tram type ==&lt;br /&gt;
All track types are identified via 4-byte labels.&lt;br /&gt;
The labels are unique within their type, but it is common that rail types and tram types use the same label for similar types.&lt;br /&gt;
&lt;br /&gt;
Vehicles can check for their track type on a tile, but they only have access to their own type: On a level-crossing with all three tracks (rail, road, tram) trains can only check rail types, buses/trucks can only check road types, and trams can only check tram types.&lt;br /&gt;
&lt;br /&gt;
=== Rail vs. tram ===&lt;br /&gt;
Rail and tram are very different wrt. game-play, but both are kind of rails.&lt;br /&gt;
To unify labels, rail and tram should use the same labels, if the tracks are similar.&lt;br /&gt;
* RAIL for unelectrified rail and tram.&lt;br /&gt;
* ELRL for electrified rail and tram.&lt;br /&gt;
* FNCY for fancy-powered rail and tram.&lt;br /&gt;
&lt;br /&gt;
== Default labels ==&lt;br /&gt;
&lt;br /&gt;
=== Rail type ===&lt;br /&gt;
These labels are used for the trains and tracks in the base game, as well as for train sets that are not rail-type-aware. Consequently, track NewGRFs should always override their properties, or at least make their tracks compatible to them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Rail Type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|RAIL&lt;br /&gt;
|Normal rail&lt;br /&gt;
|-&lt;br /&gt;
|ELRL&lt;br /&gt;
|electrified rail&lt;br /&gt;
|-&lt;br /&gt;
|MONO&lt;br /&gt;
|Monorail tracks&lt;br /&gt;
|-&lt;br /&gt;
|MGLV&lt;br /&gt;
|Maglev tracks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Road types ===&lt;br /&gt;
By default there is only a single road type defined:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Road Type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ROAD&lt;br /&gt;
|Normal road&lt;br /&gt;
|}&lt;br /&gt;
However, if a NewGRF requires electrified &amp;quot;ELRD&amp;quot;, an Action0 is sufficient to add this type and make it use the default road-ground and catenary sprites.&lt;br /&gt;
&lt;br /&gt;
=== Tram types ===&lt;br /&gt;
By default there is only a single tram type defined:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Tram Type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ELRL&lt;br /&gt;
|Electrified rail&lt;br /&gt;
|}&lt;br /&gt;
However, if a NewGRF requires unelectrified &amp;quot;RAIL&amp;quot;, an Action0 is sufficient to add this type and make it use the default tram-ground sprites.&lt;br /&gt;
&lt;br /&gt;
Note: Please use the same label for tram types which already exist as rail types.&lt;br /&gt;
&lt;br /&gt;
== Standardized Railtype Scheme ==&lt;br /&gt;
Several members of the TT Forums have collaborated to define a rail type label scheme that allows for compatibility between train and track sets by different authors. At the same time it allows fancy stuff like axle weight limits, speed limits, different track and electrification types, etc. See [[Standardized Railtype Scheme]].&lt;br /&gt;
&lt;br /&gt;
The Standardized Railtype Scheme is not mandatory, and authors providing both trains and railtypes may have valid reasons to use labels outside the scheme. The Standardized Scheme cannot cover all possible cases, by design, as it would be too complex.&lt;br /&gt;
&lt;br /&gt;
However even when using custom labels, it may be worth using Standardized Railtype labels:&lt;br /&gt;
* as fallbacks for trains when the custom label is not available (via NML railtypetable fallback lists)&lt;br /&gt;
* as alternates handled by a railtype with a custom label (via NML alternative_railtype_list or NFO prop 1D)&lt;br /&gt;
This will provide wider compatibility with other train and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
=== Non-standard railtype labels ===&lt;br /&gt;
&lt;br /&gt;
The following labels were defined before the Standardized Railtype Scheme existed.  Using these or not is at the discretion of individual grf authors, but generally, if an equivalent label exists in the Standardized Railtype Scheme, it&#039;s better to use that.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Rail Type&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|_040&lt;br /&gt;
|speed limit 40 km/h&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|_080&lt;br /&gt;
|speed limit 80 km/h&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|E040&lt;br /&gt;
|speed limit 40 km/h, with catenary&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|E080&lt;br /&gt;
|speed limit 80 km/h, with catenary&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|3RDR&lt;br /&gt;
|Tracks with third rail&lt;br /&gt;
|MetroTracks, NuTracks, UK Railway Set tracks, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|3RDC&lt;br /&gt;
|Tracks with third rail and catenary&lt;br /&gt;
|MetroTracks, NuTracks, UK Railway Set tracks, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|RLOW&lt;br /&gt;
|Low speed tracks&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ELOW&lt;br /&gt;
|Low speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|3LOW&lt;br /&gt;
|Low speed tracks with 3rd rail&lt;br /&gt;
|NuTracks,&lt;br /&gt;
|-&lt;br /&gt;
|CLOW&lt;br /&gt;
|Low speed tracks, 3rd rail and catenary&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|RMED&lt;br /&gt;
|Medium speed tracks&lt;br /&gt;
|NuTracks, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|EMED&lt;br /&gt;
|Medium speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|3MED&lt;br /&gt;
|Medium speed tracks with 3rd rail&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|CMED&lt;br /&gt;
|Medium speed tracks, 3rd rail and catenary&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|RHIG&lt;br /&gt;
|High speed tracks&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|EHIG&lt;br /&gt;
|High speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|HSTR&lt;br /&gt;
|Very high speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|NGRL&lt;br /&gt;
|Narrow gauge tracks&lt;br /&gt;
|Narrow Gauge Track Types, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ELNG&lt;br /&gt;
|Narrow gauge tracks with catenary&lt;br /&gt;
|Narrow Gauge Track Types, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|PLAN&lt;br /&gt;
|Planning tracks (blue dotted lines)&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRO&lt;br /&gt;
|Metro tracks&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRC&lt;br /&gt;
|Metro tracks with concrete edges&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRS&lt;br /&gt;
|Metro tracks with suburban buildings on top&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRU&lt;br /&gt;
|Metro tracks with &#039;downtown&#039; buildings on top&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRT&lt;br /&gt;
|Metro tracks with plain landscape on top&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|DBNN&lt;br /&gt;
|branch line&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBNE&lt;br /&gt;
|branch line, electrified&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBHN&lt;br /&gt;
|main line&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBHE&lt;br /&gt;
|main line, electrified&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBHS&lt;br /&gt;
|high speed line electrified (NBS)&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|TRPD&lt;br /&gt;
|transrapid track&lt;br /&gt;
|Transrapid track type&lt;br /&gt;
|-&lt;br /&gt;
|NLOW&lt;br /&gt;
|Low speed narrow gauge tracks&lt;br /&gt;
|Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ENLW&lt;br /&gt;
|Low speed narrow gauge tracks with catenary&lt;br /&gt;
|Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ENHI&lt;br /&gt;
|Modern narrow gauge tracks with catenary&lt;br /&gt;
|Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|RLA0&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 60 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|RLA1&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|RLA2&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|RLA3&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERd0&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 60 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERd1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERd2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERd3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERD1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 3kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERD2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 3kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERD3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 3kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA4&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. No speed limit&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERa0&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 60 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERa1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERa2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERa3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERa4&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. No speed limit&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER2D&lt;br /&gt;
|Broad (1520 mm) gauge tracks with DC 1,5kV / 3kV catenary. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ER2S&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / DC 3kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ER2s&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / DC 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER3a&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / 15kV / DC 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER3D&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / DC 3kV / 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER4S&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / 15kV / DC 3kV / 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|SW1L&lt;br /&gt;
|Broad (1520 mm) gauge tracks with DC 700V third rail on the left. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|SW1R&lt;br /&gt;
|Broad (1520 mm) gauge tracks with DC 700V third rail on the right. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|WWAY&lt;br /&gt;
|Wagonway&lt;br /&gt;
|Early Rails set&lt;br /&gt;
|-&lt;br /&gt;
|WGWY&lt;br /&gt;
|Wagonway&lt;br /&gt;
|Recycled Tracktype Set&lt;br /&gt;
|-&lt;br /&gt;
|LTRL&lt;br /&gt;
|Light Rails&lt;br /&gt;
|Early Rails set&lt;br /&gt;
|-&lt;br /&gt;
|LIHT&lt;br /&gt;
|Light Rails&lt;br /&gt;
|Recycled Tracktype Set&lt;br /&gt;
|-&lt;br /&gt;
|TYTX&lt;br /&gt;
|ToyTrax&lt;br /&gt;
|ToyTrax&lt;br /&gt;
|-&lt;br /&gt;
|ELTX&lt;br /&gt;
|ElecTrax&lt;br /&gt;
|ToyTrax&lt;br /&gt;
|-&lt;br /&gt;
|DPRK&lt;br /&gt;
|North Korean Urban Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|JPU1&lt;br /&gt;
|Japanese Urban Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR1&lt;br /&gt;
|Industrial Stations Renewal Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR2&lt;br /&gt;
|CHIPS Dirt Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR3&lt;br /&gt;
|CHIPS Asphalt Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR4&lt;br /&gt;
|CHIPS Cobblestone Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|NORD&lt;br /&gt;
|Standard gauge AC electrified 15 and 25 kv (hidden) Depriciated use SAA$ instead&lt;br /&gt;
|SMITS rails&lt;br /&gt;
|-&lt;br /&gt;
|IHBA&lt;br /&gt;
|Standard gauge, AC electrified, dedicated high speed standard gauge rail&lt;br /&gt;
|Iron Horse 3&lt;br /&gt;
|-&lt;br /&gt;
|IHB_&lt;br /&gt;
|Standard gauge, AC electrified&lt;br /&gt;
|Iron Horse 3&lt;br /&gt;
|-&lt;br /&gt;
|IHC_&lt;br /&gt;
|Standard gauge metro&lt;br /&gt;
|Iron Horse 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Standardized Roadtype Scheme ==&lt;br /&gt;
Same story as the railtype one, also covers trams. See [[Standardized Roadtype Scheme]]&lt;br /&gt;
&lt;br /&gt;
=== Non-standard roadtype labels ===&lt;br /&gt;
&lt;br /&gt;
The following labels were defined before the Standardized Roadtype Scheme existed, but after alternative_roadtype_list and alternative_tramtype_list existed (meaning compatibility options allowed for quicker proliferation. Using these or not is at the discretion of individual grf authors, but generally, if an equivalent label exists in the Standardized Roadtype Scheme, it&#039;s better to use that. Ditto for tramtypes, but note that a label can be used twice, once for a roadtype and once for a tramtype.&lt;br /&gt;
&lt;br /&gt;
==== Non-standard roadtypes ====&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Road Type&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ELRD&lt;br /&gt;
|Road with catenary&lt;br /&gt;
|Very commonly used&lt;br /&gt;
|-&lt;br /&gt;
|_TRD&lt;br /&gt;
|Town Roads&lt;br /&gt;
|Ufiby&#039;s U&amp;amp;ReRMM (1st version only)&lt;br /&gt;
|-&lt;br /&gt;
|SMRT&lt;br /&gt;
|SmartRoad&lt;br /&gt;
|Various unattributed roadtype sets&lt;br /&gt;
|-&lt;br /&gt;
|SMTS&lt;br /&gt;
|SmartStreet&lt;br /&gt;
|Various unattributed roadtype sets&lt;br /&gt;
|-&lt;br /&gt;
|HAUL&lt;br /&gt;
|Heavy duty vehicles&lt;br /&gt;
|Docklands&lt;br /&gt;
|-&lt;br /&gt;
|ELHL&lt;br /&gt;
|Electric heavy duty vehicles&lt;br /&gt;
|Docklands&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Non-standard tramtypes ====&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Road Type&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|RAIL&lt;br /&gt;
|Non-electrified tramtrack&lt;br /&gt;
|Very commonly used&lt;br /&gt;
|-&lt;br /&gt;
|Auto&lt;br /&gt;
|Trackless Tram&lt;br /&gt;
|An unattributed roadtype set (GRC?)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4769</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4769"/>
		<updated>2024-03-30T15:28:21Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Extended multivoltage support addition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|R ||rack rail, that allows this vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, idealy it would be coded in a way where both Pure rack and Rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails implements compatiblility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E or just E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_A_-&amp;quot; and &amp;quot;_A_N&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] (as well as the equivalent electrified/pneumatic railtype that is powered on your electrified/pneumatic railtype to support it if you are making a new railtype set, older sets can be covered by fix or patch grfs) and &amp;quot;_A_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]]&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), 16 in (406 mm), 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1432 mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SABN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm) and Dresden (1450 mm) gauges may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Leipzig trams (1458 mm) and Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm) &lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor ||MGLV (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|V ||Vactrains/Hyperloop ||t, then I, then MGLV (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for diagonal sub-surface &amp;quot;rail tunnels&amp;quot; that use decorative track types to complete the illusion) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=TracktypeLabels&amp;diff=4768</id>
		<title>TracktypeLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=TracktypeLabels&amp;diff=4768"/>
		<updated>2024-03-30T15:26:46Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Non-standard roadtypes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Labels for rail types, road types and tram type ==&lt;br /&gt;
All track types are identified via 4-byte labels.&lt;br /&gt;
The labels are unique within their type, but it is common that rail types and tram types use the same label for similar types.&lt;br /&gt;
&lt;br /&gt;
Vehicles can check for their track type on a tile, but they only have access to their own type: On a level-crossing with all three tracks (rail, road, tram) trains can only check rail types, buses/trucks can only check road types, and trams can only check tram types.&lt;br /&gt;
&lt;br /&gt;
=== Rail vs. tram ===&lt;br /&gt;
Rail and tram are very different wrt. game-play, but both are kind of rails.&lt;br /&gt;
To unify labels, rail and tram should use the same labels, if the tracks are similar.&lt;br /&gt;
* RAIL for unelectrified rail and tram.&lt;br /&gt;
* ELRL for electrified rail and tram.&lt;br /&gt;
* FNCY for fancy-powered rail and tram.&lt;br /&gt;
&lt;br /&gt;
== Default labels ==&lt;br /&gt;
&lt;br /&gt;
=== Rail type ===&lt;br /&gt;
These labels are used for the trains and tracks in the base game, as well as for train sets that are not rail-type-aware. Consequently, track NewGRFs should always override their properties, or at least make their tracks compatible to them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Rail Type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|RAIL&lt;br /&gt;
|Normal rail&lt;br /&gt;
|-&lt;br /&gt;
|ELRL&lt;br /&gt;
|electrified rail&lt;br /&gt;
|-&lt;br /&gt;
|MONO&lt;br /&gt;
|Monorail tracks&lt;br /&gt;
|-&lt;br /&gt;
|MGLV&lt;br /&gt;
|Maglev tracks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Road types ===&lt;br /&gt;
By default there is only a single road type defined:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Road Type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ROAD&lt;br /&gt;
|Normal road&lt;br /&gt;
|}&lt;br /&gt;
However, if a NewGRF requires electrified &amp;quot;ELRD&amp;quot;, an Action0 is sufficient to add this type and make it use the default road-ground and catenary sprites.&lt;br /&gt;
&lt;br /&gt;
=== Tram types ===&lt;br /&gt;
By default there is only a single tram type defined:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Tram Type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ELRL&lt;br /&gt;
|Electrified rail&lt;br /&gt;
|}&lt;br /&gt;
However, if a NewGRF requires unelectrified &amp;quot;RAIL&amp;quot;, an Action0 is sufficient to add this type and make it use the default tram-ground sprites.&lt;br /&gt;
&lt;br /&gt;
Note: Please use the same label for tram types which already exist as rail types.&lt;br /&gt;
&lt;br /&gt;
== Standardized Railtype Scheme ==&lt;br /&gt;
Several members of the TT Forums have collaborated to define a rail type label scheme that allows for compatibility between train and track sets by different authors. At the same time it allows fancy stuff like axle weight limits, speed limits, different track and electrification types, etc. See [[Standardized Railtype Scheme]].&lt;br /&gt;
&lt;br /&gt;
The Standardized Railtype Scheme is not mandatory, and authors providing both trains and railtypes may have valid reasons to use labels outside the scheme. The Standardized Scheme cannot cover all possible cases, by design, as it would be too complex.&lt;br /&gt;
&lt;br /&gt;
However even when using custom labels, it may be worth using Standardized Railtype labels:&lt;br /&gt;
* as fallbacks for trains when the custom label is not available (via NML railtypetable fallback lists)&lt;br /&gt;
* as alternates handled by a railtype with a custom label (via NML alternative_railtype_list or NFO prop 1D)&lt;br /&gt;
This will provide wider compatibility with other train and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
=== Non-standard railtype labels ===&lt;br /&gt;
&lt;br /&gt;
The following labels were defined before the Standardized Railtype Scheme existed.  Using these or not is at the discretion of individual grf authors, but generally, if an equivalent label exists in the Standardized Railtype Scheme, it&#039;s better to use that.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Rail Type&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|_040&lt;br /&gt;
|speed limit 40 km/h&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|_080&lt;br /&gt;
|speed limit 80 km/h&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|E040&lt;br /&gt;
|speed limit 40 km/h, with catenary&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|E080&lt;br /&gt;
|speed limit 80 km/h, with catenary&lt;br /&gt;
|Slowrails, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|3RDR&lt;br /&gt;
|Tracks with third rail&lt;br /&gt;
|MetroTracks, NuTracks, UK Railway Set tracks, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|3RDC&lt;br /&gt;
|Tracks with third rail and catenary&lt;br /&gt;
|MetroTracks, NuTracks, UK Railway Set tracks, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|RLOW&lt;br /&gt;
|Low speed tracks&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ELOW&lt;br /&gt;
|Low speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|3LOW&lt;br /&gt;
|Low speed tracks with 3rd rail&lt;br /&gt;
|NuTracks,&lt;br /&gt;
|-&lt;br /&gt;
|CLOW&lt;br /&gt;
|Low speed tracks, 3rd rail and catenary&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|RMED&lt;br /&gt;
|Medium speed tracks&lt;br /&gt;
|NuTracks, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|EMED&lt;br /&gt;
|Medium speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails&lt;br /&gt;
|-&lt;br /&gt;
|3MED&lt;br /&gt;
|Medium speed tracks with 3rd rail&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|CMED&lt;br /&gt;
|Medium speed tracks, 3rd rail and catenary&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|RHIG&lt;br /&gt;
|High speed tracks&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|EHIG&lt;br /&gt;
|High speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|HSTR&lt;br /&gt;
|Very high speed tracks with catenary&lt;br /&gt;
|NuTracks, SwedishRails, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|NGRL&lt;br /&gt;
|Narrow gauge tracks&lt;br /&gt;
|Narrow Gauge Track Types, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ELNG&lt;br /&gt;
|Narrow gauge tracks with catenary&lt;br /&gt;
|Narrow Gauge Track Types, Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|PLAN&lt;br /&gt;
|Planning tracks (blue dotted lines)&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRO&lt;br /&gt;
|Metro tracks&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRC&lt;br /&gt;
|Metro tracks with concrete edges&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRS&lt;br /&gt;
|Metro tracks with suburban buildings on top&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRU&lt;br /&gt;
|Metro tracks with &#039;downtown&#039; buildings on top&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|MTRT&lt;br /&gt;
|Metro tracks with plain landscape on top&lt;br /&gt;
|NuTracks&lt;br /&gt;
|-&lt;br /&gt;
|DBNN&lt;br /&gt;
|branch line&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBNE&lt;br /&gt;
|branch line, electrified&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBHN&lt;br /&gt;
|main line&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBHE&lt;br /&gt;
|main line, electrified&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|DBHS&lt;br /&gt;
|high speed line electrified (NBS)&lt;br /&gt;
|DBRails&lt;br /&gt;
|-&lt;br /&gt;
|TRPD&lt;br /&gt;
|transrapid track&lt;br /&gt;
|Transrapid track type&lt;br /&gt;
|-&lt;br /&gt;
|NLOW&lt;br /&gt;
|Low speed narrow gauge tracks&lt;br /&gt;
|Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ENLW&lt;br /&gt;
|Low speed narrow gauge tracks with catenary&lt;br /&gt;
|Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|ENHI&lt;br /&gt;
|Modern narrow gauge tracks with catenary&lt;br /&gt;
|Japanese Track Set&lt;br /&gt;
|-&lt;br /&gt;
|RLA0&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 60 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|RLA1&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|RLA2&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|RLA3&lt;br /&gt;
|Broad (1520 mm) gauge unelectrified tracks. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERd0&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 60 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERd1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERd2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERd3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 1,5kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERD1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 3kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERD2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 3kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERD3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic DC catenary 3kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERA4&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 25kV. No speed limit&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERa0&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 60 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ERa1&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERa2&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 140 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERa3&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. Speed limit 250 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ERa4&lt;br /&gt;
|Broad (1520 mm) gauge tracks with generic AC catenary 15kV. No speed limit&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER2D&lt;br /&gt;
|Broad (1520 mm) gauge tracks with DC 1,5kV / 3kV catenary. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ER2S&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / DC 3kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|ER2s&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / DC 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER3a&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / 15kV / DC 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER3D&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / DC 3kV / 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|ER4S&lt;br /&gt;
|Broad (1520 mm) gauge tracks with AC 25kV / 15kV / DC 3kV / 1,5kV catenary. Speed limit 120 km/h&lt;br /&gt;
|xUSSR train set add-on&lt;br /&gt;
|-&lt;br /&gt;
|SW1L&lt;br /&gt;
|Broad (1520 mm) gauge tracks with DC 700V third rail on the left. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|SW1R&lt;br /&gt;
|Broad (1520 mm) gauge tracks with DC 700V third rail on the right. Speed limit 100 km/h&lt;br /&gt;
|xUSSR train set&lt;br /&gt;
|-&lt;br /&gt;
|WWAY&lt;br /&gt;
|Wagonway&lt;br /&gt;
|Early Rails set&lt;br /&gt;
|-&lt;br /&gt;
|WGWY&lt;br /&gt;
|Wagonway&lt;br /&gt;
|Recycled Tracktype Set&lt;br /&gt;
|-&lt;br /&gt;
|LTRL&lt;br /&gt;
|Light Rails&lt;br /&gt;
|Early Rails set&lt;br /&gt;
|-&lt;br /&gt;
|LIHT&lt;br /&gt;
|Light Rails&lt;br /&gt;
|Recycled Tracktype Set&lt;br /&gt;
|-&lt;br /&gt;
|TYTX&lt;br /&gt;
|ToyTrax&lt;br /&gt;
|ToyTrax&lt;br /&gt;
|-&lt;br /&gt;
|ELTX&lt;br /&gt;
|ElecTrax&lt;br /&gt;
|ToyTrax&lt;br /&gt;
|-&lt;br /&gt;
|DPRK&lt;br /&gt;
|North Korean Urban Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|JPU1&lt;br /&gt;
|Japanese Urban Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR1&lt;br /&gt;
|Industrial Stations Renewal Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR2&lt;br /&gt;
|CHIPS Dirt Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR3&lt;br /&gt;
|CHIPS Asphalt Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|ISR4&lt;br /&gt;
|CHIPS Cobblestone Ground&lt;br /&gt;
|Trackless Trackset&lt;br /&gt;
|-&lt;br /&gt;
|NORD&lt;br /&gt;
|Standard gauge AC electrified 15 and 25 kv (hidden) Depriciated use SAA$ instead&lt;br /&gt;
|SMITS rails&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Standardized Roadtype Scheme ==&lt;br /&gt;
Same story as the railtype one, also covers trams. See [[Standardized Roadtype Scheme]]&lt;br /&gt;
&lt;br /&gt;
=== Non-standard roadtype labels ===&lt;br /&gt;
&lt;br /&gt;
The following labels were defined before the Standardized Roadtype Scheme existed, but after alternative_roadtype_list and alternative_tramtype_list existed (meaning compatibility options allowed for quicker proliferation. Using these or not is at the discretion of individual grf authors, but generally, if an equivalent label exists in the Standardized Roadtype Scheme, it&#039;s better to use that. Ditto for tramtypes, but note that a label can be used twice, once for a roadtype and once for a tramtype.&lt;br /&gt;
&lt;br /&gt;
==== Non-standard roadtypes ====&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Road Type&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ELRD&lt;br /&gt;
|Road with catenary&lt;br /&gt;
|Very commonly used&lt;br /&gt;
|-&lt;br /&gt;
|_TRD&lt;br /&gt;
|Town Roads&lt;br /&gt;
|Ufiby&#039;s U&amp;amp;ReRMM (1st version only)&lt;br /&gt;
|-&lt;br /&gt;
|SMRT&lt;br /&gt;
|SmartRoad&lt;br /&gt;
|Various unattributed roadtype sets&lt;br /&gt;
|-&lt;br /&gt;
|SMTS&lt;br /&gt;
|SmartStreet&lt;br /&gt;
|Various unattributed roadtype sets&lt;br /&gt;
|-&lt;br /&gt;
|HAUL&lt;br /&gt;
|Heavy duty vehicles&lt;br /&gt;
|Docklands&lt;br /&gt;
|-&lt;br /&gt;
|ELHL&lt;br /&gt;
|Electric heavy duty vehicles&lt;br /&gt;
|Docklands&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Non-standard tramtypes ====&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Road Type&#039;&#039;&#039;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|RAIL&lt;br /&gt;
|Non-electrified tramtrack&lt;br /&gt;
|Very commonly used&lt;br /&gt;
|-&lt;br /&gt;
|Auto&lt;br /&gt;
|Trackless Tram&lt;br /&gt;
|An unattributed roadtype set (GRC?)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4763</id>
		<title>Standardized Railtype Scheme</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Standardized_Railtype_Scheme&amp;diff=4763"/>
		<updated>2024-03-13T21:52:41Z</updated>

		<summary type="html">&lt;p&gt;Brickblock1: /* Speed limit class [*X**] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This railtype label scheme aims to bring order to the uncontrolled growth of railtype labels. It groups the rail types into what matters from a technical perspective. The scheme provides a standardized way of defining railtype labels, based on track gauge and type, speed class, allowable axle weight and electrification type.&lt;br /&gt;
&lt;br /&gt;
It is the explicit intent of this scheme to decouple track sets from vehicle sets to facilitate easy mixing. This way the player can select a track set of choice to go with a train set of choice. It allows the player to play with or without axle load classes, or with or without speed limit classes, simply by loading a track set that does or does not provide these features. In some cases it will also be possible to combine niche track sets, for instance a standard gauge track set with a narrow gauge and a metro track set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Label Scheme ==&lt;br /&gt;
A railtype label consists of four characters. In this scheme, each position has a different purpose:&lt;br /&gt;
# Track gauge and type class (e.g. standard gauge rail, narrow gauge rail, monorail)&lt;br /&gt;
# Speed limit class&lt;br /&gt;
# Axle load class (maximum allowed axle weight for this track)&lt;br /&gt;
# Energy source type class&lt;br /&gt;
&lt;br /&gt;
In the next sections, each of the four positions will be explained.&lt;br /&gt;
&lt;br /&gt;
=== Track gauge and type class [X***] ===&lt;br /&gt;
The first position in the railtype label defines track gauge and/or track type class. The following classes are currently defined:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|- &lt;br /&gt;
|S ||Standard gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|B ||Broad gauge rail &lt;br /&gt;
|-&lt;br /&gt;
|N ||Narrow gauge rail&lt;br /&gt;
|-&lt;br /&gt;
|n ||Secondary narrow gauge rail (e.g. when providing both metre and cape gauge, always use N in case of just one type of narrow gauge)&lt;br /&gt;
|-&lt;br /&gt;
|D ||Dual gauge rail, standard/broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|d ||Dual gauge rail, standard/narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|M ||Monorail&lt;br /&gt;
|-&lt;br /&gt;
|L ||Magnetic Levitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speed limit class [*X**] ===&lt;br /&gt;
The second position in the railtype label defines the speed limit class. These classes do not map to a fixed numeric value, but are used to define an internal speed limit order for the track set. This means that if your track set has two different speed limits for track types that are otherwise identical, you&#039;ll use letters A and B here. In case of three different speed limits, use A, B and C. In case your track set does not employ speed limits, always use A. Train sets do not care about the speed limit, and will always set the lowest speed class, i.e. A.&lt;br /&gt;
&lt;br /&gt;
This gives for instance the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||no speed limits&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;OR&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
! !!Speed limit class&lt;br /&gt;
|- &lt;br /&gt;
|A ||low speed&lt;br /&gt;
|-&lt;br /&gt;
|B ||medium speed&lt;br /&gt;
|-&lt;br /&gt;
|C ||high speed&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;etc.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed limit class may also be used for some advanced features of the label scheme, like specialized track types and eyecandy purposes. Be careful not to break the compatibility with other sets when using the speed limit class for these purposes.&lt;br /&gt;
&lt;br /&gt;
An example of a special use is rack rail. In the French set it is used to give rack rail engines a higher speed and TE than normal rail engines when used on rack rail. When defining trains with a special speed limit class, always allow a fallback to speed limit class A via the railtype table.&lt;br /&gt;
&lt;br /&gt;
An example of eyecandy use are urban tracks. These are a variation of regular tracks, but with concrete ground tiles to better match the urban environment. Train sets must not define vehicles for eyecandy classes. If you think you have special vehicles that should only run on the eyecandy class, it is &#039;&#039;not&#039;&#039; eyecandy but a separate track gauge/type.&lt;br /&gt;
&lt;br /&gt;
The following special and eyecandy classes have been defined so far:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Description !!Type !!Used by&lt;br /&gt;
|- &lt;br /&gt;
|A-H ||speed limits ||colspan=&amp;quot;2&amp;quot;| reserved&lt;br /&gt;
|- &lt;br /&gt;
|R ||rack rail, that allows this vehicle to not slow down going uphill ||special ||French Set Rails&lt;br /&gt;
|- &lt;br /&gt;
|S ||subterranean ||eyecandy ||Metro Track Set&lt;br /&gt;
|- &lt;br /&gt;
|U ||urban ||eyecandy ||Metro Track Set&lt;br /&gt;
|}&lt;br /&gt;
Rack rail needs a bit greater of a explanation, idealy it would be coded in a way where both Pure rack and Rack-and-adhesion systems are supported.&lt;br /&gt;
This can be achieved by making regular tracks powered on rackrail without the opposite being true. This means vehicles defined for NRAN can&#039;t go on NAAN (like a pure rack system) but NAAN vehicles can go on NRAN (like a rack-and-adhesion system). Currently French Set Rails implements compatiblility both ways which makes pure rack systems impossible.&lt;br /&gt;
&lt;br /&gt;
=== Axle load class [**X*] ===&lt;br /&gt;
The third position defines the axle weight limit. Heavy trains cannot run on tracks with a low axle weight limit; these trains need more expensive tracks with a heigher weight limit. There are five axle load classes &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;. &#039;&#039;&#039;A&#039;&#039;&#039; is for the lowest axle load limit, &#039;&#039;&#039;E&#039;&#039;&#039; for the highest. The exact axle load attached to each class is relative to the track gauge/type and trains in the set. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A train set should set the appropriate axle weight for each train via the railtype label, as to make the set work with track sets that do provide tracks with different weight limits, even if you don&#039;t care about it for your trainset. Split all vehicles of a certain track gauge/type into five groups of similar axle weight. The group with the lowest axle weights will get class &#039;&#039;&#039;A&#039;&#039;&#039;, the second lowest class &#039;&#039;&#039;B&#039;&#039;&#039;, etc. up to the group with the highest axle weights which will get class &#039;&#039;&#039;E&#039;&#039;&#039;. Do the same for the other track gauge/types if your train set has those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A track set does not have to provide a dedicated track type for each axle weight limit. A track set that does not provide a dedicated track for each axle load class, must make sure to map all undefined axle load classes to a real railtype using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]]. This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 2 axle load classes for standard gauge unelectrified with no speed limits, you can map SA&#039;&#039;&#039;A&#039;&#039;&#039;N + SA&#039;&#039;&#039;B&#039;&#039;&#039;N to SA&#039;&#039;&#039;C&#039;&#039;&#039;N and SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference between the two railtypes is high, or SA&#039;&#039;&#039;A&#039;&#039;&#039;N to SA&#039;&#039;&#039;B&#039;&#039;&#039;N and SA&#039;&#039;&#039;C&#039;&#039;&#039;N + SA&#039;&#039;&#039;D&#039;&#039;&#039;N to SA&#039;&#039;&#039;E&#039;&#039;&#039;N if the cost difference is low.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to provide any axle load classes in your track set, it doesn&#039;t really matter what axle load class you choose for the track, as you&#039;ll be mapping all other classes to this track anyways. But the lowest or highest class are the obvious choice. Example: if your track set only provides narrow gauge unelectrified track with no speed limits and no axle load limits, you may use NA&#039;&#039;&#039;A&#039;&#039;&#039;N for the track label, and provide NA&#039;&#039;&#039;B&#039;&#039;&#039;N, NA&#039;&#039;&#039;C&#039;&#039;&#039;N, NA&#039;&#039;&#039;D&#039;&#039;&#039;N, NA&#039;&#039;&#039;E&#039;&#039;&#039;N in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need more than five axle load class, you may use lowercase letters for very low axle loads and continue the uppercase letters for very high axle loads. Be advised that your train set may not assume the existance of any other class than &#039;&#039;&#039;A&#039;&#039;&#039; through &#039;&#039;&#039;E&#039;&#039;&#039;, so when the range make sure to program your railtype table such that trains with such a class will fall back to class &#039;&#039;&#039;A&#039;&#039;&#039; or &#039;&#039;&#039;E&#039;&#039;&#039;. If you make a track set with an extended range, be aware that not all train sets will define trains for these tracks. In general: only do this in case of a train set with a matching track set.&lt;br /&gt;
&lt;br /&gt;
For the lowercase letters, &#039;&#039;&#039;b&#039;&#039;&#039; is lower than &#039;&#039;&#039;a&#039;&#039;&#039;, so for increasing axle load limits: b &amp;lt; a &amp;lt; A &amp;lt; B &amp;lt; C etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the axle load classes never map to a specific weight in tonnes. For that reason it does not make sense to add a numeric value for the axle load to the name of a track type or in the extended purchase info of a train. Instead use the relative expressions &#039;very low&#039;, &#039;low&#039;, &#039;medium&#039;, &#039;high&#039; and &#039;very high&#039; or use the class letters directly.&lt;br /&gt;
&lt;br /&gt;
If a guideline is needed for updating a set to use axle loads in a train set where they don&#039;t yet exist, the following might serve as a basic &amp;quot;generic&amp;quot; guideline...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! !!Indefinite !!Generic !! First usage&lt;br /&gt;
|-&lt;br /&gt;
|c ||Horse-drawn Wagonway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1594&lt;br /&gt;
|-&lt;br /&gt;
|b ||Iron Plateway ||1 metric tonne (1000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1799&lt;br /&gt;
|-&lt;br /&gt;
|a ||Prototype Rails ||5 metric tonnes (5000kg) per axle; Because reserved by examples || style=&amp;quot;text-align:right;&amp;quot;|1820&lt;br /&gt;
|-&lt;br /&gt;
|A ||Very Low (2012 OG Default)||10 metric tonnes (10000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1828&lt;br /&gt;
|-&lt;br /&gt;
|B ||Low (2024 &amp;quot;New&amp;quot; Default) ||20 metric tonnes (20000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1968&lt;br /&gt;
|-&lt;br /&gt;
|C ||Medium ||30 metric tonnes (30000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|~1978&lt;br /&gt;
|-&lt;br /&gt;
|D ||High ||40 metric tonnes (40000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|1988&lt;br /&gt;
|-&lt;br /&gt;
|E ||Very High ||50 metric tonnes (50000kg) per axle || style=&amp;quot;text-align:right;&amp;quot;|2008&lt;br /&gt;
|-&lt;br /&gt;
|F ||Future-proofing ||No limit per axle (update in 2030 or so?) || style=&amp;quot;text-align:right;&amp;quot;|~2028&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Energy source type class [***X] ===&lt;br /&gt;
The last position defines the energy source type class. This is split in generic energy source types like overhead wires and third rail and specialized types like alternating and direct current.&lt;br /&gt;
&lt;br /&gt;
A track set that only uses specialized types, should map the generic types to the most suitable specialized type in the set.&lt;br /&gt;
&lt;br /&gt;
A vehicle set that uses specialized types should define a generic type as fallback, via the railtype table. If such a fallback is omitted, please note that certain vehicles may be unavailable depending on track set loaded.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Generic energy type classes&lt;br /&gt;
|-&lt;br /&gt;
|N ||no electrification&lt;br /&gt;
|-&lt;br /&gt;
|E ||overhead wires/catenary electrification&lt;br /&gt;
|-&lt;br /&gt;
|3 ||3rd rail electrification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !!Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|Z ||3rd rail and catenary electrification || 3 or E&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4th rail electrification || 3&lt;br /&gt;
|-&lt;br /&gt;
|Y ||4th rail and catenary electrification || 4 or E&lt;br /&gt;
|-&lt;br /&gt;
|T ||[http://en.wikipedia.org/wiki/Three-phase_AC_railway_electrification three phase AC electrification] || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|D ||DC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|d ||low voltage DC catenary electrification (only when D also used in set) || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|A ||AC catenary electrification || E&lt;br /&gt;
|-&lt;br /&gt;
|a ||low voltage AC catenary electrification (only when A also used in set) || First A then E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want multi-voltage/current vehicles in your set (i.e. a train that can run on both AC and DC current), you have to define a dedicated railtype for those vehicles. Without the railtype, it&#039;s not possible to define vehicles with this property. If you only have vehicles that can run on either one type of voltage/current or on all types of voltage/current (e.g. a 2-system if you only have &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;D&#039;&#039;&#039; tracks, or a 4-system in case of all &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;), then use the generic class &#039;&#039;&#039;E&#039;&#039;&#039; for vehicles that should be able to run on all different voltage/currents. Also the track set needs to have one at least one railtype with class &#039;&#039;&#039;E&#039;&#039;&#039; defined.&lt;br /&gt;
&lt;br /&gt;
Note that if you want more than one type of multi-voltage/current, you&#039;ll quickly get a combinatory explosion of railtype labels, so plan carefully or do not attempt it. For every different multi-voltage/current vehicle type a dedicated railtype is needed. If you want all possible combinations, then you need to define an additional 8 classes. It is not recommended to make your train/track set this complicated.&lt;br /&gt;
&lt;br /&gt;
Example approach for a 4-system set, with trains that can run on either one or all systems:&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: generic catenary-powered electric engines. &amp;quot;universal&amp;quot; [4-system] if any of &#039;&#039;&#039;D&#039;&#039;&#039;/&#039;&#039;&#039;d&#039;&#039;&#039;/&#039;&#039;&#039;A&#039;&#039;&#039;/&#039;&#039;&#039;a&#039;&#039;&#039; are defined.&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;: generic AC catenary electric engines. 25kV only if &#039;&#039;&#039;a&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;A&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039;: 15kV AC catenary electric engines. Only defined if &#039;&#039;&#039;A&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;A&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;a&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;D&#039;&#039;&#039;: generic DC catenary electric engines. 3kV if &#039;&#039;&#039;d&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;D&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;d&#039;&#039;&#039;: 1.5kV DC catenary electric engines. Only defined if &#039;&#039;&#039;D&#039;&#039;&#039; also defined. Vehicle sets should use &#039;&#039;&#039;D&#039;&#039;&#039; and &#039;&#039;&#039;E&#039;&#039;&#039; as fallback, if defining an engine for &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
For a 2-system set, you can simply drop &#039;&#039;&#039;a&#039;&#039;&#039; and &#039;&#039;&#039;d&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Standard labels: RAIL, ELRL, MONO, MGLV ===&lt;br /&gt;
It&#039;s not possible to undefine the standard railtypes RAIL, ELRL, MONO and MGLV. The game will always add those if there are vehicles defined for these track types. As a result, for a track set it&#039;s best not to ignore those standard labels, but rather work with them and define them in the set. If your track set does not have monorail or maglev tracks, there of course is no need to define those. But if your track set defines anything that resembles unelectrified or electrified rail, you should use the RAIL and ELRL labels. Matching labels from the above scheme will then be defined in property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
As vehicles from NewGRFs that do not use explicit railtypes will end up on these standard railtypes, you should use RAIL instead of whatever type could be regarded as the most commonly used unelectrified type, ELRL instead of the most commonly used electrified type and so on. The label according to this scheme is then set as an alternate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for track sets ==&lt;br /&gt;
This section summarizes the above for track sets.&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Define at least one track type for every track gauge/type class you want in your set.&lt;br /&gt;
* If you only provide tracks for one gauge/type, consider leaving some free railtypes so a player can load an additional set for some other type.&lt;br /&gt;
; [*X**] Speed limit class&lt;br /&gt;
* Make sure class A is always available, either directly or via an alternate label.&lt;br /&gt;
* Use only class A if you don&#039;t want speed limits;&lt;br /&gt;
* With speed limits, A is the lowest speed limit. Continue with B, C, etc. for increasing speed limits;&lt;br /&gt;
* The speed class can also be used to implement additional eye-candy track types, use letters higher in the alphabet for this.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Always define all classes A through E for every track type class / electrification combination, either:&lt;br /&gt;
** Directly via a real railtype definition;&lt;br /&gt;
** Indirectly via the alternate rail type label list, property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
* Extend the predefined classes only if you also provide a train set that makes use of these.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* If your set only uses specialized classes, always map the generic classes to the closest matching specialized type via property 1D.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Always define the standard labels when possible, instead of what would be the equivalent of the standard label in this scheme.&lt;br /&gt;
* Map the equivalent labels from this scheme to the standard labels using property [[Action0/Railtypes#Alternate_rail_type_labels_.281D.29|1D (NFO)]] or [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]].&lt;br /&gt;
&lt;br /&gt;
Or, put differently, for each gauge/type, select one or more energy source types. For each type/energy combination provide all axle load classes for the speed class &amp;quot;A&amp;quot;, either as a real type or as an alternate of another type. Provide more types with a different speed letter if you want to provide several different speeds or other eye-candy tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary for train sets ==&lt;br /&gt;
This section summarizes the above for train sets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; [X***] Track gauge and type class&lt;br /&gt;
* Use the track type class that matches the vehicle;&lt;br /&gt;
* Define a fallback type via the railtype table in case you want the vehicle to be available on a different track if no matching track set is loaded.&lt;br /&gt;
** Specialized subtypes like &amp;quot;n&amp;quot; might not always be available. If you want those vehicles to be still available then, fall back the the generic class (e.g. &amp;quot;N&amp;quot;).&lt;br /&gt;
; [*X**] Speed limit class &lt;br /&gt;
* Always use class A for every vehicle.&lt;br /&gt;
; [**X*] Axle load class&lt;br /&gt;
* Use all classes A through E according to the maximum axle weight of the vehicle.&lt;br /&gt;
* Extend the predefined classes only if you also provide a track set that makes use of these;&lt;br /&gt;
** When extending the predefined classes A through E, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; [***X] Energy source type class&lt;br /&gt;
* Use the energy source type class that matches the vehicle;&lt;br /&gt;
* When using specialized classes, define a fallback type via the railtype table in case you want the vehicle to be available if no matching track set is loaded.&lt;br /&gt;
; Standard labels [RAIL, ELRL, MONO, MGLV]&lt;br /&gt;
* Define a fallback type to the standard labels via the railtype table in case you want the vehicle to be available on the standard tracks if no matching track set is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be as specific as you want when selecting the railtype, it is the job of the track set to select a playable, reduced subset out of all possible type combinations.&lt;br /&gt;
&lt;br /&gt;
== In case you&#039;re not convinced by this scheme ==&lt;br /&gt;
Adopting this scheme gives the player freedom to use any track set in combination with any train set that follow the scheme. &lt;br /&gt;
&lt;br /&gt;
This means that you can make your train set compatible with track sets that provide axle load classes, and track sets that provide speed limits, and at the same time with track sets that provide none of this. This way, the player can decide to play with or without axle load classes, or with or without speed limits, simply by loading a track set that does or does not provide these features.&lt;br /&gt;
&lt;br /&gt;
And for your track set, it means that you can make it as simple or as complicated as you want (within the 64 track type limit), while not having to worry about compatibility with train sets.&lt;br /&gt;
&lt;br /&gt;
Still not convinced? Feel free to use railtype labels of your own, but know that you will likely come to regret that at some point in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forum topic==&lt;br /&gt;
If you want to discuss the standardized railtype scheme or have any questions about it, you can visit [http://www.tt-forums.net/viewtopic.php?t=59379 the forum topic].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Innsbruck 2022 Convention&amp;quot; for partial compliance==&lt;br /&gt;
&lt;br /&gt;
This is really esoteric, but eh. It was the product of long discussion / debate / argument / reasoning between grf authors.&lt;br /&gt;
&lt;br /&gt;
1. The Standardized Railtype Scheme &#039;&#039;&#039;is a useful tool&#039;&#039;&#039; for providing reliable compatibility between train grfs and railtype grfs.&lt;br /&gt;
&lt;br /&gt;
2. The &#039;&#039;&#039;axle load class&#039;&#039;&#039; in the scheme presents a number of issues for compliance.&lt;br /&gt;
&lt;br /&gt;
2.1. Over 10 years since the scheme was standardised, not many train grfs implement multiple axle load classes &#039;&#039;&#039;as required by the scheme&#039;&#039;&#039;.  Known examples that &#039;&#039;&#039;do&#039;&#039;&#039; comply include Dutch Train Set, French Narrow Gauge Trains, and Finnish Trains.&lt;br /&gt;
&lt;br /&gt;
2.2. Elements of the axle load rules have proven hard to interpret.  For example:&lt;br /&gt;
&lt;br /&gt;
* is it compliant to use &#039;&#039;fewer&#039;&#039; than 5 classes in a train grf?  There is a lack of consensus on this.&lt;br /&gt;
* axle load is only one of many factors that govern whether a vehicle is compatible with a route, for example loading gauge, minimum curve, signalling types etc&lt;br /&gt;
&lt;br /&gt;
2.3. Meanwhile &#039;&#039;multiple existing train grfs use class &#039;&#039;A&#039;&#039; for the axle load for all trains&#039;&#039; (except where relying on default railtypes such as RAIL and ELRL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. The Innsbruck 2022 Convention uses class &#039;&#039;A&#039;&#039; for axle load for &#039;&#039;&#039;all&#039;&#039;&#039; trains in a train grf (except where relying on default railtypes such as RAIL and ELRL).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is &#039;&#039;&#039;not&#039;&#039;&#039; fully compliant with the Standardized Railtype Scheme and does not claim to be.&lt;br /&gt;
&lt;br /&gt;
However train grfs using the Innsbruck 2022 Convention are &#039;&#039;broadly compatible&#039;&#039; with railtype grfs using the Standardized Railtype Scheme.  &lt;br /&gt;
&lt;br /&gt;
Obligatory XKCD link about &#039;standards&#039;: https://xkcd.com/927/&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
Known problems are that trains using only class &#039;A&#039; may limit the ability of railtype grf authors to achieve their design goals for separating railtypes by axle load.  &lt;br /&gt;
But on reflection, it can be seen that a train grf might not be able to provide a broad enough range of vehicles to cover at least 5 axle load classes.&lt;br /&gt;
&lt;br /&gt;
3.1. The Innsbruck 2022 Convention is &#039;&#039;&#039;not&#039;&#039;&#039; appropriate for train grf authors who wish to provide more than one axle load class.&lt;br /&gt;
&lt;br /&gt;
3.2. The Innsbruck 2022 Convention treats the meaning of class &#039;&#039;A&#039;&#039; as &#039;&#039;undefined&#039;&#039;, &#039;&#039;ignored&#039;&#039; or &#039;&#039;compatible with most restricted railtype&#039;&#039; for axle load.  &lt;br /&gt;
&lt;br /&gt;
Axle load class &#039;&#039;A&#039;&#039; &#039;&#039;&#039;cannot&#039;&#039;&#039; be safely interpreted as &#039;&#039;universal&#039;&#039; because from the perspective of a railtype grf &#039;&#039;A&#039;&#039; is &#039;&#039;most restricted railtype&#039;&#039;, where &#039;&#039;universal&#039;&#039; is better represented as &#039;&#039;least restricted railtype&#039;&#039;. Depending how many axle load classes are in use by the railtype grf, this could be class &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;D&#039;&#039;, &#039;&#039;E&#039;&#039; etc.  To illustrate this issue, take the following scenario&lt;br /&gt;
&lt;br /&gt;
* railtype grf defines axle loads &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;. In this case the railtype grf author intends that &#039;&#039;A&#039;&#039; is compatible with the smallest range of vehicles, &#039;&#039;E&#039;&#039; is compatible with the largest range of vehicles, and &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039; and &#039;&#039;D&#039;&#039; are compatible with some intermediate ranges of vehicles&lt;br /&gt;
* but the vehicle grf author has defined all vehicles to be axle load &#039;&#039;A&#039;&#039; in an attempt to express this vehicle is &#039;&#039;universal&#039;&#039;.  The result in the game is that an identical range of vehicles will be compatible with railtypes &#039;&#039;A&#039;&#039; to &#039;&#039;E&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
This is clearly &#039;&#039;&#039;not&#039;&#039;&#039; the intended outcome of the railtype author. But nor is it clear within the spec that the vehicle author has particularly done anything wrong. &lt;br /&gt;
&lt;br /&gt;
It &#039;&#039;would&#039;&#039; be possible to use railtype availability testing to adjust the vehicle property 05 (track_type) to fit the highest defined axle load (&#039;&#039;E&#039;&#039; in this example case), but this is not insignificant work, and it&#039;s unlikely to be widely adopted by vehicle grf authors.  Nor would this solution achieve &#039;&#039;universal&#039;&#039; as all vehicles in vehicle grf then would be incompatible with types &#039;&#039;A&#039;&#039; through &#039;&#039;D&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.3. When the Innsbruck 2022 Convention is used, this &#039;&#039;&#039;does not prevent&#039;&#039;&#039; a train grf being extended in some future release to achieve full compliance with Standardized Railtype Scheme. &#039;&#039;That choice remains with train grf authors&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3.4. If 2012 could be revisited, providing an optional &#039;&#039;_&#039;&#039; axle load class in the Standardized Railtype Scheme for &#039;&#039;undefined&#039;&#039; would have been preferable, but as of 2022, &#039;&#039;A&#039;&#039; is already widely used for this purpose, and time travel is not known to be possible.&lt;br /&gt;
&lt;br /&gt;
==Extended multivoltage support addition==&lt;br /&gt;
These are extensions to the energy source type class currently supported by SETS and xUSSR Rails which allow trainsets to code trains which are limited to a certain selection of voltages. As stated in the energy source type class section this might not be of use for all sets, as such it is optional but still recommended for trainsets for ideal functionality with tracksets which support the extended labels.&lt;br /&gt;
{|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Specialized energy type classes !!Vehicle set fallback&lt;br /&gt;
|-&lt;br /&gt;
|* ||Equivilent to A, a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&#039; ||Equivilent to A, a and D || E&lt;br /&gt;
|-&lt;br /&gt;
|^ ||Equivilent to A, a and d || E&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Equivilent to A, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
|, ||Equivilent to a, D and d || E&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|$ ||Equivilent to A and a  || First A then E&lt;br /&gt;
|-&lt;br /&gt;
|= ||Equivilent to D and d  || First D then E&lt;br /&gt;
|-&lt;br /&gt;
|) ||Equivilent to A and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|( ||Equivilent to A and d  || E&lt;br /&gt;
|-&lt;br /&gt;
|] ||Equivilent to a and D  || E&lt;br /&gt;
|-&lt;br /&gt;
|[ ||Equivilent to a and d  || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Possible additions==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Track type/gauge&lt;br /&gt;
|-&lt;br /&gt;
|_ ||Universal &amp;quot;cheat&amp;quot; rail; ALWAYS add &amp;quot;_A_-&amp;quot; and &amp;quot;_A_N&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] (as well as the equivalent electrified/pneumatic railtype that is powered on your electrified/pneumatic railtype to support it if you are making a new railtype set, older sets can be covered by fix or patch grfs) and &amp;quot;_A_t&amp;quot; to EVERY [[NML:Railtypes#Railtype_properties|powered_railtype_list (NML)]]&lt;br /&gt;
|-&lt;br /&gt;
|0 ||(A number zero, not a letter &amp;quot;Oh&amp;quot;) No track, eyecandy-use only&lt;br /&gt;
|-&lt;br /&gt;
|U ||[https://perma.cc/93VE-8JQZ &amp;quot;Ukrainian monorail&amp;quot; or Şaropoí̈zd (Шаропоїзд)], a u-shaped concrete &amp;quot;monorail trench&amp;quot; from 1920&#039;s Soviet Union; see [https://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=47432 the Yarmanchuk Express] for graphics&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Early Monorail; See [https://perma.cc/6BVS-2P2X here] and [https://perma.cc/VCG2-ATUA here]&lt;br /&gt;
|-&lt;br /&gt;
|G ||Gyrail; [https://en.wikipedia.org/wiki/Gyro_monorail Gyro monorail/Gyroscopic monorail/Gyro-stabilized monorail] for description and IRL example, and [https://wikimon.net/Trailmon here] ([https://web.archive.org/web/20240227205547/https://wikimon.net/Trailmon archived]) for good fictional examples&lt;br /&gt;
|-&lt;br /&gt;
|m ||Minimum gauge rail; [https://en.wikipedia.org/wiki/Minimum-gauge_railway 15 in (381 mm), 400 mm (15+3⁄4 in), 16 in (406 mm), 18 in (457 mm), 19 in (483 mm), 500 mm (19+3⁄4 in) or 20 in (508 mm)]&lt;br /&gt;
|-&lt;br /&gt;
|n ||600mm &amp;quot;Decauville&amp;quot; or &amp;quot;Feldsbahn&amp;quot;, formerly labelled &amp;quot;NG60&amp;quot; before standardization; the most common narrow gauge track type in OpenTTD other than metre gauge, 600mm gauge is thus ideal for taking up the &amp;quot;n&amp;quot; gauge, though this is an ultimately optional distinction&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750mm, Bosnian gauge (760 mm), and 762mm; all start with 7 and are close in size&lt;br /&gt;
|-&lt;br /&gt;
|3 ||Swedish 3 foot (891 mm), 900mm, 3 foot (914 mm) and Italian Metre (950mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|R ||Metre gauge; potentially compatible with base tramtype &amp;quot;RABN&amp;quot;, most early tramways were metre gauge&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 foot gauge (1219 mm), and possibly 4&#039;6&amp;quot; in. (1372 mm) if standardization is needed for 1372mm&lt;br /&gt;
|-&lt;br /&gt;
|s ||Scotch gauge (1372 mm)&lt;br /&gt;
|-&lt;br /&gt;
|S ||Standard gauge; already implemented in original standardized railtype scheme, but could include near-standard (1432 mm) as well as existing true standard (1435 mm) and is also potentially compatible with the SABN tramtype&lt;br /&gt;
|-&lt;br /&gt;
|X ||Omni-gauge rail (for at-grade multi-gauge crossings and stations); ultrabroad/secondary broad/primary broad/standard/primary narrow/secondary narrow gauge&lt;br /&gt;
|-&lt;br /&gt;
|x ||Multi-gauge rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; ||Quad-gauge (Four-gauge) rail (for at-grade multi-gauge crossings and stations); secondary broad/primary broad/standard/primary narrow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Four-gauge rail (for at-grade multi-gauge crossings and stations); primary broad/standard/primary narrow/secondary narrow&lt;br /&gt;
|-&lt;br /&gt;
|b ||Broad gauge rail - As broad gauge is a rare tracktype, it may still be feasible to cement B and b as broad gauges of two differing sizes, but the rarity among gauges in the real world would need to match; Italian (1445 mm) and Dresden (1450 mm) gauges may be better grouped here&lt;br /&gt;
|-&lt;br /&gt;
|t ||Leipzig trams (1458 mm) and Greater Toronto Area streetcars (1495 mm)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1520mm and 5 foot (1524 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|V ||Pennsylvanian (1581 mm and 1588 mm) and Australian &amp;quot;Victorian&amp;quot; (1600 mm) gauges&lt;br /&gt;
|-&lt;br /&gt;
|6 ||6 foot (1829 mm) broad gauge&lt;br /&gt;
|-&lt;br /&gt;
|g ||Brunel&#039;s Great Western Railway gauge (2140 mm)&lt;br /&gt;
|-&lt;br /&gt;
|B ||Biggest Broad gauge rail - As broad gauge is a rare tracktype, and the variation in common real life track types too wide, it may be desirable to cement B and b as broad gauges of two differing sizes; With no real life examples that match the usage frequency of &amp;quot;B&amp;quot;, the gauge might best draw inspiration from the infamous [https://en.wikipedia.org/wiki/Breitspurbahn Breitspurbahn] (3000 mm) and [https://perma.cc/KQ2Z-5RCR the never-built vehicles designed for it], or from the [https://en.wikipedia.org/wiki/Brighton_and_Rottingdean_Seashore_Electric_Railway Brighton &amp;amp; Rottingdean Seashore Electric Railway] (18 ft/5,486 mm) &lt;br /&gt;
|-&lt;br /&gt;
|L ||Maglevs that have a u-shaped track&lt;br /&gt;
|-&lt;br /&gt;
|T ||Maglevs that have a monorail track&lt;br /&gt;
|-&lt;br /&gt;
|F ||Flightrail; A [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ system capable of high speeds and steep hill grades] that uses a pneumatic pipe for propulsion (see &amp;quot;P&amp;quot; under energy sources), and &#039;&#039;wheels pointed inwards at a 45-degree angle&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It might be preferred to instead use/keep &amp;quot;B&amp;quot; for &amp;quot;all (current) broad gauges&amp;quot; (mostly Victorian gauge) instead using lowercase &amp;quot;b&amp;quot; for Brunel/GWR broad gauge. This wouldn&#039;t be to different from narrow gauge since the lesser used ones are lowercase and fallback to the uppercase ones.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! !!Electrification !!Fallback !!Notes&lt;br /&gt;
|-&lt;br /&gt;
|1 ||Unspecified monorail electrification |||MONO (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|S ||Maglevs that use a synchronous linear motor ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|I ||Maglevs that use a linear induction motor ||MGLV (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|V ||Vactrains/Hyperloop ||t, then I, then MGLV (the whole label) ||&lt;br /&gt;
|-&lt;br /&gt;
|t ||&amp;quot;Universal custom tunnel&amp;quot; (for electrified sub-surface rail tunnels) ||c, then p, then 7, then U (mandatory) ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt; ||Universal energy type (&#039;&#039;not&#039;&#039; meant to replace &amp;quot;***N&amp;quot;; use for vehicles such as driving cabs which cannot move under their own power regardless, if desired) ||N/A (Be sure to put &amp;quot;***E&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***-&amp;quot; label) ||(&#039;&#039;Do not give a fallback or use for railtypes, this is for unpowered &amp;quot;locomotives&amp;quot; only!&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;) and 630v DC Inner 3rd/4th Rail; a total of 5 rails (2 for wheels, 3 for electricity), plausible in the London Underground network ||3 or 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|U ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail and universal catenary (SAEE); a total of 5 rails (2 for wheels, 3 for electricity) if only one gauge, plausible in the London Underground network and an &amp;quot;ultimate&amp;quot; dual rail electrification without being a cheat (make it expensive or toggle-able?) as SAEU or as XAEU (universal dual rail electrified tracks) ||E ||&lt;br /&gt;
|-&lt;br /&gt;
|7 ||750v DC Outer 3rd Rail (&amp;quot;MTRO&amp;quot; or &amp;quot;SA_3&amp;quot;), 630v DC Inner 3rd/4th Rail, Three-phase AC (SA_T) 3rd/4th rail &amp;amp; catenary, and universal catenary (SA_E); a total of 7 rails (2 for wheels, 5 for electricity) if only one gauge, a truly universal dual rail electrification without being impossible (make it VERY expensive or toggle-able so it isn&#039;t cheat-y?) as SAE7, XAE7 or even as XRE7 (combination of ALL two-rail track gauges with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible) ||U ||&lt;br /&gt;
|-&lt;br /&gt;
|P ||Pneumatic tube with physical piston slit, or closed pneumatic tube with magnetic piston (i.e. that used by [https://web.archive.org/web/20231213122530/http://www.flightrail.com/ Flightrail]) ||N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|p ||Pneumatic and universal electrical power ||P or 7 (Be sure to put &amp;quot;***_&amp;quot; and ***P&amp;quot; in the [[NML:Railtypes#Railtype_properties|alternative_railtype_list (NML)]] of a &amp;quot;***p&amp;quot; label) || XREp is a combination of ALL two-rail track gauges with improbably high axle load with universally-compatible electrification including an outer 3rd rail and a paired set of inner 3rd/4th rails, and a rack rail in the exact center; improbable, but not physically impossible)&lt;br /&gt;
|-&lt;br /&gt;
|c ||Cheat electrification type; use solely for the &amp;quot;_R_c&amp;quot; and &amp;quot;_R_t&amp;quot; railtype labels specifically (runs everything if coded properly), the latter (&amp;quot;_R_t&amp;quot;) is for tunnels, while the former (&amp;quot;_R_c&amp;quot;) is for &amp;quot;cheat rail upgrade&amp;quot; newgrfs ||p, then 7, then U, then E, then N, then &amp;quot;SA_-&amp;quot; (the whole label) ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brickblock1</name></author>
	</entry>
</feed>