Track index - 0 is running track; 1 - 7 are defined by @railstart and @railend statements.
X - lateral displacement in meters from track; positive is right, negative is left.
Y - vertical displacement from top of rail; positive is up, negative is down.
Objects and statements are case insensitive.
 
Rail objects
 
Rail(0)=path/filename_0 ; track type = 0
Rail(1)=path/filename_1 ; track type = 1
. . . thru
Rail(7)=path/filename_7 ; track type = 7
 
Rail statements
 
@railstart(track index, x, y, track type) ; begin a track; can omit x and y if they are 0
@railend(track index, x, y, track type) ; end a track; can omit x and y if they are 0
@rail(track index, x, y) ; position an existing track
@railtype(track index, track type) ; change a track's type
@curve(radius, cant) ; radius is in meters - positive is right, negative is left; 0 is straight ; cant (superelevation) is in mm - positive is up, negative is down ; use @curve(0, 0) to return to straight
@pitch(rate) ; pitch is in unoits per 1000 ; positive is up, negative is down ; use @pitch(0, 0) to return to level
 
Object statement
 
@freeobj(track index, object type, x, y, rot y) ; x and y in meters; rotation about vertical axis in degrees; positive is clockwise