NGLE Manual

 

The NGLE Manual

Scripts

Secrets

This can be used in one of two ways - to set a global number of secrets or to set the numbers of secrets for each level.

Syntax: Customize= CUST_SET_SECRET_NUMBER, NumberOfSecrets

To have a TR4 style of overall secrets without knowing how many are in each level, insert the script entry into the script for the title level with the total number of secrets for the whole game.

To have the number of secrets displayed for each level, insert the script entry into the script for each level along with the number of secrets for that level.

***

AddEffect=

Syntax: AddEffect=Id, EffectType (ADD_), FlagsEffect (FADD_), JointType (JOINT_), DispX, DispY, DispZ, DurateEmit, DuratePause, Extra param array
Scope: to use in [Level] section

AddEffect command is suggested only for advanced level builders.
Its more common usage is to have animcommands to use in animation editor (of wad merger program) to add particles effects to moveable only in specific moments (frame) of animation.
You can add: blood, flame, smoke and mist (like waterfall mist)
Theorically you can use add effect also like common triggers anyway the better usage is to convert the trigger in animcommand and then add it in animation of moveable.

Arguments:
Id = This is a simple identifier of what addeffect command of script file you refer in trigger windows. It works like first argument of PuzzleItem or PuzzleCombo commands.
For example if you type "1" this means you'll refer to this addeffect in trigger window choosing 1 like effect to add.

EffectType= you set in this field the ADD_ constant to choose the effect type to add. You find the full list in reference panel of ng_center program.
Currently you can use one of following values:

ADD_FLAME (1) = Flame (fire)
ADD_SMOKE (2) = Smoke
ADD_BLOOD (3) = Blood, vlady
ADD_MIST (4) = Mist, like water mist

FlagsEffect (FADD_...)
You can use some flag effects (FADD_) to override other settings about durate or behavior of effect.
There are following values you can choose:

FADD_CONTINUE_EMIT ($0100)
If you use this flag, the values typed in DurateEmit and DuratePause will be ignored.
You should use this flag for effect types requiring a continue emission, like mist and flames.

FADD_DURATE_STATEID ($0200)
If you want you can keep this effect active until moveable is in current state id.
Using this flag the time durate set in trigger window will be ignored, and the effect will be removed only when moveable will change its state Id with a value different than that used at start of effect.

FADD_DURATE_ANIMATION ($8000)
This flag work in very similar way of above flag fadd_durate_stateid, but in this case the value to check for condition emit/disable is the animation number.

FADD_SMOKE_EXHAUST:$0400
This flag will be used only for ADD_SMOKE type effect.
There are two different smoke emitters: the default is a common smoke will go up and disappear in fast time, while other is the exahust smoke you see also in jeep or sidecar. If you want use exhaust smoke set this flag, while you want a more traditional smoke don'use this flag.

FADD_ROTATE_90 ($2000)
FADD_ROTATE_180 ($4000)
FADD_ROTATE_270 ($0800)
The fadd_rotate flags are used only in particular circustances , when you use an effect type that use the orientation (horizontal) of object to compute the direction of emitting.
In this case you can alterate the orienting of emit adding one of above flags. For example if you want the mist strip will be oriented in side instead of in front of object facing, you can use FADD_ROTATE_90 flag.

FADD_DURATE_SINGLE_FRAME:$1000
This flag force the emitting to work only for single frame. There will be a single emitting and then the effect will be disabled.
I think only blook can work with this flag.

FADD_NONE (0)
If you don't want set any flag you should type FADD_NONE or 0 (zero) in this field.

JointType (JOINT_...)
Other to specify the type of effect you have to set also the exact position where to show this effect.
This compute is a bit complicated and you have to start from a point corresponding to some joint of moveable and then (see following fields DispX, DispY and DispZ) set the displacement from this joint you chose.
You can choose one of following joints:

JOINT_SINGLE_MESH:0
JOINT_PUBIS:0
JOINT_LEFT_THIGH:1
JOINT_LEFT_KNEE:2
JOINT_LEFT_ANCKLE:3
JOINT_RIGHT_THIGH:4
JOINT_RIGHT_KNEE:5
JOINT_RIGHT_ANCKLE:6
JOINT_ABDOMEN:7
JOINT_NECK:8
JOINT_LEFT_SHOULDER:9
JOINT_LEFT_ELBOW:10
JOINT_LEFT_WRIST:11
JOINT_RIGHT_SHOULDER:12
JOINT_RIGHT_ELBOW:13
JOINT_RIGHT_WRIST:14

About the value JOINT_SINGLE_MESH (0), it will be used for moveable using a single mesh. In this situation the origin of effect will be the center of mesh (really the pivot but it's very often the center of single meshes)
Differently, when you want add a particle effect to multi-mesh moveables you have to set a joint like origin and then modify this origin with DispX, DispY and DispZ fields to create the effect in wished position.
See following field descriptions for more infos.

DispX, DispY, DispZ fields.
The three values DispX, DispY and DispZ are the distance between origin of effect you set in Joint field.
To understand how set these 3 values it's more easy to do an example.

If you want add smoke to lara's mouth (as breath) you should choose a joint near to target point, so we could choose the neck, i.e. the JOINT_NECK to type in joint field.

Then we should move this origin because we don't want the smoke in the neck but in upper and forward position.
To understand the axis X,Y,Z you can imaginate to watch lara while she has her face in front of you. (face to face)
Well, now the X,Y and Z axis have following orienting:

X Values will be negative at right hand of lara (but at your left) while the x values will become positive going to left hand of lara (but to your right)

Y Values will be negative when moving to head of lara (upward) while the Y values will be positive when moving to feet of lara (downstair)

Z Values will be positive when the direct is to your face (you are looking lara, do you remember?) while the z values will become negative go back to lara.

Following above orienting we could use these value to move the smoke in front of lara's mouth
Since we start from neck as origin, we should:

Move in front direction the smoke, because the mouth is put out of neck, so this regard the Z coord, and we'll use a positive values because the smoke will in front of lara and not back.
DispZ = +70

Then we need to move upward the smoke because the neck is down the mouth, since Y axe has negative values for upwards and positive values for downstair we could use value:
DispY = -70

About DispX we can let it to 0 because the neck and mouth are on same vertical line.

So we'll use the displacement:

JOINT_NECK, 0, -70, 70

and the smoke should be (about) in front of lara's mouth.

DurateEmit and DuratePause fields.
For some effects, like smoke and blood, it's necessary alternate a phase of emitting particles with other phase of pause to perimit at particles to decay.
The values you type in above fields are number of frames.
For example if you insert as DurateEmit 3 and as DuratePause 10, the effect will be emitted for 3 consecutive frames and will be suspended for 10 frames.
Chaning these two values you can set the wished intensity of effect.

Some tip to set these two fields:
Fire and Smoke: it's better to use flag FADD_CONTINUE_EMIT to have continue emit. In this case it's not important the values type in durate and pause emit fields because they will be ignored.
For blood: set 1 as emit and 30 for pause.
For mist: depend by result you want get. In some circustances also mist works fine with FADD_CONTINUE_EMIT flag, anyway if you want simulate sprays you can use 1 as emit and 3 as pause.

Extra Param array fields
From this field you have optional fields changing in according with effect type.
Currently there are extra parameters only for mist but in short time will be added also for other effects.

Extra parameters for mist.

Extra1 = Size of mist ball. Default value is 12
Extra2 = Number of mist balls. Default is 1. You can set a max of 4 mist balls, they will be placer over an ideal line. The mist line will be oriented following facing of current moveable,anyway you can rotate the facing of mist line using rotate flags.
Extra3 = Color of mist. You can set a MIST_COL_ value. You find all colors in reference panel of NG_Center program
Extra4 = Persistence time of mist. Default value = 6. You should use this field only if the moveable is moving fastling and you want let a wake. Bigger values, longer wakes.

AssignSlot=

Syntax: AssignSlot=SlotType, NewObjectType
Scope: To use in [Level] section

SlotType = Number or constant name to identifiy a slot position of standard tomb4 wads (example: "ENEMY_JEEP" or 34)
NewObjectType = Code to identify some new object supported by trng engine.
Currently there are following OBJ_ codes:

2 $0002: OBJ_MOTOR_BOAT
6 $0006: OBJ_MOTOR_BOAT_ANIM
1 $0001: OBJ_RUBBER_BOAT
5 $0005: OBJ_RUBBER_BOAT_ANIM


(You can find the updated list in [Reference] panel of NG Center program)

You can type indifferently the name o the number, for example:

AssignSlot=ENEMY_JEEP, OBJ_RUBBER_BOAT
or (same mean of above line):
AssignSlot=34, 1
(since 34th slot is for ENEMY_JEEP and code OBJ_RUBBER_BOAT = 1)

The AssignSlot= command is necessary when you add in your wad/tr4 a new object imported from other tr games, like the rubber boat of Tomb Raider 3.
Since all slot have some hardcoded managements, when you import a new object it's necessary inform trng engine to get trng was able to manage correctly the hardcoded functions for new object applied in that specific slot you chose.

About assigning slot remeber that for vehicles you have to import and to assign two "objects".
First object for vehicle meshes, and other slot for the animations of Lara when she drives that vehicle.

Currently only Rubber Boat is available on trng but other objects will be added in short time.
To use hardcoded features supported by trng for rubber boat, you should use two commands like these:

AssignSlot= ENEMY_JEEP, OBJ_RUBBER_BOAT
AssignSlot= VEHICLE_EXTRA, OBJ_RUBBER_BOAT_ANIM

Above commands say to game engine that:
- The rubber boat mesh object is in slot of (old) object ENEMY_JEEP
- The Lara animation used for rubber boat have been copied in VEHICLE_EXTRA slot

CRS=

Syntax: CRS=ENABLED/DISABLED
Scope: To use in [Options] section

CRS means Crash Resume System, it works in same way of CRS settings of NGLE program.
When CRS is enabled is very improbable the game was stopped by crash.

My suggestion about usage of CRS is to disable CRS (CRS=DISABLED) while you are building your level (because it's better to know if somewhat doensn't work), while to enable CRS only before developing your final release on the net to avoid further crashes at players.

Remarks:
(1) When CRS is disabled if a crash occurs a file named Last_Crash#.txt will be created in current TRLE folder.
Another little file (always the same) will be showed non just the game has been closed, to inform you it's happened a crash and where you can locate the specific Last_Crash file with crash log.

CutScene=

Syntax: CutScene=ENABLED
Scope: To use in [Level] section

Cutscene command permit to singal current level like a cutscene-level.
The operations performed by this command are only two:
1) all keyboard/joystick input will be disabled for whole cutscene-level.
2) If lara has in her hands weapons or flare, force lara to throw out them to get free hand. This operation to free hands will be performed at start of cutscene level.

Diagnostic=

Syntax: Diagnostic= ENABLED/DISABLED
Scope: To use in [Options] section

If you enable the diagnostic with Diagnostic=ENABLED, in game will be showed on screen some information in real time about number of current Lara's animation, the current State-id of lara and current effective frame rate in game.

These infos are useful to discover what is the number of some animation, then you can use this number to locate animation in wad file using Animation Editor of wad merger program.

If you have problems to read in real-time above informations, remember you can also to use Tomb4_Logger.exe program to catch all diagnostic mexages and store them in a text file.
If you perform Tomb4_Logger.exe before starting tomb4 trng engine with diagnostic enabled, you'll have also in log file the LoadCamera= .. script command line with infos about current camera view to add in script.txt file for load camera screenshot
To get infos about LoadCamera in log file you have to keep down the F1 key.

This is a sample of text you can get in this way:

21656: LoadCamera= 6656, -2817, 14123, 6656, -2631, 12800, 2
21672: Animation=103 StateId=2 ($2)

Elevator=

Syntax: Elevator=ElevatorIndex, ClickFloorDistance, NumberOfFloors, Elevator flags (EF_...), FirstDoorIndex, InnerKeyPadIndex, Speed, Frame items array
Scope: To use in [Level] section.

Arguments:

ElevatorIndex= Index you see in NGLE in yellow box when you click over elevator item

ClickFloorDistance = Number of click for height of each floor. For example if there are three blocks between each floor you'll type in this field "12", since each block is 4 clicks.

NumberOfFloors = Easy, the number of floor of this elevator. For example is you type 3 it means your elevator will move in in 3 different positions (floors)

ElevatorFlags
You find all elevator flags in reference panel of NG_Center program.
You can place one or more flags using the "+" sign or type directly the sum of rispective values.
However remember that some flags are uncompatible to use in same moment, like Multi-doors and single-door flags.

Currently there are following flags:

EF_MULTI_DOORS ($0001)
If you want that trng engine handle for you all doors in front any floor you can set this flag and then set in IndexFirstDoor the index of door at first floor.
The management of game engine is very simple: when elevator reach a floor the door of that floor will be opened.
When elevator leaves a floor the door in that floor will be closed.
If you use this multi-doors handling is important you place all doors in your project exaclty at same vertical distance you set in ClickFloorDistance field. It's important, because is you place some door to different distance that door will be not found by trng engine and you'll have troubles.
Pratically just you place each door at same height where the elevator will stop it, floor for floor.

EF_SINGLE_DOOR ($0002)
If you use single door mode you cann't set also flag multi-door.
In single door mode the elevator has a single door linked with elevator cage.
This door will be moved up and down in according with elevator movement.
When elevator reach a flor the door will be opened, when elevator starts from a floor the door will be closed.
If you set this flag you have to type in FirstDoorIndex field the index for the door you placed near to elevator.
Remark: you can use also a "fake" door you find in slot Animating2 in ng2.wad
This animating will be moved, sliding it horizzontally, like a door by trng engine if you use single-door mode and you set its index in FirstDoorIndex field.
There is a reason to use a fake door like this: when you use a real door,in fact, in some circustances (it depends by door type and by position of door respect to rooms linking) the engine will add an invisible sector collision in front of the door when it's closed. Since it's boring in many situations you can use the fake animating door to avoid this problem.

EF_INNER_KEYPAD ($0004)
If you want insert the keypad to choose flor inside the elevator you must set this flag and (in ngle) to place the keypad oriented on wished elevator wall. Then you'll type the index of keypad in InnerKeyPadIndex field.
Remember to use the "fake" keypad you find in Animating16_mip of ng.wad or ng2.wad and not the real keypad in switch_type1.
The reason of this choice is given by a technical problem: the switch_type requires a switch trigger to work, but you elevator floor you have to place also dummy triggers and for this reason it's not possbile place both special trigger in some sectors.
For this reason the management of "fake" keypad (of Animating16_mip) will be performed in hardcoded mode by engine.
Apparentrly the keypad will work in same way of switch_type1 but with no need of special trigger to handle it.

EF_MODE_YO_YO ($0008)
Yo yo mode is a bit curious: elevator will move endless up and down, without any stop at floors.
Using this mode you cann't use doors, since there is no time to open and close them.
Lara will have to jump at fly in elevator.
An interesting application of yo-yo mode is to give to elevators also the role of trap, since if lara will be touched by elevator she will be killed (if she is under elevator moving down, or over elevator when elevator moves up and above lara there is the ceiling) or "disturbed" if she is climbing the wall when elevator touch her (lara will be untouched by wall)
Remarks:
1) You cann't mix yo yo mode and stop and go mode.
2) If you set elevator for yo you mode the number of floor will be always two (2) and the distance between floor will be the height of whole movement that elevator will cover before inverting direction.

EF_MODE_STOP_AND_GO ($0010)
Stop and go mode is similar to yo yo mode, but in this case the elevator stop and stay for some second (2 for elevator door less, 3 seconds for elevator with doors) in each floor.
Differently by yo yo mode, using stop and go mode you can place the doors (multi or single) and you can set a various number of floors.
Also stop and go mode may heart lara (like all elevators)

EF_NONE (0)
If you don't want set any flag you can type EF_NONE or the value corresponing: 0 (zero)

FirstDoorIndex= Index of first door (that at first floor). You place in this field the index for single door or multidoor.

InnerKeyPadIndex = Index of keypad you inserted in elevator. Remember also to set the EF_INNER_KEYPAD flag when you want have an inner keypad

Speed=Set the speed of movement for elevator. If you type IGNORE in this field the default speed is 20.
About speed remember that this units is 1/1024 of sector. I.e. : 1024 = 1 sector, 256 = 1 click.
Each second will be changed the pos ition for 30 times, so it's better don't exagerate in speed value. The max value suggested is 50, if you pass over this value you could have troubles in collision computes when elevator hits lara.

Frame Items array
After speed field starts an optional list of item indices.
It's optional, so you can also don't type anything after Speed field.
Anyway the frame array is useful for many targets.
All items you type in this array will moved up and down in according with elevator movement, giving the idea to be linked with elevator cage.
For example you can create a chain to place over the ceiling of elevator to get more realistic the movement of elevator.
In ng2.wad you find animating5 that it's used in samples for yo-yo and stop and go elevators.
You can place different instances of this chain to cover all height of elevator moving and then type all indices of chains in elevator script command. In this way when elevator will be moved in game, also the chain will be moved.

Another usage of frame array is to place invisible collision panels around elevator.
You can find collision panel in Animating1 of ng2.wad (1x2 sectors) and Animating1_mip (1x1 sector to use when you set a little door for elevator cage)
You need to use collision panels only if you want place elevator in outdoor, i.e. without room walls around it.
If you place the elevator at center of big environment it's necessary you place collision panels, otherwise lara will be able to go through elevator walls of cage.
In yo-you and stop and go samples you can see like collision panel were used.
Just you place over each elevator wall the collision panel.
You should cover all walls except where is the door of elevator cage, then you type all indices of this collision panel in frame array, and the collision will be moved up ad down getting elevator cage a real closed box.
You can place about 23 frame indices in frame array but for collision panels just a maxminum of 8 items.

Remarks:
1) When you place elevator and other items for elevator (keypad, single door, chain, collision panel ect) in your project, the elevator must be at first floor.
If you want in game to have elevator in another floor you can use the elevator flipeffect to move it in wished floor but it's necessary that the elevator was always at first floor in project phase.

2) The max number of floor is 10. When you use 10 floor the 10th floor will be chosen with keypad typing the value "0"

3) You can have until 20 elevators for level, working with different modes in according with different Elevator script commands

Enemy=

Syntax: Enemy=Slot, HP (vitality), NEF_ flags, TombFlags, Extra, Damage1, Damage2, Damage3
Scope: To use in [Level] section

This command permits to set different settings for specific Slot objects.
You can set the HP (vitality, i.e. resistence to shot of Lara), the damage they give to Lara (damage1, damage2 ..).
Using some flags, like Ng Enemy Flags (NEF_...) or Tomb Enemy Flags you can set particular behavior of slot.
You should use this command only con Slot = moveable enemies (baddies) or traps, anyway you can use this command also to change all moveables but many settings will have no effect in this case.

Arguments:
Slot field
Wad slot to modify with this command. (See Slot Moveable list in Reference panel of NG_Center program)

HP (vitality) field
You can set resistance of this enemy to Lara' shots.
For example if you set a big value (1000) it will be very difficultous kill it. If you set a little value (20) it will be killed with few revolver shots.

NEF_ flags field
This field accept values NEF_... (See Mnemonic Constants list in Reference panel) to chose different settings.
Currently there are following values for NEF_ flags:
NEF_EXPLODE
When creature will be killed it explodes
NEF_EXPLODE_AFTER
Like "nef_explode" , but the body will explode only after death animation is complete
NEF_HIT_BLOOD
NEF_HIT_DEFAULT
NEF_HIT_FRAGMENTS
NEF_HIT_SMOKE
The NEF_HIT flags set the behavior of lara shots on the creature.
You can use only once NEF_HIT flag to set: blood, fragments, or smoke.
If you use NEF_HIT_DEFAULT the response to shots will be not changed. If you don't set any NEF_HIT ... flag, the shots will have no effect

NEF_NON_TARGET
Enemy becomes non targetable from lara and it will be immortal
NEF_NONE
Reserved, don't use. If you want omit to set NEF_ flags you must type only IGNORE in this field
NEF_ONLY_EXPLODE
The enemy will become like skeleton or mummy.
Apparently the common ammos will have no effect but explosive ammos will can destroy it.
NEF_SET_AS_CREATURE
Experimental. You can use a non enemy and non trap slot and to use this flag to transform it like an enemy. Pratically lara will can aim this object and kill it (theorically but it's yet experimental)

NEF_SET_AS_MORTAL
This flag may be used with slot of semigod to transform then in mortal enemies.
When you set this flag the enemy will be killed also with common ammos.

TombFlags field
This field is only for experiment. It corresponds to Flags field of slot structure. If you type wrong values in this field you can have many troubles.
I suggest to set this field to IGNORE and to use only NEF flags to modify behavior of object (other NEF flags will be added in short time)
Anyway , if you want to do experiments with TombFlags field, here there are some values for well-known slots:
$3A7B = used for skeleton
$327B = used for von croy
$3072 = used for guide
$267B = used for baddy 1
$0472 = used for big scorpion

Extra field
For most slots you can set this field to IGNORE, anyway there are some slots that requires an extra value to type in this field.
Currently only following slot require an Extra value:
With slots: WRAITH1, WRAITH2, WRAITH3, WRAITH4
You can enable or disable burning lara setting 0 to disable, and 1 to enable death whereby flames.
With slot: TEETH_SPIKES
You can enable the no-damage for lara when she moves slowly (walking).
If you set 1 in Extra field of TEETH_SPIKES, lara will can walk in teeth spikes with no damage.
Remark: this setting works only if you set in OCB field of TEETH_SPIKES object (using NGLE) the ocb value = 20
Ocb 20 means: pointing to north and static spikes.

Damage1/2/3 fields
You can type none, one or more values for damage that current enemy cause to Lara.
The reason to accept a variable number of values is because some Slot don't damage lara, while other moveables can damage lara in different ways, like baddy can hurt lara unsing UZI or sword, and in this situation you may type different damage, one for each type of damage.
To know when an enemy has one, two, three or none damage, read the Damage Enemy list in Reference panel of NG_Center program.
Remark:
If you want modify only one damage value but no other, you can use IGNORE null value to specify "don't change this damage kind".
For example if you want change only granade damage for SAS but you don't want change the UZI damage you can type following line:

Enemy=SAS, IGNORE, IGNORE, IGNORE, 0, IGNORE, 1000
Above command don't change HP, NEF_ flags, TombFlags.
Set to 0 Extra and with IGNORE first damage (UZI), while change the granade damage to 1000 (immediate death of lara with burning)

Remark:
- In Damage1/2/3 fields you should type only positive values. In some circustances you can type negative values but the result will be to recharge Lara vitality instead of hearting her. It should be weird.
- Remember to follow the Range limits you read in Damage Enemy list, because if you set a value outside of range you could get unpredictable results about damage (anyway no crash will happen)

FMV=

Syntax: Fmv= NumberFmv, EnableEscape
Scope: To use in [Level] section.

NumberFmv is the number of fmv file.

EnableEscape may have value 0 or 1. Value 1 means: "permit to playet to skip movie using Escape key"

The fmv file name must have following syntax:

"FMV" + [Number] + [Extension]
For example, following names are correct for fmv files:

fmv4.wmv
fmv1.mpg
fmv43.avi

Differently it should be wrong to use following names:
fmv04.wmv (there is a not meaningful "0" in front of "4")
fmv0.avi (number start from "1")
fmv41 (Missing extension)
fmv5.bik (".Bik" extension is not more supported )

In script command "Fmv=" first number (NumberFmv) is number within the fmv file name.
For example working with file name "fmv3.wmv" you should write in script a command like: Fmv=3,0

Remarks:

(1) Remember to set the wished extension with command "FMV=" used in [PCExtensions] section. (This "Fmv=" command has same name but don't confuse you, it is a different script command)

(2) Really Fmv= command is not a new next generation command, it was present also in standard script.exe. Anyway only using TRNG engine you can really show FMVs in game.

(3) TRNG engine will look for fmv file in following sub-folders:
- Current folder (pratically the folder where is stored also trng engine, usually named "TRLE")
- Further folder named "FMVs" in current (trle) folder "trle\FMVs\... fmv files"
- Further folder named "Store" in current (trle) folder "trle\store\... fmv files

FogRange=

Syntax: FogRange=MinViewOfFog, MaxDistanceFog
Scope: To use in [Level] section

Default values in tomb4:
MinViewOfFog = 12 sectors
MaxDistanceFog = 20 sectors

With FogRange= command you can change two different values for fog visibility in game.
The MinViewOfFog value is the number of sectors from what the fog will be visibile.
The Max DistanceFog is the greather distance where game engine will create the fog, pratically over that distance the fog will disappear.


Remarks:
(1) First value ( MinViewOfFog) works only when VolumetricFX is disabled in setup game or with ForceVolumetricFX= command
(2) Second value (MaxDistanceFog) works only when VolumetricFX is enabled in setup game or with ForceVolumetricFX= command.
It is used only for Fog Bulbs lights.
(3) It's not advisable set for MaxDistanceFog a value greater than value set with WorldFarView= command.

ForceBumpMapping=

Syntax: ForceBumpMapping=ENABLED/DISABLED
Scope: To use in [Options] section

If you prepared bump map textures for your game, you can use this command to override settings in tomb4 setup and to force enabling of BumpMap in game.

Remark:
(1) Differntly by ForceVolumetricFx this command works only in [Options] section because it affectes all levels of your game in same moment.

ForceVolumetricFX=

Syntax: ForceVolumetricFX=ENABLED/DISABLED
Scope: To use in [Level] section

With ForceVolumetricFX command you can enable or disable volumtric fx setting in current level.
This command is useful if you want to mix fog bulbs with distance fog.

Remark:
(1) You can also enable or disable volumtric fx in dynamic way using some new flipeffects of NGLE in game.
This trick culd be interesting to "switch off" the fog bulb and "switch on" them when you want create an effect of gas or smoke after an explosion.
(2) If no ForceVolumetricFX command is used for current level then it will be used the setting set in tomb4 setup window from player.

KeyPad=

Syntax: KeyPad=AtStartAnimation, FrameStartPopUp, AtEndAnimation, ClickSound
Scope: to use in [Level] section

KeyPad command is optional and it used to change default animations and sounds for Keypad switch_type1 you find in ng.wad
You should use this command only if you want modify animations or sounds to enable when lara activates the keypad switch in game.

Parameters:
AtStartAnimation= Number of lara animation to show when Lara engages with Action command the keypad.
You don't wad any animation at start you can type in this field IGNORE.
Remark: the default value was 197

FrameStartPopUp=Used only if you set a valid value in above field AtStartAnimation. In this case the keypad image will be showed only when the start animation reachs this frame number. For example if you type 20 in this field, the keypad will be showed 20 frames after start animation was started.
Remarks:
* If you don't set any AtStartAnimation, this field will be ignored.
* If you set a valid AtStartAnimation value, you must set in FrameStartPopUp field a valid value, you cann't set IGNORE in this field.
AtEndAnimation= Number of animation to show when the keypad was closed.
Remarks:
*If you don't wad a final animation you can type IGNORE in this field.
*The AtEndAnimation will be showed only if player goes off from keypad with Enter/[*] key, differently, if he exits using Escape key no final animation will be performed.

ClickSound=Number of sound effect to play when player hits some key of keypad.
Remarks:
*If you don't wad any sound, type IGNORE in this field
*You can see the list of sound effect in Reference panel of NG_Center program.

LevelFarView=

Syntax: LevelFarView=NumberOfBlocks
Scope: To use in [Level] section

NumberOfBlocks is the number of sectors showed in game view.
Default value in old tomb4 was 20 sectors, this means that the mesh more far that 20 sectors from lara became black.

Valid range: Min=1 Max=127

Remark:
(1) The NumberOfBlocks you set with this command should be less or equal than value you set in [Options] section with "WorldFarView=" command, otherwise it will be ignored.
(2) For above remark you should insert in [Options] section a WordFarView= command with a big number and then set for different levels littler value with LevelFarView= in according with speed of game.
Remeber that not only the far view distance affects the speed of game but also (and overall) the number of meshes, transparent textures and moveables present in the level.
For this reason you could be forced to reduce the levelfarview for level with wide spaces and much moveables/meshes/transparent textures to enhance the speed, but in other level you could use a bigger levelfarview with no problem because the scene is more simple to draw for game engine.

Settings=

Syntax: Settings= SET_ constants
Scope: To use in [Options] section

This command will be placed in [Options] section to set some gloal settings.

Arguments:

SET_ constants field
You can type one or more SET_ values separated by plus (+) sign.
Currently there are followin SET_ constants:

SET_DISABLE_CHEATS
Disable all hidden cheats to skip level, get infinite weapons or items.
Remark: to disable flycheat you have to use old command FlyCheat = DISABLED

SET_BLIND_SAVEGAMES
If you want forbid players of your game to use savegame editor to change savegames, just you add this flag in Settings command.
Any attempt of players to modify savegames will cause immediate crash at reload.

SET_PERFORM_FROM_CD
With this constant your game will be able to be performed from CD / DVD and generally from only-read storage support.
Pratically the reason to use this setting is when you want give your game to some friend, stored on cd and playable directly from CD with no need of installation of level editor (TRLE) folder on local disk.
When this setting is present the trng engine will save and load savegame not from current TRLE folder where is has been store, but in/from new folder in local drive C: with same name of first level description different by title.
For example if you use this option with a level described in script.txt like "City Of The Dead", trng will create a folder named:

C:\City_Of_The_Dead

and it will save and load savegames in/from this folder.

Remark:
If you want create an autostart CD in this way, you have to perform following steps:

1) Add in script.txt file in [Options] section the command:

Settings = SET_PERFORM_FROM_CD

(You can also add other SET_ flag to above line, of course)

2) Build script.txt

3) When you have in TRLE folder all level files (.dat , .tr4 ) necessary to play your game, you can save whole TRLE folder, including also the name of TRLE folder, in CD image to burn on cd support.

4) Before burning image you should add to image also following files, you find in Extra_NG_File.zip:

START.exe
autorun.inf


5) Now you can burn the CD and, at end, you should get following list browsing the new created CD:

START.exe
autorun.info
TRLE (Folder)

Remark: the start.exe and autorun.inf files should be in root of CD, i.e. outside of TRLE folder

6) Now just inserting this cd in some CD reader and the game will be started and played byself, without need of installation on local disk (of target computer) of TRLE or other files or programs.

ShowLaraInTitle=

Syntax: ShowLaraInTitle=ENABLED/DISABLED
Scope: to use in [Options] section

By default lara is not visible in Title level but using this command:
ShowLaraInTitle=ENABLED in [Options] section, lara will be drawn.

TextFormat=

Syntax: TextFormat=Color, FormatFlags (FT_...) , BlinkTime, SizeCharacter (SC_...)
Scope: To use in [Level] section or [Title] section

Arguments:
Color = CL_... values (see constant list) to set default color for print string flipeffect

FormatFlags = FT_... values (see constant list) to set default position of text, default size and further blink or stretch characters
Note: You can add to FT values for text position the two flags FT_NARROW_CHARS and FT_BLINK_CHARS and all FT_SIZE.. flags using '+' character.
Example:
FormatText= CL_GOLD, FT_TOP_CENTER + FT_BLINK_CHARS, 16
In this way you set gold color as color, you set top center as position and (plus) you set also blinking characters way.
Remark: remember this setting work only for text you print using print text flipeffect.
If you want change size of tomb characters you have to set a SC_ .. value in SizeCharacters field (see belove).

BlinkTime = Numeric value to signal interval for blinking when you set also flag FT_BLINK_CHARS in FormatFlags parameter
Note: for blink time you can use only power by 2 values, like: 1, 2, 4, 8, 16, 32, 64, 128

SizeCharacter = Costant value SC_ type to change default size of character in tomb4 menu.
Remark: differently by values of FT_ flags, the value you set in SizeCharacter field will effect only tomb raider default texts (menu, options, legend) but this setting will have no effect on flipeffect print text. For this reason you should use this field only in [Title] section in this way:

TextFormat= IGNORE, IGNORE,IGNORE, SC_HALF_HEIGHT

While when you use TextFormat in [Level] section you should type in this field always IGNORE, otherwise the text for menu of tomb raider will change in irregular way in according with last level played.

Currently you can select only one of following values in this field:
SC_NORMAL
Don't change anything. The characters will have usual size
SC_HALF_WIDTH
It will be reduced by half the width of characters, while the height will be not changed
SC_HALF_HEIGHT
It will be reduced by half the height of characters, while the width will be not changed
SC_HALF_SIZE
This value reduce by half both width and height of characters
SC_DOUBLE_WIDTH
Set double width for characters, untouched the height
SC_DOUBLE_HEIGHT:5
Set double height for characters, untouched the width
SC_DOUBLE_SIZE
Se double width and double height for characters.

Default values for TextFormat command:
If you don't set any TextFormat command for current level, the default values will be used are:
TextFormat= CL_WHITE, FT_BOTTOM_CENTER, 16, SC_NORMAL

Remarks:
(1) You can change the settings for text also in game with some flipeffects, anyway to avoid to waste too much triggers for text formatting it's better to use this script command to set default values.
(2) Other to use some FT_... value to set position of text you can also add to specific string some format characters to change furtherly the position of text on screen. For example if you use a FT_TOP_LEFT but you are not happy to see the text overlapped to vitality bar you can start your text with character couple: "\n" (n = newline) in this way a first empty row will be printed and the visible text will start in lower position.
If you want move more right a LEFT alignment you can start each row of your text with character couple: "\t" (t = tabulation)
Example:
\tHi world\n\tI'm very happy to be here

WorldFarView=

Syntax: WorldFarView=MaxSectorDistance
Scope: To use in [Options] section

Default value in tomb4:
WorldFarView=MaxSectorDistance = 20 sectors

Valid range: Min=1 Max=127

With WorldFarView you set the max distance you'll could use in any level of your game.
You should set a bigger number with WorldFarView and littler or equal values with LevelFarView in different level in according with further speed troubles for two wide and complex scenes.

Remark:
See also LevelFarView command and FogRange command for more infos.


Back to Top