Installation
Install Sonoran Station Displays, SonoranCADFiveM, permissions, and a first test display.
Before you begin
You need:
A current FXServer with OneSync
SonoranCADFiveM version
4.0.72or newer for units and callsAccess to the CFX account that owns the Tebex asset
Permission to add resources and ACE entries to the server
The resource does not enforce a specific FXServer artifact number. Use a supported current artifact. No framework, SQL database, menu library, Node.js runtime, or radio_fivem installation is required.
1. Download the resource
After purchasing the resource, download it from the CFX portal account that owns the asset. See Accessing Tebex Assets for the established store download process.
Extract the download before copying it to the server.
2. Verify the folder structure
The folder containing fxmanifest.lua must be named:
sonoran-stationdisplayA correct installation looks like:
Do not leave an extra nested folder:
If that occurs, move the inner sonoran-stationdisplay folder into the resources directory and remove the empty outer folder.
3. Install or update SonoranCADFiveM
Install SonoranCADFiveM according to the SonoranCADFiveM installation guide.
The default dependency resource name is:
Sonoran Station Displays requires version 4.0.72 or newer and the local GetUnitCache, GetCallCache, and GetEmergencyCache exports. It does not require a second CAD API key.
The optional Bodycams page additionally needs a package/build that exposes GetBodycamRuntime() and the runtime event, plus the standard screenshot-basic resource. The base 4.0.72 cache requirement does not guarantee that every package with that version contains the newer bodycam bridge.
The dependency name is managed internally and must remain sonorancad.
4. Configure start order
Add:
Start SonoranCADFiveM and screenshot-basic first. Sonoran Station Displays can remain started if either stops; normal boards recover with CAD, while bodycam imagery reports the missing capture dependency and recovers when it returns.
The current preconfigured SonoranCADFiveM bundle may instruct you to use exec @sonorancad/sonorancad.cfg instead of manually ensuring its resources. In that installation, place the exec line before ensure sonoran-stationdisplay; the required core resource must still start as sonorancad.
Do not add ensure radio_fivem for this product unless your server separately uses Sonoran Radio. The radio resource is not a dependency.
5. Add ACE permissions
For an administrator group:
Viewing displays does not require an ACE. Grant sonoran.stationdisplay.menu to each group that should open the administrative menu, then grant only the required action ACEs. See Permissions for least-privilege examples and custom permission mode.
6. Review configuration
Open sonoran-stationdisplay/config.lua and confirm:
Config.PermissionMode = "ace"Default pages, service filter, theme, rotation, clock/weather, and distances
Live Map and bodycam defaults
The included display model registry
Update checks, the dependency name/minimum version, DUI lifecycle, and security rate limits require no customer configuration. Do not place API keys, Tebex credentials, or license credentials in this file, and do not modify protected implementation files.
7. Restart and verify startup
Restart the server. In the server console, expect messages similar to:
On first start, the resource creates:
If CAD is missing, old, or incompatible, the server prints an SSD-CAD-* error. See Troubleshooting.
8. Place a test display
Join with the administrator ACE permissions.
Confirm at least one unit is on duty in Sonoran CAD.
Run
/stationdisplay.Select Mounted Displays.
Select Place New Display.
Choose a model, service filter, and one or more pages.
Leave the rotation interval at the default 30 seconds.
Select Continue to Placement.
Position the preview within 15 meters, then select Confirm Placement.
Walk within the display's render distance and confirm current state appears without the CAD unavailable overlay.
If the display has no rows, confirm its service filter matches the on-duty unit's unit.data.page classification.
Tebex Asset Escrow
The production package is intended for FiveM Asset Escrow. Customer-editable files are excluded from encryption:
config.luaserver/admin_webhook_config.lualocales/*.luadata/displays.DEFAULT.jsondocs/*.mdREADME.md
Runtime display data is written to data/displays.json. Back it up before replacing the resource during an update.
Source builds
Customers do not build the web interface. It ships as static production files and has no Node.js dependency.
Repository maintainers can validate and package a source checkout from the repository root:
The package command creates build/stationDisplay.zip with one top-level sonoran-stationdisplay folder.
Last updated
Was this helpful?