map_doors.json
Runtime map doors placed by admins in game. Separate from configs/economy/map.json, which holds prices, property metadata, key limits, and penthouse rules. This file is for physical door objects spawned at runtime on the map.
High-level parts
enableddoorsdisabledSceneDoors
Managed door fields
| Field | Meaning |
|---|---|
| id | Stable lower-case door id. |
| map | Map key or *. Current production docs should use RP Downtown keys only. |
| enabled | Whether the door spawns. |
| title | Player-facing door title. |
| accessType | buyable or jobRestricted. |
| position | Bottom-center world position in x y z format. |
| yaw | Closed-door yaw in degrees. |
| modelPath | Door visual model. Toolgun presets use shipped map door models from Assets/entities/map/doors; Custom can also store an s&box cloud package ident when the package type is model. The spawn prop org whitelist is not applied to this admin-only door tool. |
| sizeX, sizeY, sizeZ | Model size multipliers. 1, 1, 1 keeps the selected model at native size. |
| materialPath | Optional material override. Leave empty to use the model's own materials. |
| hingeSide | left or right. |
| hingeAxis | auto, x, or y. auto chooses the widest horizontal model-bounds axis and is recommended for most local and cloud door models. Use x or y only when the model still pivots from the handle side. |
| targetAngle | Open angle in degrees. |
| openTime | Open and close duration in seconds. |
| price | Buyable door price. Ignored and cleaned to 0 for jobRestricted doors. |
| repairCost | Lock repair cost. |
| canBeLockpicked | Whether lockpicks can break this lock. |
| propertyGroupId | Optional shared buyable property group. Ignored for jobRestricted. |
| propertyGroupTitle | Optional fallback title for that group. Ignored for jobRestricted. |
| allowedJobs | Job ids allowed to open job-restricted doors. Ignored for buyable. |
disabledSceneDoors
Managed by the Map Door tool when an operator removes or imports a native scene door. It records a stable scene-door signature, map, title, position, and model path so the runtime can hide the original map door on boot.
Use /config → Map doors → Restore Defaults or litherarp.map_doors_restore_scene_defaults to clear those overrides and re-enable native map doors.
Toolgun model presets
Interior Door→models/interior_door.vmdlLegacy Door 01→models/props_doors/door01_left.vmdlLegacy Door 05→models/props_doors/door01_left_05.vmdlLegacy Door 06→models/props_doors/door01_left_06.vmdlWood Door 01B→models/props/trim_sheets/doors/wooden_doors/wooden_door_01b.vmdlWood Door 01C→models/props/trim_sheets/doors/wooden_doors/wooden_door_01c.vmdlWood Door 01D→models/props/trim_sheets/doors/wooden_doors/wooden_door_01d.vmdlWood Door 01E→models/props/trim_sheets/doors/wooden_doors/wooden_door_01e.vmdlMetal Door 01A→models/props/trim_sheets/doors/metal_doors/metal_door_01a.vmdlMetal Door 03A→models/props/trim_sheets/doors/metal_doors/metal_door_03a.vmdlMetal Door 04A→models/props/trim_sheets/doors/metal_doors/metal_door_04a.vmdlMetal Door 04B→models/props/trim_sheets/doors/metal_doors/metal_door_04b.vmdlPlastic Door 01A→models/props/trim_sheets/doors/plastic_doors/plastic_door_01a.vmdlCell Door→models/celldoor.vmdlCell Gate→models/props/cell_gate/cellgate_door.vmdlCustom→ a local server.vmdlpath or an s&box cloudmodelpackage ident selected by the operator. Non-model packages are rejected before save.
Admin workflow
- Give the operator
map.doors.manageor*. - Equip the Toolgun.
- Select Map Door.
- Aim at the floor or bottom point where the closed door should stand.
- Set title, model preset, access type, size, hinge side, and hinge axis in the tool settings. Keep
hingeAxisonAutounless the preview marker appears on the handle side. - For Buyable, set price and an optional property group. For JobRestricted, set allowed job ids.
- Primary fire to place the door.
- Reload (
R) on an existing runtime door to load it into edit mode. - Reload (
R) on a native map door to import it as a runtime door; saving the edit hides the original scene door. - In edit mode, adjust tool settings and primary fire to update or import the selected door.
- Secondary fire on an existing runtime map door to remove it from both the scene and
configs/map_doors.json. - Secondary fire on a native map door to hide it through
disabledSceneDoors. - Open
/config→ Map doors for review, bulk edits, duplication, native-door restore, or manual cleanup. - Save or run
litherarp.map_doors_reloadto rebuild runtime doors.
Runtime doors are map-sensitive. Bad placement can block spawn routes, trap players, or create unreachable property groups. Always QA placement in game after saving.
Reload
litherarp.map_doors_reload rebuilds runtime doors after a manual edit. litherarp.map_doors_reset overwrites the Data copy with shipped defaults. litherarp.map_doors_restore_scene_defaults clears disabledSceneDoors.