Stages are the Storytronics representation of physical space. Storytronics is about people, not things, and, accordingly, Stages are very simple compared to Actors. Stages contain Actors and Props.
Stages are not at all similar to real world locations - there is no movement possible inside a Stage, and no significance to (indeed, no way to ascertain) where each Actor is inside the Stage. You're either in the Stage, or you're not, and that's all there is to know about your location. Each Stage has a name and an image used to represent it.
There is a special Stage called Nowhere that appears in every storyworld. Nowhere is where Actors go when they are somehow removed from the story, by becoming "inactive" for instance (see Actor State Traits). Nowhere has no Attributes, and Actors inside it cannot interact with each other.
Stage Core Traits
Stage Core Traits are BNumbers describe the kinds of things which are likely to happen in each Stage. It's up to you to decide what kinds of Core Traits to have for Stages in your storyworld. For example, if you create a post-nuclear-apocalypse storyworld, you might want to define the amount of radiation in each Stage. You do this by creating a Stage Core Trait named "Radiated_Clean" and defining its value for each Stage, from -1 meaning A-Bomb impact site to 1 meaning clean.
Stage State Traits
Stage State Traits are bookkeeping devices used to keep track of the Stage's situation.
This Trait can be set to either "true" or "false". If "false", Actors inside the Stage may not leave, and Actors outside it cannot enter. If "true", all movement is possible as normal. You are free to define which Stage Doors are open and closed at the start of the story. Actors can open and close Stage Doors using the appropriate Consequence Scripts. This Trait does not represent a physical door - rather, it represents the dramatic need to close a certain Stage off. This is why all Stages have this Trait, even outdoors ones.
This is a Trait which you cannot access directly through Script. It can be either "true" or "false". If set to "true", the Stage's Door cannot auto-open. If set to "false", the Door can auto-open as normal. This Attribute is changed using SetDoorOpen Consequence Scripts. When this Consequence sets DoorOpen to "true", it has the side-effect of setting DoorLocked to "false", and vice versa. You cannot initialize this Attribute directly. Instead, at the start of the story, a Stage's DoorLocked Trait is set to equal that Stage's DoorOpen Trait.
Each Stage has an Unwelcoming_Homey value with each Actor. This is a BNumber which represents how at ease that Actor feels in this Stage. An Actor feels completely at home at a Stage where his or her Unwelcoming_Homey is 1. An Actor shuns a Stage where his or her Unwelcoming_Homey value is -1. The more at home an Actor feels in a Stage, the more likely he or she is to go there. You define all Stages' Unwelcoming_Homey values with all Actors during storyworld creation, and they can be changed by Consequence Scripts.
These are in fact two different Attributes: an X coordinate and a Y coordinate, denoting the Stage's location in the storyworld's imaginary "map". The scale is measured is Storyminutes. For instance, it would take one Storyminute to go from location (0, 0) to location (0, 1). Apart from determining travel time between Stages (see Travel), a Stage's Position has absolutely no effect on the storyworld. This value is defined by you during storybuilding, and Actors can change it using Consequence Scripts.
This Trait can be set to any Actor. It does not mean the Actor who owns this Stage as his or her property - it means the Actor who last performed a Sentence in this Stage. This is automatically updated during the Action Cycle, and you cannot set it manually.
A Stage keeps a record of which Actors are familiar with it. If an Actor knows of a Stage, then that Stage's KnowsMe for that Actor is "true." If the Actor doesn't know of a Stage, then that Stage's KnowsMe for that Actor is "false." You can initialize a Stage's KnowsMe values using Swat, and can later change them using Consequence Scripts.