Dispatcher: The dispatcher can now be set to loop forever through its actions. This does not run automatically; the Dispatcher has to be triggered to get it going.
DispatcherFaucet: This is a custom Dispatcher. It works off of Unreal's Trigger/Untrigger stuff. When you are in the collision radius of a standard, default-setting Trigger who's Event is the DispatcherFaucet, the DispatcherFaucet will run continuously (if set to IsLooping->TRUE). As soon as the player steps out of that Trigger's radius, the DispatcherFaucet will turn 'off'. I used these in Mountain1 for that big rock fall area. I didn't want all those rocks falling at once and melting the frame rate, so they're set up in separate DispatcherFaucet 'systems' each run by its own large proximity Trigger. That way the rocks are only ever falling in the part of the map where Ragnar is, and hence better frame rate.
OrdersDispatcher: Never used 'em! So I don't have much to say about them.
RandomDispatcher: If Dispatcher->AutoStart is set to False, it will not run until it is triggered. If the RandomDispatcher is set to IsLooping->TRUE, then the ContiguousEvents category is irrelevant. However, if IsLooping is set to False, ContiguousEvents tells the RandomDispatcher how many events to pump out each time it is triggered. RandomDelayMin and RandomDelayMax set the range for the time delay between each random event; but if a randomly chosen Event has its own Delay greater than zero, then that delay will also occur when it is activated. Basically you've got eight slots for events and each has its own probability. Very nice for setting up ambient environmental effects.
CineTrigger/DamageTrigger/DestroyTrigger/etc.: We never used these, prefering to do all these things through SpecialEventRune's.
Lever and Pump: They have all the settings and functionality of a normal Trigger, but are custom-code visible actors as well with their own built-in sounds.
SightTrigger: Works like a normal Trigger, except it is activated when the player looks in its direction. I'd avoid using it for anything critical and use it simply to set up little ambient scripted events.
Don't bother with ZoneTrigger and ZoneVelocityTrigger. Instead the ZoneTemplateTrigger has everything you need...
ZoneTemplateTrigger: This one is really useful, as it lets you change things about a zone on the fly, like turning fog, water, and pain settings on and off as well as changing things like velocity. Under its ZoneTemplateTrigger property category, you'll find the bulk of settings that you normally see in a ZoneInfo. When the ZoneTemplateTrigger is triggered by some event in the game, it will impose its Zone properties on to the ZoneInfo named under ZoneTemplateTrigger->Event.
Some changes are a little quirky. For instance, to turn on "pain", the target ZoneInfo must be set to bPainZone->TRUE with a PainAmount of zero. Then the ZoneTemplateTrigger changes this Pain amount to whatever amount of damage you'd like. If the ZoneInfo is initially set to bPainZone->FALSE, then a ZoneTemplateTrigger will not be able to change this property.
SpecialEventRune (SER): This is a greatly expanded version Unreal's original SpecialEvent. Under the SER's Object->InitialState you choose which of a number of functions you would like it to perform when it is triggered.
Here are some of the more commonly-used ones. To make these work on Ragnar, type in "Player" [not "Ragnar"] under ObjectTag.
PushObject: There is a PushObject property that lets you type in a vector. This force will be applied to whatever actor is tagged under SpecialEvent->ObjectTag. To push pawns like the Player around, you need a fairly large vector.
ObjectHateOther: The pawn called in SE->ObjectTag will immediately want to kill the pawn typed in under SER->OtherTag. This is not 100% - sometimes if the pawn has already seen Ragnar and wants to kill him, he will continue to come after Ragnar and not follow the HateOrder. To make two guys fight each other, you a pair of SER's to tell each to hate the other.
OrderObject: When this SER is called, the SE->ObjectTag Pawn will immediately go to the ScriptAction/ScriptPoint/ScriptDispatcher called under SE->ScriptTag. As always, if it's a ScriptPoint the Pawn will physically walk to, whereas a ScriptAction will be called immediately. See the Scripting category in this document for more on this.
DestroyObject: When this is called, the actor under SE->ObjectTag will be immediately removed from the world. No fancy explosion or anything, it'll just be gone. This could be a Pawn, something like a Dispatcher, anything. Quite useful when setting up complicated scripting where there are multiple outcomes depending on the player's actions.
UseObject: We used this a lot to make it look like enemy creatures were "using" Levers, Pumps, and such. It has the same effect on its SE->ObjectTag as the player physically walking over to the object and hitting their "Use" key.
Quake: Makes the screen shake with an earthquake effect. There is a special Quake property that contains the self-explanatory settings.
DamageObject: This does X amount of "hit point" damage to the SE->ObjectTag. The damage amount is under SE->Damage. If you want to make an actor "catch fire", set the SE->DamageType to "Fire".
Let's say you want to have a big breakable wall as part of some scripted event. You'd set it up as a Polyobject (see the Polyobject section for more on this), and give that PolyObject a nice high DamageThreshold like 10000, to ensure that the player wouldn't be able to break it even if he whacked on it for two hours. Then, when you want it blown up, you'd call an SER who's Object->InitialState was set to DamageObject, and deliver the necessary 10000 points of damage. Voila! The sucker will blow up with all its nice debris and damage effects and sounds.
KillObject: This kills the Pawn, including "Player", under SE->ObjectTag. The Pawn will fall over dead and make his gasping sounds, etc.
[ Click here for printable version ]