Skip to content

Game references

Lists of the things in The Warriors that scripts, mods and Coney's own code refer to: characters and their classes, attacks and hats, gangs and the Rumble roster, objects, weapons, items and cars, levels and what they place (flags, zones, doors, glass, lights), cameras and screen effects, AI goals, unlockables and statistics, animations, controls and commands, colours, text tags and labels, script constants, sounds, speech, script events and the names of the files in the game's archive. They play the part FiveM's game references play for GTA V: a modder looks up the id or name to pass, a contributor the value to expect.

Characters are "humans". The game calls every person, the player included, a human: scripts create one with HuCreate, the engine updates them all in Humans_Update, and most character bindings start with Hu. A human is the game's equivalent of GTA's ped; see Characters (research).

Start with Entities: every kind of thing the game has at run time (humans, objects, cars, flags, cameras, gangs ...), how scripts refer to each, how many there can be, and which lists and bindings cover it, with the FiveM equivalent of each.

Everything here is a name, an id, a number or our own short description, read from the player's own disc by coney-tools refs extract and checked by hand. No game text, script source, model or image from the disc is copied (LEGAL.md, "Reference lists").

Lists

List Entries What is complete
Characters 449 Every type CfgChar configures (449) is listed with every argument.
Character models 543 Every record (543) is listed.
Gangs 25 Every gang type (25) is listed with its arguments; the meaning of the byte values is not traced. Labels are hand-written.
AI goal types 149 All 149 goal classes are listed, read from their vtables in the executable: type ids 0-158, with 10, 30, 76, 77, 81, 97, 98, 106, 139 and 151 unused.
Speed classes 5 All five classes are listed.
Objects and weapons 1,371 Every object type (1,371) is listed with its class, type, physics shape, size and animations.
Object groups 5 Every group named by a character type is listed.
Cars 41 Every type and part id is listed.
Particle effects 270 All 270 types are listed.
Levels 111 Every record is listed with every field.
Level starts 188 Every story level whose script creates player 1 at a literal position, and every Rumble flag script whose name is known.
World flags 7,057 Every AddFlag call whose name is a literal string: 7,057 flags (4,167 names) added by 94 scripts of 62 levels.
Object zones 225 Every zone number a level's scripts name (Zone<n> globals, <TABLE>.<NAME>_ZONE fields), switch or spawn objects into: 225 zones in 62 levels.
Volume boxes 974 Every AddVolumeBox call whose name is a literal string: 974 boxes (547 volume, 251 player and 176 turf boxes) in 47 levels.
Scenes and movies 1,256 All 16 movies, and every scene of scene_list.cnk except the 1,525 segments that continue a longer scene: 1,240 scenes, 24 of them under names cut to 16 characters.
Glass types 19 All 19 types are listed with every argument.
Doors 484 Every SpawnDoor call (484 doors in 45 levels).
Object tints 37 Every literal tint of ObjSpawn and ObjColor is listed.
Lights 5,283 Every 14-argument SetLight call; arguments the script computes show none.
Spawner states 12 All twelve states are listed; 6 and 10 only the game sets.
Crime types 15 All 15 types are listed.
Camera types and switches 28 All fourteen classes the code makes are listed: types 10, 14 and 15 belong to no class.
Screen effects 23 All six queue types, thirteen look slots and four layers are listed.
Inventory items 23 All 23 slots are listed; 15 have an object in config_preload2.lua and level20 reconfigures three.
Unlockables 610 All 610 records are listed with every field, grouped by type.
Power classes 254 Every class each difficulty sets is listed with every argument: 51 classes (0-10, 13-66 with gaps), 50 in Rumble. Every script sets class 39 twice; the second call wins and is the one listed.
Warrior classes 46 Every class each difficulty sets is listed with every argument (nine per difficulty and the boot class 9), and every byte's reader is traced.
Attack kinds and tables 187 All 45 kinds, every CfgAttackDelay (44 kinds; kind 4 and 18 have none, and kind 17 is set twice) and the Rumble scripts' weights are listed, and every 45-entry table at boot and as each difficulty redefines it.
Hat fittings 908 All 908 fittings of config_preload2.lua are listed: 28 sets, one per Warriors model, 14 to 43 hats each.
Rumble roster 450 All 9 modes, 29 arenas, 46 gangs and 366 characters are listed (the characters are set in four scripts, in two copies; both agree).
Statistics 75 All six categories, all 45 event slots and every level row of PointsMatrix are listed.
Animation clips 1,875 Every clip (1,875) is listed.
Anim ids 722 All 722 ids are listed with the generic clip and Rembrandt's own clip where he has one.
Controls 18 Every button bit and both sticks are listed.
Commands 50 Every trigger kind, every pad command the scripts bind or switch and all seven Warrior commands are listed.
HUD colours 14 Every key of CL is listed.
Radar icons and blips 31 Every icon a script or the code uses and every blip type the code adds are listed.
Text formatting 66 All 66 tags are listed; the effects are written from the layout code.
Text labels 716 Every key of every string table on the disc is listed, with the scripts that name it.
Script enums 485 Every numeric constant of those scripts is listed.
Sound and music 2,124 Every configured sound, ambient sound, emitter and literal speech line name is listed.
Speech 464 All 207 speech commands are listed by their names in the executable, and every voice set that has lines, a character type or a script user, with the lines the game finds for each.
Script events 16 Every message number a script uses with either binding is listed; the senders of 3, 4, 5 and 8 are traced, the other meanings are inferred from callback names.
WAD entry names 6,313 6,313 of 10,701 names are known; the streamed world and most early entries are still unnamed.

Script bindings

The functions the scripts call are listed in Script bindings.

Still to list

Families of ids, names and values that scripts or the Cfg* tables use and that have no list yet, the most useful to a script author first. Counts are from the disc's 467 compiled scripts. Image says how an entry could be illustrated: model render (Coney renders the model, as for characters), icon render (one 2D icon or sprite of at most 64 x 64 that Coney renders from the disc), swatch (a colour the docs draw) or none. The list is research/references/still-to-list.yaml; a family that gets its own list leaves it.

Every family the scripts use has a list now.

Not to be listed: the credits (CfgCredits) and the text of any string table, which are game text; boss portraits (HUDSetANBossTexture), loading screens and other artwork.

Images

Characters, objects, cars, radar icons, particle effects and the lists that name an object (hats, inventory) may show a thumbnail. Coney renders them itself from the player's disc (coney --render-references DIR --names FILE, Running Coney) as transparent PNGs in docs/references/images/, named after the entry's stable reference name, so the renderer and these lists agree without a lookup table. Models are 256 x 256; 2D icons and sprites are at most 64 x 64:

Lists Image File name Example
Characters, Character models the model standing characters/<model name>.png, or <name hash>.png for a model with no recovered name characters/warr_re_cv.png
Objects, Hats, Inventory the object's model objects/<name>.png, the object type name objects/dyn_bat.png
Cars (types) the undamaged car cars/<type name>.png cars/car_osedan.png
Radar icons the icon at its own size radar/icon-<n>.png radar/icon-28.png
Particle effects (traced sprites) the sprite scaled to fit 64 x 64 particles/<name>.png particles/part_fire.png

coney-tools refs extract fills an entry's image field when its file exists; a missing image is simply left out of the table.

Contributing

Edit the YAML in research/references/, then run uv run --project python coney-tools refs render. The hand-written fields (who a character is, what a constant means) are kept when the lists are refreshed from the disc with coney-tools refs extract. The schema and rules are in Research workflow.