Quick navigation

Go to

NPCs & player models

Player morph catalogue

Search all 6,582 Character records for player morphs, with downloadable IDs and the admin menu workflow.

2 min read475 wordsMarkdown
On this page4 sections

TweakDB Β· Game 2.31

Explore NPC records

Download JSON

IDs are extracted, not certified. Review the warnings and test your chosen record in game.

Browse 6,582 Character.* records extracted from Cyberpunk 2077 2.31 with Phantom Liberty. Each ID can be passed to the player-model API; this catalogue is a discovery index, not a guarantee that every record is playable. The 86 internal TEST.* records are excluded because they are outside the API namespace.

The website provides searchable records, categories, asset details and a Copy ID button. The complete record list also lists every ID in one Markdown table for repository users and AI agents.

Morph and restore

-- Server resource manifest:
-- permissions { "players.model.control", "players.model.read" }
local ok, revision = SetPlayerModel(playerId, "Character.Rogue")
if not ok then print("Morph refused: " .. tostring(revision)) end

-- Optional explicit appearance: it must belong to the chosen template.
-- SetPlayerModel(playerId, record, { appearance = "exact_appearance_name" })

-- When the roleplay/admin action ends:
local restored, reason = ResetPlayerModel(playerId)

Wait for onPlayerModelReady before assuming the body is visible. A record may validate but fail to load its appearance or support a requested action. See Player models for ownership, events, permissions and failures. Custom Character.* records do not need to be added to this catalogue; install their assets on every observing client.

Choosing a body

Starting point Record Model notes
Rogue Character.Rogue Humanoid local/remote presentation and vehicle seating.
Johnny Character.JohnnyNPC_Puppet_Photomode Humanoid local/remote presentation and vehicle seating.
Adam Smasher Character.Smasher Special skeleton; vehicle poses can T-pose or intersect the car.

Quest, scene, player-body, child, animal and robot records can have incompatible rigs or behavior. Extraction labels describe database records, not supported player actions. The visual body does not grant NPC AI, faction, boss powers, health or weapons. Appearance names are not record IDs. The extracted database source is not a reliable per-record DLC indicator: tweakdb_ep1.bin contains base-game entries too.

In-game admin menu

Open /admin β†’ Self β†’ Morph / original character:

  • Search all records or browse categories, 20 results per page.
  • Confirm a record, or enter a custom Character.* ID directly.
  • Optionally set an appearance override, or clear it to use the record's default.
  • Choose Unmorph β€” original character to restore the current player appearance.

Opening the menu requires command.admin. The server checks command.admin.self.morph, command.admin.self.unmorph and command.admin.self.morph.search separately. A read-only catalogue grant cannot morph anyone. These actions affect only the operator, not a supplied player ID. Morphing remains server-authoritative and replicated. The admin cannot replace or reset an override owned by another resource. Revoking the morph permission, death, disconnect or stopping the admin resource releases its own override.

Downloads and reproducibility

The admin index and Markdown list are generated from the same CSV by resources/system/open77_admin/tools/build-models.py. Their source SHA-256 is recorded in the generated files. Run the generator with --check to detect drift. Neither the documentation nor the menu is a runtime allowlist.

// For agents & LLMsthis page as Markdownllms.txtllms-full.txt

// Guides Β· Lua API

Search the docs

1,905 guides and functions indexed

Try