five-on-it / apps/server/src/seat-bots / botGoalsOf
Function: botGoalsOf()
botGoalsOf(
game,mission,team):Point[]
Defined in: apps/server/src/seat-bots.ts:102
The places an AI player of a team goes to in turn: its team's objectives' (and those everyone plays) in the mission's order; none for a team whose objectives name no place.
Parameters
game
blurb?
string = ...
id
string = ...
level
string = ...
missions
object[] = ...
paths
Record<string, { gates: string[]; laps: number; } | { loop: boolean; patrol: string[]; }> = ...
places
Record<string, { name?: string; role?: "players" | "police" | "traffic" | "guards" | "hospital"; tags?: string[]; x: number; y?: number; yaw?: number; z: number; }> = ...
rules
{ clock?: { pace: number; start: string; }; dropMissionItems: boolean; fallDamage: boolean; garages?: { respray?: number; store?: number; }; ghostSeconds: number; loadout?: object[]; maxPlayers: number; mode?: "solo" | "coop" | "versus"; partyRewards: "split" | "shared"; phone: boolean; playerDamage: "on" | "off" | "rivals"; police: boolean; prices?: Record<string, number>; respawn: "hospital" | "mission"; safeZones: string[]; traffic: number; vehicleFire: boolean; weather?: { changes: boolean; climate?: "none" | "temperate" | "meadow" | "forest" | "alpine" | "farmland" | "steppe" | "desert" | "autumn" | "coast"; intensity: number; start?: "clear" | "overcast" | "rain" | "storm" | "fog" | "snow"; }; } = ...
rules.clock?
{ pace: number; start: string; } = ...
The room clock (GAME_DESIGN §5.7): the time the room starts at and its pace, game minutes per real second (1 is an hour a minute, a day in 24 minutes; 0 stops it; up to 60 for a day in 24 seconds).
rules.clock.pace
number = ...
rules.clock.start
string = ...
rules.dropMissionItems
boolean = ...
Whether a character that dies drops the items a mission defined that it carried, where it fell (GAME_DESIGN §7.4).
rules.fallDamage
boolean = ...
Whether a long fall hurts (from about 4 m) and a very long one kills (from about 12 m).
rules.garages?
{ respray?: number; store?: number; } = ...
What every garage of the level charges ($), over the level's own prices (GAME_DESIGN §5.5).
rules.garages.respray?
number = ...
rules.garages.store?
number = ...
rules.ghostSeconds
number = ...
Seconds a player is a ghost after coming back (passing through cars and people, taking no harm).
rules.loadout?
object[] = ...
What every player starts with (GAME_DESIGN §7.4): stacks of items by id (weapons and their ammunition are items), each in the slot of the strip it names (1 to 16; the number keys select the first nine, and the slot a key selects is the weapon held) or the first free one. Absent: free roam's arsenal, the fists' slot 1 left empty, the pistol, shotgun, rifle, rocket launcher, grenades and tranquilizer on 2 to 7 and the guns' ammunition from 9 on; an empty list: nothing but the phone.
rules.maxPlayers
number = ...
How many players a room of this game takes.
rules.mode?
"solo" | "coop" | "versus" = ...
How the game is played, one mode for all its missions (its creator's pick): single player (solo: no mission has a play, and every room of it is its opener's alone), co-op (coop: every mission is co-op, played by a crew in a run's room from a lobby) or versus (versus: every mission pits two teams or more against each other). Absent: the missions say, each its own (a curated game's mix).
rules.partyRewards
"split" | "shared" = ...
How a party's mission reward is paid: each member the whole of it (shared), or the reward divided among them (split).
rules.phone
boolean = ...
Whether every character starts with a phone (GAME_DESIGN §7.5); a mission may give one.
rules.playerDamage
"on" | "off" | "rivals" = ...
Whether players hurt each other: never, only rivals (players outside one's party), or always.
rules.police
boolean = ...
Whether the room has police: crimes raise a Wanted level and police cars come (GAME_DESIGN §12).
rules.prices?
Record<string, number> = ...
What the shops charge ($), by item id, over the items' own prices (GAME_DESIGN §14).
rules.respawn
"hospital" | "mission" = ...
Where a player who went down comes back: the nearest spawn point (hospital), or where their mission started (mission).
rules.safeZones
string[] = ...
The game's zones where players cannot hurt each other and no car is carjacked.
rules.traffic
number = ...
Ambient cars driving the level's roads around the players: none unless the game asks (at most 64).
rules.vehicleFire
boolean = ...
Whether a car brought low catches fire, burns and blows up, its blast lighting the cars beside it.
rules.weather?
{ changes: boolean; climate?: "none" | "temperate" | "meadow" | "forest" | "alpine" | "farmland" | "steppe" | "desert" | "autumn" | "coast"; intensity: number; start?: "clear" | "overcast" | "rain" | "storm" | "fog" | "snow"; } = ...
The room's weather (GAME_DESIGN §5.7): its climate (the level's by default: a region's biome, temperate for a town; none is always clear), the weather it opens with (start, at an intensity), and whether it changes on its own from there (a front every half an hour, by the climate's odds) or holds. Missions change it (setWeather).
rules.weather.changes
boolean = ...
rules.weather.climate?
"none" | "temperate" | "meadow" | "forest" | "alpine" | "farmland" | "steppe" | "desert" | "autumn" | "coast" = ...
rules.weather.intensity
number = ...
rules.weather.start?
"clear" | "overcast" | "rain" | "storm" | "fog" | "snow" = ...
schemaVersion?
number = ...
The document's format (migrate.ts): 1 when absent; a newer one is migrated away before this reads it.
state?
{ counters: Record<string, number>; flags: string[]; } = ...
state.counters
Record<string, number> = ...
state.flags
string[] = ...
title
string = ...
zones
Record<string, { kind?: "pickup" | "spawn" | "restricted" | "race_gate" | "safe" | "checkpoint" | "dropoff"; place: string; radius: number; raises?: "alert" | "heat"; role?: "players" | "police" | "traffic" | "guards" | "hospital"; } | { kind?: "pickup" | "spawn" | "restricted" | "race_gate" | "safe" | "checkpoint" | "dropoff"; polygon: object[]; raises?: "alert" | "heat"; role?: "players" | "police" | "traffic" | "guards" | "hospital"; y?: number; }> = ...
mission
actors
({ at: string; class: string | string[]; id: string; key?: string; locked: boolean; owner: "nobody" | "npc" | "mission"; tags: string[]; type: "vehicle"; } | { armed: boolean; at: string; class?: string; count: number; crew: number; id: string; max?: number; mode: "car" | "foot"; profile: "guard" | "pursuit" | "tail" | "aggressive"; tags: string[]; targets?: { team: string; }; type: "chasers"; } | { at: string; count: number; id: string; item: string; type: "item"; } | { at: string; id: string; items: object[]; kind: "crate" | "locker"; lock?: string; type: "container"; } | { at: string; code?: string; id: string; lock?: string; locked?: boolean; type: "door"; } | { at: string; id: string; loop: boolean; path?: string; patrol?: string[]; pockets: object[]; role: "guard" | "civilian"; schedule?: object[]; tags: string[]; turn?: number; type: "npc"; weapon: "none" | "pistol" | "shotgun" | "rifle" | "fists"; } | { at: string; follow?: string; id: string; loop: boolean; path?: string; role: "driver"; route?: string[]; speed?: number; tags: string[]; type: "npc"; vehicle: string; } | { at: string; id: string; loop: boolean; path?: string; patrol?: string[]; pockets: object[]; refuge?: string; role: "target"; schedule?: object[]; tags: string[]; type: "npc"; } | { at: string; id: string; role: "vip"; tags: string[]; type: "npc"; } | { at: string; contact: string; dialogue: string; id: string; role: "contact"; type: "npc"; } | { at: string; id: string; on?: boolean; type: "camera"; } | { app: string; at: string; id: string; kind: "atm" | "terminal" | "keypad" | "vending" | "counter"; prompt: "use" | "hack"; screen?: string; type: "terminal"; } | { at: string; id: string; type: "garage"; } | { at: string; id: string; kind: "terminal" | "vending" | "counter"; sells: object[]; type: "shop"; } | { at: string; id: string; type: "prop"; })[] = ...
after?
string[] = ...
apps
object[] = ...
blurb?
string = ...
contacts
object[] = ...
counters
Record<string, number> = ...
dialogues
object[] = ...
helpline?
string = ...
id
string = Id
items
object[] = ...
objectives
({ checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; verb: "goto"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; target: string; team?: string; text?: string; timeLimit?: number; verb: "steal_vehicle"; } | { checkpoint?: boolean; count?: number; failText?: string; hint?: string; id: string; item?: string; marker?: string; maxDamage?: number; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; vehicle?: string; verb: "deliver"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; item: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "pickup"; } | { checkpoint?: boolean; count: number; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; tag: string; team?: string; text?: string; timeLimit?: number; verb: "collect"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; interactable: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "use"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "survive"; } | { checkpoint?: boolean; failIf?: Condition; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "defend"; zone: string; } | { checkpoint?: boolean; distance: number; failText?: string; group: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "lose"; } | { checkpoint?: boolean; failText?: string; group?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; nonLethal: boolean; targets?: { team: string; }; team?: string; text?: string; timeLimit?: number; verb: "eliminate"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; nonLethal: boolean; targets: string[]; team?: string; text?: string; timeLimit?: number; verb: "incapacitate"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; maxPhase: "search" | "normal" | "alert" | "caution" | "suspicious"; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "sneak"; zone: string; } | { actor?: string; checkpoint?: boolean; choice?: string; contact?: string; dialogue: string; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "talk"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; target: string; team?: string; text?: string; timeLimit?: number; verb: "unlock"; } | { checkpoint?: boolean; countdown: number; failText?: string; hint?: string; id: string; laps?: number; marker?: string; next?: { done?: string; failed?: string; }; path: string; rivals: string[]; team?: string; text?: string; timeLimit?: number; verb: "race"; } | { checkpoint?: boolean; count: number; failText?: string; hint?: string; id: string; item: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; verb: "give"; } | { actor: string; checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; maxDamage?: number; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; verb: "escort"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; radius: number; target: string; team?: string; text?: string; timeLimit?: number; to?: string; verb: "chase"; } | { actor?: string; checkpoint?: boolean; failText?: string; from: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; place?: string; team?: string; text?: string; timeLimit?: number; verb: "photograph"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "wait"; zone?: string; } | { checkpoint?: boolean; distance?: number; failText?: string; from: string[] | "police"; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds?: number; team?: string; text?: string; timeLimit?: number; verb: "escape"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; targets: string[]; team?: string; text?: string; timeLimit?: number; verb: "destroy"; } | { checkpoint?: boolean; count?: number; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; radius: number; seconds: number; targets: { team: string; }; team?: string; text?: string; timeLimit?: number; verb: "catch"; } | { checkpoint?: boolean; failIf?: Condition; failText?: string; hint?: string; id: string; marker?: string; need?: number; next?: { done?: string; failed?: string; }; objectives: ({ checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; verb: "goto"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; target: string; team?: string; text?: string; timeLimit?: number; verb: "steal_vehicle"; } | { checkpoint?: boolean; count?: number; failText?: string; hint?: string; id: string; item?: string; marker?: string; maxDamage?: number; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; vehicle?: string; verb: "deliver"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; item: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "pickup"; } | { checkpoint?: boolean; count: number; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; tag: string; team?: string; text?: string; timeLimit?: number; verb: "collect"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; interactable: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "use"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "survive"; } | { checkpoint?: boolean; failIf?: Condition; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "defend"; zone: string; } | { checkpoint?: boolean; distance: number; failText?: string; group: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "lose"; } | { checkpoint?: boolean; failText?: string; group?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; nonLethal: boolean; targets?: { team: string; }; team?: string; text?: string; timeLimit?: number; verb: "eliminate"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; nonLethal: boolean; targets: string[]; team?: string; text?: string; timeLimit?: number; verb: "incapacitate"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; maxPhase: "search" | "normal" | "alert" | "caution" | "suspicious"; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "sneak"; zone: string; } | { actor?: string; checkpoint?: boolean; choice?: string; contact?: string; dialogue: string; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; verb: "talk"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; target: string; team?: string; text?: string; timeLimit?: number; verb: "unlock"; } | { checkpoint?: boolean; countdown: number; failText?: string; hint?: string; id: string; laps?: number; marker?: string; next?: { done?: string; failed?: string; }; path: string; rivals: string[]; team?: string; text?: string; timeLimit?: number; verb: "race"; } | { checkpoint?: boolean; count: number; failText?: string; hint?: string; id: string; item: string; marker?: string; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; verb: "give"; } | { actor: string; checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; maxDamage?: number; next?: { done?: string; failed?: string; }; team?: string; text?: string; timeLimit?: number; to: string; verb: "escort"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; radius: number; target: string; team?: string; text?: string; timeLimit?: number; to?: string; verb: "chase"; } | { actor?: string; checkpoint?: boolean; failText?: string; from: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; place?: string; team?: string; text?: string; timeLimit?: number; verb: "photograph"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds: number; team?: string; text?: string; timeLimit?: number; verb: "wait"; zone?: string; } | { checkpoint?: boolean; distance?: number; failText?: string; from: string[] | "police"; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; seconds?: number; team?: string; text?: string; timeLimit?: number; verb: "escape"; } | { checkpoint?: boolean; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; targets: string[]; team?: string; text?: string; timeLimit?: number; verb: "destroy"; } | { checkpoint?: boolean; count?: number; failText?: string; hint?: string; id: string; marker?: string; next?: { done?: string; failed?: string; }; radius: number; seconds: number; targets: { team: string; }; team?: string; text?: string; timeLimit?: number; verb: "catch"; })[]; team?: string; text?: string; timeLimit?: number; verb: "group"; })[] = ...
play?
{ ambient?: { pedestrians?: number; traffic?: number; }; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives?: { count: number; per: "player" | "team"; }; mode: "solo" | "coop" | "versus"; onDeath?: "checkpoint" | "spectate" | "teamSpawn"; players?: { max: number; min: number; }; respect?: { min: number; }; retries?: number; teams?: "each" | object[]; } = ...
play.ambient?
{ pedestrians?: number; traffic?: number; } = ...
play.ambient.pedestrians?
number = ...
play.ambient.traffic?
number = ...
play.friendlyFire
boolean = ...
play.joinInProgress
"never" | "untilCheckpoint" | "always" = ...
play.lives?
{ count: number; per: "player" | "team"; } = ...
play.lives.count
number = ...
play.lives.per
"player" | "team" = ...
play.mode
"solo" | "coop" | "versus" = ...
play.onDeath?
"checkpoint" | "spectate" | "teamSpawn" = ...
play.players?
{ max: number; min: number; } = ...
play.players.max
number = ...
play.players.min
number = ...
play.respect?
{ min: number; } = ...
play.respect.min
number = ...
play.retries?
number = ...
play.teams?
"each" | object[] = ...
reward?
{ cash: number; rep: number; } = ...
reward.cash
number = ...
reward.rep
number = ...
rules
({ do: ({ showText: string; } | { sendMessage: { from: string; id?: string; text: string; }; } | { setFlag: string; } | { clearFlag: string; } | { startTimer: { id: string; seconds: number; }; } | { stopTimer: string; } | { add: { counter: string; value: number | { counter: string; } | { timeLeft: true; } | { elapsed: true; } | { count: ... | ... | ... | ...; } | { distance: [..., ...]; } | { health: ... | ... | ... | ...; } | { wanted: true; } | { phaseOf: string; } | { phase: ... | ... | ... | ... | ...; } | { kills: true; } | { alerts: true; } | { seen: true; } | { form: string; } | { time: true; }; }; } | { set: { counter: string; value: number | { counter: string; } | { timeLeft: true; } | { elapsed: true; } | { count: ... | ... | ... | ...; } | { distance: [..., ...]; } | { health: ... | ... | ... | ...; } | { wanted: true; } | { phaseOf: string; } | { phase: ... | ... | ... | ... | ...; } | { kills: true; } | { alerts: true; } | { seen: true; } | { form: string; } | { time: true; }; }; } | { spawn: { at?: string; count?: number; group: string; }; } | { setWanted: number; } | { give: { count: number; item: string; }; } | { take: { count?: number; tag: string; }; } | { lock: { door: string; }; } | { unlock: { door: string; }; } | { lockVehicle: string; } | { unlockVehicle: string; } | { giveKey: string; } | { spawnItem: { at: string; count: number; item: string; }; } | { alert: { npc?: string; }; } | { calm: { npc?: string; }; } | { cameraOff: { camera: string; }; } | { cameraOn: { camera: string; }; } | { reward: { cash: number; rep: number; }; } | { complete: true; } | { fail: true | { text: string; }; } | { win: string; } | { message: { choices?: Reply[]; from: string; id?: string; text: string; }; } | { call: { dialogue: string; from: string; }; } | { addContact: { contact: string; dialogue?: string; }; } | { removeContact: string; } | { installApp: string; } | { removeApp: string; } | { waypoint: string; } | { clearWaypoint: true; } | { setClock: string; } | { setPace: number; } | { setWeather: { intensity: number; kind: "clear" | "overcast" | "rain" | "storm" | "fog" | "snow"; minutes?: number; over: number; }; } | { skipTime: { hours: number; text?: string; }; } | { setSignal: { group?: "north-south" | "east-west"; junction: string; seconds?: number; state: "green" | "red" | "flashing" | "auto"; }; })[]; if?: Condition; repeat: boolean; when: string; } | { enter?: ({ showText: string; } | { sendMessage: { from: string; id?: string; text: string; }; } | { setFlag: string; } | { clearFlag: string; } | { startTimer: { id: string; seconds: number; }; } | { stopTimer: string; } | { add: { counter: string; value: number | { counter: ...; } | { timeLeft: ...; } | { elapsed: ...; } | { count: ...; } | { distance: ...; } | { health: ...; } | { wanted: ...; } | { phaseOf: ...; } | { phase: ...; } | { kills: ...; } | { alerts: ...; } | { seen: ...; } | { form: ...; } | { time: ...; }; }; } | { set: { counter: string; value: number | { counter: ...; } | { timeLeft: ...; } | { elapsed: ...; } | { count: ...; } | { distance: ...; } | { health: ...; } | { wanted: ...; } | { phaseOf: ...; } | { phase: ...; } | { kills: ...; } | { alerts: ...; } | { seen: ...; } | { form: ...; } | { time: ...; }; }; } | { spawn: { at?: string; count?: number; group: string; }; } | { setWanted: number; } | { give: { count: number; item: string; }; } | { take: { count?: number; tag: string; }; } | { lock: { door: string; }; } | { unlock: { door: string; }; } | { lockVehicle: string; } | { unlockVehicle: string; } | { giveKey: string; } | { spawnItem: { at: string; count: number; item: string; }; } | { alert: { npc?: string; }; } | { calm: { npc?: string; }; } | { cameraOff: { camera: string; }; } | { cameraOn: { camera: string; }; } | { reward: { cash: number; rep: number; }; } | { complete: true; } | { fail: true | { text: string; }; } | { win: string; } | { message: { choices?: ...[]; from: string; id?: string; text: string; }; } | { call: { dialogue: string; from: string; }; } | { addContact: { contact: string; dialogue?: string; }; } | { removeContact: string; } | { installApp: string; } | { removeApp: string; } | { waypoint: string; } | { clearWaypoint: true; } | { setClock: string; } | { setPace: number; } | { setWeather: { intensity: number; kind: "clear" | "overcast" | "rain" | "storm" | "fog" | "snow"; minutes?: number; over: number; }; } | { skipTime: { hours: number; text?: string; }; } | { setSignal: { group?: "north-south" | "east-west"; junction: string; seconds?: number; state: "green" | "red" | "flashing" | "auto"; }; })[]; every?: { do: ({ showText: string; } | { sendMessage: { from: string; id?: ... | ...; text: string; }; } | { setFlag: string; } | { clearFlag: string; } | { startTimer: { id: string; seconds: number; }; } | { stopTimer: string; } | { add: { counter: string; value: ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ...; }; } | { set: { counter: string; value: ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ...; }; } | { spawn: { at?: ... | ...; count?: ... | ...; group: string; }; } | { setWanted: number; } | { give: { count: number; item: string; }; } | { take: { count?: ... | ...; tag: string; }; } | { lock: { door: string; }; } | { unlock: { door: string; }; } | { lockVehicle: string; } | { unlockVehicle: string; } | { giveKey: string; } | { spawnItem: { at: string; count: number; item: string; }; } | { alert: { npc?: ... | ...; }; } | { calm: { npc?: ... | ...; }; } | { cameraOff: { camera: string; }; } | { cameraOn: { camera: string; }; } | { reward: { cash: number; rep: number; }; } | { complete: true; } | { fail: true | { text: ...; }; } | { win: string; } | { message: { choices?: ... | ...; from: string; id?: ... | ...; text: string; }; } | { call: { dialogue: string; from: string; }; } | { addContact: { contact: string; dialogue?: ... | ...; }; } | { removeContact: string; } | { installApp: string; } | { removeApp: string; } | { waypoint: string; } | { clearWaypoint: true; } | { setClock: string; } | { setPace: number; } | { setWeather: { intensity: number; kind: ... | ... | ... | ... | ... | ...; minutes?: ... | ...; over: number; }; } | { skipTime: { hours: number; text?: ... | ...; }; } | { setSignal: { group?: ... | ... | ...; junction: string; seconds?: ... | ...; state: ... | ... | ... | ...; }; })[]; if?: Condition; seconds: number; }; exit?: ({ showText: string; } | { sendMessage: { from: string; id?: string; text: string; }; } | { setFlag: string; } | { clearFlag: string; } | { startTimer: { id: string; seconds: number; }; } | { stopTimer: string; } | { add: { counter: string; value: number | { counter: ...; } | { timeLeft: ...; } | { elapsed: ...; } | { count: ...; } | { distance: ...; } | { health: ...; } | { wanted: ...; } | { phaseOf: ...; } | { phase: ...; } | { kills: ...; } | { alerts: ...; } | { seen: ...; } | { form: ...; } | { time: ...; }; }; } | { set: { counter: string; value: number | { counter: ...; } | { timeLeft: ...; } | { elapsed: ...; } | { count: ...; } | { distance: ...; } | { health: ...; } | { wanted: ...; } | { phaseOf: ...; } | { phase: ...; } | { kills: ...; } | { alerts: ...; } | { seen: ...; } | { form: ...; } | { time: ...; }; }; } | { spawn: { at?: string; count?: number; group: string; }; } | { setWanted: number; } | { give: { count: number; item: string; }; } | { take: { count?: number; tag: string; }; } | { lock: { door: string; }; } | { unlock: { door: string; }; } | { lockVehicle: string; } | { unlockVehicle: string; } | { giveKey: string; } | { spawnItem: { at: string; count: number; item: string; }; } | { alert: { npc?: string; }; } | { calm: { npc?: string; }; } | { cameraOff: { camera: string; }; } | { cameraOn: { camera: string; }; } | { reward: { cash: number; rep: number; }; } | { complete: true; } | { fail: true | { text: string; }; } | { win: string; } | { message: { choices?: ...[]; from: string; id?: string; text: string; }; } | { call: { dialogue: string; from: string; }; } | { addContact: { contact: string; dialogue?: string; }; } | { removeContact: string; } | { installApp: string; } | { removeApp: string; } | { waypoint: string; } | { clearWaypoint: true; } | { setClock: string; } | { setPace: number; } | { setWeather: { intensity: number; kind: "clear" | "overcast" | "rain" | "storm" | "fog" | "snow"; minutes?: number; over: number; }; } | { skipTime: { hours: number; text?: string; }; } | { setSignal: { group?: "north-south" | "east-west"; junction: string; seconds?: number; state: "green" | "red" | "flashing" | "auto"; }; })[]; while: Condition; })[] = ...
start
{ on: "join"; } | { on: "enter"; zone: string; } | { from: string; on: "message"; text?: string; } | { from: string; on: "call"; text?: string; } = ...
stealth?
{ bonus?: { cash: number; rep: number; }; unseen?: "fail" | "bonus"; withoutAlerts?: "fail" | "bonus"; withoutKills?: "fail" | "bonus"; } = ...
stealth.bonus?
{ cash: number; rep: number; } = ...
stealth.bonus.cash
number = ...
stealth.bonus.rep
number = ...
stealth.unseen?
"fail" | "bonus" = ...
stealth.withoutAlerts?
"fail" | "bonus" = ...
stealth.withoutKills?
"fail" | "bonus" = ...
title
string = ...
team
string
Returns
Point[]