Forward didn't work because the class names were changed for space saving reasons:
(class Forward of Cycle
(properties
name {Fwd}
This lets you use "Forward" in your source code, but the final game data will store the shorter "Fwd". And since the templates were made from decompiling that final game data...
Now, the SCI0 template has no useful documentation in the script files themselves but it works much the same in the other versions so I can just quote SCI11:
Sets a cycler object on the Prop, optionally supplying initialization parameters for the cycler.
Example usage for telling a Prop to cycle forward: (theFrog setCycle: Forward)
Example usage for telling a Prop to cycle to the end, then cue its caller: (theFrog setCycle: EndLoop self)
theCycler: A class derived from class Cycle, or null to remove the current cycler.
How that works internally is that the Prop (or Actor, Ego, or anything else that's a kind of Prop) keeps track of another object, a Cycler, to help animate the Prop. The Cycler in turn has a reference back to the Prop so
it knows whose cel property to change. Then, every time the Prop updates, it knows to update its respective Cycler, which in turn changes its client Prop's cels accordingly.
Cyclers in the SCI 0 system scripts include:
Fwd or
Forward: just goes through all cels in the current loop in ascending order, then repeats.
Rev or
Reverse: like Forward but counts in reverse.
End or
EndLoop: goes through all cels in ascending order, then calls back and stops.
Beg or
BegLoop:
guess.
CT or
CycleTo: goes from the current cel to the specified one, then calls back and stops.
Walk: like Forward but only updates when the client moves.
And of course
Cycler itself, which you shouldn't use -- it's the base class for the above-listed.
Similar things apply to the
SetMotion method and
Motion classes, affecting position instead of cel over time.