Hidden Triggers in TRNG
by AkyV

Page 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

1.46. Door type subject

This field works only if the door is being moved by a cog switch.

 

1.46.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)

 

Executable combination (1):

Simulate a cog switch move with (Y) intensity on (X) door type

 

Y: from 1 to 193

Force: single.

 

Note:

When Lara starts turning a cog switch then a counter starts down from 40 in this field. It reaches 0 exactly when Lara finishes the move - raising the door a bit. The door starts sinking now. When she turns the cog once more then another sequence starts from 40 to 0, raising the door a bit again. The door starts sinking now again. But if the door reaches the highest position then the counter will be interrupted - though Lara is still turning the cog. (For example, if the value is 28 when the door reaches the highest position, then the counter turns into 0 at once.)

So the intensity for each 'real' cog move is 40. 193 causes the largest distance - that moves the door from the ground straightly to the highest position. With 194 or bigger number the counter should be interrupted everyway.

 

Executable combination (2):

Simulate a constant cog switch move on (X) door type to raise that to the highest position and keep that there permanently

 

Y: 1

Force: continuous. When stopping it: the door will start sinking at once - even if it hasn't reached the highest position when you stop the force.

 

Attention!

Any of these two executable combinations will work only if a cog switch moved that door at least once, at least a bit. I.e. you can't activate the combination till Lara performs that move with the cog!

 

Condition combination:

If (X) door type is just (A) being/not being raised by a (real or simulated) cog switch move

 

A:

'equal'

0: the door is sinking

0, with TGROUP_NOT flag in the condition trigger: the door is rising

Type: simple.

 

1.47. Sequence door subject

 

1.47.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short) 

 

Executable combination:

Force (X) sequence door to open

 

Y: 1

Force: single.

 

Note:

Usually only sequence switches are able to open sequence doors, Triggers (!) or Antitriggers will close them.

But if you want to open a sequence door without sequence switches then activate this combination. But

 

- Use the combination only if you haven't opened the door by the switches before.

- If you forced a door to open, then, after that, the proper code of sequence switches for that door won't do anything (if the door is still open) or only will reset the switches (if the door has been closed yet).

 

Condition combination:

If (X) sequence door status is (A)

 

A:

'equal'

0: the door hasn't been opened before

0, with TGROUP_NOT flag in the condition trigger:

a, the door is open, or

b, the door is closed but has been opened before

Type: simple.

 

1.48. Sequence switch subject

 

1.48.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)

 

Condition combination:

If (X) sequence switch status is (A)

 

A:

'equal'

0: the button hasn't been pushed at all/is reset

0, with TGROUP_NOT flag in the condition trigger: the button is pushed

Type: simple.

 

1.49. God head subject

 

1.49.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)

 

Condition combination:

If (X) god head status is (A)

 

A:

'equal'

0: the head is expanding

0, with TGROUP_NOT flag in the condition trigger: the head is at the maximal size/drawing back/drawn back

Type: simple.

 

1.49.2. The name of the field:

Custom_B (Different usage in according with type of item) (Short)

 

Executable combination:

Force (X) god head to have (Y) size

 

Y: from 1 to any

Force: see the raising block above to understand how it works.

 

Notes:

- God heads can be activated only once, automatically. (I.e. you don't need a 'One Shot' flag for that.)

- 4096 is always the default size. So 4096 means 'extended the distance of 1 square'. (0 naturally means the head is totally drawn back.)

- The head starts expanding when it is transparent. When it's about at half-size then it is semi-transparent. When it is totally expanded (at 4096) then it is opaque. When it starts drawing back then it starts fading away. - Calculate all of this when you choose a forced size. I mean, each size has its own transparency level.

- An extra: use negative numbers to force them. Negative sizes make the things interesting. I mean, they will 'turn in' the outside of the head.

 

Condition combination:

If (X) god head actual size is (A)

 

A: 'equal' from 1 to any

Type: sequence.

 

Notes:

 

- See the similar condition with raising blocks to understand how it works.

- It could be useful to apply the two conditions together (i.e. in the same TriggerGroup, after each other). For example, if the first condition is 1 and the second condition is 2048 that means 'the head is just half-sized and drawing back'. Because, without that 1, 2048 could be a size both for the expanding and the drawing-back head.

 

1.49.3. The name of the field:

Custom_C (Different usage in according with type of item) (Short)

 

Executable combination (1):

Make (X) god head keep the actual size for further (Y) frames from now on

 

Y: from 1 to any frames

Force: single.

 

Notes:

- Originally the head keeps only the maximal size, for 210 frames.

- The combination will work only if the head has reached the maximal size. So you can keep only these sizes:

 

= The maximal size.

= Any size which is actual when you activate the combination, but only when the head is drawing back.

 

Executable combination (2):

Make (X) god head keep the actual size forever

 

Y: from 1 to any frames

Force: continuous. When stopping it: the head will start drawing back in Y frames.

 

Condition combination:

If there are still (A) frames before (X) god head stops keeping the size

 

A: from 1 to any frames

Type: sequence.

 

1.50. Statue plinth subject

 

1.50.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)

 

Condition combination:

If (X) statue plinth status is (A)

 

A:

'equal'

0: the puzzle item hasn't been inserted

0, with TGROUP_NOT flag in the condition trigger: the puzzle item has been inserted

Type: simple.

 

Statue plinth is a very peculiar puzzle hole, because

- The puzzle item of Statue plinth is always a PUZZLE_ITEM5.

- Unlike other holes, that are using KEY-TRIGGER trigger pairs to activate something, Statue plinth uses HEAVY triggers. (By the way, activating HEAVY is not always the same as 'if the puzzle item has been inserted'. Because you can examine the combination value even after activating that HEAVY.)

- It's a puzzle hole and a puzzle done at the same time. (If you want to see the 'done' version instead of the 'hole' version, without inserting the puzzle item here, then type 1 in the OCB window of that Statue plinth.)

 

Note:

Unfortunately, the object is not 'savegame-stable'. So, if you insert the item, and you save the game, and then you load that savegame then the 'done' version changes back into 'hole' version. (Not annulling the effect of the activated HEAVY trigger but turning the value of this field back to 0.) - Except with OCB=1.

 

1.50.2. The name of the field:

Custom_B (Different usage in according with type of item) (Short)

 

Condition combination:

If inventory is (A) open/not open to insert the puzzle item on (X) statue plinth

 

A:

'equal'

0: not open

0, with TGROUP_NOT flag in the condition trigger: open

Type: simple.

 

Note:

So, if Lara has a PUZZLE_ITEM5 in the backpack, and the player hits CTRL at the Statue plinth to insert the puzzle item, then this condition is true while the inventory is open now. (If the inventory closes either because she inserts the item or the player hits ESC, the condition becomes false.) - The true status won't change if the player starts searching in the inventory now.

 

1.51. Grenade subject

 

1.51.1. The name of the field:

Custom_B (Different usage in according with type of item) (Short)

 

This field works only with placed and triggered grenades. See for example this setup:

Pyrotechnics and Flame Special Effects

 

Executable combination (1):

Make (X) grenade perform an (approximately) (Y) frames long exploding effect from now on

 

Y: from 2 to any frames

Force: single.

 

Notes:

- Originally the effect is 16 frames long. (I.e. if you explode that grenade without this combination.)

- If the grenade hasn't been exploded when you activate the combination, then the timer starts when the grenade explodes after that.

 

Executable combination (2):

Make (X) grenade perform a continuous exploding effect

 

Y: from 2 to any frames

Force: continuous. When stopping it: the effect will stop in Y frames.

 

Condition combination:

If there are (approximately) still (A) frames before (X) grenade stops the exploding effect

 

A: from 1 to any

Type: sequence.

 

1.52. Steam emitter subject

 

1.52.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)

 

These combinations work only if the emitter blows a harmful steam, horizontally:

 

Executable combination (1):

Make (X) steam emitter stop blowing and start the next blow in (Y) frames

 

Y: 1 or bigger frames

Force: single.

 

Notes:

- The 'stop' means the emitter starts stopping the blow, as usual, i.e. by degrees, so it is not a sudden stop.

Naturally, if the steam is just not being flown, then nothing will stop, but the next blow will start in (Y) frames.

- The combination will work only for the next blow that is just coming. So the blows after this next blow will come according to the default value (i.e. according to the OCB value of the emitter).

- If the emitter hasn't been activated when you activate the combination, then the timer starts when the emitter has been activated.

 

Executable combination (2):

Make (X) steam emitter stop blowing and disable to start more blows

 

Y: 1 or bigger frames

Force: continuous. When stopping it: the blow will start in Y frames.

 

Note:

Maybe you think you shouldn't use this combination. But, instead of that, you will antitrigger the steam and then - also using Executable combination (1) - you will trigger the steam again.

But that is not the same. Because, when the emitter is antitriggered then you can't see the 'basic steam' (which is not blown). But if you stop the blows by this combination, then you'll see the basic steam.

 

Executable combination (3):

Make (X) steam emitter start a continuous blow or (if the steam is just being blown) make the actual blown steam continuous

 

Y: 0

Force: continuous. When stopping it: the blow will start stopping at once.

 

Condition combination (1):

If the blow status of (X) steam emitter is (A)

 

A:

'equal'

0: the emitter is just blowing the steam

0, with TGROUP_NOT flag in the condition trigger: the steam is just not being blown, or reducing just after finishing the blow

Type: simple.

 

Condition combination (2):

If the next blow of (X) steam emitter starts in (A) frames

 

A: from 1 to bigger frames

Type: sequence.

 

Note:

The condition is useful only if the steam is not being blown or if the actual blown steam has started decreasing.

 

These combinations work only for non-continuous bubble emitters (OCB=0):

 

Executable combination (4):

Make (X) steam emitter start emitting (Y) bubbles from now on

 

Y: 1 or more bubbles

Force: single.

 

The default value is randomly between 4 and 7. So eg. if the value is 4 then four bubbles will be emitted (while the counter counts down), then some pause (0) happens, then another random value will show up, for example 6, to emit six bubbles (while the counter counts down) before the next pause etc.

So if you forced Y bubbles then Y bubbles will be emitted (while the counter counts down) then a pause happens and the emitter will start working normally again, emitting bubbles between somewhere four and seven.

 

Note:

If the emitter hasn't been activated when you activate the combination, then the bubbles will start when the emitter has been activated.

 

Executable combination (5):

Make (X) steam emitter start emitting bubbles continuously

 

Y: 1 or more bubbles

Force: continuous. When stopping it: then Y bubbles will be emitted (while the counter counts down), then a pause happens, then the emitter starts working normally.

 

Condition combination (3):

If the bubble status of (X) steam emitter is (A)

 

A:

'equal'

0: there is a pause now

0, with TGROUP_NOT flag in the condition trigger: the emitter is just emitting bubbles

Type: simple.

 

Condition combination (4):

If further (A) bubbles will be emitted from (X) steam emitter before the next pause

 

A: from 1 to more bubbles

Type: sequence.

 

These combinations work only for continuous bubble emitters (OCB=1):

 

Executable combination (6):

Force thick and concentrated bubble emitting on (X) steam emitter for further (Y) frames from now on

 

Y: 1 or bigger frames

Force: single.

 

'Thick' means a lot of bubbles will be emitted now in each moment.

'Concentrated' means these bubbles (sometimes) will be dissipated 1 click above the emitter - never reaching the water surface if the surface is in a higher position. ('Sometimes' means it is probably depends on the distance between Lara and the emitter.)

 

Notes:

- Usually you have only maximum 20 frames (after activating the emitter the first time) to activate this combination. If you were successful, then you can force any values here any time - but only before the counter (counting back from the forced value) reaches 0! (Antitriggering means a pause in this counter.)

If you want to force value after that 20 frames, then you need a peculiar basic formula (let's see only the version with variables now):

 

Trigger1. An A54 to define the actual subject of Item Memory Zone.

Trigger2. An F232/F263 to put a value into the chosen variable.

Trigger3. An F257 to force the chosen variable value into the chosen field.

Trigger4. An F232 to put Value 1 into another variable.

Trigger5. An F257 to force the second variable value into Custom_B field.

 

- If the emitter hasn't been activated when you activate the combination, then the bubbles will start when the emitter has been activated.

 

Executable combination (7):

Force continuous thick and concentrated bubble emitting on (X) steam emitter

 

Y: 2 or bigger frames

Force: continuous. When stopping it: the emitter starts working normally in Y frames

 

See the same notes just as above.

 

Executable combination (8):

Start a bubble counter for (X) steam emitter to count down bubbles from (Y) amount

 

Y: 1 or bigger

Force: single.

 

So for example force 180, and Value 1 will be subtracted from 180, then from 179, then from 178 etc. each time when a bubble is being emitted. If Y reaches 0 again, then the counter stops.

 

Note:

You should force the value after those 20 frames I told above. (I.e. it doesn't work with 'thick and concentrated bubbles'.)

 

Condition combination (5):

If the bubble counter of (X) steam emitter has (A) bubbles before the counter expires

 

A: from 1 to bigger

Type: sequence.

 

Note:

Use this condition only if your bubble counter is just running.

 

1.52.2. The name of the field:

Custom_B (Different usage in according with type of item) (Short)

 

These combinations work only if the emitter blows a harmful steam, horizontally:

 

Executable combination (1):

Make the steam being just flown from (X) steam emitter be emitted further (Y) frames from now on

 

Y: from 1 to any frames

Force: single.

 

Notes:

- If the steam isn't just being flown then the combination is useless.

- 0 frame value means the blow starts stopping by degrees at once.

 

Executable combination (2):

Make the actual or (if the steam is just not being blown) the next blown steam of (X) steam emitter be continuous

 

Y: from 1 to any frames

Force: continuous. When stopping it: the blow (being just blown) will start stopping in Y frames.

 

Condition combination:

If (X) steam emitter starts stopping the blow in (A) frames

 

A: from 1 to bigger frames

Type: sequence.

 

1.52.3. The name of the field:

Custom_C (Different usage in according with type of item) (Short)

 

These combinations work only if the emitter blows a harmful steam, horizontally:

 

Executable combination (1):

Force a (Y) long steam from (X) steam emitter for some moments

 

Y: from 256 to any (4096 is the default length, it is approximately 1-1,5 squares long)

Force: single.

 

Notes:

- It will work only if you activate the combination when the emitter is not blowing the steam.

- Values below 256 seem buggy.

- I recommend using the exponents of Value 2 (256, 512, 1024 etc.) for the length or else the solution perhaps will be buggy.

- You cannot change the direction of the blow.

 

Executable combination (2):

Make (X) steam emitter chug with (Y) length

 

Y: 256, 512, 1024, 2048 (4096 is the default length, it is approximately 1-1,5 squares long)

Force: single.

 

Notes:

- It will work only if you activate the combination when the emitter is blowing the steam.

- When you activate the condition then the length will be reduced to Y, but the 'proper' length will be restored at once.

 

Executable combination (3):

Make (X) steam emitter have (Y) long steam

 

Y: from 8192 to any (4096 is the default length, it is approximately 1-1,5 squares long)

Force: single.

 

Notes:

- It will work only if you activate the combination when the emitter is blowing the steam. (I.e. it will work only for the actual steam.)

- Now the steam will have Y maximal length that will be reduced with the usual rhythm.

- I recommend using the exponents of Value 2 (256, 512, 1024 etc.) for the length or else the solution perhaps will be buggy.

 

Executable combination (4):

Make (X) steam emitter perform a continuous steam with (Y) length

 

Y: from 256 to any (4096 is the default length, it is approximately 1-1,5 squares long)

Force: continuous. When stopping it: the blow will start reducing at once, and everything will work as usual.

 

Notes:

- If the steam is just being blown, then that will be continuous. If it is not, then a new steam will start at once.

- If the emitter hasn't been activated when you activate the combination, then the combination 'really' starts when the emitter has been activated.

- I recommend using the exponents of Value 2 (256, 512, 1024 etc.) for the length or else the solution perhaps will be buggy.

 

Condition combination:

If the blown steam of (X) steam emitter has (A) length

 

A: from 256 to any

Type: sequence.

 

Note:

It's worth using this condition together with 'If the blow status of (X) steam emitter is (A)' condition. (I.e. in the same TriggerGroup, after each other.) Because, for example, 'the emitter is just blowing the steam' and the actual length is 2048 then that means 'the flame increasing is 2048 long', ruling out the '2048 and decreasing' part.

 

1.53. Earthquake subject

 

See more about earthquakes in Chapter 3.7.

 

1.53.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)

 

Executable combination (1):

Perform one (Y) large single quake with (X) earthquake

 

Y: 110 or bigger

Force: single.

 

Note:

- The usual intensity of an earthquake is randomly between 1 and 109 (usually being at near the maximum or the minimum, but including a sharp but short increasing and a sharp but short decreasing intensity part between them). If you force a value in that interval, then that won't have any important effect. That's why you will force a value above 109 - that will start decreasing (continuously) at once to the 1-109 random interval.

- If the earthquake object hasn't been activated when you activate the combination, then the combination 'really' starts when the object has been activated.

 

Executable combination (2):

Perform a quake with a continuous (Y) intensity with (X) earthquake

 

Y: from 1 to any

Force: continuous. When stopping it: the quake will continue as usual.

 

Condition combination:

If (X) earthquake has (A) intensity

 

A: from 1 to any

Type: sequence.

 

1.53.2. The name of the field:

Custom_B (Different usage in according with type of item) (Short)

 

Condition combination:

If (X) earthquake intensity status is (A)

 

A:

'equal' 20: the intensity is decreasing or fluctuating around the minimum

'bigger/equal' 21: the intensity is increasing or fluctuating around the maximum

Type: simple.

 

1.53.3. The name of the field:

Custom_C (Different usage in according with type of item) (Short)

 

Executable combination (1):

Make the increasing/decreasing phase of the quake of (X) earthquake last further (Y) frames from now on

 

Y: from 1 to any frames

Force: single.

 

Notes:

- You should use an 'If the (X) earthquake intensity status is (A)' condition before you activate this combination (in the same TriggerGroup), so you will know if you will force on the increasing or the decreasing phase. (If you don't do that then the combination will affect always the actual phase.)

- The longest time interval is about 200 originally. So if you force a definitely bigger number than 200 that will keep the intensity permanently at the minimum (in decreasing phase) or at the maximum (in increasing phase).

- The earthquakes start with a pretty short 'fluctuating around the maximum' part before it starts decreasing. So if you activate the combination before activating the earthquake object then - activating the earthquake object - the combination will affect always the increasing phase.

 

Executable combination (2):

Keep the increasing/decreasing phase of the quake of (X) earthquake continuously at the maximum/minimum

 

Y: from 1 to any frames

Force: continuous. When stopping it: the quake will start working 'normally' in Y frames.

 

Condition combination:

If (X) earthquake keeps the actual intensity status for further (A) frames from now on

 

A: from 1 to any frames

Type: sequence.

 

Notes:

- You can also use the 'If the (X) earthquake intensity status is (A)' condition in the same TriggerGroup (after this one). So, eg. if the intensity status is 'increasing' then the present condition will sound this way: 'If the (X) earthquake keeps the increasing intensity status for further (A) frames from now on'.

- The solution will be buggy if you use this condition in the first second after triggering the earthquake.