CityRP Documentation Repository

CityRP systems index

Last updated

Created: 2026-09-18 Source concept: game-concept.md


Overview

CityRP is live, so this is a catalogue of what exists and not a list of what to build. It groups about 130 plugins, the core libraries and 66 vendored addons into 24 systems, and records two things about each: which pillars it serves, and where it is known to be fragile. Use it to find which system a change belongs to, what it depends on, and what to be careful of before touching it.

A system is a unit of design, not a folder. Several span plugins, libraries and addons at once.

Pillars are numbered as in the concept: 1 Community First, 2 A City You Can Build, 3 Systems Create Reasons to Interact, 4 Fun at Any Population, 5 Long-Term Growth. The two philosophies apply to every system. Meet Players Where They Are is not tagged. Live Trust Before Features is tagged "LT" only on the systems that exist to uphold it; every other system still owes it.


Systems Enumeration

Every system is implemented. "Design Doc" links a design or reference doc where one exists. Footgun numbers refer to AGENTS.md.

# System Layer Pillars Contents Design Doc Depends On
1 Core Framework Foundation LT Plugin loader, networking, DB and migrations, logging, access, layers, commands plugins, networking, logging, commands none
2 Support Systems Foundation LT refund_ents, spawnpoints, item_db_update, perma_ents, model-state, internets_utils none 1
3 Inventory & Items Core 3, 5 Item libraries, inventory, currency, the item categories items, items registration 1
4 Teams & Jobs Core 1, 3, 4 Team libraries, employee_salary, uniforms, maintenance (a job) maintenance 1, 3
5 Core RP Rules (generic) Core 3 Warrants, arrest, knockout, job equipment, leaders, demotion none 1, 3, 4
6 Player State & Survival Core 3 hunger, stamina, drowning, injuryinfo, ko-screen, bodybags, cpr, flashlight, voice distance and volume none 1, 5
7 Building & Property Core 2 Prop protection, limits, property_tool, propsave, doors, signs, billboards, worldprops, area, keypads, giveprops limits, image hosts 1, 3
8 Sandbox Building Tools Feature 2 The base Sandbox gamemode's spawn menu and toolgun, plus the vendored toolgun addons: duplicators, precision, stacker, smartsnap, material and bodygroup tools none 7
9 Law Enforcement & Justice Feature 1, 3 policedb, warrant_delegation, jailpoints, laws, breathalyser, less_lethals none 3, 4, 5
10 Crime Feature 1, 3, 4 weed, meth, carboosting, contraband, black market weed, car boosting 3, 4, 5, 13
11 Restraint & Detention Feature 1, 3 hostage-chairs, restrained_search. Shared by law enforcement and criminals. none 3, 5
12 Gathering, Crafting & Resources Feature 4, 3, 5 mining, mixtures, packaging, stove, fishing none 3
13 Vehicles Feature 3 vehicles, paint, skins, plates, cruise control, doors, tesla_charger, photon vehicle params, emergency lighting 1, 3
14 Casino & Minigames Feature 1, 4 pcasino, holdem, casinocards, collectables, trading cards and stickers casino 3
15 Progression Feature 5, 4 rep, xp-bar, MESKA MESKA 1
16 Clans Feature 1, 5 clans clans 1, 3
17 Communication Feature 1 radio, pradio, voiceradio, phonebook, chatbox, typing none 1, 4
18 World & Environment Feature 4 daynight, map, waypoints, zones waypoints, environment 1
19 HUD & Player UI Presentation none hud, tophints, context menu, settings, accessories, playermodel skins UI scaling most Feature systems
20 Community & Meta-Engagement Meta 1, 5 login_rewards, steamgroup, referrals, website_rewards, Discord relay none 1, 3, 17
21 Administration & Moderation Meta LT admin, admin_assist, adminhub, bans, warning, passivemode, autokick, screengrab, onlinelog, tracking, eventbox, eventnotify design/screengrab/rebuild-plan.md (draft) 1
22 Anti-cheat Meta LT antihack, antilag, antithird design/anti-cheat/feature-overview.md (draft) 1
23 Server Operations Meta LT queue, beta, auto restart server sessions 1
24 Dev Tooling Meta LT fprofiler, inter_benchmark, tool_search, vehiclescript_editor AGENTS.md 1

Placement notes:

  • Discord relay is under Meta-Engagement. It connects the game to the community outside it, which is not in-game communication.
  • Weed and meth are crime, and they also work as solo loops, so Crime carries pillar 4.
  • HUD & Player UI serves no pillar of its own. It presents the systems that do.

Priority

Milestone tiers (MVP, vertical slice, alpha) do not apply to a live game. This index tracks two things in their place: how well the pillars are covered, and where the code is fragile.

Pillar Coverage

Pillar Systems serving it Reading
1 Community First 4, 9, 10, 11, 14, 16, 17, 20 Well covered
2 A City You Can Build 7, 8 Provided by the base Sandbox gamemode. Our part is limits, protection and property, which is system 7.
3 Systems Create Reasons to Interact 3, 4, 5, 6, 9, 10, 11, 12, 13 Well covered
4 Fun at Any Population 4, 10, 12, 14, 15, 18 Covered on paper. The system built for it, Gathering, leans on a mining plugin that has not merged.
5 Long-Term Growth 3, 12, 15, 16, 20 Covered

Live Trust Before Features is a philosophy, so it is not in the table. Systems 1, 2, 21, 22, 23 and 24 exist to uphold it, and every other system owes it.

Fragility

System Risk Mitigation
5 Core RP Rules (generic) About 3,300 lines with roughly 345 callers, and it holds knockout state, which has a revert history Do not refactor in passing. Split it only as planned work.
1 Core Framework Dependencies resolve per realm (footgun 18), file-scope server gates (19), two plugin identities (22), hardcoded table names in migrations (24) Read plugins.md before changing load behaviour
2 Support Systems refund_ents publishes a global that eight outside callers use without a nil guard (footgun 25) Never exclude it by server or map without guarding the callers
3 Inventory & Items Registering a base item makes it obtainable (footgun 6); duplication bugs are a recurring class (7) New items use ITEM:New
4 Teams & Jobs Job equipment is granted from three independent places (footgun 16) Update all three together
6 Player State & Survival CPR cleanup and the knockout black screen have reverted refactors; hunger resets speed to a hardcoded base (footgun 4) Layer effects; test thoroughly
7 Building & Property hook.Add runs before GM:* methods, so prop protection wins CanTool (footgun 3); image hosts (9); limits (27) Use cityrp.limits and cityrp.imageHosts
9 Law Enforcement policedb callbacks need validity checks inside the callback (footgun 2) Re-validate inside every async callback
10 Crime Spike strip SWEPs have three reverted refactors Treat as fragile
12 Gathering The mining plugin exists only on its PR branch Base follow-up work there
16 Clans Server-only plugin, so it cannot be a hard dependency of anything with a client half (footgun 18) optional_dependencies or cityrp.plugin.IsAvailable
19 HUD & Player UI Legacy HUD scaling bypasses cityrp.ui (footgun 15) New UI goes through cityrp.ui
20 Meta-Engagement The Discord relay's fake player object must mirror chatbox changes (footgun 10) Grep the relay when the chatbox reads something new off a player
21 Administration Staff tools belong on ! and not / (footgun 14) cityrp.acommands.AddCommand
22 Anti-cheat Two near-identical scripts, and only one is wired in (footgun 1) Confirm which file is included before editing

Dependency Map

Foundation Layer

  1. Core Framework
  2. Support Systems

Core Layer

  1. Inventory & Items
  2. Teams & Jobs
  3. Core RP Rules (generic)
  4. Player State & Survival
  5. Building & Property

Feature Layer

8 to 18: Sandbox Building Tools, Law Enforcement & Justice, Crime, Restraint & Detention, Gathering, Vehicles, Casino & Minigames, Progression, Clans, Communication, World & Environment.

Presentation Layer

  1. HUD & Player UI

Meta Layer

20 to 24: Community & Meta-Engagement, Administration & Moderation, Anti-cheat, Server Operations, Dev Tooling.

Bottlenecks

Three systems sit under nearly every Feature system: Inventory & Items, Teams & Jobs, and Core RP Rules. A change to any of them has the widest blast radius in the gamemode.


Circular Dependencies

None at this level of detail. Core RP Rules and Teams & Jobs are close to one: generic grants job equipment, and the team libraries define the jobs it grants to. The direction recorded here is that generic depends on teams.


Not applicable as a build order. Where design effort would pay off most, from the coverage and fragility tables above:

  1. Gathering, Crafting & Resources carries pillar 4 and is only partly merged.
  2. Core RP Rules (generic) is the highest-risk system and has no design doc at all.

Progress Tracker

Metric Count
Total systems identified 24
Implemented 24
With a design or reference doc 15
With no doc of any kind 9