Game data reference

NPC templates, vehicle records, seat and door constants, items, weapons, effects, sounds, animations and sprite catalogues, with explicit support levels.

5 min read1,018 wordsMarkdown

This page is the entry point for identifiers passed to CyberM APIs: NPC templates, vehicle records, seat and damage indexes, weapons, appearances, effects, sounds, animations, and map sprites. The catalogues were extracted from Cyberpunk 2077 2.31 unless another version is stated.

Support levels

Do not treat every identifier found in the game database as a supported multiplayer asset.

Level Meaning
CyberM-supported Exposed by a CyberM runtime catalogue or used by an official resource. Intended for normal resources.
Runtime-validated Resolved against the live 2.31 TweakDB or archives, but still requires an in-game spawn and cleanup test.
Extracted candidate Found in cooked data. Quest logic, missing dependencies, special rigs, or build drift can make it unsafe.

Record names and CyberM entity IDs are opaque values. Preserve their spelling and never pass a 64-bit entity ID through tonumber.

NPC templates

CyberM.npcs.create currently accepts the following server-approved aliases. Query the active runtime instead of hard-coding the list when building admin tools:

for _, template in ipairs(CyberM.npcs.templates()) do
  print(template.name, template.record, template.observerRecord, template.defaultAppearance)
end
Supported alias Authoritative record Observer record Intended use
civilian_female_relaxed_01 Character.Panam Character.Panam Non-hostile human with locomotion, look-at, workspot, and equipment capabilities.
hostile_female_ranged_lab Character.cpz_maelstrom_grunt1_ranged1_lexington_wa same as authoritative record Ranged hostile test puppet with the combat capability enabled.

The aliases are deliberately conservative. A raw .ent path or arbitrary Character.* record from the extracted database is not accepted by the authoritative NPC service until it has been promoted to the supported catalogue.

Complete extracted NPC database

Dataset Entries Contents
docs/generated/npc-templates-2.31.md 6,668 records / 1,524 templates Categories, risk classes, and the complete template table.
docs/generated/npc-records-2.31.csv 6,668 Character.*, TweakDBID, template, appearances, affiliation, equipment, vendor and quest metadata.
docs/generated/npc-templates-2.31.csv 1,524 Records grouped by .ent, appearances, categories, gender, and risk.
docs/generated/npc-templates-2.31.json 1,524 Machine-readable version for tooling.
docs/generated/npc-entity-appearances-2.31.csv 1,524 Direct/effective appearances, archive ownership, includes, and .app resources.
docs/generated/npc-appearance-resources-2.31.csv 9,242 Appearance resource, archive, appearance name, and parent.

Risk values in the NPC catalogue are actionable: prefer candidate, audit special_rig and special_vendor, and do not promote unsafe_quest_or_scene, restricted_child, deny_player, or missing_template without dedicated engine and gameplay validation.

Vehicle models

Vehicle creation takes a TweakDB record, not an entity template hash:

local id = CyberM.vehicles.create(
  {
    record = "Vehicle.v_standard2_archer_hella_player",
    position = { x = 100.0, y = 200.0, z = 30.0 },
    yaw = 90.0
  }
)

Prefer *_player records. The docs/vehicle-models.md contains 1,372 records with a non-zero entityTemplatePath, including 89 player/garage variants. It also documents records that resolve structurally but should not be spawned.

The official freeroam resource provides these convenient command aliases. The record in the right column is the portable value to store in another resource or database.

Alias Vehicle record Alias Vehicle record
hella Vehicle.v_standard2_archer_hella_player bandit Vehicle.v_standard2_archer_bandit_player
quartz Vehicle.v_standard2_archer_quartz_player caliburn Vehicle.v_sport1_rayfield_caliburn_player
mordred Vehicle.v_sport1_rayfield_caliburn_mordred_player aerondight Vehicle.v_sport1_rayfield_aerondight_player
outlaw Vehicle.v_sport1_herrera_outlaw_player turbo Vehicle.v_sport1_quadra_turbo_player
type66 Vehicle.v_sport2_quadra_type66_player shion Vehicle.v_sport2_mizutani_shion_player
porsche Vehicle.v_sport2_porsche_911turbo_player alvarado Vehicle.v_sport2_villefort_alvarado_player
deleon Vehicle.v_sport2_villefort_deleon_player cortes Vehicle.v_standard2_villefort_cortes_player
colby Vehicle.v_standard2_thorton_colby_player galena Vehicle.v_standard2_thorton_galena_player
supron Vehicle.v_standard25_mahir_supron_player maimai Vehicle.v_standard2_makigai_maimai_player
hozuki Vehicle.v_standard2_mizutani_hozuki_player thrax Vehicle.v_standard2_chevalier_thrax_player
kusanagi Vehicle.v_sportbike1_yaiba_kusanagi_player arch Vehicle.v_sportbike2_arch_player
jackie Vehicle.v_sportbike2_arch_jackie_player apollo Vehicle.v_sportbike3_brennan_apollo_player

Vehicle seats, doors, windows, and state bits

Seat Canonical name FiveM-style index
Driver seat_front_left / driver -1
Front passenger seat_front_right / frontPassenger 0
Rear left seat_back_left / rearLeft 1
Rear right seat_back_right / rearRight 2
Index Door name Window name
0 frontLeft or front_left frontLeft
1 frontRight or front_right frontRight
2 backLeft or back_left backLeft
3 backRight or back_right backRight
4 trunk
5 hood

Doors use a 6-bit mask; windows and broken tires use 4-bit masks. Bit n corresponds to index n. The authoritative vehicle flags are:

Flag Value Flag Value
engineOn 1 locked 2
destroyed 4 exploded 8
invulnerable 16 immortal 32
lightsOn 64 highBeams 128
sirenOn 256

Motion dynamics add onGround = 1, reversing = 2, and hornActive = 4. See Vehicles for the authoritative API, damage arrays, glass/light masks, authority, and streaming semantics.

NPC and elevator constants

NPC group Values
AI mode tasks = 0, frozen = 1, native = 2; observer = 3 is protocol-only and rejected for creation/update.
Damage policy mortal = 0, immortal = 1, invulnerable = 2
State flags alive = 1, ragdoll = 2, despawnWhenUnobserved = 4, persistent = 8
Task channel movement = 0, look = 1, action = 2, fullBody = 3
Task status queued = 0, suspended = 1, executing = 2, success = 3, failure = 4, cancelled = 5, interrupted = 6

Elevator phases are idle = 0, moving = 1, and paused = 2. Elevator state flags are powered = 1, locked = 2, interactionAllowed = 4, and doorsClosed = 8.

Items, weapons, effects, sounds, and animations

Dataset Entries Runtime confidence
docs/generated/weapons-2.31.csv 1,925 Extracted from 2.31 TweakDB; use the canonical, deprecated, can_drop, and usage columns to filter.
docs/generated/weapons-2.31-canonical.md curated Recommended records grouped for normal gameplay use.
docs/generated/vfx-assets-2.31.csv 1,070 Archive-discovered paths; individual runtime validation is still required.
docs/generated/sfx-events-wolvenkit-seed.csv 17,586 WolvenKit 1.6 seed data; explicitly requires 2.31 runtime validation.
docs/data/emote-animations.txt 23,044 Extracted animation name candidates.
docs/data/emote-animsets.txt 4,690 Animation-set resource paths.
Blip sprites complete CyberM list Validated native sprite names exposed by the blip API.

For effects, prefer the runtime catalogue when available:

local catalog, reason = CyberM.vfx.catalog()
if catalog then
  for alias, path in pairs(catalog) do print(alias, path) end
end

An extracted row becoming visible in a CSV does not grant a resource permission or make it safe. The calling resource still needs the relevant manifest permission, and server-owned gameplay state must always be created through the authoritative server API.

Promotion checklist

Before adding an extracted candidate to a production resource:

  1. Resolve it on the exact supported game build.
  2. Spawn it through CyberM with one client, then remove it cleanly.
  3. Repeat with two clients and a late joiner in the same routing bucket.
  4. Verify streaming out/in, resource stop, player disconnect, and server restart behavior.
  5. Check animations, collision, audio, damage, and authority transfer where applicable.
  6. Promote it to a small resource-owned allowlist instead of accepting arbitrary client strings.

For agents and LLMs: this page as Markdown · llms.txt · llms-full.txt