<Train> == <VehicleList> || <GlobalModifiers> <VehicleList>
<GlobalModifiers> == <GlobalModifier> || <GlobalModifiers> <GlobalModifier>
<GlobalModifier> == < || > || [! <Criteria> ] || [MP: <Simple> ] || [MI: <Simple> ] || < PantographState> || <Modifier>
<VehicleList> == <Repetition> || <VehicleList> , <Repetition>
<Repetition> == <SelElement> || <RepeatCount> * <SelOrElem> || <RepeatCount> @ <SelOrElem>
<SelOrElem> == <Element> || <Selection>
<Selection> == <Choice> | <Choice> || <Selection> | <Choice>
<Choice> == <Element> || <Probability> : <Element>
<Element> == <Vehicle> || ( <Train> )
<Probability> == <Simple>
<RepeatCount> == <Integer>
A train is - in its simplest form - a list of vehicles that are separated by commas, or simply a single vehicle.
Selection and Repetition
Inside the list of vehicles probabilities can be specified for repetition and/or selection:
<Choice1> | <Choice2> | ... <Choicen>
Depicts a random selection of < Choice>. Here all of the choices are equally as likely to be selected.
<Probability1>:<Choice1> | <Probability2>:<Choice2> | ...
Depicts a random selection that has weighted probability. This means that certain < Choices> can be weighted to appear more or less frequently in random selections. The default for <Probability> is 1, so if not all of the < Choices> are given explicit weights one can still use the weighted <Probability> intermixed. This form can also be used to weight number selections as well.
<RepeatCount> * <SelOrElem>
The program repeats the vehicle or the part of the train as many times as is specified in <RepeatCount>. The result is a mixed selection when more than one <Choice> is specified in the statement. If this selection is combined with other selections encased in parentheses, many variations in the selection can be achieved.
Example: 3*DR_GBS1500C|DR_GBS1500D will result in three vehicles which could be either one and/or both of the two types of vehicle.
<RepeatCount> @ <SelOrElem>
The program repeats the vehicle or part of the train as many times as is specified in <RepeatCount>. The result is a fixed selection if more than one <Choice> is specified in the statement.
Example: 3@DR_GBS1500C|DR_GBS1500D will result in three vehicles of one or the other type, but not both simultaneously. This can be a useful tool to compose unit trains of all of the same vehicle type.
The number of repetitions <RepeatCount> need not be only a simple integer. It can be a range ( 3–6), a selection ( 3|4|7|8) or a selection with weighted probabilities ( 3:1|5:2|10:4) - refer also to the description under <Integer>.
The individual forms can also be placed in parentheses and combined
Example: BR103|(BR218BB,BR218ROT),(4:0|6:1)*DM,3-5*(BPMZ|BVMZ),2@(AVMZ|APMZ)
With a probability of 50%, the train will be pulled by either a BR103 class locomotive or two BR218 locomotives. With a 60% probability, there will be a mail car after the locomotive. Then either three, four or five passenger cars will follow of the type BPMZ and/or BVMZ. Bringing up the end of the train are two more passenger cars of either AVMZ class or APMZ class (but not AVMZ and APMZ).
Next: Global Modifiers