• English
  • Français (French)

Vehicles

Essential parameters

This is the parameters for a vehicle :

Parameter
Description Content
Example
obj object type vehicle
name name text SNFOS_Aero_front
waytype way type internal name maglev_track
cost price (*100c) number 5000000
weight weight (t) number 35
runningcost running cost (0,01c/km) number 90
engine_type energy used internal name fuel_cell
speed max speed (km/h) number 550
freight freight content internal name Passagiere
payload quantity of content number 65
power power (kw) number 4200
gear gear (*0,01) number 100
intro_year introduction year number 2019
intro_month introduction month number 11
retire_year retire year number 2039
retire_month retire month number 11
smoke smoke internal name steam
sound sound at starting see below 0
length length of the vehicle number 8
copyright name of the creator text Gauthier
Constraint see below

Png and dat pattern

A vehicle's picture needs eight pictures : one for each direction of the vehicle (North, North-East, East, South-East, South, etc …). Symmetrical vehicles would have same pictures twice (same North and South for example). Vehicles can have different length : each length unit is four pixels in Noth, South, East and West pictures. For diagonal pictures it's a decimal number so the two extremities of the pattern chosen for a defined length will be on each other. This is the graphical pattern :

The default length is 8 (32 pixels in straight views) if you don't define it in the .dat file. On this pattern, each length is made of a different grey, to use this pattern, take the necessary line according to the way type, delete, thanks to replace color tool and playing on the tolerance, the greys until the right length of the vehicle. The pink unit is the default length (8). The light grey is the front of the vehicle. The background of this picture is the trensparency color for Simutrans. For suspended monorails, the pattern doesn't show the base of the vehicle but its roof.

This is the .dat pattern according to the graphical pattern above.

obj=vehicle
name=
waytype=
cost=
runningcost=
engine_type=
speed=
freight=none
payload=0
power=0
gear=100
copyright=

intro_year=1800
intro_month=1
retire_year=2999
retire_month=1

smoke=-1
sound=-1
length=8

emptyimage[N]=source.0.0
emptyimage[NE]=source.0.1
emptyimage[E]=source.0.2
emptyimage[SE]=source.0.3
emptyimage[S]=source.0.4
emptyimage[SW]=source.0.5
emptyimage[W]=source.0.6
emptyimage[NW]=source.0.7

gear

Gear, given as percentage in .dat files, is used to modify vehicles'power. The real power of a vehicle in game, i.e. what fixes its ability to accelerate, is the product of power and gear.

real power = power * gear

Why not to put directly the product power * gear in the power parameter ?

When reproducing real life vehicles, real life power is used as in game power. However, this power might be unfit to the game so gear is used to adjust it.

Moreover, the power given by an engine is not exactly proportionnal to the acceleration of the vehicle, there are plenty of other parameters to take into account, especially when the power indicated for a real vehicle (an electric loc for example) is its consumed power and not its output power.

Example: a 800 kW powered vehicle is reproduced in game but this power does not fit, the vehicle is underpowered. Then a gear over 100 (1) is added, for instance 130 (1,30).

Constraint

This parameter defines which vehicle can be placed before and which vehicle can be placed after a vehicle. If it's not defined, the vehicle can be placed before or after any vehicle witheout constraints.

There's one possible vehicle per line, a constraint line is written as this (example) :

Constraint[Prev][0]=none

Prev : vehicle can be placed before

Next : vehicle can be placed after

0,1,2,3,… : it's necessary to order constraints Prev and Next by giving them a number, example :

Constraint[Prev][0]=vehicle1
Constraint[Prev][1]=vehicle2
Constraint[Prev][2]=vehicle3
Constraint[Next][0]=vehicle4

The content can be the name of a vehicle (the name of the paramter “name” of the chosen vehicle) or “none” so nothing can be put before or after the vehicle.

“none” must be written at last of Prev or Next constraints. Makeobj stops reading constraints when it reaches “none” so if there are other constraints written after, they won't be taken into account. If a vehicle has no “none” in its Prev (or Next) constraints, then players will have to place a vehicle before (or after) this one.

For a vehicle to be put after another, the first vehicle must be in Constraint[Prev] of the second one which must be in the constraint[Next] of the first one.

Example of constraint (SNCF_z22500_ZRBx_front)

Constraint[Prev][0]=SNCF_z22500_ZRBx_rear
Constraint[Prev][1]=none
Constraint[Next][0]=SNCF_z22500_ZBx_ZAB

Vehicle with freight images

Some vehicles, almost freight ones, have a different picture when they are empty or loaded. This is the necessary parameters, for example with two different freight images for two different goods :

freightimagetype[0]=good1
freightimagetype[1]=good2


freightimage[0][S]=image.x.2
freightimage[0][E]=image.x.0
freightimage[0][SE]=image.x.1
freightimage[0][SW]=image.x.3
freightimage[0][N]=image.x.4
freightimage[0][W]=image.x.6
freightimage[0][NW]=image.x.5
freightimage[0][NE]=image.x.7


freightimage[1][S]=image.x².2
freightimage[1][E]=image.x².0
freightimage[1][SE]=image.x².1
freightimage[1][SW]=image.x².3
freightimage[1][N]=image.x².4
freightimage[1][W]=image.x².6
freightimage[1][NW]=image.x².5
freightimage[1][NE]=image.x².7

First goods are defined using their internal names. The used number is put in brackets. Then the graphical pattern of the base picture of a vehicle can be used here if you use freightimage[n°] instead of EmptyImage. In the example below, freightimage[0] are for the vehicle loaded with good1 and freightimage[1] is for the vehicle loaded with good2. x and x² are the number of the lines of these pictures.

Example with bullk wagons of Cirrus :

EmptyImage[S]=cirrus.8.2
EmptyImage[E]=cirrus.8.0
EmptyImage[SE]=cirrus.8.1
EmptyImage[SW]=cirrus.8.3
EmptyImage[N]=cirrus.8.4
EmptyImage[W]=cirrus.8.6
EmptyImage[NW]=cirrus.8.5
EmptyImage[NE]=cirrus.8.7
freightimagetype[0]=Kohle
freightimagetype[1]=Eisenerz
freightimagetype[2]=Stone
freightimagetype[3]=Sand
freightimagetype[4]=fertilizer
freightimagetype[5]=waste
freightimage[0][S]=cirrus.11.2
freightimage[0][E]=cirrus.11.0
freightimage[0][SE]=cirrus.11.1
freightimage[0][SW]=cirrus.11.3
freightimage[0][N]=cirrus.11.4
freightimage[0][W]=cirrus.11.6
freightimage[0][NW]=cirrus.11.5
freightimage[0][NE]=cirrus.11.7
freightimage[1][S]=cirrus.9.2
freightimage[1][E]=cirrus.9.0
freightimage[1][SE]=cirrus.9.1
freightimage[1][SW]=cirrus.9.3
freightimage[1][N]=cirrus.9.4
freightimage[1][W]=cirrus.9.6
freightimage[1][NW]=cirrus.9.5
freightimage[1][NE]=cirrus.9.7
freightimage[2][S]=cirrus.12.2
freightimage[2][E]=cirrus.12.0
freightimage[2][SE]=cirrus.12.1
freightimage[2][SW]=cirrus.12.3
freightimage[2][N]=cirrus.12.4
freightimage[2][W]=cirrus.12.6
freightimage[2][NW]=cirrus.12.5
freightimage[2][NE]=cirrus.12.7
freightimage[3][S]=cirrus.10.2
freightimage[3][E]=cirrus.10.0
freightimage[3][SE]=cirrus.10.1
freightimage[3][SW]=cirrus.10.3
freightimage[3][N]=cirrus.10.4
freightimage[3][W]=cirrus.10.6
freightimage[3][NW]=cirrus.10.5
freightimage[3][NE]=cirrus.10.7
freightimage[4][S]=cirrus.10.2
freightimage[4][E]=cirrus.10.0
freightimage[4][SE]=cirrus.10.1
freightimage[4][SW]=cirrus.10.3
freightimage[4][N]=cirrus.10.4
freightimage[4][W]=cirrus.10.6
freightimage[4][NW]=cirrus.10.5
freightimage[4][NE]=cirrus.10.7
freightimage[5][S]=cirrus.11.2
freightimage[5][E]=cirrus.11.0
freightimage[5][SE]=cirrus.11.1
freightimage[5][SW]=cirrus.11.3
freightimage[5][N]=cirrus.11.4
freightimage[5][W]=cirrus.11.6
freightimage[5][NW]=cirrus.11.5
freightimage[5][NE]=cirrus.11.7

Step by step vehicle

As a practical example, we are going to remake the electric multiple unit Etat 1001. Here is an extract of its source picture:We have to use the graphical pattern given above. As Etat 1001 is a train, the right line to use is “track/tram”. Select it precisely on the pattern and make a new picture with it, name it “Etat1001.png”. Here is this picture:Remove the red lines at top and bottom and remove the text “track/tram”. Then, since length of Etat 1001 is 10, remove the units in excess to get only 10 length units. The pattern is made of grey shades so it is easy to remove units in excess with the color replacing tool of photofiltre.

Removing units in excess is done easily by adjusting tolerance.

To make it more convenient, it is advised to replace remaining pattern with a simple color (which will also be easy to remove once the vehicle is placed). The magic wand is used with tolerance 0, on the background. Then, invert selection to get only the pattern, and hit delete after having selected red as secondary color. You must also have selection smoothing set to none.

So we get a usable pattern for a 10-length train:All we have to do is placing out images on the pattern like this:

Obviously, I used transparency so you can see exactly where to place the images, but don't use it when placing yours.

Then, we have to delete pattern pieces in excess with the color replacing tool:

In this case, the image has only one line because this example has only one vehicle. However, many trains are composed of several vehicles. One can put as much lines as needed in an image provided his computer can handle it. For instance, z50000's source picture has eight lines.

Let's finish up with the .dat file of this train ! First, make the graphical part of the .dat after the pattern seen above. Replace the right parts, knowing that our image is named Etat1001.png and that the line with the vehicle is the line number 0 (the first one):

emptyimage[N]=Etat1001.0.0
emptyimage[NE]=Etat1001.0.1
emptyimage[E]=Etat1001.0.2
emptyimage[SE]=Etat1001.0.3
emptyimage[S]=Etat1001.0.4
emptyimage[SW]=Etat1001.0.5
emptyimage[W]=Etat1001.0.6
emptyimage[NW]=Etat1001.0.7

Then, add data of Etat 1001. About constraints: it is a EMU, so player can place either another Etat 1001 or nothing, both before and after it.

obj=vehicle
name=Etat_1001
waytype=track
cost=15072000
runningcost=389
engine_type=electric
speed=70
freight=Passagiere
payload=116
power=346
gear=100

intro_year=1913
intro_month=5
retire_year=1938
retire_month=12
length=10

Constraint[Prev][0]=Etat_1001
Constraint[Prev][1]=none
Constraint[Next][0]=Etat_1001
Constraint[Next][1]=none

emptyimage[N]=Etat1001.0.0
emptyimage[NE]=Etat1001.0.1
emptyimage[E]=Etat1001.0.2
emptyimage[SE]=Etat1001.0.3
emptyimage[S]=Etat1001.0.4
emptyimage[SW]=Etat1001.0.5
emptyimage[W]=Etat1001.0.6
emptyimage[NW]=Etat1001.0.7

To make the propelled vehicle of a trainset (like TGV) in the passengers tab of depots, add freight=passagiere in the dat.

As well, to make a electric multiple unit's carriage appear in the electric tab, add engine_type=electric in its dat.