Go Back   www.tombraiderforums.com > Tomb Raider Modding > Tomb Raider Level Editor > Tomb Raider Level Editor Tutorials

Closed Thread
Thread Tools
Old 11-08-15, 10:24   #1
Join Date: Dec 2011
Location: Hungary
Posts: 2,376
Default TRNG - TR3 style life energy crystals

Download a project file illustrating this tutorial

This tutorial is a developed version of the tutorial you could see on Skribblerz previously. Because the Skribblerz tutorial represents only one method, because the second (and obviously better!) method (which was discovered only later) was represented only in the demo project, that was attached to that tutorial, and which is attached to this tutorial as well.
But this time you can find the second method not only in the demo, but in the tutorial, too.

By the way. the first method and the demo readme have also been developed a bit.

You can use TR3 style life energy crystals in TRNG, 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 project where you want to see a life energy crystal.
4. Trigger the crystals to animate them. On each square of the activating triggers, place an A48 trigger, too, that will add some light effect to that crystal (because TR3 crystal has some light effect, too).
5. Place these rows in Script:

TriggerGroup= 1, $2000, 90, $16, $2000, 70, $1F74, >

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(25)
; <#> : ANIMATING1 ID 25
; <&> : Collision. Disable the collisions of <#>Moveable
; (E) :
; Values to add in script command: $5000, 25, $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 ANIMATING1 objects to trigger window #. This is the one with index 25 now. - Feel free to add any ANIMATING1 of your ANIMATING1s. So I chose this ANIMATING1 with index 25 of my ANIMATING1s just as an example.
Now TGROUP_USE_FOUND_ITEM_INDEX means that „not only ANIMATING1 with index 25 but any ANIMATING1 that Lara’s just touching”. – So you don’t need further GlobalTriggers for further crystals, it is enough, if you make it for the crystal with ID25!

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

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

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

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

; Exporting: TRIGGER(305:0) for ACTION(25)
; <#> : ANIMATING1 ID 25
; <&> : Effect. Remove from <#>Enemy the (E)AddEffect from script.txt
; (E) : AddEffect= 1
; Values to add in script command: $5000, 25, $131

This trigger will remove the light effect, because you don’t need that any more.


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

2. Still crystals look ugly, the player cannot see them ever.

3. You must not retrigger a crystal, which has been used by Lara yet, because the crystal will be visible - but not usable - again. Which is clearly a bug.

METHOD#2 (the better one):

This method is better because you can deactivate/reactivate the crystals now, any time. It is useful if the crystal (if it has not been used by Lara yet) is just out of the player’s POV, because it saves some memory.

The difference between the methods are:

- You will antitrigger the crystals if they are out of the player’s POV. On each square of the deactivating triggers, place an A49 trigger, too, that will remove the light effect of that crystal.
- You need another GlobalTrigger now:

TriggerGroup= 2, $2000, 90, $16, $2000, 70, $1F74, >

As you see, we don’t need $5000+TGROUP_USE_FOUND_ITEM_INDEX, 25, $3D and $5000+TGROUP_USE_FOUND_ITEM_INDEX, 25, $150D and $5000+TGROUP_USE_FOUND_ITEM_INDEX, 25, $2C triggers in TriggerGroup2, but there is a new trigger in that TriggerGroup:

; Exporting: TRIGGER(270:0) for ACTION(25)
; <#> : ANIMATING1 ID 25
; <&> : Enemy. Kill <#>object in (E) way
; (E) : Remove immediatly (disappear any item)
; Values to add in script command: $5000, 25, $10E

This trigger - thanks to TGROUP_USE_FOUND_ITEM_INDEX flag- will "kill" any crystal when Lara touches that crystal.

This tutorial was made using TRNG
AkyV is offline  
Closed Thread


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT. The time now is 03:11.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.