Where configs live

Shipped defaults are split between source configs/ files and embedded defaults in code. On first boot or reset, the running server writes generated copies into FileSystem.Data and then reads from those copies.

Prefer /config over editing JSON by hand

Both work, but the in-game /config workspace creates a backup before every save, validates the change, rolls back on error, and reloads the relevant runtime config when it can. Hand-edits to the Data files work too if you need them, but you give up the safety net.

Layout

A typical generated layout under data/<org-or-project>/configs/:

1data/<org-or-project>/configs/
2 addons.json
3 admin.json
4 camera.json
5 emergency.json
6 gameplay.json
7 government.json
8 jobs.json
9 language.json
10 map_doors.json
11 map_glass.json
12 modules.json
13 npcs.json
14 permissions.json
15 phone.json
16 rewards.json
17 rules.json
18 rp_names.json
19 shop.json
20 social.json
21 spawn.json
22 theme.json
23 themes/
24 default/
25 theme.json
26 theme.scss
27 hud.scss
28 minimal-serious-rp/
29 theme.json
30 theme.scss
31 hud.scss
32 tools.json
33 vehicles.json
34 economy/
35 arrests.json
36 bank.json
37 crime.json
38 dealers.json
39 drugs.json
40 economy.json
41 fence.json
42 fines.json
43 government.json
44 jobs.json
45 limits.json
46 map.json
47 player.json
48 printers.json

Some files, especially theme folders and economy files, may be embedded defaults rather than standalone source files until the server seeds them on first boot.

The in-game /config workspace

Type /config in chat. The interface is intentionally almost full-screen because many sections contain long lists and nested values.

What it does:

  • Lists every known config file and groups them into human-readable categories.
  • Loads the active JSON and the default JSON side by side.
  • Shows field type badges such as string, number, and boolean.
  • Shows the full technical JSON path beside friendly labels.
  • Lets operators search by friendly name or full JSON key path.
  • Lets operators edit primitive values.
  • Lets operators manage supported collections (jobs, spawn allowed orgs, permissions, addons, server rules, rewards, GPS locations, RP names, NPCs, runtime map doors, runtime map glass, vehicles, emergency services, shop entries).
  • Shows a reset button only when a value differs from the default.
  • Creates backups before saving.
  • Tries to reload the relevant runtime config after saving.
  • Rolls back when validation fails.
  • Shows confirmation dialogs for risky actions.
  • Exposes a Docs button that copies https://creator.litherarp.com/docs.
Live reload caveats

Some config changes reload live, but not every running object can be rebuilt instantly:

  • Existing NPC scene objects are not rebuilt automatically.
  • Existing spawned vehicles keep their current runtime state.
  • Some job changes affect players after respawn or job change.
  • Some scene or map data requires a restart or map reload.

The UI displays restart notes when a file is known to have runtime-state caveats.

Collection editors

Some JSON files are too list-heavy for a simple field editor. These use managed collection editors:

FileManaged editor
configs/jobs.jsonFull job creation and editing panel
configs/spawn.jsonSpawn rules and allowed orgs
configs/permissions.jsonPermission helper; rank management delegates to the rank UI
configs/addons.jsonAddon package list with the Apply Enabled workflow
configs/rules.jsonServer rule sections with an EULA compliance warning
configs/rewards.jsonDaily reward day editor
configs/phone.jsonGPS location editor
configs/rp_names.jsonFirst and last name pool editor
configs/economy/arrests.jsonArrest preset editor
configs/npcs.jsonNPC list editor
configs/map_doors.jsonRuntime map door editor
configs/map_glass.jsonRuntime map glass editor
configs/vehicles.jsonVehicle catalog and admin spawns
configs/emergency.jsonEmergency dispatch service editor
configs/shop.jsonShop tabs, entity items, dealer stock, food stock, admin weapons

Reset behavior

Each field can be reset only when its current value differs from the shipped default. This avoids noisy reset buttons on values that already match defaults.

The full-document reset still exists for cases where an entire config file needs to return to defaults. Reset commands overwrite Data files, so back up custom configs first.