Train Levels
by Adngel (translated by Pemon)

The main characteristic of the train level is the movement of the exterior and that if Lara hits the ground she will die. There is no need to place triggers in the floor sectors or death squares, the only thing needed is to modify the script.txt

Name= Desert Railroad 
Horizon= ENABLED 
Layer1= 128,128,96,7  (Red, Green, Blue, speed)
UVRotate= 11 (IMPORTANT, this command will make the rail textures scroll) 
Train= ENABLED (IMPORTANT, this command will activate some of the train level unique elements)
LoadCamera= 13590,-13100,13778,14313,-12871,12674,19 (The load screen and room coordinates)
Level= DATA\train,108 (The name of the .tr4 file and initial audio file)

This is the minimum script required for a train level.


Initially the room floor height that will kill Lara if she makes contact with it is at: 0 or lower, so in order  to create the level you have to create a number of rooms at a height of =0 and then place other rooms above them to be able to have Lara moving around the rooms.

Rooms 0, 1, 2 and 3, are placed at a floor height of 0, if Lara is in contact with the floor she will die, the rest of the rooms with blue sectors are where Lara will safely move. 

Second are the level position and the width. 


The train and the exterior have a total of 11 sectors, the recommended sectors for the train is not more than 3 sectors wide and 4 for the exterior rooms at both sides of the train. To avoid collision and certain bugs if Lara attempts to jump to the moving mountains she will not be able to reach them.


To position the train in the centre of the exterior in movement, it has to be placed in the centre of the 2D Map in the LE and to be moving only in a vertical layout.

(Note: the small room in the upper left side is the room that contains the rails textures to make the scroll animation.)


The train, you can place any textures that you want, just like any other type of level and to be able to see the rails, ground and horizon you have to place the (invisible) black texture in the corresponding sectors. 


When you have the train level in the script some of the objects have special settings. By default some static objects are placed in the level without the need to be placed there by you. These are the ones that can be seen in the moving exterior mountains and rocks. Of course you can place them inside the train as well if you want some of these objects in the train scenario. These are the objects appearing every now and then in the outside scenario, rocks, grass or railroad signs. The specific slots are: 

Rock 0
Rock 1
Rock 2
Rock 3
Rock 4

These are the mountain objects that appear at the side of the level having them as walls. They appeare in a continuous way. Their height and width are not important and the length is of 6 blocks for each object, 5 and half at each end.

Architecture 6
Architecture 7
Architecture 8
Architecture 9

You have to take this into consideration when you make a train level, otherwise the exterior moving horizon will have empty spaces or instead the famous "Mesh 0" of the wad.

This are the basics to make a train level. Perhaps the most difficult part is to find the centre of the 2D map where it is needed to place the rooms. 

Before I finish, I'm going to comment on something interesting about the Enemy Jeep object for this type of level:

Enemy Jeep:

To use the enemy jeep and the baddy 2 objects, both have to be placed 3 blocks away from the train sectors, and set with the same OCB code to both of them. Also you have to place an AI-X1 object with the same OCB code. When the jeep and baddy 2 are triggered the jeep will move in a straight line up to the point where the AI_X1 object is place. After that the jeep will reduce the speed so the baddy will jump into the train.

The OCB code given to this objects is 10x. This means that if you place one enemy jeep, the OCB code is 101 and if you then want to place a second enemy jeep, the OCB code should be 102 and so on. 

NOTE: the jeep, the baddy and the AI-X1 objects have to be placed at a floor height of  -1, otherwise the baddy will not jump into the train.

(The baddy should be placed on the same sector as the jeep, in game he will appear on top of the jeep)

In conclusion, ideally the outside rooms at the sides of the train should be placed at a height of floor level -1 in order to place the jeep without any problems at the correct height, in game the jeep will appear at the height of 0 in accordance with the moving exterior.

For this tutorial I use the .prj file from Michiel in, the wad I've used is the one from the train level of the Last Revelation game.

Good luck if you want to start creating a train level.