![]() |
|
Boso View Express |
With the onset of BVE 2's ability to read comma seperated value (
) files, this page has been updated to show what you can do in BVE 2.
Like
files,
files can be edited with a simple text editor (like Notepad).
However, CSV's can also be edited using spreadsheet programs like Microsoft® Excel. The extension is automatically associated with this program so all you have to do to edit a
is simply double-click it.
The first cell in the row (or the first value of a new line) must contain a number to set the distance from zero. Distances may contain the $rnd(a;b) command, which is explained below.
The sections and commands (both in
and
) are case-insensitive, meaning "@WALL" is the same as "@wall", "@WaLl", "@waLL", and "@WAll".
From this point on, please keep in mind the following:
This text is displayed in the "Route Information" section of the "Select Route" dialog. The first 2 lines are also used in the timetable. Please start this section as the following example:
IRT Flushing #7 Express Line
Main Street to Times Square
| File=(name) | Folder name for your train |
| Velocity=# | Speed of train ahead. # is in Km/h |
| Acceleration=# | Acceleration of train in front. # is in Km/h/s |
| Station=# | Stopping frequency of the train in front |
| Interval=# | Interval between your train and the train in front. #=seconds |
| Gauge=# | Distance between rails. #=millimeters. Standard gauge=1435. |
| Run(A)=B | A=track type. B=(runB.wav file) A=0 to 15, B=0 to 7 |
| Flange(A)=B | Flange creaking sound A=track type. B=(FlangeB.wav). B=0 to 3. A is same as above. |
| Route.comment value | value = Full descriptive text that appears in the Route Information field of the "Open..." dialog box. |
| Route.timetable value | value = Full descriptive text that appears in the timetable. |
| Route.change value | value = Ended Exchange {-1: Nothing (service braking system) | 0: Nothing (emergency brake) | 1: Possession} |
| Route.gauge value | value = distance between rails [mm] |
| Route.signal(index) value | index = signal {1 precaution|2 note|3 deceleration} value = approved speed of signal [Km/h] |
| Route.RunInterval value | value = interval of time between your train and the preceding train ***IT CANNOT BE USED WITH Track.PreTrain*** |
| Route.developerID = Value | Value: 8-digit number. NOTE: THE DEVELOPER ID ALLOWS ENTRY TO THE DEVELOPER MODE OF THE BVE PROGRAM. DELETE THIS COMMAND BEFORE RELEASING ANY ROUTE! |
| Train.folder value | value = Location of the train folder. |
| Train.run(index) X | index = track object index (0-255) X= sound file (runX.wav) |
| Train.flange(index) X | index = track object index (0-255) X= sound file (flangeX.wav) |
Defines the objects used on the railway. They are all in the same format:
stType(txI)=FileName (
)
Structure.stType(txI) FileName (
)
txI = Texture Index
FileName = Path to B3D or Structure CSV (
) relative to the Railway\Object folder in the directory in which you installed BVE.
| stType | Description | txI Range |
txI Range |
| Rail | Rails | 0-15 | 0-255 |
| Pole | Overhead (Cantenary) Wire Poles ( Format for this is Pole(T;txI) FileName. T = track type (number of tracks for the line minus one) |
0-255 | |
| Ground | Ground texture | 0-63 | 0-255 |
| WallL | Left side walls | 0-15 | 0-255 |
| WallR | Right side walls | 0-15 | 0-255 |
| DikeL | Left side dike | 0-15 | 0-255 |
| DikeR | Right side dike | 0-15 | 0-255 |
| FormL | Platform edge - left side | none | 0-255 |
| FormR | Platform edge - right side | none | 0-255 |
| FormCL | Platform center - Left side | none | 0-255 |
| FormCR | Platform center - Right side | none | 0-255 |
| RoofL | Roof edge - Left Side | none | 1-255 |
| RoofR | Roof edge - Right side | none | 1-255 |
| RoofCL | Roof center - left side | none | 1-255 |
| RoofCR | Roof center - Right side | none | 1-255 |
| CrackL | Fills gap on left side of track | 0-15 | 0-255 |
| CrackR(0-15) | Fills gap on right side of track | 0-15 | 0-255 |
| FreeObj | Free object | 0-255 | 0-65535 |
| Back(0-3) | Background picture¤ | 0-3 | See Texture Object |
Texture.TxType(txI) FileName
TxType: Texture Type
FileName: path to a BMP file relative to the Railway\Object folder in the directory in which you installed BVE.
| TxType | Description | txI Range |
| Background | Background | 0-15 |
Repetition of the land which is defined in the Object Section is defined here.
When repetition is not used, you can omit this section.
Land number 0 - 15 = land object numbers, (Example: * & *, * & *)
0 = 0, 1, 2
1 = 3, 0, 3, 4
This is more or less the same as above, but this has a different syntax. Cycle.CyType(cI) I1; I2; I3; ... In
| CyType | Description | cI Range |
| Background | Background | 0-255 |
This is where it all comes together. Using the objects defined above, you actually build the railway. There is one limitation. It concerns categories marked with a red asterisk (*) Categories marked with this must have a distance that is a multiple of 25 meters (0, 25, 50, 75, 100...).
Each line must start with a distance, which is a positive integer, which is a measured in meters. It doesn't matter if the first distance is not zero. It also doesn't matter if there is a space between the number and the command.
| What it does | ||
| @railstart(index, X, Y, type) | Track.Rail index; X; Y; type | Start a new track |
| @rail(index, X, Y) | position an existing track | |
| @railend(index, X, Y) | Track.Railend index; X; Y | End an existing track |
| @railtype(index, type) | Track.RailType index; type | Change a track's type |
Track.Accuracy rank
rank=Precision {1-4, 4 being low and 1 being high}
Comments: This affects the quality of the track installed. The lower the number, the less rocking of the train you get.
| What it does | ||
| @pitch(rate) | Track.Pitch rate | Change the grade |
| What it does | ||
| @curve(radius, cant) | Track.Curve radius; cant | Makes a curve |
| What it does | ||
| @turn(slope) | Track.Turn slope | Shifts track |
Track.Adhesion rate
rate=Stickiness of the rail (reference: Dry=135, damp=93, frost=85, snow=50)
Track.Fog Start; End; Red; Green; Blue
Start: Fog start distance [m]
End: Fog end distance [m]
Red, Green, Blue: Brightness of respective color (0-255)
| What it does | ||
| @signal(aspect, name, X, Y, Type) | Track.Signal aspect; name; X; Y; Type (can be abbreviated to Track.Sig) |
Places a signal |
| What it does | ||
| @relay(X, Y) | Track.Relay X; Y | Places a repeater signal |
Track.Pattern type; speed
type: Type {0: turnout restriction| 1: full restriction}
speed: Speed [Km/h]
| What it does | ||
| @limit(speed, position, arrow) | Track.Limit speed; position; arrow | Sets Speed Limit |
| What it does | ||
| @stop(position) | Track.Stop position | Sets Stop point |
| What it does | ||
| @station(name, t1, t2, stop, Device, Sound2) | Track.Sta name; t1; t2; PassAlarm; DOOR; stop; Device; Sound1; Halt; Jam; Sound2 | Sets station location |
| What it does | ||
| @form(index1, index2, roof) | Track.Form index1; index2; roof; Pf | Installs platforms |
| What it does | ||
| @pole(Index, Type, Locate, Distance) | Track.Pole Index; Type; Locate; Distance; IdxStType | Installs overhead wire poles |
| @poleend(Index) | Track.PoleEnd Index | Installs overhead wire poles |
Please think "under" when using @PoleEnd.
In other words if you write "1000@PoleEnd", it means that the poles run to 975m. (If using a 25m interval)
| What it does | ||
| @wall(Index, Locate, type) | Track.Wall Index; Locate; type | Starts a wall |
| @dike(Index, Locate, type) | Track.Dike Index; Locate; type | Starts a dike |
| @wallend(Index) | Track.WallEnd Index | Ends a wall |
| @dikeend(Index) | Track.DikeEnd Index | Ends a dike |
| What it does | ||
| @Marker (FileName, Distance) | Track.Marker FileName; Distance | Displays a sign |
| What it does | ||
| @height (Y) | Track.Height Y | Changes elevation of track |
| What it does | ||
| @Ground (type) | Track.Ground type | Changes Ground Type |
| What it does | ||
| @Crack (Index1, Index2, Type) | Track.Crack Index1; Index2; Type | Fills gap between two tracks |
| What it does | ||
| @FreeObj (Index, Type, X, Y, RotY) | Track.FreeObj Index; Type; X; Y; RotY | Places a free object |
| What it does | ||
| @Back(Type) | Track.Back Type | Changes Background |
| What it does | ||
| @Announce(FileName) | Track.Announce FileName | Interior announcement |
Track.Doppler FileName; X; Y
FileName: WAV file name
X: Position in X direction of sound source [ m ]
Y: Position in Y direction of sound source [ m ]
* It is necessary to seperate track.doppler statements by at least 100 meters.
Track.PreTrain Time
Time: Passing time (HH.MMSS)
* From the previous Track.PreTrain it travels at fixed speed.
You can use the With statement to group commands of the same object. For example:
With Route
.Timetable Value
.Change Value
.Gauge Value
...
In CSV, only the cell in which a semicolon is the first character is ignored.