Skip to main content
This example connects an existing door lock resource to CAD. Dispatchers can search doors across police stations, jails, and prisons, see whether each controller is online, and view the current lock state. A door used in-game updates CAD, while a CAD user can lock or unlock an online door without entering the game. Door Locks custom integration panel

How It Connects

  1. Install or update the panel definition when the resource is configured.
  2. On resource start, read every configured door and publish the complete panel state.
  3. When a player or another script changes a door in-game, publish the new state to CAD.
  4. Receive pushes for door.set-locked and doors.lock-all actions. Apply them through the door resource, acknowledge them, then republish the authoritative lock state.

Game-Side Outline

Push is the primary delivery path. The scheduling and processPanelActionOnce functions below are pseudocode supplied by your integration; they are not SDK helpers. processPanelActionOnce records the completed result, acknowledges it, retries failed acknowledgements without repeating the effect, and returns true only after acknowledgement succeeds. Use one serial queue for both paths and keep the backup polling cursor separate from pushed actions. See Action Push Events for routing, deduplication, acknowledgement, and recovery rules. The following is server-side pseudocode. Adapt the events and function names to your door lock resource and preferred API library.
See Set State, Poll Actions, and Acknowledge Action for copyable calls in every supported library.

Actions

Definition JSON

Open the raw definition

Example State

Open the raw state