Standardized Railtype Scheme

From GRFSpecs
Revision as of 18:09, 2 April 2012 by FooBar (talk | contribs) (save)
Jump to navigationJump to search

This railtype label scheme aims to bring order to the uncontrollable 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. Train sets that follow the scheme will be compatible with a large selection of track sets that also follow the scheme. That way the player can select a track set of choice to go with a train set. In some cases it will be even possible to combine for instance a standard gauge track set with a narrow gauge and a metro track set. It furthermore allows the player to play with or without axle load classes, or with or without speed limit classes.

The Label Scheme

A railtype label consists of four characters. In this scheme, each position has a different purpose:

  1. Track gauge and type (e.g. standard gauge rail, narrow gauge rail, monorail)
  2. Speed limit
  3. Axle weight (maximum allowed axle weight for this track)
  4. Energy source

In the next sections, each of the four positions will be explained.

Track gauge and type [X***]

The first position in the railtype label defines track gauge and/or track type. The following characters are currently defined for this position:

Track type/gauge
S Standard gauge rail
B Broad gauge rail
N Narrow gauge rail


Speed limit class [*X**]

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'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.

This gives for instance the following options:

Speed limit class
A no speed limits

 OR 

Speed limit class
A low speed
B high speed

 OR 

Speed limit class
A low speed
B medium speed
C high speed

 etc. 


Axle weight [**X*]

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. A track set does not have to provide a track type for each axle weight limit. 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.

The lettering scheme followed here is derived from the European Standard EN 15528. Note that the limits in the table below are not set in stone. If for your train set it makes more sense to deviate slightly from it, then you may do so. Example: you have engines with axle loads 15 t, 17 t, 18 t and 21 t. According to EN 15528 you would get classes A, B and D, but for gameplay reasons it may be more interesting to put the 18 t engines in class C.

Axle load limit
A 16 t
B 18 t
C 20 t
D 22.5 t
E 25 t
F 27.5 t
G 30 t

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 Action0/Railtypes#Alternate_rail_type_labels_.281D.29 property 1D (alternate rail type labels). This way a train set can rely on all labels for all axle load classes being available. Example: if you only want to provide 20 t and 30 t axle load classes for standard gauge unelectrified with no speed limits, you map SAAN + SABN to SACN and SADN + SAEN to SAGN.

If you don't want to provide any axle load classes in your track set, it doesn't really matter what axle load class you choose for the track, as you'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 NAAN for the track label, and provide NABN, NACN, NADN, NAEN, NAFN, NAGN in property 1D.

If you want a axle load class lower than 16 t, you may use lowercase letter a for that, or a and b if you want to split it even further (b is a lower limit than a, so for increasing axle load limits: b < a < A < B < C etc.). Be advised that your train set may not assume the existance of any other class than listed above, so when using lowercase class letters make sure to program your railtype table such that trains with such a class will fall back to class A if the lowercase class is not defined. If you make a track set with very low axle load limits, 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.