A session is identified by its session id (
sid) — a string that starts
with s, returned when you start a session. Pass that same
sid to every subsequent session method.Session lifecycle
A session moves through a fixed set of states. You advance it withsessionUpdateSession.
Phases
Each session has an ordered list of phases, each with a stableid and a
name. A phase is either a work phase (kind: "phase" — one you start and stop,
and mark attendees against) or an outcome marker (kind: "outcome"). Attendee
pass/fail marks are keyed by phase id (see cells on an attendee), so a phase
can be renamed without losing its marks.
getSessionReservations
Returns the upcoming reserved/scheduled session slots for your organization — useful for showing hosts what they can pick up right now. To host one, pass itsrid as the mode to startSession.
Parameters
Player | table | number
required
The requesting host. See the actor object.
Returns
object[]
An array of reservation records, soonest first. Empty if there are none or the
request failed.
Example
getSession
Fetches the full record of a single session by id — its phases, administration (including the host), attendees with their per-phase marks and strikes, the phases that have been started/ended, the scheduled time, and a summary once it has ended.Parameters
Player | table | number
required
The requesting user. See the actor object.
string
required
The session’s
sid (e.g. "s5f3a1c9d2e4b6a8c").Returns
table | nil
The full session record, or
nil if the session was not found or the request
failed.Example
getRunningServers
Returns your organization’s currently-running game servers, the players in each (with their ranks), and any ongoing sessions taking place in them.Parameters
Player | table | number
required
The requesting user. See the actor object.
Returns
object[]
An array of running servers. Empty if none are active or the request failed.
Example
startSession
Starts hosting a session in the current server. The actor becomes the host, and must meet the host requirements configured for the chosen session type. You can host on demand (right now) or pick up a scheduled reservation returned bygetSessionReservations.
Parameters
Player | table | number
required
The host starting the session. See the actor object.
table
required
Session options.
Returns
table | nil
The result of the host attempt, or
nil if the request failed or the backend
was unreachable.Examples
sessionUpdateAttendees
Adds or removes attendees on a running session. You can add and remove in the same call. Duplicate, invalid, or already-present ids (and anyone in administration) are skipped automatically.Parameters
Player | table | number
required
The administrator performing the update. See the actor object.
table
required
Returns
table | nil
Example
sessionUpdateMark
Sets or clears a single attendee’s pass/fail mark for a work phase (e.g. ticking them off for passing a checkpoint). The phase must already be started.Parameters
Player | table | number
required
The administrator performing the mark. See the actor object.
table
required
Returns
table | nil
Example
sessionUpdateStrike
Adds a strike against an attendee (with a reason) or removes an existing one.Parameters
Player | table | number
required
The administrator issuing/removing the strike. See the actor object.
table
required
Returns
table | nil
Examples
sessionUpdatePhase
Controls a session’s phases. Use it to start/stop a work phase during the session, or to add/rename/delete phases.Only one work phase can be running at a time — end the current phase before
starting the next. Outcome markers cannot be deleted.
Parameters
Player | table | number
required
The administrator performing the action. See the actor object.
table
required
Returns
table | nil
Examples
sessionUpdateSession
Advances the session through its lifecycle — activating it, moving it to ending, closing it out, or cancelling it.Parameters
Player | table | number
required
The administrator performing the transition. See the actor object.
table
required
Returns
table | nil

