Skip to main content
Customer settings live in sonoran-stationdisplay/config.lua. Physical display records are saved separately in data/displays.json.
Stop the resource before editing configuration. A changed default does not overwrite an existing display’s saved value.
The dependency name, required base CAD version, DUI resolution/lifecycle, event rate limit, and version-check schedule are internal. Do not copy old settings for those values into a current configuration.

General

Promotional sample data

Config.PromoMode is a maintainer screenshot fixture:
Keep it disabled on production servers. When present in a source/release-candidate build, the server console can use stationdisplay_promodata on|off|status. It produces fictional data and must never be presented as live CAD state.

New-display and page defaults

Supported page IDs:

Clock and weather

See In-game Clock and Weather.

Cache and freshness

Push events can request an earlier refresh. Polling is server-wide and is not multiplied by display count.

Bodycams

These controls do not change the internal 4-second local capture interval, JPEG quality, 300 KB frame ceiling, four-feed subscription limit, or recording behavior. See Bodycams.

Distance and capacity

Internally, the client creates 1280 by 720 DUIs, waits up to 10 seconds for readiness, and delays destruction for 3 seconds so a quick range transition can be cancelled. The protected server allows 25 events per player/category per 10-second window.

Permissions

PermissionMode accepts ace or custom. Empty ACE values deny. Viewing has no ACE node; menu access, placement, editing, deletion, diagnostics, refresh, and webhook tests are independently configurable. Config.CustomPermission(source, action) is called only in custom mode. It must return boolean true; errors deny. The callback receives backend actions menu, place, edit, delete, diagnostics, refresh, and webhookTest. See Permissions.

Call classification and fields

These options allow OTHER calls on a single-service display. Both-service displays already show them. Keep caller disabled unless a future renderer and the display audience justify it.

Display model registry

Config.DisplayModels is the server allowlist. Player requests cannot spawn another model.
Use WORLD_PLANE for independent display content. Named targets and texture replacement are global to identical model instances. Test custom models in-game from several angles, with two instances, and across restart/range cleanup.

Advanced service overrides

When enabled, case-insensitive department, subdivision, or group text maps to LEO, FIRE_EMS, or OTHER. Leave this disabled unless a confirmed customized/legacy cache has incorrect unit.data.page classification.

Map defaults

Modes are AUTO_FIT, FIXED_REGION, and FOLLOW_UNITS. Saved center components accept -20000 to 20000; zoom accepts 0.1 to 10.0. Minimum/maximum span and padding constrain automatic fits. Debug adds a projection overlay and should remain off in production.

Viewer interaction

Page changes are server-validated and synchronized to clients. The rotation timer holds for 10 seconds by default after an interaction. A candidate display must be within its interaction distance and camera angle, in the correct world context, and visible by line of sight when required.
Map pan is temporary and synchronized. Bodycam page navigation is local to the targeted DUI. All keys are registered mappings and can be rebound in FiveM settings.

Restart and persistence notes

Global configuration changes require a resource restart unless a page explicitly states otherwise. Defaults affect new displays and invalid-value fallbacks. Existing valid per-display values remain in data/displays.json; edit them in the management menu if they should change.