TR3 Style Energy Crystals
by AkyV
Download a project file illustrating this tutorial

You can use TR3 style life energy crystals in NGLE, if you do this:
1. Take a life energy crystal from any TR3 WAD and copy it into the WAD of your level, into any ANIMATING slot. (For example, ANIMATING1.)

2. Try this in the game: if the bounding box of this object is disabled (i.e if Lara can get through the object) then enable it, clicking on Enable Collesion button of WADMerger (when this object is marked in the left window).
3. Place one ANIMATING1 on each square of your plan where you want to see a life energy crystal.
4. Trigger the crystals to animate them.
5. Place these rows in Script:

TriggerGroup= 1, $2000, 90, $16, $2000, 70, $1F74, >
$5000+TGROUP_USE_FOUND_ITEM_INDEX, 243, $150D, >

This GlobalTrigger says the TriggerGroup#1 will happen if Lara's touching an ANIMATING1 object.

; Exporting: TRIGGER(22:0) for FLIPEFFECT(90)
; <#> : Lara. (Health) Recharge Lara, increase life by <&>percentage of full vitality in (E) way
; <&> : 50 Percentage
; (E) : Immediatly, one-shot
; Values to add in script command: $2000, 90, $16

This trigger gives Lara 50 percentage health. (This health value is the original health value of a TR3 life energy crystal - by the way the health value of a small medipack in Tomb Raider games.)

; Exporting: TRIGGER(8052:0) for FLIPEFFECT(70)
; <#> : Sound. Play <&>Sound sample of first group (0-255) for (E) time
; <&> : MENU_MEDI 116 Ok medi_fix
; (E) : Perform one single time
; Values to add in script command: $2000, 70, $1F74

This trigger plays a MENU_MEDI (ID: 116) sound effect: this is Lara's sigh when she's just used a medipack.

; Exporting: TRIGGER(61:0) for ACTION(243)
; <#> : ANIMATING1 ID 243
; <&> : Collision. Disable the collisions of <#>Moveable
; (E) : 

; Values to add in script command: $5000, 243, $3D

This trigger disables the bounding box. (So Lara won't be able to touch this crystal anymore.)
You have to add an ANIMATING1 of your ANIMATING1s to window #. This is the one with index 243 now. - Feel free to add any ANIMATING1 of your ANIMATING1s. So I chose this ANIMATING1 with index 243 of my ANIMATING1s just as an example.
Now TGROUP_USE_FOUND_ITEM_INDEX means that 'not ANIMATING1 with index 243 under any circumstances but any ANIMATING1 that Lara's just touching'.

; Exporting: TRIGGER(5389:0) for ACTION(243)
; <#> : ANIMATING1 ID 243
; <&> : Perform (E) flipeffect on <#>object
; (E) : 21: Hide object. Makes #ANIMATING invisible
; Values to add in script command: $5000, 243, $150D

This trigger makes this crystal become invisible. (So it will look like it doesn't exist anymore.)

; Exporting: TRIGGER(44:0) for ACTION(243)
; <#> : ANIMATING1 ID 243
; <&> : Trigger. (Moveable) Untrigger <#>Object with (E)Timer value
; (E) : Timer= +00
; Values to add in script command: $5000, 243, $2C

This trigger stops the animation of this 'non-existing' crystal to save some memory.


1. Maybe the crystal is too close to the floor so you'd better raise it up a bit.

2. Stop the animation of the 'existing' crystals that are just out of the player's POV to save some memory. Then start their animations again if the player can see them again.
(Be careful: if you trigger the crystal after Lara used that then the crystal will be visible - but not usable - again.)

3. There was some light effect of each life energy crystal in TR3. You can adjust some kind of similar effect if you use an AddEffect script command.

This tutorial was made using TRNG