Spawner states¶
A gang's spawners (four per gang, GangAddSpawner) make humans according to their state:
GangAddSpawner's kind starts one in a state and GangStartSpawner(gang, name, state, value) switches it
(AI: spawners).
What is complete
All twelve states are listed; 6 and 10 only the game sets.
12 entries. Data: research/references/spawner-states.yaml.
Entries¶
| State | Name | Behaviour | Settable | Added | Switched | Scripts |
|---|---|---|---|---|---|---|
| 0 | stopped | Makes nobody. | yes | 75 | 127 | 36763710, survival, level2, level2_junkyard, level3, level3_chase |
| 1 | on | Spawns at its position whenever it may (delay, alive and total limits). | yes | 28 | 25 | hifi, kinghill, level2, level2_junkyard, level3, level3_chase |
| 2 | delayed | Spawns once value seconds have passed since it was given the state. |
yes | |||
| 3 | near the player | Spawns while player 1 is within value metres. |
yes | |||
| 4 | police dispatch | Waits for a crime to be routed to it, then makes a new gang of type 1 (police) named Responder<n> and goes to 6; only while the game's police count is under its limit (game state +0x324 < +0x326). Starts with value 75. |
yes | 11 | level5, level9, level11, level14, level82, level86 |
|
| 5 | far from the player | Spawns while player 1 is farther than value metres. |
yes | 6 | 2 | level52, level83 |
| 6 | dispatching police | Spawns the police squad out of the camera's sight around the player, value metres off; back to 4 once the squad is complete. |
no | |||
| 7 | reinforcements | Spawns on a pedestrian flag at least 35 m from the player beside or behind the view, or ahead at least the view distance capped at 70 m (possibly under 35 m), out of the camera's sight and clear of the gang's friends. | yes | 59 | 44 | level2, level3, level5, level9, level11, level14 |
| 8 | out of sight | Spawns out of the camera's sight around the player, value metres off. |
yes | 27 | 14 | level3_chase, level9, level11, level11_chapter1, level11_chapter3, level20 |
| 9 | gang dispatch | Like 4, without the police limit, and the new gang takes the spawner's gang type and relations; goes to 10. | yes | 15 | level5, level9, level11, level14, level20, level51 |
|
| 10 | dispatching gang | Like 6 for the gang made in 9; back to 9. | no | |||
| 11 | keep up the numbers | Tops the gang up while its living members are fewer than the gang's limit, ignoring the spawner's own alive limit; stops (0) once the gang has spawned its total. Added in this state, the spawner is also made off screen (never spawns while a camera sees its spot); switched to it, it keeps its flag. | yes |
Sources and evidence¶
Evidence levels used: confirmed-code, inferred.
- SLUS_212.15, spawner update 0x001681a0
- SLUS_212.15, state 7 placement 0x001679e8
Fields¶
| Field | Type | Hand-written | Meaning |
|---|---|---|---|
id |
int | The spawner state (spawner +0x52): GangAddSpawner's kind, GangStartSpawner's mode. |
|
name |
str | yes | Our short name for it. |
behaviour |
str | yes | When the spawner makes a human and what it does then. |
settable |
bool | Whether GangStartSpawner can set it (the code's switch takes 0-5, 7, 8, 9 and 11). |
|
added |
int | GangAddSpawner calls that start a spawner in it. |
|
started |
int | GangStartSpawner calls that switch a spawner to it. |
|
scripts |
list | The scripts that make those calls (at most six). | |
source |
str | yes | Where the entry comes from: a script and binding, an address, a chunk. |
evidence |
str | yes | How we know: confirmed-code, confirmed-runtime, inferred or speculative (evidence levels). |
notes |
str | yes | Our own short notes. |