RED Events

The event/scripting system for Red is very powerful, yet easy to use. The basic philosophy behind it is that you LINK a TRIGGER to an EVENT(s). This system is very versatile and will let you create an almost unlimited number of special scripted sequences.

An "Event" is a basic game action that occurs when it receives either an On and/or Off message. On messages can be sent from triggers, objects, or they can be received from other Events. Off messages are sent from the off state of events like the Switch Event, or are sent through an Invert Event. Most Events only respond to On messages (since most Events do a single thing which doesn’t need to be stopped with an Off message). Events must be linked to the trigger source so they know when to trigger. You link a trigger and event together by using the objects unique id number, or by just selecting the first object, then the second object, and hitting the "K" hot-key.

Events can also be linked to other Events to set up a "Chain reaction" of event all triggered from one source. For example, you might have a trigger which links to a Play_Sound Event (which plays a scream), and the Play_Sound Event could link to a Play_Animation Event (which plays an animation of an AI holding his head in agony).

All Events have an optional delay associated with them, which you can specify in the Event properties (CTRL-P or by right clicking over the selected event and selecting "Properties" from the pop-up menu). This will delay the action of the event by the specified amount of time, after an On or Off message is received.

Events can link to other objects, which is used to tell the Event which objects to affect. Each Event affects their linked objects in different ways, so refer to the Event list below for a detailed description of each event. The link HAS to go from the event to the object for it to work- even if the object is being used at the "trigger"!

Available Events
Continuous Damage Description Cause the AI or Player which triggered the event to receive damage (use a trigger reset time of 0 to make the damage continuous).

On Response Apply damage to the entity who triggered the event. Any linked objects will also receive damage.

Off Response None.

Parameters Damage_per_second: Damage per second applied.

Damage_type: Generic, Brushing, Burning. Currently the only supported damage_type is Generic.

Cyclic Timer Description This Event will send an On message to all linked Events at a specified interval. This Event has to receive an On Message before it will begin sending out messages.

On Response Begin sending On messages at the specified interval.

Off Response None.

Parameters Time: The interval in seconds between sending On messages to all linked Events

Max Sends: The number of times the Event will send out On messages

Send Forever: If true, the Max Sends field is ignored, and the Cyclic Timer sends On messages forever

Drop Point Marker Description This is a special type of Event which doesn’t respond to On or Off messages. This Event is used as a position where AI will drop off objects while in AI_COLLECTING_MODE. This is how Grabber robots can drop their rocks off at a specific location.

On Response None.

Off Response None.

Parameters None.

Explode Description This Event will cause an explosion to occur at the Event location. The explosion can be made to cause a geomod, and you can control the amount of damage caused by the explosion.

On Response Make the explosion happen.

Off Response None.

Parameters Damage: The amount of damage caused by the explosion. This is the damage that is applied to any object within the explosion range.

Type: Small, Medium, Large. This field isn’t properly supported yet. We need to list a selection of different explosions to choose from.

Geomod: If true, the explosion will apply a geomod at the center of the explosion. The hardness of the rock where the explosion occurs is used to determine if a geomod is possible.

Follow_Waypoints Description This event will force all linked objects to follow a specified waypoint list, with a specific following method.

On Response Begin following the waypoints. An AI will use the closest waypoint as the location to begin the path following.

Off Response Stop following the current waypoint path.

Parameters Waypoint List: Name of the waypoint list that the AI should follow.

Always Face Player: If true, the AI will always face the player while following their waypoints

Max Speed Scale (0-100): Used to make the AI move slower while following waypoints

Follow Method: This determines how the AI will behave when the last waypoint node is reached. The choices are: 1.	One way:	follow the waypoints to the last node and stop. 2.	Loop:		follow the waypoints to the last node, then return to the start and repeat 3.	Ping Pong:	follow the waypoints to the last node, then follow the nodes back to the start (repeat).

Follow_Player Description This Event will force all linked objects to follow and protect the Player. This should only be used to make Hendrix follow (or stop following) the Player.

On Response Make linked entities follow the Player.

Off Response Make linked entities stop following the Player.

Parameters None.

Give_Item_To_Player Description This Event will make the player pick up a specific item. Items are normally automatically picked up by the player when he gets close enough to them. All game items are specified in items.tbl.

On Response Give the player the specified item.

Off Response None.

Parameters Item: Item class name, which is selectable from a drop-down list of all items from items.tbl.

Goal_Check Description This Event can either block or forward On messages, depending on the state of an associated goal_set Event.

On Response Foward On messages if min_count exceeds the current count value of the associated goal_set Event

Off Response None.

Parameters Goal Name: Script name for the associated Goal_Set Event Minimum Count: The miniumum value that the associated Goal_Set Event must have before forwarding messages

Goal_Set Description This Event will increment a count variable every time it receives an On message (Off messages will cause the count value to decrement). On Response Increment count by one.

Off Response Decrement count by one.

Parameters Start Count: The inital value of the count variable (this will be zero in most cases).

Goto Description This Event will make all linked entities travel to the Event location.

On Response Make linked entities start moving towards Event location.

Off Response None.

Parameters Always Face Player: If true, the AI will always face the player while following their waypoints Max Speed Scale (0-100): Used to make the AI move slower while following waypoints

Goto_Player Description This Event will make all linked entities travel to the Player position. The linked entities will continue to pathfind to the Player until they have line-of-sight. When the entities can see the Player, they will return to their default AI.

On Response Make linked entities start moving towards the Player.

Off Response None.

Parameters None.

Heal Description This Event will add life to all the linked objects. This Event can be used to damage events by using a negative Life Delta value.

On Response Add the Event Life Delta value to the life of all linked objects.

Off Response None.

Parameters Life Delta: How much life to add (negative amount will cause damage)

Invert Description This Event will change On messages to Off messages (and Off to On) before forwarding them to any linked Events.

On Response Change message to Off.

Off Response Change message to On.

Parameters None.

Level_Transition_Marker Description This is a special type of Event which doesn’t respond to On or Off messages. This Event is used to maintain the correct positions and orientations off all objects in the transition areas between levels. This Event needs to be placed in the location of the trigger which causes level loading in the other level involved in the transition.

On Response None.

Off Response None.

Parameters None.

Load_Level Description This Event will cause the specified level to load. The Player will be taken to the new level seamlessly.

On Response Load the specified level.

Off Response None.

Parameters Filename: Disk filename (including the .d4l extension) of the level to load. Start Marker id: The unique id of the Drop_Point_Marker associated with the level transition.

Look_At Description This Event will cause any linked AI to turn and face the Event location.

On Response Make linked AI look at the Event.

Off Response None.

Parameters None.

Play_Sound Description This Event will cause a sound to play. The sound can be a 3D or 2D sound, and it can be made to loop.

On Response Start playing the sound.

Off Response Stop the sound, if it is playing.

Parameters Sound Filename: Disk filename of the sound to play (including .wav extension).

Min Distance: Distance (in meters) where the sound begins to drop off in volume. If you don’t want the sound to be 3D, set the Min Distance to zero.

Looping: If true, the sound will play looping (until you stop it by sending an Off message to this Event).

Make_Fly Description This Event will make the linked AI enter fly mode. If the AI is already flying, this Event does nothing. This Event can only make AI fly if it normally has the ability (i.e., this Event can’t make a Cave Slug fly).

On Response Make linked AI enter fly mode.

Off Response None.

Parameters None.

Make_Walk Description This Event will make the linked AI enter walk mode. If the AI is already walking, this Event does nothing. This Event can only make AI walk if it normally has the ability (i.e., this Event can’t make a Grabber walk).

On Response Make linked AI enter walk mode.

Off Response None.

Parameters None.

Message Description This Event will make a sound file play and display the associated text on the Player HUD.

On Response Play the message.

Off Response None.

Parameters Persona: Selectable from drop-down list of names which is generated from personas.tbl. Select "none" if you don’t want the message to be from a persona.

Voice Filename: Disk filename (including .wav extension) of the sound file to play.

Play_Animation Description This event will cause a linked AI to play a specific animation. If the animation is a state animation (i.e., a looping animation) then it will replace the current animation state for the AI. If the animation is an action animation (i.e., a one-time animation) then it is blended with the current state.

On Response Play the animation.

Off Response None.

Parameters Animation: Name of the animation. This is selectable from a list of possible animations for the object that is linked.

Hold Last Frame: If true, the model will stay in the last frame of animation. This is only valid if the animation is defined as an action animation.

Remove_Object Description This Event will destroy all objects linked to the event. Objects will disappear instantly (i.e., without their death sequence).

On Response Kill all linked objects immediately.

Off Response None.

Parameters None.

Set_Friendliness Description This Event will set the Friendliness of all linked objects.

On Response Change the Friendliness of an entity.

Off Response None.

Parameters Friendliness: The friendliness is selectable from a drop-down list, and consists of the following choices:

1.	Unfriendly: AI will attack the player on sight. 2.	Neutral: AI will only attack the player if provoked. 3.	Friendly: AI will not attack the player, and may attack entities that are attacking the player. 4.	Outcast: AI will attack anything it sees.

Set_Light_State Description This Event will set the state of any linked lights. Currently this event can set a light on or off, but any light related changes (like making a light flash, change color, etc.) can be data within this event.

On Response Change the state of all linked lights.

Off Response None.

Parameters State: On or Off

Slay_Object Description This Event will kill all linked objects, and allow their death sequence to play.

On Response Kill all linked objects.

Off Response None.

Parameters None.

Shake_Player Description This Event will shake the viewpoint of the Player.

On Response Start shaking the Player camera.

Off Response None.

Parameters Magnitude: How strong to make the shaking. This value is the max amplitude of the shake in meters.

Time: How long to shake the camera in seconds.

Shield Description This Event will add the Shield Delta value to the shield of all linked objects.

On Response Add Shield Delta to all linked objects shields.

Off Response None.

Parameters Shield Delta: The amount of shield to add (you can decrease shield by using a negative number here).

Shoot_At Description This Event will cause all linked AI to shoot at the Event location. The AI will continue to shoot at the Event until an Off message is received.

On Response Make all linked AI attack the Event location.

Off Response Make all linked AI stop attacking the Event location.

Parameters None.

Shoot_Once Description This Event will make all linked AI shoot once in the direction they are currently facing.

On Response Fire a single time.

Off Response None.

Parameters Shoot Type: Primary, Secondary, Flare. What type of weapon to use.

Spawn_Object Description This Event will cause a specific object type to be created. The object is created at the Event location, with an identity matrix orientation. [FIXME: we may want to give events an orientation]

On Response Spawn the object at the Event location.

Off Response None.

Parameters Object Type: Entity, Clutter, Item. Selectable from a drop-down list.

Object Class: The classname of the object. Selectable from a drop-down list. The choice here depends on the Object Type that has been selected.

Swap_Textures Description This Event will cause the specified textures (up to 2 per Event) to be used on all linked objects.

On Response Swap the textures.

Off Response None.

Parameters Texture Num: Texture index to swap (starts from 0)

Texture Filename: Disk filename (including extension) of the texture bitmap to use

Switch Description This Event behaves like a switch that remembers it’s state (on or off). This Event can be used to turn lights on or off, and can be used to let the player activate special events. If the Event is linked to a VFX, this VFX is used as the model for the switch (the default state of the VFX should be off, with the animation taking the VFX to the on state).

On Response Toggle the state of the switch. The behavior of the switch is controlled through the Event parameters.

Off Response None.

Parameters Initial State: The initial state of the switch (either on or off)

Behavior: This says what kind of signal the switch will send. (toggle between on and off, always send an on, always send an off)

Sound: Disk filename (including the .wav extension) of the sound to play when the switch is thrown

Max Throws: How many times the switch can be thrown

Infinite Throws: If true, the Max Throws parameter is ignored, and the switch can be thrown an infinite number of times.

Switch_Model Description This Event will change the model of all linked objects to the model filename that is contained in the Event.

On Response Change the model.

Off Response None.

Parameters Model filename: Disk filename (with extension) of the model to switch to.

Teleport Description This Event will teleport all linked objects to the Event location. There are no special effects associated with the teleportation.

On Response Teleport all linked objects.

Off Response None.

Parameters None.

When Dead Description This Event will send an On message to all linked Events when all linked objects have died. This Event is used when you want to do something when a specific object has been destroyed.

On Response None.

Off Response None.

Parameters None.