SWAT TUTORIAL
Engine Operation in Detail
The Engine runs on a cycle. What actually happens can be very complicated, but here is a more thorough (though still simplified) explanation of the process that the Engine uses.

Top of Cycle:
        Advance the clock by one Moment.
        Set the clock Hours and Days
        Check to see if nothing has happened for at least
10 Moments;
                if so, terminate the story.
        
Check the clock time; if it's time to do so, trigger the ClockAlarm.
        For each and every Actor, starting with Fate, do the following: (LOOP)
                Relax the
Actor's moods (let them relapse towards normalcy)
                For each and every one of the
Actor's Plans, do the following: (LOOP)
                        
Check that the Plan's Execution Time has elapsed.
                        
Check that the Actor is on the same Stage as the Plan's DirObject;
                                if not, skip this
Plan.
                        Check the Audience requirement for the
Plan's Verb;
                                if the Audience requirement is satisfied by the situation, then proceed;
                                 otherwise, skip this
Plan.
                        Check for an Abort Script for this
Verb; if there is one, execute it;
                                 if it returns "true," then abort executing this
Plan and throw it away.
                        If we've gotten this far without skipping this
Plan, then execute it:
                                store the
Plan into the HistoryBook as an Event.
                                execute any Consequence Scripts for this
Event
                                if this Verb is "depart for," do some special things to remove the Subject
                                         from his current Stage.
                                if this
Verb is "arrive at," do some special things to place the Subject at his
                                         destination.
                                Have
Fate react to the Event.
                                based on the Audience requirement for the
Verb, decide who on the Stage
                                         actually witnesses the Event.
                                Have each witness in turn react to the
Event.
                                Have the
DirObject react to the Event
                                Have the Subject react to the Event.
                                Throw away the
Plan.
                        Do not
execute any more Plans for this Actor (unless the Actor is Fate).
                End of Plans loop
        Did the
Actor execute any Plans? If so, then proceed to the next Actor. If not, do this:
                Consider whether to go to another
Stage:
                        Does the
Actor have a previously defined TargetStage? If so, go there.
                        If not, sort through the
Plans and find the most important Plan.
                        If there is one, go to the
Stage where the planned DirObject is
                                (so we can execute the
Plan on the DirObject).
                        If the
Subject can't do that, then pick a new Stage to go to based on:
                                how long the
Actor has been sitting around at the current location.
                                how Unwelcoming_Homey another
Stage is for this Actor
        End of Actor loop
End of main loop—go back to the top of the loop

If it's time to terminate the story, set a
Plan for Fate to execute "Fate penultimate verb Protagonist." This system Verb will then lead to the very last Event, "Fate happily ever after Protagonist how much." You, the author, may insert intervening Verbs between penultimate verb and happily ever after; however, if you do so, see the cautionary notes in System Verbs.

You may also write WordSocket scripts for the Quantifier in the very last sentence, "Fate happily ever after You this much: [Quantifier]," to reflect how well or poorly your player did. If you wish, however, you can just leave this at its default setting of "medium," or you can remove the Quantifier. To remove the happily ever after Quantifier, go to System Verbs: happily ever after: Properties and eliminate 4Quantifier from the list of WordSockets.



Previous tutorial:  Engine Operation Overview                

This is the last tutorial in this group.  One more tutorial:  Odds & Ends