Skip to content

Discord Integration

Connect your Discord server to PulseCAD for notifications, slash commands, account linking, and automatic CAD-role → Discord-role sync. Configure it all in Admin → Discord.

Setup

  1. Click Invite the PulseCAD bot and add it to your Discord server. The invite asks for Manage Roles, View Channels, Send Messages, and Embed Links — role sync needs Manage Roles.
  2. Paste your Server (Guild) ID and a Notify Channel ID.
    • To get the Guild ID: in Discord, open User Settings → Advanced → Developer Mode, then right-click your server icon and Copy Server ID. Right-click a channel and Copy Channel ID for the notify channel.
  3. On a multi-server community you can optionally set per-server channels so each game server's calls and BOLOs route to their own channel.
  4. Save, then Send test message to confirm the bot can post.
  5. Map your Rank Mappings (below), Save, and Sync Roles Now.

A live status banner at the top of the panel tells you the bot's health:

Banner Meaning
Bot offline The pulsecad-bot process isn't running.
Online, but not in your server Use Invite the PulseCAD bot.
In server, but missing Manage Roles Role sync won't work — fix the bot's permissions.
Online … Manage Roles OK Everything's healthy.

Guild → community

Each Discord server maps to exactly one community via its Guild ID, so the bot knows which community to act on. If the bot is removed from a server, the link is cleared automatically; re-invite to restore it.

Slash commands

Members run these in your linked Discord server.

Lookup (public replies)

Command What it does
/units List on-duty units (callsign, department, status).
/calls List active & pending calls.
/onduty Show how many units are on duty.
/unit <callsign> Look up a single unit by callsign.

Account (private replies)

Command What it does
/link <code> Link your Discord account to CAD (code from CAD → Admin → Discord).
/me Show your CAD link and on/off-duty status.

Interactive / write commands

Command What it does
/call <nature> [location] [priority] File a pending call to dispatch.
/bolo <title> [plate] Create a BOLO.
/duty on <callsign> [department] Go on duty.
/duty off Go off duty.

Notification embeds also carry buttons: Attach me on a new-call embed pulls your on-duty unit onto the call, and Sign / Deny on a warrant embed let court staff act without opening the CAD.

Link first

Write commands and /me require a linked account. If someone hasn't linked, the bot tells them to run /link with a code from CAD → Admin → Discord → Link your account.

Notifications

Choose which CAD events post to Discord in the Notifications matrix (the right column of the Discord panel). Each event has its own enable toggle, an optional channel override, and an optional ping.

Event Default
New call On (with a priority threshold)
New BOLO On
Panic / officer needs help On
Unit on duty Off
Unit off duty Off
New warrant Off
Shift summary (periodic) Off
Roster sync summary On
ER:LC mod call On
ER:LC officer-involved kill Off
  • Channel — leave blank to use the per-server channel (if set) or the default Notify Channel.
  • Ping — a role ID, or the literal here / everyone.
  • New call adds a priority dropdown (P1 only / P1-P2 / P1-P3 / All calls) so you don't get pinged for low-priority calls.
  • Shift summary adds an Every N hours interval.
  • The ER:LC events are relevant to ER:LC (Roblox / Liberty County) communities and fire from that platform's mod-call and officer-involved-kill events.

Fallback webhook

Under the matrix, set a Fallback webhook (a Discord channel webhook URL, stored encrypted). If the bot ever goes offline, calls, BOLOs, and panic alerts post through the webhook instead, so critical alerts are never lost. Create one in Discord under Edit Channel → Integrations → Webhooks.

Role sync

Map each CAD role (owner, admin, supervisor, member, readonly) to a Discord role ID in the Rank Mappings card. Auto-match by name fills them in from your server's existing role names, which you can then adjust.

  • A member's CAD role is reflected as the mapped Discord role; other managed roles are removed.
  • Changes sync automatically when you change a member's role.
  • Run Sync Roles Now after editing the mapping or after bulk role changes. It reports how many members synced, failed, and are linked.

Role sync requires the bot to have Manage Roles in your server.

There are three ways to connect a personal Discord account:

  • Continue with Discord on the login page (OAuth) — creates or links your account and stores your Discord identity.
  • Link with Discord on your Account page.
  • Generate Link Code in Admin → Discord → Link your account, then run /link <code> in Discord (codes expire after 10 minutes).

Linking sets you up for role sync and in-game identity. There's also a Community Discord invite URL field whose value appears as a Discord button on your community Hub (leave it blank to hide it).

Court notifications are separate

The Court module has its own Court channel ID (set on the Court tab) for approval buttons, verdicts, and court-date reminders — independent of the notification matrix above.