Automators

At some point you will probably want to change controller values programmatically to create interesting in-game patterns, aiming behaviors and so forth. You can, of course, access any controller’s public values through a custom script and change them that way, however, an easier way is to attach an Automator script to the controller.


You can [A] click Add Linear Automator or Add Stepped Automator on any controller’s SpreadPattern script to attach an automator script to the controller. The main difference between stepped vs linear is a Linear Automator changes a control point in a linear manner [B] between two values (From and To) at the given [C] Speed, whereas a Stepped Automator can have any amount of [D] discrete Steps that go between values of your choosing at whatever [E] Interval you choose between each step.

A Stepped Automator is also capable of triggering the controller’s Trigger Auto Fire at each interval by [F] enabling Auto Sync Trigger making it particularly useful for setting up enemy patterns that go on for a determined amount of iterations set by [G] Trigger Passes (behavior will go on indefinitely if this is set to 0).

Note that you can also use a Stepped Automator just for triggering by setting a single step to a value that you don’t expect to change. This is particularly useful for triggering enemy attack patterns.

You can set the control point that an automator changes over time via the [H] Destination dropdown list. The [I] Behavior list, meanwhile, determines whether that behavior occurs once (Single Pass), back and forth indefinitely (Ping Pong), in a continuous loop indefinitely (Continuous), or randomly (Randomized).

There is a difference, however, in how a stepped vs linear automator handle a Continuous behavior. In Stepped, Continuous iterates over each step and ends up back at the beginning and going in this loop indefinitely whereas with Linear, the value changes continuously from the From value and moves indefinitely past the To value. This makes Linear more useful for continuous behaviors in a single direction or 360 degree rotation.

Also note that you can delay the initial execution of automators with the [J] Initial Delay field, which is particularly useful for delaying the first triggered firing or creating pattern stages.