# Welcome

Select a product to access documentation:

<table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">Sonoran CAD</td><td align="center">The most popular dispatching software for FiveM, ER:LC, and more!</td><td><a href="/files/Oi9eJdFjGRbHHMOZ8Bw7">/files/Oi9eJdFjGRbHHMOZ8Bw7</a></td><td><a href="/spaces/-M4pGN81fb4R6zFhodcu">/spaces/-M4pGN81fb4R6zFhodcu</a></td></tr><tr><td align="center">Sonoran CMS</td><td align="center">The all-in-one management system built for gaming communities.</td><td><a href="/files/Y4EXBG89KpiuxOoM8aSO">/files/Y4EXBG89KpiuxOoM8aSO</a></td><td><a href="/spaces/-MdBOa9OFjtdqw9FdXli">/spaces/-MdBOa9OFjtdqw9FdXli</a></td></tr><tr><td align="center">Sonoran Radio</td><td align="center">The most popular radio communication for FiveM, ER:LC, and more!</td><td><a href="/files/VdDzxIOewDssKSTGXBzA">/files/VdDzxIOewDssKSTGXBzA</a></td><td><a href="/spaces/fCk5zoeun5gx3ujYW6eg">/spaces/fCk5zoeun5gx3ujYW6eg</a></td></tr><tr><td align="center">Sonoran Store</td><td align="center">Unique scripts for FiveM communities.</td><td><a href="/files/PIXO5bYRG7mmxTN8iirV">/files/PIXO5bYRG7mmxTN8iirV</a></td><td><a href="/spaces/A1LA3ay59CDyDKnfXPfc">/spaces/A1LA3ay59CDyDKnfXPfc</a></td></tr><tr><td align="center">Sonoran Bot</td><td align="center">Our integrated Discord bot for Sonoran Software products.</td><td><a href="/files/PIXO5bYRG7mmxTN8iirV">/files/PIXO5bYRG7mmxTN8iirV</a></td><td><a href="/spaces/gJnyZgUQPWpA5p9njAAR">/spaces/gJnyZgUQPWpA5p9njAAR</a></td></tr></tbody></table>


# FiveM Hosting

We've partnered up with Rocket Node to bring one-click FiveM installations on Sonoran CAD, CMS, and Radio! Sonoran One customers have FiveM hosting included for free!

<figure><img src="/files/YvJQp7WctbCkHoiDisb9" alt=""><figcaption></figcaption></figure>

## One-Click Installation

We've partnered with Rocket Node to bring you one-click Sonoran CAD installation for FiveM — making it easier than ever to host your community and connect with Sonoran CAD.

* [Purchase your FiveM Game Server!](https://sonoran.link/v2E9hKGm)
* Use code `SONORAN`to save big!

{% tabs %}
{% tab title="CAD" %}
{% embed url="<https://youtu.be/h8Ftx14j8l8>" %}
{% endtab %}

{% tab title="CMS" %}
{% embed url="<https://www.youtube.com/watch?v=L_7V3yOIRaQ>" %}
{% endtab %}

{% tab title="Radio" %}
{% embed url="<https://www.youtube.com/watch?v=1Vw4XwiLKgY>" %}
{% endtab %}
{% endtabs %}

## Free Hosting: Sonoran One

Sonoran One subscribers can claim a coupon for a free FiveM game server from our partners at Rocket Node!

*The coupon is valid for one FxHosting Starter plan (2VCPU 2GB Ram, 75GB storage) for the life of the Sonoran One subscription. View the* [*complete terms*](/policy/policy/sonoran-one-+-rocket-node-hosting-promotion)*.*

### 1. Select a Plan in the Sonoran One Panel

Once logged into the Sonoran One panel at [account.sonoransoftware.com/one](https://account.sonoransoftware.com/one), select **Create Subscription** and select **Monthly** or **Quarterly**.

In the stripe billing portal, complete the purchase as normal.

<figure><img src="/files/XH6XSv90XNtK2AAHlppG" alt=""><figcaption></figcaption></figure>

### 2. Upgrade your CAD, CMS, and Radio Communities

After completing the purchase, select the CAD, CMS, and Radio communities you wish to upgrade to the Pro version in the [Sonoran One panel](https://account.sonoransoftware.com/one). Alternatively, you can select them separately in the CAD, CMS, and Radio billing portals.

<figure><img src="/files/By04ZSfPZxRtxFZCwQ0P" alt=""><figcaption></figcaption></figure>

### 3. Claim your Rocket Node Coupon

In the **Rocket Node free FiveM hosting** section, select **Claim Coupon** to generate a coupon code for your FiveM server hosting.

<figure><img src="/files/2TXYZ6IDKjMyqL0vif2a" alt=""><figcaption></figcaption></figure>

### 4. Create a Client Account with Rocket Node

To claim your free FiveM hosting, you must first create a client account.

Navigate to [**sonoran.link/rocket**](https://sonoran.link/rocket) > **Billing** > **Create Account**.

<div><figure><img src="/files/IYsB2zd7IAxrepDpex7l" alt=""><figcaption></figcaption></figure> <figure><img src="/files/x718uRxqYEoYQSvZZZJc" alt=""><figcaption></figcaption></figure></div>

Once created, select **Sonoran Coupon** at the top > paste your **Redeem Code** > select **Redeem**.

Once redeemed, access your new FiveM game server under **Services** > **FXServer Hosting**.

<div><figure><img src="/files/01UKzAFruwXvk8aXl9j9" alt=""><figcaption></figcaption></figure> <figure><img src="/files/iKh8zJeCIEni7WczR03Z" alt=""><figcaption></figcaption></figure></div>


# Five Bundle

Five Bundle is the ultimate content pack for your FiveM™ community — powered by top creators and unmatched in value. Save big with code "SONORAN" at checkout!

## 🎁 [Five Bundle](https://fivebundle.com/sonoran)

[Five Bundle](https://fivebundle.com/sonoran) is the ultimate content pack for your FiveM™ community — powered by top creators and unmatched in value. We've teamed up to deliver the best content at the lowest price. Get more content, pay less. Everything your community needs, all in one place.

<figure><img src="/files/key1E12H11d6mVsvzmAJ" alt=""><figcaption></figcaption></figure>

## 💵 Discount Code

Use code `SONORAN` for 20% off your first month on [Five Bundle](https://fivebundle.com/sonoran)!

<figure><img src="/files/key1E12H11d6mVsvzmAJ" alt="" width="375"><figcaption><p>FiveBundle.com Discount Code "SONORAN"</p></figcaption></figure>

## 📋 What's Included?

[See a complete list of every asset, vehicle, MLO, and more on our FAQ!](https://fivebundle.com/sonoran)


# Expert Installation

Our support agents are available 7 days/week to help install your Sonoran CAD, CMS, and Radio FiveM resources on your Windows VPS or dedicated server!

<figure><img src="/files/SlDoRTJejJweLubnifKT" alt=""><figcaption></figcaption></figure>

## What is expert installation?

{% hint style="danger" %}
Expert installation installs the CAD, CMS, and Radio FiveM resource onto your WIndows server.

This service **does not include one-on-one configuration of the individual submodules/plugins**, configuration inside the CAD/CMS/Radio portal, etc.

Our support team is available 7 days/week to help answer specific questions regarding configuration and customization.
{% endhint %}

Expert installation is a one-time payment of $34.99 and covers THREE (3) non-transferable installation credits.\
These credits can be used for:

* Sonoran CAD - Framework and Plugin Installation
* Sonoran CMS - Addon Installation
* Sonoran Radio - In-Game Radio and Addon Installation

## How do I purchase expert installation?

### At checkout:

When purchasing a new subscription for Sonoran CAD, CMS, or Radio; click `Add` on the `Expert Installation` option under `Add to your order` on the checkout page.

<figure><img src="/files/no4jKg6sWIKsc38sim64" alt="" width="375"><figcaption><p>Expert Installation - Add to Order</p></figcaption></figure>

### In the billing portal:

In the CAD, CMS, or Radio billing portal, select `New Subscription` > `Expert Installation`

<figure><img src="/files/7unIMwzCbRsYawYNK8Eo" alt="" width="288"><figcaption><p>Expert Installation - New Purchase</p></figcaption></figure>

## Requirements for Installation

1. Windows VPS or Dedicated Server
2. Windows RDP Access (shared with support agent)
3. Sonoran CAD, CMS, or Radio subscription

## FAQ

### Can I redeem another product installation at a later date?

Yes! Your purchase is valid for three installation credits. You could have the agent install and configure CAD plugins and install CMS plugins at a later date.

### Is this purchase eligible for a refund?

All of our products are covered in our [48-hour moneyback guarantee](https://sonoransoftware.com/assets/files/internal/purchase_policy.pdf). However, this service is not non-refundable after the labor has been performed, regardless if one or all credits have been used.

### The support agent has installed my plugins, what's next?

{% tabs %}
{% tab title="CAD" %}
Configure your submodules and start using Sonoran CAD!

{% content-ref url="/spaces/-M4pGN81fb4R6zFhodcu/pages/L15Qgtrxp6hPlpj1DXQ1" %}
[Submodule Configuration](/cad/integration-plugins/in-game-integration/submodule-configuration)
{% endcontent-ref %}
{% endtab %}

{% tab title="CMS" %}
Configure your submodules and start using Sonoran CMS!

{% content-ref url="/spaces/-MdBOa9OFjtdqw9FdXli/pages/wSWCGQqjW2DoSlDZeMoP" %}
[FiveM Installation - Next Steps](/cms/integration-capabilities/in-game-integration-resources/core/free-plugin-installation-next-steps)
{% endcontent-ref %}
{% endtab %}

{% tab title="Radio" %}
Once installed, learn how to use Sonoran Radio!

{% content-ref url="/spaces/fCk5zoeun5gx3ujYW6eg/pages/0XWLZ19s4Njt3OBw9LJq" %}
[Usage](/radio/tutorials/usage)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}


# Discord Rewards

Earn discounts up to 100% off when your Discord members participate! Discuss products, share suggestions, and more.

Join our [Discord](https://discord.sonoransoftware.com/) to discuss products, share suggestions, and connect with the community. Active participation can earn your community up to **100% off** every month!

{% hint style="warning" %}
The Discord Rewards system is in early testing and subject to change at any point.\
The [leaderboard winner tier](#reward-tiers) will be added later into the beta.\
See the full list of [terms and conditions](#terms-and-conditions) for more information.
{% endhint %}

## Create Your Rewards ID

### 1. Join Our Discord

Join our official Discord: [Discord.SonoranSoftware.com](https://discord.sonoransoftware.com/)

### 2. Copy Your Customer ID

When point thresholds are met, discounts are automatically applied to the linked customer account. In order to link your customer account, you will first need your customer ID.

Login to account.sonoransoftware.com > `Billing` > Click to copy the customer ID.

<figure><img src="/files/b1DXDyLsyFCEbYptFSl6" alt=""><figcaption></figcaption></figure>

### 3. Register Your Rewards ID

In our Discord, use the `/rewardsregister` command.

Enter in a community name and your Stripe customer ID.

Once created, the message will contain your [rewards ID number](#manual-link) and [automatic Discord invite](#automatic-invite-link).

<div><figure><img src="/files/gdWeItN9oAiH4V2zGuRy" alt=""><figcaption></figcaption></figure> <figure><img src="/files/bDHX0ABBbVYDKWL0YmJf" alt=""><figcaption></figcaption></figure></div>

***

## Linking Community Members

Community members help earn points by participating in discussions, suggestions, and more. They must link their account to the community's reward ID.

### A. Automatic Invite Link

When [registering a community](#register-your-rewards-id), a Discord invite code is automatically generated. When users join with this code, they'll be automatically linked to your community's rewards.

### B. Manual Link

Members can manually link their Discord account to the community rewards by using the `/rewardslink` command.

Members will need your community rewards ID from [registration](#register-your-rewards-id), or from the [`/rewardspoints` command](#viewing-rewards).

<div><figure><img src="/files/Pi6PTdEQfRDlHMTMHbcJ" alt=""><figcaption></figcaption></figure> <figure><img src="/files/1kiKXMig86FcMooWTare" alt=""><figcaption></figcaption></figure></div>

***

## Earning Rewards

<table><thead><tr><th>Action</th><th width="95.506103515625">Points</th><th>Info</th></tr></thead><tbody><tr><td>Suggestion Post Added</td><td>50</td><td>50 points when a CAD, CMS, or Radio suggestion post is marked with the <strong>Added</strong> tag after an update release.</td></tr><tr><td>Suggestion Post Interesting Tag</td><td>25</td><td>25 points when a CAD, CMS, or Radio suggestion post is marked with the <strong>Interesting</strong> tag by management.</td></tr><tr><td>Nitro Boost</td><td>10</td><td>10 points per Nitro boost every month. Limited to one boost per user.</td></tr><tr><td>Discussion</td><td>0-3</td><td>Up to 3 points per message in the discussion and suggestion channels, based on quality.</td></tr><tr><td>Community Link</td><td>1</td><td>When users link a rewards community for the <strong>first time</strong>, your community automatically receives one point. Using your <a href="#a.-automatic-invite-link">automatic invite link</a> helps make this process even easier!</td></tr></tbody></table>

***

## Viewing Rewards

Communities can view their points, information, and rewards tier by using the `/rewardspoints` command.

<figure><img src="/files/yzdimakTyAJou5xRMsLJ" alt=""><figcaption></figcaption></figure>

***

## Reward Tiers

Reward levels are earned when your community meets or exceeds the required point threshold, based on activity over the past 30 days.

When a new tier is reached, the corresponding discount is automatically applied to the most expensive upcoming subscription renewal on the linked customer account—**but only if your community still qualifies for that tier at the time of renewal**. If the subscription already has a larger discount, no additional discount is applied (discounts cannot be stacked).

If your community drops below the required threshold before the renewal date, the discount will not be applied.

| Level                 | Points                                                           | Discount |
| --------------------- | ---------------------------------------------------------------- | -------- |
| 🥉Bronze              | 50                                                               | 5% Off   |
| 🥈 Silver             | 100                                                              | 10% Off  |
| 🥇 Gold               | 200                                                              | 15% Off  |
| 💎 Diamond            | 300                                                              | 25% Off  |
| 👑 Leaderboard Winner | <p>N/A (Top Community Only)<br><strong>Coming Soon!</strong></p> | 100% Off |

***

## Terms and Conditions

#### 🔧 Beta Program Notice

* The rewards program is currently in **early testing**.
* **Point levels, calculations, and rewards may change** at any time without notice.
* The entire program may be **paused, modified, or removed** during or after testing.
* **Rewards are not guaranteed** and may be adjusted or revoked at our discretion.

#### 📜 General Terms

* Discounts are applied based on your community’s reward tier at the time of **subscription renewal**.
* You must be **actively meeting the reward tier** when the renewal is processed to receive a discount.
* Discounts **cannot be stacked** with other coupons or promotions.

#### 🚫 Abuse & Exploitation

* Any **attempts to exploit, manipulate, or abuse** the system—by users or communities—may result in:
  * Immediate **removal of discounts**
  * **Revocation of points**
  * **Permanent disqualification** from the rewards program
  * Permanent account ban from all platforms

#### 📬 Questions?

Reach out to our [support team](https://support.sonoransoftware.com/).

By participating, you agree to these terms and any future updates.


# Hire a Developer

Looking for installation, configuration, or custom integration work? Hire one of our trusted developers for your next project.

## Developer Hire Process <a href="#developer-hire-process" id="developer-hire-process"></a>

### What is this service used for? <a href="#what-is-this-service-used-for" id="what-is-this-service-used-for"></a>

Our developer hire service allows you to contract one of our trusted developers for server setup, customization, script creation or optimization, issue troubleshooting, and more.

Developer hires have a **two-hour minimum**.

We've added dedicated hours to ensure one of our team members can help complete your project!

Our dedicated hours are Thursday and Friday from 10:00 to 12:00 Arizona time.

### What does this service cost? <a href="#what-does-this-service-cost" id="what-does-this-service-cost"></a>

Hiring a developer costs **$99 for two hours**, with a two-hour minimum. Billing is limited to a maximum of two hours at a time.

Payments are charged up-front with an electronically signed contract ran through our customer support portal.

### Developer Hire Availability <a href="#developer-hire-availability" id="developer-hire-availability"></a>

Our developer hires are available to be scheduled between 10 AM and 12 PM MST (Arizona Time) Thursday to Friday each week. Requests are scheduled on a first come first serve basis.

## How to Hire <a href="#how-to-hire" id="how-to-hire"></a>

### 1. Access the Support Site <a href="#id-1.-access-the-support-site" id="id-1.-access-the-support-site"></a>

Navigate to [support.sonoransoftware.com](https://support.sonoransoftware.com/) and select `Hire a Developer`.

Input the specifics of your project. **Please be as specific as possible** so we can more quickly pair you with an available developer.

<div align="center"><img src="https://open-2c.gitbook.com/url/preview/site_GzhDc/~gitbook/image?url=https%3A%2F%2F3744204110-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MFcU9Z6UGRlTPBaCxeu%252Fuploads%252FQzF5Au6xZRnRi72rwG89%252Fimage.png%3Falt%3Dmedia%26token%3De835fac0-f01d-432d-a041-7e8b5485f776&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=7f7388bb&#x26;sv=2" alt=""></div>

### 2. Agree and Finalize the Contract <a href="#id-2.-agree-and-finalize-the-contract" id="id-2.-agree-and-finalize-the-contract"></a>

After speaking with a developer, you will agree to the service(s) to be rendered, project timeline, and payment amount.

1. A form will be sent requesting your full name and address.
2. You will be sent a contractor agreement via PDF to electronically sign and re-upload.

You can electronically sign this contract with [Adobe's Acrobat Online](https://www.adobe.com/acrobat/online/sign-pdf.html).

### 3. Complete Payment <a href="#id-3.-complete-payment" id="id-3.-complete-payment"></a>

Once the contract has been finalized and signed by both parties an invoice will be sent. Invoices must be paid before any services will be rendered.


# First Responder Discount

As part of our commitment to serving the community, we're proud to offer discounts to all U.S. military personnel and first responders.

<figure><img src="/files/gcclr8iogL32YMbhYfjo" alt=""><figcaption></figcaption></figure>

<h2 align="center">Military and First Responder Policy</h2>

<p align="center">Last Updated: 8/21/2023</p>

### **Sonoran Software Supports First Responders**

As part of our commitment to serving the community, we deeply value the relentless effort and dedication displayed by our military and first responders, day in and day out. All U.S. military personnel, police officers, firefighters, and paramedics qualify for a 15% monthly discount.

To avail of this offer, create a ticket with our support team at [support.sonoransoftware.com](https://support.sonoransoftware.com/).

### Terms and Conditions

Verify this offer with our support team by providing a valid ID and related documentation. We may grant or deny services and discounts at our discretion. The offer applies to Sonoran CAD, CMS, Radio, Store, and Five Bundle.


# Policy

Sonoran Software Systems' Policy Documentation


# Refund and Purchase Policy

Sonoran Software Systems' Purchase and Refund Policy

<figure><img src="/files/KShL6PFc1m4pa38ab1ey" alt="" width="375"><figcaption></figcaption></figure>

<h2 align="center">Purchase and Refund Policy</h2>

<p align="center">Last Updated: 12/04/2023</p>

### 48 Hour Money Back Guarantee

All Sonoran Software Systems, LLC products and Sonoran Software Partners, LLC products are backed by a 48 hour money-back guarantee. This includes both subscriptions and one-time-payments to Sonoran CAD, Sonoran CMS, Sonoran Radio, items in the Sonoran Store, and items in the FiveBundle.com store with any exceptions listed below.

#### iOS App Store and Google Play Store

Mobile applications purchased via the iOS App Store and Google Play Store are outside of our company’s payment processing and must be directed to Apple and Google directly.

#### Expert Installation

[Expert Installation](/promotions/expert-installation) purchases are non-refundable after the labor has been performed, regardless if one or all credits have been used. These installation credits are non-transferrable and can be redeemed at any time.

#### How do I request a refund?

Customers must place a ticket on the customer support portal ([https://support.sonoransoftware.com](https://support.sonoransoftware.com/)) **within 48 hours of the initial purchase or renewal**. We reserve the right to refuse additional refunds to customers who have previously received one in the past. We reserve the right to refuse refunds to customers conducting themselves in an “assholeish” or rude and inappropriate manner with our support staff.

Refund requests made beyond the 48 hour window of any new or recurring purchase will be denied. Refunds outside of this window will be denied regardless of a community closure, community exit, internal community issues, financial hardship, integration or development issues, dissatisfaction with the product or service, system downtime, or any other reason not mentioned.


# Terms of Service

Sonoran Software Systems' Terms of Service

<figure><img src="/files/KShL6PFc1m4pa38ab1ey" alt="" width="375"><figcaption></figcaption></figure>

<h2 align="center">Terms of Service</h2>

<p align="center">Last Updated: June 26th, 2025</p>

> *These Terms govern your use of Sonoran Software Systems LLC products and sites — Sonoran CAD (<https://sonorancad.com>), Sonoran CMS (<https://sonorancms.com>), Sonoran Radio (<https://sonoranradio.com>) — along with any sub‑domains, mobile apps, and related services (collectively, the “Services”).*

***

### 1. Your Agreement With Us

By accessing or using any Service you confirm that you have read, understood, and agree to be bound by these Terms. If you do not agree, do not use the Services.

We may modify these Terms **at any time** by posting an updated version and changing the “Last Updated” date above. Continued use of the Services after a change becomes effective constitutes acceptance of the revised Terms.

### 2. Eligibility

The Services are intended for users **13 years of age or older**. If you are under 18, you must have parent or guardian permission to use the Services.

### 3. Account Registration & Security

You are responsible for all activity that occurs under your account and for keeping your credentials secure. We may suspend or terminate any account that violates these Terms or applicable law.

### 4. Fees, Billing & Renewals

Certain features require payment. [**All sales are subject to our refund and purchase policy**](/policy/policy/refund-and-purchase-policy)**.** You authorize us (and our payment processors) to charge your selected payment method on a recurring basis until cancellation. Prices may change upon 30 days’ notice.

### 5. Intellectual Property

We (or our licensors) own all intellectual‑property rights in the Services. We grant you a limited, revocable, non‑transferable license to use the Services solely as intended. **No other rights are granted.**

### 6. Acceptable Use

You may **not**:

1. Violate any law or third‑party right;
2. Reverse‑engineer, decompile, or attempt to obtain source code;
3. Interfere with or disrupt the Services or others’ use of them;
4. Use the Services to compete with us or to build a similar product.

We reserve the right to remove content, suspend accounts, or take any action we deem necessary to protect the Services or our interests.

### 7. Software License

Where we provide downloadable software or an API, it is licensed—not sold—on a limited, revocable, non‑exclusive basis solely to interact with the Services as documented. All other use is prohibited unless expressly permitted in writing.

### 8. Termination, Suspension & Removal

We reserve the **unfettered right — at any time and for any reason or no reason** — to suspend, disable, restrict, or permanently terminate your access to **any or all Services** (including Sonoran CAD, Sonoran CMS, Sonoran Radio, and any future offerings) and to remove or delete any communities, CAD systems, data, or content associated with your account. Such action may be taken **with or without notice** and without liability to you. Reasons may include, but are not limited to, violation of these Terms, non‑payment, inactivity, suspected fraud, or conduct we, in our sole discretion, deem harmful, disruptive, or otherwise objectionable. We have no obligation to disclose the basis for any action we take and will not be liable for any resulting losses or damages.

### 9. Disclaimers & Limitation of Liability

The Services are provided **“AS IS” and “AS AVAILABLE.”** To the maximum extent permitted by law we disclaim all warranties, express or implied, and our total liability for any claim arising out of or relating to the Services will not exceed the greater of (a) fees you paid us for the Service during the **last 30 days** or (b) **USD $100**.

### 10. Indemnification

You will indemnify and hold Sonoran Software Systems LLC and its affiliates harmless from any loss, liability, or claim arising out of your breach of these Terms or violation of law.

### 11. Governing Law & Dispute Resolution

These Terms are governed by the laws of the **State of Arizona**, USA, without regard to conflict‑of‑law rules. Any dispute will be resolved by **binding arbitration in Yavapai County, Arizona** under the Commercial Arbitration Rules of the American Arbitration Association. **No class actions.**

### 12. Contact Us

**Sonoran Software Systems LLC**\
445 Miller Valley Road\
Prescott, Arizona 86301

<https://support.sonoransoftware.com>


# Privacy Policy

Sonoran Software Systems' Privacy Policy

<figure><img src="/files/KShL6PFc1m4pa38ab1ey" alt="" width="375"><figcaption></figcaption></figure>

<h2 align="center">Privacy Policy</h2>

<p align="center">Last Updated: July 28th, 2026</p>

> *These Terms govern your use of Sonoran Software Systems LLC products and sites — Sonoran CAD (<https://sonorancad.com>), Sonoran CMS (<https://sonorancms.com>), Sonoran Radio (<https://sonoranradio.com>) — along with any sub‑domains, mobile apps, and related services (collectively, the “Services”).*

***

### 1. Your Agreement With Us

By accessing or using any Service you acknowledge that you have read, understood, and agree to be bound by this Agreement. If you do not agree, you may not use the Services.

We may modify these terms **at any time** by posting an updated version and changing the “Last Updated” date above. Continued use of the Services after a change becomes effective constitutes acceptance of the revised terms.

### 2. Eligibility

The Services are intended for users **13 years of age or older**. If you are under 18, you must have parent or guardian permission to use the Services.

### 3. Account Registration & Security

You are responsible for all activity that occurs under your account and for keeping your credentials secure. We may suspend or terminate any account that violates this Agreement or applicable law.

### 4. Fees, Billing & Renewals

Certain features require payment. [**All sales are subject to our refund and purchase policy**](/policy/policy/refund-and-purchase-policy)**.** You authorize us (and our payment processors) to charge your selected payment method on a recurring basis until cancellation. Prices may change upon 30 days’ notice.

### 5. Intellectual Property

We (or our licensors) own all intellectual‑property rights in the Services. We grant you a limited, revocable, non‑transferable license to use the Services solely as intended. **No other rights are granted.**

### 6. Acceptable Use

You may **not**:

1. Violate any law or third‑party right;
2. Reverse‑engineer, decompile, or attempt to obtain source code;
3. Interfere with or disrupt the Services or others’ use of them;
4. Use the Services to compete with us or to build a similar product.

We reserve the right to remove content, suspend accounts, or take any action we deem necessary to protect the Services or our interests.

### 7. Software License

Where we provide downloadable software or an API, it is licensed—not sold—on a limited, revocable, non‑exclusive basis solely to interact with the Services as documented. All other use is prohibited unless expressly permitted in writing.

### 8. Termination

We may terminate or suspend your access to any Service at our sole discretion, without notice, for conduct we believe violates this Agreement or is harmful to us, other users, or third parties.

### 9. Disclaimers & Limitation of Liability

The Services are provided **“AS IS” and “AS AVAILABLE.”** To the maximum extent permitted by law we disclaim all warranties, express or implied, and our total liability for any claim arising out of or relating to the Services will not exceed the greater of (a) fees you paid us for the Service during the **last 30 days** or (b) **USD $100**.

### 10. Indemnification

You will indemnify and hold Sonoran Software Systems LLC and its affiliates harmless from any loss, liability, or claim arising out of your breach of this Agreement or violation of law.

### 11. Governing Law & Dispute Resolution

This Agreement is governed by the laws of the **State of Arizona**, USA, without regard to conflict‑of‑law rules. Any dispute will be resolved by **binding arbitration in Yavapai County, Arizona** under the Commercial Arbitration Rules of the American Arbitration Association. **No class actions.**

***

## Privacy Policy

### 1. Information We Collect

| Category             | Examples                                                                                                                         | Purpose                                                              |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| **Account Data**     | Name, email, username, organization                                                                                              | Create & manage accounts                                             |
| **Payment Data**     | Billing address, last 4 of card, transaction IDs                                                                                 | Process transactions                                                 |
| **Usage Data**       | IP address, device/browser information, log files, cookie or pixel identifiers, pages viewed, referring URLs, and in‑app actions | Service functionality, security, analytics, and campaign measurement |
| **Content Data**     | User‑generated text, images, Discord messages and attachments, voice or radio traffic (Sonoran Radio)                            | Provide core features                                                |
| **Discord Bot Data** | Discord user, server, channel, role, and message identifiers; command and interaction data                                       | Operate Sonoran Bot integrations and utilities                       |
| **Support Data**     | Tickets, chat transcripts, attachments                                                                                           | Customer support                                                     |

> **We do not collect sensitive personal data** such as biometric identifiers, precise location, health data, or similar special‑category information.

### 2. How We Use Information

* Operate, maintain, and improve the Services;
* Process payments and prevent fraud;
* Understand use of the Services and measure, attribute, and improve marketing campaigns;
* Respond to inquiries and provide support;
* Operate Sonoran Bot features requested by users or enabled by community administrators, including ticket intake and conversation relay;
* Send technical, security, and administrative messages;
* Comply with legal obligations.

### 3. Legal Bases (EEA/UK Users)

We rely on **contract performance**, **legitimate interests** (e.g., security and fraud prevention), **consent** (where required), and **legal compliance**.

### 4. Sharing & Disclosure

We share information only with:

* Payment processor **Stripe**;
* Cloud hosting and infrastructure providers;
* Discord, when you use Sonoran Bot or other Discord-connected features;
* Analytics, measurement, and advertising service providers, including Google Analytics and TikTok;
* Law enforcement or regulators when legally required.

We **do not sell** personal information. We may disclose limited Usage Data and pseudonymous or hashed identifiers to these providers for analytics, campaign measurement, attribution, and advertising performance. Their handling of data is also governed by their own terms and privacy policies.

### 5. Cookies & Tracking Technologies

We use cookies, pixels, and similar browser or server-side technologies across the Services for authentication, preferences, analytics, campaign measurement, attribution, and advertising performance. These technologies may be provided by **Google Analytics** and **TikTok** and may collect or receive device and browser information, IP address, page and referring URLs, cookie or pseudonymous identifiers, and interactions such as page views, logins, checkout activity, and purchases. Where matching information is used, identifiers such as an email address or account ID may be normalized and cryptographically hashed before transmission.

The mobile apps for **Sonoran CAD**, **Sonoran CMS**, and **Sonoran Radio** may use Google Analytics for limited product analytics. It may collect app interactions, device information, a pseudonymous identifier, and an approximate region. It is not used for advertising, retargeting, or tracking across other companies' apps or websites. Where required, analytics remains disabled until the user allows it. Users can change the Usage Analytics setting in the app at any time. [Learn how Google processes this data.](https://policies.google.com/technologies/partner-sites)

You can limit cookies through your browser or available consent controls. Where required by law, we will request consent before enabling non-essential tracking technologies.

### 6. Sonoran Bot and Discord Message Content

When a community installs Sonoran Bot or a user interacts with it, we process the Discord identifiers, commands, interactions, and configuration data needed to provide the requested integration or utility. Sonoran Bot accesses guild message content only where it is needed for a feature a user initiates or a community administrator enables, such as creating and continuing a ticket in a bot-created ticket channel. It does not use the Message Content Intent to monitor unrelated conversations.

Guild ticket messages and attachments remain hosted by Discord. Sonoran Bot processes their content to operate the ticket within Discord, but does not copy or store that message content or those attachments outside Discord. We may retain limited operational metadata, such as the Discord server, channel, ticket owner, participant, and status identifiers needed to manage the ticket.

Discord message content is not sold and is not used to train machine-learning or artificial-intelligence models. Users may opt out by not opening or continuing a ticket. Community administrators may disable the applicable feature or remove Sonoran Bot. Privacy and deletion requests can be submitted using the contact information below, subject to legal and operational retention requirements.

### 7. Data Retention

* **Community Data:** Permanently deleted within 30 days when a community owner deletes their community.
* **Voice Transmissions (Sonoran Radio):** Stored only if the owner opts‑in to the voice‑storage feature and automatically deleted **24 hours** after capture.
* **Discord Guild Ticket Data:** Ticket messages and attachments remain in Discord and are subject to Discord's and the community's retention controls. Sonoran may retain limited ticket identifiers and status metadata for as long as reasonably necessary to operate the feature.
* **Account Information:** Retained as long as necessary for legitimate business purposes. Deleted accounts are flagged as inactive and access‑restricted; associated personal data may be purged or anonymized periodically.

### 8. Your Choices & Rights

Depending on your location, you may have the right to **access, correct, delete, or port** your personal data, or object to certain processing. To exercise these rights email **<privacy@sonoransoftware.com>** or **<support@sonoransoftware.com>**.

### 9. Children’s Privacy

We do not knowingly collect personal data from children under 13 (or under 16 where applicable). If we learn that we have done so, we will delete such data.

### 10. Security

We implement reasonable administrative, technical, and physical safeguards to protect personal data. No system is 100 % secure.

### 11. International Transfers

We are based in the United States. By using the Services you consent to your data being transferred to and processed in the U.S. and other countries that may have different data‑protection laws than your home jurisdiction.

### 12. Changes to This Policy

We may update this Policy at any time. If we make material changes, we will post an updated Policy and revise the “Last Updated” date.

### 13. Contact Us

**Sonoran Software Systems LLC**\
445 Miller Valley Road\
Prescott, Arizona 86301

<https://support.sonoransoftware.com>


# Sonoran One + Rocket Node Hosting Promotion

View the full terms for the Sonoran One x Rocket CAD Free FiveM Hosting offer.

### Sonoran One + Rocket Node Promotion Terms

Active Sonoran One subscribers may be eligible to receive a coupon code for one free Rocket Node FiveM server on the Starter Plan.

This promotion is valid for one FxServer game panel with the Starter Plan resources of 2 GB RAM, 2 vCPU, and 75 GB storage. The promotional hosting benefit remains valid only while the customer’s Sonoran One subscription remains active and in good standing.

The coupon code and hosting benefit are intended only for the Sonoran One customer and may not be transferred, resold, shared, or used on behalf of another person or community.

Abuse, resale, transfer, fraud, or violation of these terms may result in immediate termination of the Rocket Node FiveM server and/or the customer’s Sonoran One products without refund.

Sonoran Software and Rocket Node reserve the right to modify, suspend, or end this promotion at any time.


# Translation Support

Sonoran CAD, CMS, and Radio support over a dozen different languages. Community members can help contribute to improve their native language.

## Language Selection <a href="#add-or-improve-translations" id="add-or-improve-translations"></a>

Selecting your language is easy!

{% tabs %}
{% tab title="CAD" %}
Once signed in, users can select their language in the top-right dropdown.

<figure><img src="/files/AskiMd4ncxfE3wa1I1IV" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="CMS" %}
Once signed in, users can select their language in the top-right dropdown.

<figure><img src="/files/dSNPQMF9qvuRq7MsvnGq" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Radio" %}
Once signed in, users can select their language in the top-right dropdown.

<figure><img src="/files/W0nGf7jhnW89QaTcDeIf" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Improving Translations: <a href="#add-or-improve-translations" id="add-or-improve-translations"></a>

Our systems automatically generate translations with AI. These translations can be manually improved by native language speakers.

### 1. Submitting Improvements

To submit translations, sign in with your Sonoran Software account at [translate.sonoransoftware.com](https://translate.sonoransoftware.com/).

* Select the **CAD**, **CMS,** or **Radio** product
* Select the **Language**
* Search and enter improved **Suggestions** for your language
* Once complete select **Submit Suggestions**

{% hint style="info" %}
If you do not see your language at all, create a [Support Live Chat](https://support.sonoransoftware.com/) ticket to request generation of an entirely new language file.
{% endhint %}

<figure><img src="/files/J67uVYy7sLIt0ioUQDTl" alt=""><figcaption></figcaption></figure>

### 2. Approval Process

Once submitted, you will receive an email confirmation. Our team will attempt to manually review and approve or deny within 72 hours.

If you have not received an email reply back within 72 hours with an **approval** or **denial**, feel free to contact us via our [Support Live Chat](https://support.sonoransoftware.com/) or [Discord](https://discord.sonoransoftware.com/).

<div><figure><img src="/files/gWPHA4iNJb4a85P0WfEi" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="/files/QgPFuwHj4HUjlL3T7OYG" alt="" width="375"><figcaption></figcaption></figure></div>

### 3. Updated Translations

Once approved, the updated translations will be **automatically available** on the website version within a few minutes. Desktop and mobile apps will be updated on the next app release.


# Support API

API endpoints for Sonoran Software support integrations.

The Support API allows approved integrations to submit data directly into a support ticket workflow.

## Available Endpoints

* [Upload Debug](/other/support-api/upload-debug)


# Upload Debug

Upload CAD FiveM debug output directly to an open support ticket.

## Upload Debug

<mark style="color:green;">`POST`</mark> `https://api.sonoransoftware.com/v2/upload/debug/{ticketId}`

This endpoint allows a CAD FiveM integration to upload debug output directly into an existing support ticket.

The `ticketId` path parameter must be the short support ticket ID, not the ticket UUID.

Debug uploads are only accepted after a support team member has enabled debug uploads for that ticket.

#### Request Body

Send the request body as plain text. The body should contain the raw debug output you want attached to the ticket.

{% tabs %}
{% tab title="OpenAPI" %}

```yaml
openapi: 3.0.3
info:
  title: Sonoran Support API
  version: "1.0"
paths:
  /v2/upload/debug/{ticketId}:
    post:
      summary: Upload CAD debug output to a support ticket
      parameters:
        - in: path
          name: ticketId
          required: true
          schema:
            type: integer
          description: Short support ticket ID
      requestBody:
        required: true
        content:
          text/plain:
            schema:
              type: string
            example: |
              [sonorancad] Debug session started
              [sonorancad] Player cache refreshed
              [sonorancad] Completed sync in 42ms
      responses:
        "200":
          description: Debug uploaded successfully
        "400":
          description: Empty body or invalid non-CAD ticket
        "403":
          description: Debug upload is not enabled for this ticket
        "404":
          description: Ticket not found
```

{% endtab %}

{% tab title="cURL" %}

```bash
curl -X POST "https://api.sonoransoftware.com/v2/upload/debug/12345" \
  -H "Content-Type: text/plain" \
  --data-binary @debug.txt
```

{% endtab %}
{% endtabs %}

### Response Body

{% tabs %}
{% tab title="200 A successful call will be met with the following response:" %}

```json
{
  "success": true,
  "ticketId": 12345
}
```

{% endtab %}

{% tab title="403 Debug upload is not enabled for this ticket:" %}

```json
{
  "success": false,
  "error": "Debug upload is not enabled for this ticket."
}
```

{% endtab %}

{% tab title="404 Ticket not found:" %}

```json
{
  "success": false,
  "error": "Ticket not found."
}
```

{% endtab %}
{% endtabs %}


# Miscellaneous


# Troubleshooting


# Desktop Application Fails To Update

On 7/28/2025 our code signing certificate was updated, breaking automatic updates for users on older app versions.

## Sonoran CAD, CMS, and Radio Desktop App Updates Failing

On 7/28/2025, we updated our code signing certificate following its scheduled three-year expiration. As a result, automatic updates may fail on older versions of our applications. To restore update functionality, please download and install the latest version. Future updates will then resume automatically.

### Download Links:

* [Sonoran CAD](https://docs.sonoransoftware.com/cad/download)
* [Sonoran Radio](https://docs.sonoransoftware.com/radio/download-the-app)
* [Sonoran CMS](https://docs.sonoransoftware.com/cms/download)


# Delete Your Account

Delete your Sonoran Software account and remove your personal data.

## How to Delete your Account

### 1. Login to the Account Portal

Log into your account at account.sonoransoftware.com.

### 2. Request Account Deletion

On the sidebar select **Account** > **Advanced** > **Delete Account**

* If your account has any active subscriptions, an error will inform you to cancel those first. These can be managed under **Billing** > Select the **Active** Subscription **> Manage**.
* You will be sent a confirmation email to delete your account.

<figure><img src="/files/HC617s0dXi7Np6SsHLwX" alt="" width="375"><figcaption></figcaption></figure>

### 3. Verify Deletion Email

Check your account email for a confirmation notice from Sonoran Software. Click the link in the email to delete your account.

<figure><img src="/files/69rhdPmiloH5RAqBuIrs" alt="" width="375"><figcaption></figcaption></figure>

### Customer Support

Having trouble? [Contact our live chat support team](https://support.sonoransoftware.com/).

## Data Privacy

Upon account deletion, Sonoran Software removes private account data from the active account record, including the email address. We may retain limited internal identifiers, such as non-reversible account or security identifiers, where reasonably necessary to prevent abuse, enforce our Terms of Service, investigate fraud, or detect alternate account ban avoidance. Additional details are covered in our [Privacy Policy](/policy/policy/privacy-policy).

Deleting a Sonoran account does not automatically remove user-generated content stored in separate services or communities, such as Sonoran CAD, Sonoran CMS, Sonoran Radio, or support portal tickets. Those systems may retain community records, audit history, ticket history, or other user-submitted content according to their own operational needs, legal obligations, and our [Privacy Policy](/policy/policy/privacy-policy).


# Why Sonoran CAD?

Experience Sonoran CAD, the free, most popular dispatching software for FiveM, ER:LC & gaming communities alike!

## What is Sonoran CAD?

<figure><img src="/files/o8G0Njm8mxbEYRG2TnRr" alt="" width="375"><figcaption></figcaption></figure>

Sonoran CAD is the largest, most popular dispatch and records management system for gaming communities.

With seamless integrations for FiveM, ER:LC on Roblox, and more, it delivers unmatched power, speed, and customization—taking your roleplay experience to the next level.

{% content-ref url="/pages/-M4pZWF2Az8I3s7gpzrV" %}
[Getting Started](/cad/tutorials/getting-started)
{% endcontent-ref %}

### ✨ [Dispatch AI](https://docs.sonoransoftware.com/radio/tutorials/integrations/dispatch-ai)

Dispatch AI is our most advanced integration to date—bringing a real-time AI dispatcher directly into your community’s CAD.

When paired with [Sonoran Radio](https://docs.sonoransoftware.com/radio), units can create calls, run license plates, update their status, and more—all automatically through their radio transmissions.

<figure><img src="/files/xxo17dZutUatokmMGS62" alt=""><figcaption></figcaption></figure>

### 📱 Downloadable Apps

In addition to our web version, you can download Sonoran CAD on the [iOS App Store](https://apps.apple.com/us/app/sonoran-cad/id1496539456), the [Google Play Store](https://play.google.com/store/apps/details?id=sonorancadmdt.app\&hl=en_US), or for [Windows Desktop](https://github.com/Sonoran-Software/SonoranCAD_Windows/releases/latest/download/Sonoran-CAD.exe).\
\
It's never been more easy to access your community's CAD system, regardless of what platform you're on!

<figure><img src="/files/A0bPqmONoKHZ4Ymra3od" alt=""><figcaption><p>Sonoran CAD - Downloadable Apps</p></figcaption></figure>

### 💾 Database Sync

Tired of having to manually register civilians? With Sonoran CAD's [Database Sync](/cad/integration-plugins/database-sync-and-merge), all of your in-game characters, licenses, and vehicle registrations are automatically in your CAD!

<figure><img src="/files/1x4WpOExcvAT5u1H2udy" alt=""><figcaption><p>Sonoran CAD - Database Sync</p></figcaption></figure>

### 🎮 FiveM In-Game Integration Plugins

Sonoran CAD's integration framework includes [**over a dozen drag-and-drop plugins**](/cad/integration-plugins/in-game-integration/available-plugins) for your game server!

<figure><img src="/files/F8zsS9T7dPQqPzwMPgka" alt=""><figcaption><p>Sonoran CAD - In Game Integration</p></figcaption></figure>

### 💬 Discord Permission Integration <a href="#discord-permission-integration" id="discord-permission-integration"></a>

Our official [Discord bot](https://app.gitbook.com/@sonoran/s/sonoran-software/~/drafts/-Maqgxy_VS4uxPXm0a98/integration-plugins/discord-bot) automatically **syncs Discord roles with CAD account permissions**. This allows you to easily grant and remove permissions from a user's CAD account all through Discord!‌

​[Discord webhooks](https://app.gitbook.com/@sonoran/s/sonoran-software/~/drafts/-Maqgxy_VS4uxPXm0a98/integration-plugins/discord-webhooks) instantly notify your community when changes are made, calls are placed, units toggle their panic status, and more!

<figure><img src="/files/ta8zPzKmg4pmwxm5DQKW" alt=""><figcaption><p>Sonoran CAD - Discord Webhooks</p></figcaption></figure>

### 🌎 Full Translation and Locality Support

Only Sonoran CAD supports full [i18n localization](broken://pages/-MGbWE4KQP505l15Ewvm). Regardless of your community's native language, Sonoran CAD supports it!\
\
Sonoran CAD is currently fully translated in Chinese, Russian, Spanish, Polish, Italian, German, Arabic, and more! Anyone is allowed to [contribute to our GitHub translation files](broken://pages/-MGbWE4KQP505l15Ewvm).

Sonoran CAD also offers vast [geographical location](/cad/tutorials/customization/geographical-settings) support for non-American communities.

<figure><img src="/files/CQFVssfFVVafWbgH0JNZ" alt=""><figcaption><p>Sonoran CAD - Translations</p></figcaption></figure>

### 🎥FiveM Live Bodycam Footage In-CAD

Sonoran CAD's [bodycam system](/cad/integration-plugins/in-game-integration/available-plugins/bodycam) offers live video feeds from in-game, right in the CAD!

<figure><img src="/files/DEggpDuWGrwaMlJqivOA" alt=""><figcaption></figcaption></figure>

### 📍 3D Live Map

Sonoran CAD's custom [3D live map](/cad/integration-plugins/in-game-integration/available-plugins/live-map) allows you to edit and view live unit information, emergency call blips, smart road signs, and more!

<figure><img src="/files/Cvb6GWd04WO92NPbT2AA" alt=""><figcaption></figcaption></figure>

### [🛑](https://emojipedia.org/stop-sign/) FiveM Smart Signs Integration

We've partnered up with London Studios to integrate their Smart Signs script directly with Sonoran CAD! You can customize in-game roadway signs right from Sonoran CAD!

[Learn more about this free script included with Sonoran CAD Pro!](/cad/integration-plugins/in-game-integration/available-plugins/smart-signs)

[View our showcase video on Smart Signs!](https://www.youtube.com/watch?v=ihfVSiB8oB8)

<figure><img src="/files/AIpZZSrb67Hsvvw4W82G" alt=""><figcaption><p>Sonoran CAD x London Studios</p></figcaption></figure>

### 🚔 [FiveM ERS Integration](/cad/integration-plugins/in-game-integration/available-plugins/ers)

Does your community play Emergency Response Simulator?

[Sonoran CAD's ERS integration](/cad/integration-plugins/in-game-integration/available-plugins/ers) allows dispatchers to create callouts from the live map, lookup character records, and more!

<figure><img src="/files/J3b8KZ2xVhKV5eurUMpT" alt=""><figcaption><p>Sonoran CAD x ERS</p></figcaption></figure>

### 🚒 FiveM Station Alert Integration

We've partnered up with Inferno Collection to integrate their Station Alert script directly with Sonoran CAD! Dispatchers can toggle station doors, lights, and text-to-speech messages right from Sonoran CAD!

[Learn more about this free script included with Sonoran CAD Pro!](/cad/integration-plugins/in-game-integration/available-plugins/station-alert)

<figure><img src="/files/bBXLGWW40YIPgtXAeuE4" alt=""><figcaption><p>Sonoran CAD x Inferno Collection</p></figcaption></figure>

### [💻](https://emojipedia.org/laptop/) FiveM Mini CAD

Easily view and attach to calls, talk to other officers, and more all from the [in-game mini CAD](/cad/integration-plugins/in-game-integration/available-plugins/tablet)!

<figure><img src="/files/9ojg4H76BhCBgAj9qX7J" alt=""><figcaption><p>Sonoran CAD Mini-CAD</p></figcaption></figure>

### 📞 [FiveM Local Callers](/cad/integration-plugins/in-game-integration/available-plugins/local-callers)

Nearby civilian witnesses will place an emergency call during car jackings, weapon brandishing, death, and more. Stop or cut their information short by killing them in time!

<figure><img src="/files/4EYYdPnigXBLlKQwUkR7" alt=""><figcaption><p>Sonoran CAD - Local Callers</p></figcaption></figure>

### 🏥 [Rapid IQ](/cad/tutorials/dispatching/rapid-iq)

Rapid IQ guides emergency call-takers through dynamic, protocol-driven medical intake flows, enabling faster triage, consistent decision-making, and accurate dispatching.

<figure><img src="/files/HVJsYubQH6wMJaswBEO6" alt=""><figcaption></figcaption></figure>

### 📺 Twitch Bodycam, Bot, and Smart Lighting

<figure><img src="/files/WZeEjbq0Po4SqXgbT9vF" alt=""><figcaption><p>Sonoran CAD - Stream Overlay</p></figcaption></figure>

![Sonoran CAD - Smart Lighting](/files/-MkoH0j3mUVY4Fcnovb8)

Sonoran CAD also offers a [customizable stream overlay and Twitch bot](/cad/integration-plugins/twitch-overlay-and-bot) to display your unit and attached call information in real time!

### [ER:LC Roblox Integration](/cad/integration-plugins/erlc)

![Sonoran CAD x ER:LC](/files/3lmz9UkbIdaNm2aWHoTD)

Do you play Roblox? Sonoran CAD is integrated with Emergency Response Liberty County!

Update your unit locations in real time, run name and plate searches, create automated traffic stops, and more!

### 💻 Multitasking Window and Tab System

Only Sonoran CAD lets you easily multitask and open multiple search windows, records, penal codes references, ten code lists, and more! Our workflow allows you to handle even the most complicated and demanding patrols.

[Every panel and window can be locked into position and customized.](/cad/tutorials/customization/customizing-your-layout)

Drag-and-drop allows you to easily view calls, attach units, and more!

<figure><img src="/files/ZtWypNJE5eWpoM4Dg9eW" alt=""><figcaption><p>Sonoran CAD - Custom Layouts</p></figcaption></figure>

### 🎤 [TeamSpeak 3 Integration](broken://pages/-M_NY197EFM6IAIGs5JM)

Enforce security in your TeamSpeak 3 channels by requiring them to be signed into the CAD. Additionally, kick users from secured TS channels when they log off.

### 🔢 [Stream Deck Integration](/cad/integration-plugins/stream-deck-integration)

Check out our official [Stream Deck profiles](/cad/integration-plugins/stream-deck-integration) to change your unit status, panic, open a lookup, and more from a physical button. Along with the [Sonoran CAD desktop application](/cad/download), these actions can be done even while the app is minimized.

<figure><img src="/files/FnviuM5an95h4K1tMeDz" alt=""><figcaption><p>Sonoran CAD - Stream Deck Profile</p></figcaption></figure>

### 📖 API Integration

In addition to over a dozen drag-and-drop integration [plugins](/cad/integration-plugins/in-game-integration/available-plugins), you can write your own integration plugins using our [API documentation](/cad/api-integration).

We've complied extensive documentation for over two-dozen API endpoints and server [push events](/cad/api-integration/push-events)!

Easily integrate external scripts with our [LUA and JS export examples](broken://pages/ONoZRRBy208JfLTCy8VK)!

<figure><img src="/files/fZPLggM1aQVQQ7YKDsxJ" alt=""><figcaption><p>Sonoran CAD - API Integration</p></figcaption></figure>

### 📝 Custom Records and Reports

Create your very own [custom report and record formats](/cad/tutorials/customization/creating-custom-record-and-report-types) for your community to use!

Whether it's your own firearms registration system, an in-depth vehicle accident report format, or a custom incident record, Sonoran CAD allows you to customize it all.

You can even index specific record fields for [custom search types](/cad/tutorials/customization/custom-search-types). Allowing you to run a lookup on your record's custom ID numbers, phone numbers, and more!

<figure><img src="/files/NIfGkqEXZNYXlnylLuIP" alt=""><figcaption><p>Sonoran CAD - Custom Reports</p></figcaption></figure>

<figure><img src="/files/qeER4E5l8XknDL1xI1ou" alt=""><figcaption></figcaption></figure>

### [🧑‍🎨️ Scene Diagram Builder](/cad/tutorials/records-management/scene-diagram-builder)

Create detailed scene diagrams in custom reports!

<figure><img src="/files/LBDDpTaPEBrcbvl8rsBJ" alt=""><figcaption><p>Sonoran CAD - Diagram Builder</p></figcaption></figure>

### 📧 Custom Branding

Sonoran CAD enables you to place your community's name and [branding](/cad/tutorials/customization/community-branding-and-info) in the CAD, [customize user account emails](/cad/tutorials/customization/custom-emails), host a [custom login page](/cad/tutorials/customization/custom-login-page) on **your own domain**, and more!

### 🧍 Self-Dispatch

Don't have a dedicated dispatcher for your community?\
Sonoran CAD allows your units to easily [self-dispatch](/cad/tutorials/dispatching/self-dispatch), attach to calls, preview other open calls, and more!

### 🖨️ PDF Records

Looking to store official criminal records or prior call logs in a PDF format? Sonoran CAD allows you to easily view and [print records to PDF](/cad/tutorials/records-management/pdf-records).

<figure><img src="/files/h090MbC1oYNY4i9cZqbX" alt=""><figcaption><p>Sonoran CAD - PDF Records</p></figcaption></figure>

### 🏠 Auto Suggested Street Names and Addresses

Sonoran CAD allows you to upload a [custom spreadsheet with your game's street names and addresses](/cad/tutorials/customization/addresses-and-street-names). Dispatchers in the call editor can quickly and easily search and filter these names automatically.

<figure><img src="/files/11MtNol0hSNOTMY2aQRt" alt=""><figcaption><p>Sonoran CAD - Street Addresses</p></figcaption></figure>

### ⌨️ Global Hotkeys

Only Sonoran CAD allows you to configure customizable [hotkeys](/cad/tutorials/other-features/configurable-hotkeys) for quick actions in the CAD. With our [Desktop application](/cad/download), hotkeys are even registered globally and do not require the application to be visible or in-focus to trigger commands.

![Sonoran CAD's global hotkey configuration!](/files/-MB13Ke0sO5X0F4JMU_K)

### 📦 Easy Migration

Sonoran CAD allows you to easily migrate your [10-codes ](/cad/tutorials/customization/10-codes#import-10-codes-from-a-spreadsheet-csv)and [penal codes](/cad/tutorials/customization/penal-codes#import-from-spreadsheet-csv) by importing directly from a spreadsheet (CSV) or JSON file. Fully [customizable record formats/templates](/cad/tutorials/customization/sharing-custom-records) can also be exported and shared between communities.

### 🎤 Voice Commands

Common tasks are made even easier with our [voice commands](/cad/tutorials/other-features/voice-commands). Sonoran CAD allows you to easily lookup a civilian's name, a vehicle license plate, or trigger a panic tone completely hands free!

### 📋 Frequent Updates

As shown in our [changelog](/cad/roadmap/roadmap-and-changelog/changelog), new features, fixes, and suggestions are added all the time!


# 📱Download The App

Sonoran CAD is available on the web, Windows desktop, iOS App Store, and Google Play store! Select your platform below and download the official app today!

<figure><img src="/files/Hp1b3sohB9ZemudfK6NI" alt=""><figcaption></figcaption></figure>

<table data-header-hidden><thead><tr><th width="200">Website</th><th>iOS App Store</th></tr></thead><tbody><tr><td>Website</td><td>iOS App Store</td></tr><tr><td>iOS App Store</td><td><a href="https://apps.apple.com/us/app/sonoran-cad/id1496539456">Download</a></td></tr><tr><td>Google Play Store</td><td><a href="https://play.google.com/store/apps/details?id=sonorancadmdt.app&#x26;hl=en_US">Download</a></td></tr><tr><td>Windows</td><td><a href="https://github.com/Sonoran-Software/SonoranCAD_Windows/releases/latest/download/Sonoran-CAD.exe">Download</a></td></tr><tr><td>macOS</td><td><a href="https://github.com/Sonoran-Software/SonoranCAD_MacOS/releases/latest/download/Sonoran-CAD-universal.dmg">Download</a></td></tr></tbody></table>

### MacOS & Windows Desktop

Our MacOS and Windows desktop application allows you to access [global hotkeys](/cad/tutorials/other-features/configurable-hotkeys) regardless of whether or not the app is in-focus. You can even configure our [Stream Deck plugin](/cad/integration-plugins/stream-deck-integration) to work with your deskop app!

### iOS and Android

Only Sonoran CAD has dedicated [iOS](https://apps.apple.com/us/app/sonoran-cad/id1496539456) and [Android](https://play.google.com/store/apps/details?id=sonorancadmdt.app\&hl=en_US) applications to access your community's CAD with a mobile native experience. Download it today for your tablet or mobile device!


# Steam Browser - Workaround

Lean how to more easily view Sonoran CAD while in-game.

![Sonoran CAD - In-Game Use](/files/-MjCOEY20HYpkpqkRrPS)

## Introduction

Many users utilize Steam's browser/overlay system. The Steam browser utilizes an out-of-date version of [CEF ](https://en.wikipedia.org/wiki/Chromium_Embedded_Framework)to run. Because of this, the Steam browser is known for it's infamous freezing, lagging, and general lack of support for developers.

While the Steam browser works well for basic websites, some users may experience issues with larger web apps like Sonoran CAD.

## Accessing the CAD In-Game

### 1. Download the Desktop App

[Download our official Windows desktop application](/cad/download). This allows support for our [global hotkeys](/cad/tutorials/other-features/configurable-hotkeys), [bodycam](/cad/integration-plugins/twitch-overlay-and-bot), and more!

### 2. Configure your Hotkey

Once you've opened the desktop app, open the settings modal to configure your `show` hotkey.\
When pressed, this will open the desktop app on-top of your game client.

![Sonoran CAD - Desktop Hotkey: Show](/files/-MjAy5nFqdZt0PIkGtPK)

### 3. Configure your Game Client

Depending on what game you're running, ensure it's in "Borderless Windowed" mode. This means the game is running as a window, with no top border.

In GTAV, this mode is actually just called `Full Screen`.

![GTA - Windowed Borderless Mode](/files/-MjAycSXOrNJOcSvHYFV)

### 4. Auto-Hide Windows Taskbar (Optional)

Specifically with streamers, some users may want to hide the Windows taskbar that appears when the CAD is placed on top of the game.

To do so, simply right-click the taskbar > Taskbar Settings > Automatically Hide the Taskbar

![Taskbar - Auto Hide](/files/-MjAz7xravGg2zsGNwGq)

### 5. Utilize the Hotkey

In-game, simply press your hotkey to toggle the CAD display both on and off.\
When the CAD is toggled off, your game will automatically regain focus!


# Web Browser - Clear Cache

This guide covers how to clear your desktop browser's cache.

You may need to manually clear your Sonoran CAD desktop browser's cache for troubleshooting steps. The guide below will walk you through the process.

### Chrome - Hard Refresh

Most modern browsers allow you to hold `Shift` and click `Refresh` at the same time. Doing so will reload the page with your local cache cleared.

### Chrome - Settings

In the Chrome address bar, paste the following:\
`chrome://settings/clearBrowserData?search=cache`

Select the following options and press `Clear Data`.

![Chrome - Clear Cache](/files/-MXA7wfhWNPOonNJYMg2)


# Desktop App - Clear Cache

This guide covers how to clear your Windows Desktop app cache.

You may need to manually clear your Sonoran CAD desktop application's cache for troubleshooting steps. The guide below will walk you through the process.

### 1. Open Your AppData Folder

In the window search bar type `run` and open the run application.\
Enter `appdata` then hit `Ok`<br>

![Windows - Run AppData](/files/-MXA5fBpKHs1rMUU2jFI)

### 2. Delete the Cache Folder

Navigate to `Roaming` > `Sonoran CAD` and delete the `Cache`, `Local Storage`, and `Session Storage` folders.

![Desktop App - Cache Folders](/files/GmlcA3l1WajR894tzTwa)


# GTA RP Tablet - Clear Cache

This guide covers how to clear your FiveM game cache.

You may need to manually clear your FiveM cache for troubleshooting steps. The guide below will walk you through the process. Sometimes updates will not automatically apply to your tablet and this process will resolve the issue.

{% hint style="warning" %}
Make sure to close GTA RP before performing these steps
{% endhint %}

To do this, right-click on your GTA RP application shortcut and click on the Open file location.

![](/files/tB8niW1VCG8nxVHCmPGR)

Now you will need to go to the GTA RP **Application Data**.

![](/files/pUOtJXAB7FsAsgqk5IEr)

You will find a **data** folder there; click on it.

![](/files/SDJMNxjbXfLoUcPiGVub)

Here you must delete the **cache, nui-storage**, **server-cache** and **server-cache-priv** folders.

![](/files/blMCKmMQnnQcv7gL8hMl)


# Steam Browser - Clear Cache

Learn how to clear your Steam browser's cache.

### 1. Open the Settings Page

In the Steam application, navigate to `Steam` > `Settings`

![Steam - Open Settings](/files/-Mii6tqtyFIAG-9zdTSC)

### 2. Clear Web Browser Cache

In the settings page, select `Web Browser` > `Delete Web Browser Cache`

![Steam - Clear Browser Cache](/files/-Mii6w-m-gP43l9M-RBN)


# Getting Started

Looking to use Sonoran CAD with your community? Check out our getting started guides below!

### Registering Your Account

Create your Sonoran CAD account to create a new community, or join an existing one. It's fast, easy, and free!

{% content-ref url="/pages/-M4pd8I89hE8aFeCuaZG" %}
[Registering Your Account](/cad/tutorials/getting-started/registering-your-account)
{% endcontent-ref %}

### Registering Your Community

Registering your community and creating your CAD is free and only takes seconds! See our guide below:

{% content-ref url="/pages/-M4pcg2VILrF8F-a776a" %}
[Registering Your Community](/cad/tutorials/getting-started/registering-your-community)
{% endcontent-ref %}


# Registering Your Account

Register your account with Sonoran CAD to easily create a new community, or join an existing one.

### 1. Navigate to the Login Page

On the website or app, select one of the login options:

<figure><img src="/files/hKXXlNrGih9F7DmZnCfS" alt=""><figcaption></figcaption></figure>

Users can register a Sonoran Software account at [account.sonoransoftware.com](https://account.sonoransoftware.com/).

### 2. Verify Your Email Address

{% hint style="warning" %}
Account verification emails may not be shown in your primary inbox.

If you're having trouble finding the email, check your spam, junk, promotions, or all mail folder.
{% endhint %}

If you've registered a new account, check your inbox for an email from Sonoran CAD.\
\
Select the "Verify Email" button, and your account will be automatically verified.<br>

![Account verification emails are sent as shown above](/files/-M4pig1M8X318nJVTvIb)


# Registering Your Community

Registering your community and creating a CAD is fast, easy, and free!

*NOTE:* If you have not already, you will need to [create a user account](/cad/tutorials/getting-started/registering-your-account) with Sonoran CAD.

#### 1. Enter In Your Community Information

Once logged in, press "Create Community" on the community selection menu.\
You will be prompted for three information fields:

1. Community Name
2. Website (Optional)

<figure><img src="/files/P5Yai59WzDF1m1awxI7M" alt=""><figcaption></figcaption></figure>

**2. Register Your Community**\
\
Once you've filled out the information, press "Register Community" to create your CAD.\
\
Your community icon will now be displayed under the "My Communities" section. You can click on this to log into your new CAD.


# Inviting Users to Your CAD

Invite your community members to join your community, and grant them access.

## Invitation Options

Sonoran CAD allows your community members to easily join your CAD. Users can manually enter in your community ID, or join automatically from a custom login page on your own domain.

### [Sonoran CMS Auto-Join](https://info.sonorancms.com/why-choose-sonoran-cms/why-choose-sonoran-cms)

[Sonoran CMS](https://info.sonorancms.com/why-choose-sonoran-cms/why-choose-sonoran-cms) can automatically add and remove accounts on your Sonoran CAD.

<figure><img src="/files/2offP0l82StomacZoHFw" alt=""><figcaption><p>Sonoran CAD x Sonoran CMS - Account Auto-Join</p></figcaption></figure>

### Custom Login Page

For more information on hosting your own custom login page, see our guide below:

{% content-ref url="/pages/-M4pmYRmsU4InyLMmIoO" %}
[Custom Domain & Login Page](/cad/tutorials/customization/custom-login-page)
{% endcontent-ref %}

### Manually Join with a Community ID

Users can [create an account](/cad/tutorials/getting-started/registering-your-account), and enter in your community ID in the "Join Community" popup.\
Users can search using your community ID and can press the "Join" button to add your community.\
\
From there, users can select your community card in the "My Communities" section to log into your CAD.<br>

<figure><img src="/files/W1Me39FLZwuGMoGpa6NC" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Forgot your community ID?

You can find this in your admin panel under Advanced > Limits > Community ID
{% endhint %}


# Granting Account Permissions

Granting permissions to user accounts is easy! We'll help you get started.

## Permission Granting Options

User accounts can be granted automatically with our [Discord bot](/cad/integration-plugins/discord-bot-integration), manually granted by an administrator in your community, or by generating a "[Permission Key](#permission-keys)" for users to access independently.

### [Sonoran CMS - Permission Sync](https://info.sonorancms.com/why-choose-sonoran-cms/why-choose-sonoran-cms)

Sonoran CMS is your single point of management for your community's documents, whitelisting, in-game permissions, community website, and more!

In addition to whitelisting and in-game permissions, [Sonoran CMS can automatically manage your Sonoran CAD permissions](https://info.sonorancms.com/integration-capabilities/sonoran-cad-sync)!

![Sonoran CAD x Sonoran CMS - Permission Sync](/files/m9uepma9rOwKeFd5oVGM)

### Discord Bot Roles

Our [Discord bot](https://info.sonoranbot.com/en/tutorials/getting-started) allows you to automatically sync Discord roles with CAD permissions.

### Manually Granting Permissions

#### 1. Open the Accounts Menu

In the admin menu, select the "Accounts" option to view all user accounts in your community.

{% hint style="info" %}
New and Pending User Accounts

New accounts are automatically set to "PENDING"\
To view pending accounts, you will need to change the accounts drop down in the top left of the window from "Active" to "Pending"
{% endhint %}

![The account grid displays all user accounts in your community](/files/S1FZ19Psi8LK0vKsTkOE)

#### 2. Select an Account

Simply click on an account to manually edit the permissions, ban, or kick a user.\
After changing a user's permissions, don't forget to press save!

![The account management panel allows you to toggle individual user permissions](/files/-M4ptfORTqogpiydhrxT)

### Permission Keys

Permission keys are a great way to allow users to automatically grant themselves their necessary permissions.

#### 1. Create a Permission Key

In the admin menu, select `Accounts > Permission Keys`\
Here, you can create a new permission key. Simply enter the new key name, toggle the associated permissions, and press save.

![Sonoran CAD - Permission Key Editor](/files/-M4puRyLa_QHKgoVlF2x)

#### 2. Apply a Permission Key

At the community menu, your users can enter the new permission key. After pressing enter, the associated permissions will automatically be applied to their account.

![Sonoran CAD - Apply Permission Key](/files/dTlJZIvBy37K76twav17)

{% hint style="info" %}
Invalid Key Error?

Permission keys are *case sensitive*, so ensure your users are entering the key exactly, with the proper capitalization.
{% endhint %}


# View Your Limits

In addition to our free version, Sonoran CAD offers optional paid subscriptions. Find out how to view your community's limits below!

### Admin > Advanced > Limits

In the admin page, select "Advanced" > "Limits" to view your community limitations.

<figure><img src="/files/dTMUBTNX4rOcwG8lqArn" alt=""><figcaption></figcaption></figure>

### Interested in a Paid Subscription?

View our [pricing](https://app.sonorancad.com/#/pricing) page for more information!


# Community ID and Ownership Code

This guide covers finding your community ID as well as finding your ownership authentication code.

## Finding your Community ID

Your community ID allows users to [manually join your community](/cad/tutorials/getting-started/inviting-users-to-your-cad).

The ID can be found in the account menu dropdown once inside of a community.

<figure><img src="/files/2leMQu6DbD6nYF5fbGqw" alt=""><figcaption></figcaption></figure>

## Authenticating your Ownership

While requesting support from an [official Sonoran team member](https://support.sonoransoftware.com/) (via our support portal), you may be asked to authenticate your community's ownership.

{% hint style="danger" %}
Your community's ownership authentication code can only be retrieved from your CAD owner.\
\
This code is used in support tickets to confirm that you are the registered owner of the community. **NEVER** give this code out to anyone that is not a member of the Sonoran support team!
{% endhint %}

1. In the admin page, navigate to `Advanced` > `Authenticate`
2. Press the "Request Code" button
3. Your ownership authentication code will be displayed on the screen

<figure><img src="/files/d17E9vhaZ6qRZXpZhcTw" alt=""><figcaption></figcaption></figure>


# Troubleshooting

Troubleshooting steps for common issues in CAD

## Cannot Load Sonoran CAD

### Tablet Not Loading

If you are using the in-game Tablet, please ensure that you are using the `Login with Sonoran` option, as both Apple and Discord have disabled OAuth over iFrames.

If you've created your account through Discord or Apple and would like to link it to a Sonoran login, please follow the steps shown [here](https://info.sonorancad.com/integration-plugins/integration-plugins/available-plugins/tablet#tablet-sso-sign-in-via-discord-apple).

Alternatively, if the tablet shows completely blank, then please delete your `nui-storage` folder as shown [here](https://info.sonorancad.com/integration-plugins/integration-plugins/available-plugins/tablet#known-issues).

### CAD Not Loading After Recent Update

If you cannot load Sonoran CAD due to a recent update, then please do `Ctrl` + `Shift` + `Refresh` to hard refresh the page and load it from scratch.

### CAD Not Loading (ESET Antivirus)

In certain cases, antivirus programs such as ESET are also known to block connections to the CAD. To add CAD to ESET's allow list, please follow the following instructions:

1. Open ESET program on your computer
2. Press the `F5` key to open Advanced setup.
3. Click `Web access protection`. Expand `URL list management` and click `Edit` next to `Address list`
4. Select `List of allowed addresses` and click `Edit`
5. Click `Add` in the `Edit list` window. Paste `*.sonorancad.com*` in the respective field, click `OK` → `OK` to save your changes, and exit the Advanced setup window.
   * If using CMS, also add `*sonorancms.com*`

For more information, see [here](https://support.eset.com/en/kb2960-exclude-a-safe-website-from-being-blocked-by-web-access-protection).


# Customization

Sonoran CAD offers dozens of customization options for your community. Check out the configuration options below!


# Custom Domain & Login Page

Looking to use your own domain name with Sonoran CAD? We've made it easy for you!

The custom login page allows your community members to register, sign-in, and access your CAD all on your own domain! In addition, user signups and password recovery emails have your [custom branding](/cad/tutorials/customization/custom-emails). Logging in also takes you directly to the community, instead of having to select the community at the menu.

![Sonoran CAD Custom Login Page Example](/files/-Mbt09rfVJ-qqHBbabZl)

## DNS Record Method (Recommended)

{% hint style="warning" %}
**If you are unsure how to add a DNS record, you will need to contact your domain registrar.**
{% endhint %}

### 1. Enter your Desired Domain

Your Sonoran CAD login page can be configured to display on your root custom domain or on a subdomain, such as **example.com** or **cad.example.com**.

<figure><img src="/files/e24BoCIxgOCAXCvxw1Yi" alt="" width="375"><figcaption></figcaption></figure>

### 2. Add DNS Records

{% hint style="warning" %}
When updating or changing an existing DNS record the changes may not be visible until public cache expires. Depending on your DNS provider, this can be anywhere from a **few minutes to 24-48 hours**.\
\
You can try running `ipconfig /flushdns` in a Windows CMD window and restarting your browser. Otherwise, you can test with other browsers/devices/users while you wait.
{% endhint %}

In your domain registrar’s DNS management panel, add two CNAME records using the name and content provided in Sonoran CAD, and add one TXT record to verify domain ownership.

<figure><img src="/files/FPPdAQUeYV9ywOveArwV" alt="" width="375"><figcaption></figcaption></figure>

#### DNS Example

{% hint style="warning" %}
**Cloudflare Users:** Be sure to have the **DNS record proxy DISABLED** - and set to `DNS Only`.
{% endhint %}

The example below shows the `TXT` record verifying the community ID, and two CNAME records verifying domain ownership.

<figure><img src="/files/su3rrPfUf0wLdwALzq82" alt=""><figcaption></figcaption></figure>

### 3. View your Custom Login Page

Users can now visit this custom domain to view the CAD with a custom login page, including receiving your [branded emails](/cad/tutorials/customization/custom-emails) for signups and password recovery messages.

<figure><img src="/files/9V7cp8QJtkBKXfvaUv7s" alt="" width="375"><figcaption></figcaption></figure>

## iFrame Method

If you are unable to use the [DNS method](#dns-record-method-recommended), you can also host an HTML page that renders the CAD in an iFrame.

### 1. Download the HTML File

[You can download a ZIP of the HTML page here.](https://sonoransoftware.com/tutorials/sonorancad/index.zip)

### 2. Edit the HTML File

Replace `YOUR_COMMUNITY_ID_HERE` in the `index.html` file with your [community ID](/cad/tutorials/getting-started/finding-your-community-id-and-authentication-code).

![](/files/-Mbt34_Nh44XmKrZ8fBE)

### 3. Host the HTML File

Now that you've saved the custom URL inside of the HTML file, you can host this with your own domain on your own web server. Users can now register and access your CAD from your custom domain, and will even receive your [custom branded emails](/cad/tutorials/customization/custom-emails) for account actions.

## In-Game Tablet

If you wish to use a custom login page when using the [in-game Tablet resource](broken://pages/-MCu5Pqlq4KeXD2LHoVt), you can set a convar in your server.cfg.\
\
The easiest way to show your [custom login page](/cad/tutorials/customization/custom-login-page) is to use a query string.

`"https://sonorancad.com/#/?comid=YOUR_COMMUNITY_ID_HERE"`

Simply replace `YOUR_COMMUNITY_ID_HERE` in the URL with your [community ID](/cad/tutorials/getting-started/finding-your-community-id-and-authentication-code).\
EX: `https://sonorancad.com?comid=midwestrp`

Add the following to your server.cfg **before** starting the tablet resource:

```
setr sonorantablet_cadUrl "YOUR_URL_HERE"
```

Fill in with your actual URL above with the comid you want.


# Customizing Your Layout

Sonoran CAD allows for fully customizable layouts to improve efficiency in your workflows.

## Getting Started

{% hint style="warning" %}
By default, "[Classic Layout](#enable-classic-mode)" is enabled in the customization menu.

To customize your dispatch/unit panel layout, you will need to [disable this](#8-classic-layout).
{% endhint %}

<figure><img src="/files/3NTHx8qr3wRlkJIJPESY" alt=""><figcaption></figcaption></figure>

### Context Menu Options

You can right click on any panel and to reveal multiple menu options.

1. [Lock/Unlock Window](#4-locking-unlocking): This locks and saves the window's position into place.
2. [Quick Resize](#2-quick-resize): This opens the quick resize tools for the window.
3. [Change Desktop](#multi-desktop): Move the window to a different desktop.
4. Bring to Top: This brings the window in front of any other open windows.
5. Minimize: This minimizes the window to a tab at the top of your screen.
6. Close: This closes the window.

<figure><img src="/files/awWLqEi8NQOcvIFJrMie" alt=""><figcaption></figcaption></figure>

### Quick Resize

Windows can be resized and positioned in multiple ways:

You can select one of the quick positions to move the window to one of the 9 quadrants on your screen. Or, toggle "Show Advanced" to specify the window's dimensions and positions down to the pixel.

Additionally, you can hover over the top edges of the window to click and drag the size.

![Sonoran CAD - Quick Resize](/files/-M_O4Ius4y5s73BPJqy9)

### Dragging to Position

Popout windows like a lookup, 10-code sheet, etc. can all be easily dragged and resized using the top header in addition to the quick resize tools.

Popout windows with in quick resize enabled or unlocked required windows (dispatch call editor, etc.) can be dragged simply by clicking and dragging anywhere on the window.

### Locking/Unlocking

When a window is locked into place it can no longer be moved. Additionally, the size and positioning is saved locally to your device and will persist after a refresh or relog. You can lock or unlock the window by right clicking on the window.

### Taskbar

#### Search Box

The task bar can be opened with a configurable [hotkey](https://app.gitbook.com/@sonoran/s/sonoran-software/~/drafts/-MeOE39Q3hdjvmYX_1Gy/tutorials/other-features/configurable-hotkeys) or with our [Streamdeck](https://app.gitbook.com/@sonoran/s/sonoran-software/~/drafts/-MeOE39Q3hdjvmYX_1Gy/integration-plugins/stream-deck-integration) integration. When opened, a search bar will be automatically focused on all non-mobile devices.‌

Here, you can search to quickly filter options. When the results have been filtered down to a single window, the search label will turn green indicating the window shortcut is available. Simply press `ENTER` to open the window.

![Sonoran CAD - Taskbar Filter](/files/-MeOGKpKiZc3NVafhli8)

## Multi-Desktop

Add additional desktops for more window space. Access the desktop menu in the right of the taskbar.

Quickly swap between desktops using [hotkeys](/cad/tutorials/other-features/configurable-hotkeys).

<figure><img src="/files/1bt1THvxfQYWOBAXCTzw" alt=""><figcaption></figcaption></figure>

## Customization Menu

Access the customization menu from the taskbar, or from the start menu.

<figure><img src="/files/Ygb6V1h3ARBFMYEU18xu" alt=""><figcaption></figcaption></figure>

<div><figure><img src="/files/CtzOvfpiLIogJVMx1Qxc" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Wf8aDFCPM8oN3oBrp8VX" alt=""><figcaption></figcaption></figure></div>

### Reset Layouts

If something goes wrong or you just want to start fresh, you can reset your saved layouts in the layout customization menu.

Simply right click on the empty area in the taskbar, or navigate to Start > System > Customization

#### Positioning

The taskbar is a desktop style action bar that will contain the "Start Menu" (Sonoran CAD logo) and your active/pinned tabs.

The taskbar can be positioned on the top, bottom, left, or right of your screen.

### Tab System

Sonoran CAD's advanced tab system allows for efficient window management and quickly accessing new programs.

<figure><img src="/files/jV4I85ERrmsKVlyl34tl" alt=""><figcaption></figcaption></figure>

**Drag-and-Drop:** Tabs can be dragged and dropped into new positions for organization. Pinned tabs will save their ordering past a refresh.

**Duplicate Windows:** When more than one window of the same type is minimized, the tab will show the number of minimized tabs in the top right. Clicking on a tab with more than one window minimized will display a menu allowing you to select a specific tab or open an entirely new one.

**Pinned Tabs:** Tabs can be pinned to the taskbar by right-clicking and selecting "Pin to taskbar" on the context menu. Pinned tabs will save their ordering past a page refresh. Pinned tabs with no actively minimized windows will be displayed as a lighter grey. Clicking on a pinned tab with no actively minimized windows will open a new window of that type.

**Icon and Label:** Tabs can be set to display as an icon, text, or both. This is toggleable in the customization menu.\
\&#xNAN;*Note: Text will only be displayed if the taskbar is in the top or bottom screen position.*

### Classic Layout

For some users, modifying the positions of dispatching panels may be too complicated. You can easily toggle on the "Classic Layout" to have the call windows automatically placed and responsive. Don't worry, popout windows can still be moved around and locked into place as normal.

#### Change Taskbar and Button Position(s)

Don't forget, you can easily [move the taskbar to the top or sides of the screen](#6-taskbar), [change what buttons appear](#7-tab-system), and [change the order of the buttons](#7-tab-system)!

### Theme Customization

Customize your CAD theme colors, desktop background, and more! Use the import and export buttons to share themes with other users.

<figure><img src="/files/1PLRKIfudsgzVRhBlC63" alt=""><figcaption></figcaption></figure>

### Saving Themes

Once you've customized your theme, press the save icon, enter a name, and your theme will be saved. Saved themes can be selected to switch between.

<figure><img src="/files/091MyfN7QWNgwxiehEBp" alt=""><figcaption></figcaption></figure>

### Import/Export Themes

Press **Export** to export the currently selected theme to a JSON file. Or, right-click the **Export** button to export all of your saved themes to a JSON file.

Press **Import** to select a JSON file with one or more saved themes.


# Community Branding and Settings

Customize your community's settings, branding, information, and more!

### Community Information

The admin customization info section allows you to customize your community's image, name, time zone, and more!

<figure><img src="/files/HK1bx6lNPdp46tdzvzHx" alt=""><figcaption></figcaption></figure>

| Field                 | Description                                                                                                                                             |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Image                 | Click the image at the top and upload the image to the CAD.                                                                                             |
| Name                  | <p>This is your community's name.</p><p>This will be displayed on your custom login page, community card, and top header.</p>                           |
| Subtitle              | This is the text displayed below your community name on your custom login page and community card.                                                      |
| Website               | This is a link to your community website, to be displayed in the community menu.                                                                        |
| Discord               | This is a link to your community Discord, to be displayed in the community menu.                                                                        |
| Voice Command Keyword | This allows you to change the default [voice command](/cad/tutorials/other-features/voice-commands) keyword to something custom.                        |
| Timezone              | All users in the CAD will have the clock at the top of the screen synced to this timezone. This helps avoid confusion, and improves report consistency. |

### Community ID

{% hint style="warning" %}
Custom community IDs require the **starter** version of Sonoran CAD or higher.\
For more information, see our [pricing](https://sonorancad.com/app/#/pricing) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

Looking to change your community ID?\
Navigate to `Admin` > `Advanced` > `Change Community ID`

![Sonoran CAD's Community ID Change](/files/eiSX9lGpp1ZcWVHZ0mUd)

Here, you can enter in and request a new community ID.\
Once submitted, you will be logged out. All active community members will also need to log out and back in to avoid any issues.

{% hint style="danger" %}
If your community has an active subscription, you will automatically be downgraded to the free version.

To transfer the subscription to the new community ID, update your community ID by pressing "Modify" on the active subscription in the [payment center](/cad/pricing/faq/accessing-the-payment-center).
{% endhint %}


# Creating Custom Record and Report Types

Learn how to create custom record and report types for your community!

{% hint style="danger" %}
Custom record and reports are limited based upon your subscription version.\
For more information, please view our [pricing page](/cad/pricing/faq).
{% endhint %}

<figure><img src="/files/Dew5B82Gc7BrUwgbzhY0" alt=""><figcaption></figcaption></figure>

Sonoran CAD allows your community to create custom records and incident reports for police, fire, and EMS services. This tutorial will cover the basics of creating a new custom report or record and general usage of the system.

## Video Tutorial

View our [video tutorial](https://youtu.be/UclCEnm5FHM) on creating custom reports and records.

## Creating a new Report or Record:

### 1. Navigate to the Record Editor

Navigate to `Admin > Customization > Custom Records`

### 2. Select the new Record Type

From the "New Record Type" dropdown, select the desired record type.\
\
Records follow the standard record editing and lookup system, and require a civilian or vehicle field to be searched.\
\
Reports can be searched in the unit's report center via number or identifier.

![Sonoran CAD's Custom Record Types](/files/2ab9g66Q2NA5WTOvTR1p)

### 3. Add Custom and Pre-made Sections

Add your desired custom and premade sections, edit fields, and more!

<figure><img src="/files/wpV2BvrBUHBKNUIdp0jU" alt=""><figcaption></figcaption></figure>

If your section is a custom character or vehicle field, you can toggle on the search button. This allows the section to be filled via when creating a new one. [Learn more about ensuring civilian and vehicle searches link to your custom record fields](#linking-vehicle-and-character-searches).

The enable duplicate button allows users to click and create a new copy of the section while filing the record.

!\[

Sonoran CAD: Custom Record Section Options]\(<../../.gitbook/assets/image (28).png>)

<details>

<summary>Field Types</summary>

**Text**

These fields are generic text boxes.

**Select**

The select field allows you to customize a dropdown box.

<div align="center"><img src="/files/-M9g18hB6i7tyv0sOHpM" alt="The &#x27;SELECT&#x27; field option"></div>

<div align="center"><img src="/files/-M9g24BX1QuI-j8FBE6L" alt="A &#x27;SELECT&#x27; field shown in the record editor"></div>

**Text Area**

The text area field allows you to create a large text area.

<div align="center"><img src="/files/-M9g2So-DZZYYCagDvRl" alt="The &#x27;TEXTAREA&#x27; field option"></div>

<div align="center"><img src="/files/-M9g2XtkroliD-_B9b-3" alt="A &#x27;TEXTAREA&#x27; field shown in the record editor"></div>

**Checkboxes**

The checkboxes type allows you to create multiple checkboxes.

<div align="center"><img src="/files/-MAZkqYZy1u0XDztfU70" alt="The &#x27;CHECKBOXES&#x27; field option"></div>

<div align="center"><img src="/files/-MAZl4Efw4UNKffQcYID" alt="A &#x27;CHECKBOXES&#x27; field shown in the record editor."></div>

**Random**

The random field allows you to randomly generate text. When a new record is created, this field will automatically generate the text based on the `mask` format. If the field is not disabled (`readOnly`) users can click the randomize button to continually generate new text.

<div><figure><img src="/files/2CmYwh7wrzkQiGC0oP13" alt="" width="300"><figcaption><p>Sonoran CAD: Random Field</p></figcaption></figure> <figure><img src="/files/YNBaUMS7ClFWOS2GfWNv" alt="" width="375"><figcaption><p>Sonoran CAD: Random Field</p></figcaption></figure></div>

**Date**

The date field allows you to specify a date field. You can also specify the formatting in the mask column.

When `readOnly` is selected, this field will auto-fill the current date for new records.

<div align="center"><img src="/files/-MAZlLliVb89LD9vpl51" alt="The &#x27;DATE&#x27; field option"></div>

<div align="center"><img src="/files/-MAZlcLAnzI3wlku4wXv" alt="The &#x27;DATE&#x27; field shown in the record editorTime"></div>

**Time**

The time field allows you to specify a time field.

<div align="center"><img src="/files/-MAZluglvb86ghk2qZ67" alt="The &#x27;TIME&#x27; field option"></div>

<div align="center"><img src="/files/-MAZm1HLCeMN9l2fXgQo" alt="The &#x27;TIME&#x27; field shown in the record editor"></div>

**Image**

The image field allows you to specify an image to be displayed.

<div align="center"><img src="/files/-MAZmHu6U1alxveAnHdS" alt="The &#x27;IMAGE&#x27; field option."></div>

<div align="center"><img src="/files/-MAZmaZ91_PMfYOSTfze" alt="The &#x27;IMAGE&#x27; field shown in the record editor"></div>

**Linked Records**

The linked records field allows you to link and cross-reference other records and reports to this record.

<div align="center"><img src="/files/-MQ_wVLD_9E-NGILVXJE" alt="Sonoran CAD - Linked Records"></div>

**Flags**

Custom flag options can be added to every record template. When checked, these flags will show up as alerts on any lookup. Similar to a checkboxes section, you will need to expand the section and add options.

<div align="center"><img src="/files/-MQ_xBAiaw3uovBg_Jfv" alt="Sonoran CAD - Custom Flags"></div>

**Label**

Labels can display static text, along with color attributes.

<div align="center"><img src="/files/-MbG3gdf8aSIXrLVYGtr" alt="Sonoran CAD - Custom Record Label"></div>

**Address**

The address dropdown will auto-filter [street address names that have been imported via CSV](/cad/tutorials/customization/addresses-and-street-names).

<div align="center"><img src="/files/-MbG2SpiKf78MVwledTO" alt="Sonoran CAD - Custom Record Address Field"></div>

**Unit Information**

The `UNIT_NUMBER`, `UNIT_NAME`, `UNIT_RANK`, `UNIT_AGENCY`, `UNIT_DEPARTMENT`, `UNIT_SUBDIVISION`, `UNIT_AGENCY_LOCATION`, `UNIT_AGENCY_ZIP`, and `UNIT_LOCATION` field types will all automatically insert the unit's information when they create a new record.

<div align="center"><img src="/files/QDLF50vJAMNvT95J7Nmp" alt=""></div>

</details>

<details>

<summary>Field Options</summary>

**Preview**

This will show the field label and value in the lookup table preview.

![](/files/hMVtKPLoK1ovcxvxPrqD) ![](/files/9DP8T04kQ78KHvy7QpIv)

**Supervisor**

This will disable the field for all non-supervisor unit identifiers.\
Your unit's supervisor status can be set in the unit identifier editor.

![Input field with SUPERVISOR toggled](/files/-M9g3kB1_vaDquoyK_os) ![Supervisor field highlighted red](/files/-M9g3qs6OAbdIf-K1jrW)

**Required**

Required fields will require the unit to enter something into the field before the record can be submitted.

![Input field with REQUIRED toggled](/files/-M9g463LMMWM1qO4Zjyd) ![Required field shown in the record editor](/files/-M9g4BAs-9a0BT3b--wZ)

**Unique**

Unique fields enforce that no duplicate values for this field are stored in the database. These values are enforced for the specific record template only.

Unique fields can only be on non-DB Sync records and in custom sections.

**Read Only**

Read only fields prevent the user from entering new or modified text. This is used for auto-filled fields like unit information when a new record is created.

Note: The `date` and `time` fields will auto-fill with the current date/time if `readOnly` is toggled, based on the [community's timezone](/cad/tutorials/customization/community-branding-and-info).

![Custom Records - Read Only Toggle](/files/uProbOIygGZNdsRTUSum) ![Custom Records - Read Only Fields](/files/irrrJiPoavqT3LhwBQw5)

</details>

<details>

<summary>Field Mask</summary>

The field mask allows you to specify a required format for the field.

* `#`: Number
* `S`: A-Z Letter
* `X`: Alphanumeric

**Example: Numbers**

Specifying `###` allows the user to only enter 3 numbers in the field.

<img src="/files/-MAZnoKql3XnbHTLbdZl" alt="" data-size="original">

**Example: Phone Number**

Specifying `(###) ### - ####` formats the user's input into a phone number.

<img src="/files/-MAZp0CrZeoiFDGMxWJq" alt="" data-size="original">

</details>

<details>

<summary>Field Size</summary>

The field size slider allows you to select a field size value between 1 and 12.Every row of a record has a space divisible by 12.

![](/files/O5gvem7v0sRbyFAx8pvL) ![](/files/DOSLQWvUk8SFlon1B2Hk)

</details>

<details>

<summary>Dependencies</summary>

Dependencies allow you to make an individual field or entire section visible based on conditions.

**Copy Parent Field ID**

Expand a field and copy the unique `Field Mapping ID`.

![](/files/I1XGtxjIgQsMIJZG9klt)

**Set Child Dependency**

On a section or field, click the dependency button to open the editor.

Paste the unique `Field Mapping ID` from before. The box will light up green when a valid ID is entered.

![](/files/85pg6wrxsK89me0mXF3X) ![](/files/RYQmzSfaTjZ653zZCAJL)

Checkbox or Select fields as the dependency parent will allow you to select what values will display this section or field.

Text fields as the dependency parent will allow you to enter what text values will display this section or field.

**Dependency Types**

There are multiple options for dependency types.

* `Equal`
  * Dependency will display if the entered content are an exact match to the specified value(s)
* `Not Equal`
  * Dependency will display if the entered content is NOT equal to the specified value(s)
* `Contains`
  * Dependency will display if the entered content contains any of the specified values(s)

</details>

### 4. Save the Record

Be sure to set the record name, and press SAVE

![Saving your new custom record](/files/-M9g69exSgq0F-BVI59W)

## Using your new Record Type

In the police, dispatch, fire, or EMS page you can now [add ](/cad/tutorials/records-management/adding-a-criminal-record)or [search ](/cad/tutorials/records-management/searching-for-records)for the new record type.

## Using your New Report

### 1. Accessing the Reports Center

In the police, dispatch, fire, or EMS page, select "REPORTS" in the top action menu bar\
From here, you can create a new report, search existing reports, and view reports requiring supervisor actions.<br>

![Sonoran CAD Reports Center](/files/-M9g7Qli0OoyJzSudfg8)

### 2. Creating a New Report

Select "New Report" and the desired custom report type from the dropdown button\
From there, you can fill out the fields and add the record.

{% hint style="info" %}
If the "NEW REPORT" button, or actions on the report viewer are disabled, you are missing the [permissions ](/cad/tutorials/getting-started/permissions)to do so.
{% endhint %}

![](/files/-M9g7y9e4e5oHEkhaSM4)

### 3. Supervisor Panel

The supervisor panel shows all reports that have a blank field that requires supervisor permissions.\
If you do not have the supervisor panel enabled, you will need to have the [supervisor permission granted on your account](/cad/tutorials/getting-started/permissions).

## Updating Old Records with New Preview Fields

Many communities decide to enable a custom field for preview *after* many records of that type have already been created.

Ex: Adding a previewed field to show the license "Type"

Communities can process a manual updating of historical records in the custom records menu.

![Resync Preview Fields](/files/tjbZ9KsHbf6LCrfFokWl)

![Resync Preview Fields - Confirm](/files/lrXSFVZmT1OVxtplqyxd)

### How does the re-sync work?

Sonoran CAD will search for all records of this type and attempt to automatically update any historical records with the latest preview field preferences.

{% hint style="warning" %}
Because Sonoran CAD records are entirely customizable, changing the field UID (unique ID) from one revision to the next will result in a failure to match and update the preview field.

\
Database sync records do not have the option to re-sync, as they will always be up-to-date.

\
A re-sync is only available once per 10 minutes.
{% endhint %}

## Linking Vehicle and Character Searches

Custom records allow the addition of a character and vehicle search button in sections. Clicking these allows the user to search and import a vehicle or character into the record section.

<figure><img src="/files/pYZqDMuwQ1uhY005GiuC" alt=""><figcaption><p>Custom Record - Vehicle and Civilian search sections</p></figcaption></figure>

Character and vehicle searches will not fill out fields in your record if the record field UIDs are incorrect.

In order for these searches to properly place the vehicle and civilian record in your custom record fields, specific field `uid` values must match.

### Civilian Field UIDs

The default `Civilian` record has the following field UIDs:

`first` `last` `mi` `dob` `age` `sex` `aka` `zip` `occupation` `height` `weight` `skin` `hair` `eyes` `emergencyContact` `emergencyRelationship` `emergencyContactNumber` `residence`

![](/files/0A0tqdnfovsS5kf7rPxn)

When creating your custom record section with civilian search imports, those field UIDs will also need to match. The image below shows a custom record with the civilian search section toggled with the matching field UIDs.

![](/files/IOg2F5TlrtCSzq8H1MJU)

### Vehicle Field UIDs

The default `Vehicle Registration` record has the following field UIDs

`type` `plate` `make` `model` `color` `year`

![](/files/WwQhGk0vU4eEQfIkH3qu)

When creating your custom record section with vehicle search imports, those field UIDs will also need to match. The image below shows a custom record with the vehicle search section toggled with the matching field UIDs.

![](/files/6W4c7x1g3BDmrvvFZt2f)

## Common Issues

### ERROR: This record template has no fields enabled for preview.

You may encounter this error whilst attempting to save a custom record template.

"Preview Fields" are what show up when you run a record lookup (first, last, age, plate, etc.). The image below shows an example of "preview fields" on a vehicle registration record.

<figure><img src="/files/dRyqsGpXlcrj0jj2SnlL" alt=""><figcaption><p>Sonoran CAD - Preview Fields Example (Shown in Yellow)</p></figcaption></figure>

We require at least one field to be enabled for preview, as running a lookup with no preview fields would return a blank list of records.

To designate a field as a "preview field", simple toggle the magnifying glass icon in the custom record editor, as shown below.

<figure><img src="/files/lhtFp6p9CkNeGEUJlmHm" alt=""><figcaption><p>Sonoran CAD - Enable Field for Preview</p></figcaption></figure>


# Sharing Custom Records

Sonoran CAD allows you to share custom record formats between different communities.

### Download the JSON File

In the custom record editor (Admin > Customization > Custom Records) select the blue download button next to the custom record. This will download a .json file with the custom record formatting.<br>

*Do not edit this JSON formatting unless you are highly familiar with the* [*proper formatting*](/cad/api-integration/api-endpoints/general/custom-records#record-formatting)*. It is highly recommended to edit everything in the UI editor only.*

![Sonoran CAD - Download Custom Record Format](/files/-MKXJ_2L9EAKS2JRzAwK)

### Import a Shared JSON File

In the custom record editor (Admin > Customization > Custom Records) select the blue download button next to the custom record. This will download a .json file with the custom record formatting.

![Sonoran CAD - Import Custom Record JSON File](/files/-MKXKX97jp5RpaQSlkX2)

Paste in the JSON content from the download to populate the record editor with the new record format.

![Sonoran CAD - JSON Import Prompt](/files/-MKXLMp6105XVsuRNLlo)

From here, you can [edit the custom record and save it](/cad/tutorials/customization/creating-custom-record-and-report-types) as you normally would.


# Custom Search Types

Create lookup types for your custom record fields. Search by any custom record field in your community!

## Custom Lookup Types

With Sonoran CAD’s custom records, communities can define custom lookup types that enable users to search records using tailored criteria.

Example: Vehicle Search — locate a registration by attributes such as make, model, color, etc.

<figure><img src="/files/qeER4E5l8XknDL1xI1ou" alt=""><figcaption></figcaption></figure>

## Configuring Lookup Types

Lookup Types can be customized under **Admin** > **Customization** > **Customization** > **Lookup Types**

### Basic Lookup Types

Basic lookup types allow you to search based on a single record field.

In this example, we will create a lookup type to look for a civilian character's SSN (Social Security Number).

<details>

<summary>1. Add Lookup Type</summary>

Select **Add Lookup Type** at the bottom of the menu.

Enter the lookup name, **SSN**.

<figure><img src="/files/aQte1yJ6jwWudDpladMe" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>2. Select the Record Field</summary>

Select the **Record Field** button. This will open a dialog to select a specific record field. Once selected, this field will be searchable when opening a record lookup.

<div><figure><img src="/files/bqhgkEDT7Ym8XNbEAvvB" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Pv8tEjFpG6mFeUKP970t" alt=""><figcaption></figcaption></figure></div>

</details>

<details>

<summary>3. Optional: Re-Index Record Fields</summary>

Whenever a record is created or updated, any fields tied to custom lookup types are re-indexed in the database. These indices are what power custom lookup queries.

To ensure records created before a custom lookup type existed are included, [those records must be re-indexed](#re-index-records).

</details>

### Advanced Lookup Types

Advanced lookup types allow you to search based on multiple record field criteria at once.

In this example, we will create a lookup type to look for a character based off of optional address, height, weight, skin color, etc.

<details>

<summary>1. Add Lookup Type</summary>

Select **Add Lookup Type** at the bottom of the menu.

Enter the lookup name, **Character**.

Toggle the mode to **Advanced**.

<figure><img src="/files/G95BmeN3GbcNTwuETKEh" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>2. Select the Record Fields</summary>

Advanced lookup types work the same as basic lookup types, but allow for more than one criteria.

* Select the **Add Field** button.
* Enter a **Field Label** (Address).
* Select the **Record Field**. This will open a dialog to select a specific record field.

<div><figure><img src="/files/JOc3VN8658vpF9y95pWX" alt=""><figcaption></figcaption></figure> <figure><img src="/files/XlXONG38jvw7XgJapIA3" alt=""><figcaption></figcaption></figure></div>

Repeat the steps above to add as many search fields as desired.

</details>

<details>

<summary>4. Additional Field Options</summary>

**Requirement**

Toggle **Requirement** from **Optional** to **Required** to force users in the lookup window to enter data into this field prior to running a lookup.

**Width**

The **Width** determines how wide the search field is in the lookup window. For custom search types with several search fields, this can be used to condense the UI.

Width values range from 1-12, with 12 being full-width.

Select the **Preview** button at the top of the section to see the layout of your custom lookup type. Fields can be reordered via drag-and-drop.

<figure><img src="/files/WKe9k6fO1PXB6KvcTaN6" alt=""><figcaption></figcaption></figure>

**Range Search**

Text fields with a mask restricting input to numbers only (`#` symbol) will display the option to enable a range input. This allows users to search based on minimum and maximum number values.

Ex: Search by minimum and/or maximum age.

**Placeholder**

Placeholder text will be displayed inside the lookup field when empty.

**Mask**

Custom text input search fields can have a mask applied to enforce a specific format of numbers, symbols, letters, etc.

</details>

<details>

<summary>3. Optional: Re-Index Record Fields</summary>

Whenever a record is created or updated, any fields tied to custom lookup types are re-indexed in the database. These indices are what power custom lookup queries.

To ensure records created before a custom lookup type existed are included, [those records must be re-indexed](#re-index-records).

</details>

## Re-Index Records

Whenever a record is created or updated, any fields tied to custom lookup types are re-indexed in the database. These indices are what power custom lookup queries.

To re-index all existing records, select **Re-Index All Records** at the top to start this process.

Depending on the number of custom records in your community, this may take some time. **Record re-indexing can only be performed once per 12-hours.**

<figure><img src="/files/V5y9061nCnLfPaVLf2fa" alt=""><figcaption></figcaption></figure>

## Lookups Across Multiple Record Types

When a custom lookup type is configured with a linked field, the system uses the **Field Mapping ID** to determine which database fields to query.

The **Field Mapping ID** defined in the lookup type is shown in the **Record Field** selector. Any [custom record type](/cad/tutorials/customization/creating-custom-record-and-report-types) containing a field with the same **Field Mapping ID** will be included in the search.

<div><figure><img src="/files/4mpLrQCX2m5jen85wBOR" alt=""><figcaption></figcaption></figure> <figure><img src="/files/7XRudd1S18fCMhNeA9Tk" alt=""><figcaption></figcaption></figure></div>

## Database Sync Configuration

<details>

<summary>Database Sync Configuration</summary>

If the search field is provided by your in-game database with [database sync](/cad/integration-plugins/database-sync-and-merge), this custom record column will be display in your database sync configuration for any character, license, or vehicle registration.

This will then allow you to search characters, licenses, or vehicle registrations from your in-game database based on this custom column value.

![Sonoran CAD - Database Sync and Custom Searches](/files/-MT90amKes6zgBvv6zzK)

</details>


# Geographical Settings

For communities outside of the US, Sonoran CAD allows you to change your CAD's geographical settings!

## Geographical Settings

Sonoran CAD offers additional phrasing customization for any country or locality.

Under **Admin** > **Customization** > **Geographical Settings** > communities can customize additional phrasing, currency symbols, and more.

<figure><img src="/files/D8I2Jm2wPcCc13VCHVCn" alt=""><figcaption></figcaption></figure>


# Penal Codes

Sonoran CAD allows you to customize your community's penal codes, charge type names, bond type names, and more!

{% hint style="info" %}
Community customization is not included with the free version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

## What are penal codes?

Penal codes can easily be referenced and cited in records/reports as charges.

![Sonoran CAD - Penal Code Reference Window](/files/-MCT6Ob2BwRU8bjxDarr)

![Sonoran CAD - Charges Section](/files/-MCT69Fkpcgz9I7Yw-zz)

### 1. Charge Types

You can create your own "Charge Type" options for penal codes. If your country does not have "felonies" you can edit or remove this option.

You can also use the "Auto Sort" feature to quickly format the order of these charge types.

Be sure to hit "Save" before exiting the page.

![Sonoran CAD - Custom Charge Types](/files/-MCT5uhUkZPyHE6rgMRl)

### 2. Bond Types

You can create your own "Bond'/Bail Type" options for penal codes. Again, if your country does not use these, you can edit or remove them as needed.

You can also use the "Auto Sort" feature to quickly format the order of these charge types.

![Sonoran CAD - Custom Bond & Bail Types](/files/-MCT7k1oyo6SkK8MckoF)

### 3. Penal Codes

Adding, editing, or removing a penal code is easy. Simply click on the existing code to edit it, or press "New Penal Code" to create a new one.

![Sonoran CAD - Penal Code Management](/files/-MCT8DJaaLEUJcmkUlzj)

![Sonoran CAD - Penal Code Editor](/files/-MCT86p03baI_N9BnRFF)

### 4. My locality doesn't call them "Penal Codes"

Sonoran CAD allows you to change the naming of "Penal Codes" to anything else you'd like.\
Learn more about our [geographical customization](/cad/tutorials/customization/geographical-settings).

## Import from Premade Spreadsheet (CSV)

We've compiled penal code spreadsheets for all 50 US states. [Download a CSV from our penal code repository](https://github.com/Sonoran-Software/CAD-Penal-Codes) and [import it into the CAD](#id-4.-import-the-csv-file).

## Import from Customized Spreadsheet (CSV)

Sonoran CAD allows you to easily import your penal codes from a spreadsheet (.CSV) file.

{% hint style="danger" %}
**Spreadsheet (CSV) importing is only supported directly from Google sheets.**

Support will not be provided to users modifying their spreadsheets with Excel, or any other program. The official Google sheet includes specific safety checks preventing invalid formats, blank spaces, etc.
{% endhint %}

### 1. Copy the Google Sheet

Navigate to our [official penal code Google sheet](https://docs.google.com/spreadsheets/d/1Hcm0gHPq8nZx8aPetDRiQXgeAoQMz3CYk2ouwyabmOc/copy) and make a copy. Using a copy of our official sheet ensures your penal codes are formatted correctly.

**You may ONLY use the Google sheet directly. Editing this via Excel or any other program is NOT supported.**

![Penal Codes - Copy Sheet](/files/-MSF2Rul47JOOAGjNbLm)

### 2. Add Your Penal Codes

Now that you have copied this sheet into your Google Drive, you can add new rows and format your penal codes.

{% hint style="warning" %}
**Do NOT modify the very first row.** These names must remain the same to properly format the penal code structure.

Additionally, the `bondAmount` column must be kept as a number.\
All other columns must be formatted as text.
{% endhint %}

![](/files/p1nGuH4XT9Bk1YPOp6OH)

### 3. Download the CSV

In Google Sheets, navigate to File > Download > Comma Separated Values (.csv) to download the file.

![Google Sheets - Download CSV](/files/Xj7046y4yLKjclUXApQU)

### 4. Import the CSV File

In Sonoran CAD, navigate to Admin > Customization > Penal Codes

In the penal codes section, select the "Import" button.\
Then, select "CSV" as the import type and select your downloaded CSV file.

![Sonoran CAD - Import Data](/files/-MSF3m1PSXV-ddPMwavp)

![File Selector - Select File](/files/-MSF44YpokdFwtouA1ew)

After selecting the CSV file, your penal codes will be imported into the CAD and saved automatically.

### Troubleshooting

Having issues importing your CSV? [Be sure you are using and editing our Google Sheet with the Google Sheets program only](#1-copy-the-google-sheet).

Our Google sheet includes specific error checking and validation to handle common mistakes.\
**Support is not provided if you are using Excel, or any other program.**

## Import from JSON

You can also build and format your penal codes directly into JSON. These JSON formatted penal codes can be sent via our [API endpoint](/cad/api-integration/api-endpoints/general/set-penal-codes), or pasted directly into the UI for a more user-friendly experience.

### 1. Format the JSON Structure

The JSON structure is an object array. Be sure to strictly follow the format. All keys are strings, with the exception of `bondAmount` being a number.

```javascript
[
        {
            "code": "(2)06",
            "type": "Felony",
            "title": "Armed Robbery",
            "bondType": "Federal Bail Bond",
            "jailTime": "5-10 Years",
            "bondAmount": 20000
        },
        {
            "code": "(2)07",
            "type": "Felony",
            "title": "Murder",
            "bondType": "Federal Bail Bond",
            "jailTime": "5-50 Years",
            "bondAmount": 100000
        }
    ]
```

### 2. Import the JSON Structure

In Sonoran CAD, navigate to Admin > Customization > Penal Codes

In the penal codes section, select the "Import" button.\
Then, select "JSON" and paste the JSON object array of penal codes.

![Sonoran CAD - Import Data](/files/-MSF3m1PSXV-ddPMwavp)

![Sonoran CAD - Paste JSON Content](/files/-MSdiOfP7H3MasQ0oNFT)

After pasting the JSON content, your penal codes will be imported into the CAD and saved automatically.


# 10-Codes

Learn more about importing your 10-codes into Sonoran CAD.

## What are 10-Codes?

10-Codes are used to differentiate and abbreviate dispatch situations.\
Ex: 10-10: Fight in Progress

### Modify 10-Codes

Under Admin > Customization > 10-Codes you can add, edit, or remove 10-codes for your community.

<figure><img src="/files/PlbLj7Dxxb4Rz7p2Tfx8" alt=""><figcaption></figcaption></figure>

### My locality doesn't call them "10-Codes"

Sonoran CAD allows you to change the naming of "10-Codes" to anything else you'd like.\
Learn more about our [geographical customization](/cad/tutorials/customization/geographical-settings).

## Import from Premade Spreadsheet (CSV)

We've compiled 10-code spreadsheets for all 50 US states. Download a CSV from our [10-code repository](https://github.com/Sonoran-Software/CAD-10-Codes) and [import it into the CAD](#id-4.-import-the-csv-file).

## Import 10-Codes from a Spreadsheet (CSV)

Sonoran CAD allows you to import 10-codes directly from a spreadsheet.

{% hint style="danger" %}
**Spreadsheet (CSV) importing is only supported directly from Google sheets.**

Support will not be provided to users modifying their spreadsheets with Excel, or any other program. The official Google sheet includes specific safety checks preventing invalid formats, blank spaces, etc.
{% endhint %}

### 1. Copy the Google Sheet

Navigate to our official [10-code Google sheet](https://docs.google.com/spreadsheets/d/1XOqjkrKcvP6hc9F6DynK03HqLVY8KWV7M4g6aQddBu8/copy) and make a copy. Using a copy of our official sheet ensures your 10-codes are formatted correctly.

**You may ONLY use the Google sheet directly. Editing this via Excel or any other program is NOT supported.**

![Sonoran CAD - Copy 10-Codes Spreadsheet](/files/-MSUcNwohkz-2YWDJxmF)

### 2. Add Your 10-Codes

Now that you have copied this sheet into your Google Drive, you can add new rows and format your 10-codes.

{% hint style="warning" %}
**Do NOT add additional columns.**\
Every 10-code must be on a separate row to be properly imported into Sonoran CAD.
{% endhint %}

![Sonoran CAD - 10-Codes CSV](/files/-MSUcs_RAqTv7DT4QHQ1)

### 3. Download the CSV

In Google Sheets, navigate to File > Download > Comma Separated Values (.csv) to download the file.

![Google Sheets - Download CSV](/files/-MSUdC8UX-0n6_U0SiKm)

### 4. Import the CSV File

In Sonoran CAD, navigate to Admin > Customization > 10-Codes

In the 10-codes section, select the "Import" button.\
Then, select "CSV" as the import type and select your downloaded CSV file.

![Sonoran CAD - Import Data](/files/-MSUdXF30E9PPkfXXXZf)

![File Selector - Select CSV](/files/-MSUdgAbVUfevkb3ENIg)

After selecting the CSV file, your 10-codes will be imported into the CAD and saved automatically.

### Troubleshooting

Having issues importing your CSV? [Be sure you are using and editing our Google Sheet with the Google Sheets program only](#1-copy-the-google-sheet).

Our Google sheet includes specific error checking and validation to handle common mistakes.\
**Support is not provided if you are using Excel, or any other program.**

## Import from JSON

You can also build and format your 10-Codes directly into JSON. These JSON formatted 10-Codes can then be pasted directly into the UI.

### 1. Format the JSON Structure

The JSON structure is an string array. Be sure to strictly follow the format.

```javascript
[
  "10-10: Fight In Progress",
  "10-11: Dog Case",
  "10-15: Civil Disturbance",
  "10-16: Domestic Problem",
  "10-17: Meet Complainant",
  "10-25: Report in Person (Meet)",
  "10-31: Crime in Progress",
  "10-32: Man with Gun",
  "10-33: Emergency",
  "10-34: Riot",
  "10-35: Major Crime Alert",
  "10-37: Suspicious Vehicle",
  "10-45: Animal Carcass",
  "10-46: Assist Motorist",
  "10-52: Ambulance Needed",
  "10-55: Intoxicated Driver",
  "10-56: Intoxicated Pedestrian",
  "10-57: Hit and Run",
  "10-59: Escort",
  "10-70: Fire Alarm",
  "10-73: Smoke Report",
  "10-80: Chase in Progress",
  "10-89: Bomb Threat",
  "10-90: Bank Alarm",
  "10-91: Pick Up Prisoner / Subject",
  "10-92: Improperly Parked Vehicle",
  "10-94: Street Racing",
  "10-96: Mental Subject",
  "10-98: Prison / Jail Break"
]
```

### 2. Import the JSON Structure

In Sonoran CAD, navigate to Admin > Customization > 10-Codes

In the penal codes section, select the "Import" button.\
Then, select "JSON" and paste the JSON string array of 10-codes.

![](/files/-MSUdXF30E9PPkfXXXZf)

![Sonoran CAD - Paste JSON Content](/files/-MSdj48-k0TjrwgxQfA9)

After pasting the JSON content, your 10-codes will be imported into the CAD and saved automatically.


# Addresses and Street Names

Sonoran CAD allows you to upload custom street names to auto-populate in the dispatch call editor.

{% hint style="warning" %}
Street address customization requires the **plus** version of Sonoran CAD or higher.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

<figure><img src="/files/t9Smjwe0wubl4NAZMTWx" alt=""><figcaption></figcaption></figure>

## Import Street Names from a Spreadsheet (CSV)

### 1. Copy the Google Sheet

* [GTAV Street Names](https://docs.google.com/spreadsheets/d/1IkbNJNhMYToqHQE6eb3ujp6ufkjPkLgDgq29g9woGR0/copy)
* [ER:LC Roblox Street Names](https://docs.google.com/spreadsheets/d/1QEuImE6GH1H6sZFltLMYt7HUcExBF3_-hhNWAB9r6Hg/edit?usp=sharing)

Navigate to one of our official street name Google sheet and make a copy. Using a copy of our official sheet ensures your street names are formatted correctly.

![Sonoran CAD - Copy Street Name Spreadsheet](/files/-MSZnyNOlAqJD6-I7E1K)

### 2. Add Your Street Names

Now that you have copied this sheet into your Google Drive, you can add new rows and format your street names and addresses.

{% hint style="warning" %}
**Do NOT add additional columns.**\
Every street name must be on a separate row to be properly imported into Sonoran CAD.
{% endhint %}

![Sonoran CAD - Street Names CSV](/files/-MSZoBHzypi7DUg9mvAt)

### 3. Download the CSV

In Google Sheets, navigate to File > Download > Comma Separated Values (.csv) to download the file.

![Google Sheets - Download CSV](/files/-MSZoPWI8xMnG-osx3Wr)

### 4. Import the CSV File

In Sonoran CAD, navigate to Admin > Customization > Customization > Addresses

In the addresses section, select the "Import" button.\
Then, select "CSV" as the import type and select your downloaded CSV file.

![Sonoran CAD - Import Data](/files/-MSUdXF30E9PPkfXXXZf)

![File Selector - Select CSV](/files/-MSZoedWtDHM7H9o27lq)

After selecting the CSV file, your street names and addresses will be imported into the CAD and saved automatically.

### 5. View the Call Editor

In the dispatch call editor, the `address` section is now a dropdown. This dropdown will auto-filter and suggest your street names and addresses as you type.

![](/files/-MSZpDO0HIrwR4zojlJU)

### 6. Utilize in Custom Records

Custom records can also have a field with the type set to `address`. This field will auto-filter the same list of street addresses from your gamemode.

![Custom Records - Address Field](/files/-MbG2SpiKf78MVwledTO)


# Unit Status Codes

Sonoran CAD allows you to customize your unit status code options!

{% hint style="info" %}
Community customization is not included with the free version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

### Unit Status Codes

The admin customization info section allows you to customize your community's unit status codes:

![Customize your unit status codes](/files/-M5-4R_kEPpiU2WIb0IU)

Once saved, your status options will be shown for emergency units:

![Configured unit status options are displayed in the top unit action bar](/files/-M5-4gIzWX8qKWR05akD)


# Tone Board

Learn more about Sonoran CAD's customizable tone board!

{% hint style="info" %}
The tone board is limited based upon your community's version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

## Customizing Tones

### 1. Access the Customization Menu

In the admin page, navigate to `Customization` > `Customization` > `Tone Board`

![Sonoran CAD - Tone Board Customization](/files/-MddCQTkRhyHmXmk0RVR)

### 2. Uploading Tones

#### Direct Upload

You can upload .mp3, .wav, and .mp4 files directly to the CAD with the **plus** version.

![Sonoran CAD - Tone Uploader](/files/RCX57dZ3x0GE5cRpl8nc)

#### External Upload

If your community is not on the plus version or higher, you will need to link your tone from an external URL. You can upload to a website or file store of your choosing, but it must be a direct link ending in the file extension (.mp3, .mp4, .wav).

You can even use something as easy as Discord.

1. Upload your tone file to Discord in any chat
2. Right click on the file name or download button
3. Select `Copy Link`
4. Paste the direct URL into Sonoran CAD

![Discord - Copy Direct File Link](/files/gK2qxzRzZeLgueEPKBAw)

Your direct link will look something like this:\
`https://cdn.discordapp.com/attachments/12345/abc123/signal_100.mp3`

### 3. Customize the Available Tones

Here, you can add new tones and specify the following:

* Tone Label
* Tone Link/URL (Direct uploading available based on your [version](/cad/pricing/faq))
* Tone Button Color (Hex)
* Tone Button Icon

#### Tone Icons

Tone buttons support icons from several different web libraries. Clicking the search icon will open the [Font Awesome icon library](https://fontawesome.com/v5.15/icons) search. Here, you can search for an icon - click on it - and paste the icon name into the CAD. You can also use [material theme icons](https://fonts.google.com/icons).

![Font Awesome - Example Icon Name](/files/-MddD49_jcWxVvkMpH55)

#### Save your Tones

Don't forget to press save!

## Selecting the Tone "Play To" Groups

The tone board can be set to play tones for specific identifiers, groups, agencies, departments, subdivisions, and dispatch calls.

You can click on any one of these items and select "Tone Board" to add this group to the play target on the tone board.

![Sonoran CAD - Tone Board Targets](/files/-Mfv0N8iCJbparl2rSHw)

## Playing Tones as Dispatch

### Opening the Tone Board Window

The tone board can be opened by users in dispatch or self-dispatch mode.

From the start menu, this panel is located under `Dispatch` > `Tone Board`

This window can also be opened via a [custom hotkey](/cad/tutorials/other-features/configurable-hotkeys), also supported with our [Streamdeck Integration](/cad/integration-plugins/stream-deck-integration).

The window can also be minimized, and [pinned to the taskbar](/cad/tutorials/customization/customizing-your-layout#7-tab-system) on your screen for quick access.

### Tone Board Shortcuts

The tone board is designed to be as efficient as possible.

#### Search Filtering

The top of the tone board includes a search box, allowing you to quickly filter tone options as you type.\
If you filter down the options to a single tone, the search label will turn green - allowing you to press `ENTER` to play the tone.

The tone board is also designed to auto-focus this search box whenever it is opened, or the header is clicked.

![Sonoran CAD - Tone Board](/files/-Mfv0VUlUGYTbMVtaZ20)

#### Hotkey Auto-Window

[Global hotkeys](/cad/tutorials/other-features/configurable-hotkeys) allow you to open the tone board in a more advanced way. Opening the tone board with your [keyboard ](/cad/tutorials/other-features/configurable-hotkeys)or [Streamdeck ](/cad/integration-plugins/stream-deck-integration)shortcut will first check for any existing tone board window opened or minimized. If one is found, that existing window will be opened and focused to the search bar. Otherwise, a new tone board window will be opened with the search box focused.

#### Manual Tone Select

Instead of using the search box filtering, users can also manually click the tone board button to play the audio.

### Tone Board Repeat

Tones can be repeated at a specific interval.

When sending a new tone, toggle `repeat` on and customize the `seconds` and `count` values. When the tone is sent, the repeat timer and counter will visualize any actively repeating tones.

<figure><img src="/files/GZhDw3op807pDCbQoPg0" alt=""><figcaption></figcaption></figure>

### Stacked Tones

Toggle the **Stack** icon on and select multiple tones to be played in order. Drag-and-drop the tones to re-order. Press the **Play** button to play the stack.

<figure><img src="/files/ruK3ihuA60O8EC68ImPI" alt=""><figcaption></figcaption></figure>

### Text-to-Speech

The tone board can also play text-to-speech to users. Enter text into the **Text To Speech** box to send.

Additionally, you can select the **Microphone** button to record your own voice and translate that to text before sending out the speech-to-text tone.

<figure><img src="/files/9EMVCZgCI8vgRBCswOCs" alt=""><figcaption></figcaption></figure>


# Custom Audio Notifications

Learn more about customizing the audio notifications for new dispatches, dispatch signals, and more!

{% hint style="info" %}
Custom audio notifications are limited based upon your community's version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

## Customizing your Audio Notifications

### 1. Access the Customization Menu

In the admin page, navigate to `Customization` > `Customization` > `Notification Tones`

![Sonoran CAD - Custom Audio Notifications](/files/-MddGCLyekFF483Nqk8v)

### 2. Customize the Audio Tones

Here, you can specify the audio file that will play for new dispatches, panic sounds, dispatch signals, and more.

### 3. Save

Don't forget to press save!

### 4. Toggle On/Off Text-To-Speech (Optional)

Text-to-speech notifications are currently only available on the Chrome web version. You can toggle these on/off in the settings menu.

![Sonoran CAD - Toggle TTS](/files/-MddGoax4mkTW5XPQ-Qo)

## Troubleshooting

### Text-To-Speech Cuts Out Game Audio

For some users, text-to-speech sounds may cut out in-game or other audio sources. This is because the selected voice may be a Windows or system based source.

Simply change the selected TTS voice to a non-windows or system based source to resolve.

### Text-To-Speech Wrong Language

Text-to-speech voice and language options varry based on the user device or browser. If your text-to-speech notifications are in the wrong language (Ex: not English) use the following:

#### OSX Web

* Users report limited or incorrect languages when using Safari. Switch to Chrome for the best compatability.

#### Windows Desktop

* PC Settings > Time & Language > Speech
  * Install additional voice options


# Custom Emails

Sonoran CAD allows you to send customized, branded emails when your community members register from your custom login page.

{% hint style="warning" %}
NOTE: If you have not already, you will need to configure your [custom login page](/cad/tutorials/customization/custom-login-page).
{% endhint %}

{% hint style="info" %}
Community customizations is not enabled with the free version of Sonoran CAD.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

#### 1. Configure Your Emails

In the admin customization menu, expand the "Custom Community Emails" section.\
Here, you can set the email header, sub-header, and body text.\
\
\&#xNAN;*NOTE:* Your community logo will automatically be inserted into all emails.

![The email customization panel allows you to enter your own text](/files/-M4pxLpuYoXyqOtjq9DX)

#### 2. Save and Enjoy!

Once saved, all user account registration and password recovery emails sent from your custom login page will be customized as configured.

![Custom emails are sent to users as configured](/files/-M4pycOoI12gq1fG1t05)


# Quick Links

Sonoran CAD allows you to add and customize quick links for all emergency services to view.

{% hint style="warning" %}
Community customization is not included with the free version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

### Adding Quick Links

In the admin customization menu, expand the Quick Links section:

#### 1. Add, edit and remove quick links by specifying the label, link, and color code.

![Sonoran CAD's quick link customization panel](/files/-MAEIEb1X8F9K8oq7roK)

#### 2. Be sure to press SAVE

![Save Quick Links](/files/-MAEIbxcYJmQYHFLsR-y)

### Viewing Quick Links

Quick links can be found in the taskbar under Documentation > Quick Links

Or via the taskbar search and [pinning](https://docs.sonoransoftware.com/cad/tutorials/customization/pages/-M_O3aJdPNa7DL9I8RCh#7.-tab-system) system.

<figure><img src="/files/B66RYHCRZn2XS1Ujl9fy" alt=""><figcaption><p>Sonoran CAD - Quick Links Page</p></figcaption></figure>


# Custom Page Colors

Customize your community's page colors with Sonoran CAD!

{% hint style="info" %}
Community customization is not included with the free version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

### Custom Page Colors

The admin customization menu allows you to customize the page colors in Sonoran CAD:

![Sonoran CAD's custom page color options](/files/-M5-5O9aQk2hK27oCEl3)

| Field                 | Description                                                                                                                |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Login Page Background | This is the background color of the page on your [custom login page](/cad/tutorials/customization/custom-login-page).      |
| Login Box Background  | This is the background color of the login box on your [custom login page](/cad/tutorials/customization/custom-login-page). |
| Menu Page Background  | This is the background color of the community menu page.                                                                   |
| Menu Box Background   | This is the background color of the menu box in your community menu page.                                                  |


# User Account Restrictions

Sonoran CAD allows you to restrict how many characters a user can create!

{% hint style="info" %}
Community customization is not included with the free version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

### User Account Restrictions

<figure><img src="/files/dZB7dTwaqWlGVoHH9ymL" alt=""><figcaption></figcaption></figure>

| Field                   | Description                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------- |
| Max Civilian Characters | This allows you to restrict the number of civilian characters a single user can register. |


# Configuring Multiple Servers

Sonoran CAD allows you to configure servers to separate units and dispatchers, but still share all records globally.

{% hint style="info" %}
The free version of Sonoran CAD is limited to one (1) server.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

### Configuring An Additional Server

In the Admin Customization menu, expand the "Servers" section to add, edit, or remove additional servers in your CAD.

![Additional servers are configured in the customization menu](/files/-M4pbtr6GjKtXoHqy5xp)

### Changing Servers in the CAD

#### Civilian Page

In the civilian page, the top right header allows users to swap back and forth between servers.

![Users can select their server in the top header](/files/FzzILOvLcZkp3Co13nke)

#### Emergency Pages

In the police, fire, EMS, and dispatch pages; users can select their server by clicking on the start menu.

![Emergency Pages - Server Selector](/files/vR9CFbaDKQYmq6TIpb3v)


# Advanced Query Strings

Sonoran CAD provides additional query string options for embedded use!

### Force Mobile

| String      | Usage                                  | Description                                                                                                                                                                                                                             |
| ----------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| forcemobile | app.sonorancad.com/#/?forcemobile=TRUE | Your CAD will forcefully format the emergency services action bars to mobile format. This is beneficial for communities that are embedding the CAD in-game on a smaller format that does not quite meet the standard mobile dimensions. |

![Sonoran CAD's 'forcemobile' action bar](/files/-M5-AB5t0p9uM6kF68Va)

### Default Audio Level

| String     | Usage                               | Description                                                                                                                                                                                         |
| ---------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| audiolevel | app.sonorancad.com/#/?audiolevel=25 | Your CAD audio settings will be set by default to the value provided. This is beneficial to communities that are embedding the CAD inside of a resource, and may wish to mute the audio by default. |

![Sonoran CAD's 'audiolevel' query string result](/files/-M5-AagEkiGof5f4hBCg)

### Hide "Switch Community"

| String        | Usage                                    | Description                                                                                                                                                                                                                                           |
| ------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| lockCommunity | app.sonorancad.com/#/?lockCommunity=true | For communities using the [tablet ](broken://pages/-MCu5Pqlq4KeXD2LHoVt)resource or [custom login page](/cad/tutorials/customization/custom-login-page), this query string locks the user to your community and hides the "Switch Community" buttons. |


# Custom Dispatch Call Formats

Customize the dispatch call form for your community.

## What are Custom Call Formats?

Dispatch calls are created by filling out several form fields such as status, title, description, attached units, and more. Some communities and localities may have different names for these input boxes. Or, some communities may wish to add or remove additional fields.

Sonoran CAD lets communities customize the exact fields shown in their dispatch call editor.

## Customizing the Call Format

Under **Admin** > **Customization** > **Dispatch Call Layouts** > communities can add or remove sections along with fields inside the sections.

Once configured, dispatchers can switch between layouts directly in the call editor.

Formatting for Call ID numbers can also be customized under [Geographical Customization](/cad/tutorials/customization/geographical-settings).

<div><figure><img src="/files/DH0PhqtPMQS167P3Dprx" alt=""><figcaption></figcaption></figure> <figure><img src="/files/RVnEATGg5y2WvehN5isP" alt=""><figcaption></figcaption></figure></div>


# Dispatching

Looking to get started dispatching with Sonoran CAD? See our guides below!


# Creating a Call

This guide covers creating a new dispatch call in Sonoran CAD.

## Select a Call Layout

<details>

<summary>Selecting a Dispatch Call Layout</summary>

If your community has configured [custom dispatch layouts](/cad/tutorials/customization/custom-dispatch-call-formats), you can change between them in the top right icon.

<figure><img src="/files/RVnEATGg5y2WvehN5isP" alt=""><figcaption></figcaption></figure>

</details>

## Creating a Call

<details>

<summary>Add Available Units</summary>

**Manually Add Unit**

To add a unit to your call editor, click on an available unit or unit group, and select "Add to Call"

![Sonoran CAD - Add Unit to Call](/files/-Mfutn_UDoLoqnwP6Tw-)

**Attach Nearest Units**

When emergency calls are sent from in-game, they contain a coordinate location. Importing the emergency call from the table or live map will display an option to select and attach the closest units.

Entering a postal code will work as a secondary option to find the nearest units. You must have the [postals submodule](/cad/integration-plugins/in-game-integration/available-plugins/postals) enabled.

<div><figure><img src="/files/ZKR4CZ2DCgBWoStYweDr" alt="" width="375"><figcaption><p>Dispatch Editor: Nearest Units</p></figcaption></figure> <figure><img src="/files/rRhcNUjgZ2QBceNfSa6x" alt="" width="375"><figcaption><p>Dispatch Editor: Nearest Postal Units</p></figcaption></figure></div>

**Drag-and-Drop**

Drag-and-drop is another fast way to add a unit to an existing call:

![Sonoran CAD - Attach Unit to Existing Call](/files/-MfuyebumCKoY9i1zq2p)

You can also easily detach units from an existing call, or drag a unit from one call to another:

![Sonoran CAD - Existing Call Detach and Switch](/files/-MfuyzNFgGH6ffCOaK4h)

</details>

<details>

<summary>Insert Call Information</summary>

In the call editor, you can view attached units and fill out the call information.\
Once completed, select "Create Call" to initiate the new dispatch call.

![Sonoran CAD - Unit Editor](/files/-Mfuv41Cmu8UXCZ9mue9)

</details>

## Manage a Call

<details>

<summary>Import Emergency Call</summary>

Emergency calls can be imported directly to the call editor for faster transfer of information. Click on the call to select `Open In Call Editor` to import the call description, address, and more.

<figure><img src="/files/9D5BaSeDE7vGXDJwM78D" alt="" width="300"><figcaption><p>Sonoran CAD: Import Emergency Call</p></figcaption></figure>

</details>

<details>

<summary>Merge Additional Emergency Call</summary>

Often times civilians will continue to make additional emergency calls with updated information. At any time, you can merge these additional emergency calls into ongoing dispatch calls. Click on the emergency call to `Merge Emergency Call` to your dispatch call editor.

This will append the latest emergency call information to the description and update any address, postal, etc. information.

<figure><img src="/files/uNuWddUaPqbntAGBRY6m" alt="" width="375"><figcaption><p>Sonoran CAD: Merge Emergency Call</p></figcaption></figure>

</details>

<details>

<summary>Track, Update, and Manage the Call</summary>

The new dispatch will be displayed in your "Active Calls" window.\
You can select this call at anytime to preview, edit, or close.\
You can also drag-and-drop the call ID to the call editor to open the call.

![Sonoran CAD - Active Calls](/files/-MfuvFtfPtOMLwlfosrz)

</details>

<details>

<summary>Call Notes</summary>

Notes can be sent by units attached to the call.

**Text Notes**

Text based notes can be added in the note box and sent by pressing `enter` or `add note`.

**Note Links**

Record links for characters, arrest reports, etc. can also be sent in the dispatch call notes section. [Copy a record link](/cad/tutorials/records-management/searching-for-records#copy-record-links), then press the `Paste` button in the call notes section.

<figure><img src="/files/TOsKTVAOULFf9s8X2YIN" alt=""><figcaption><p>Sonoran CAD - Dispatch Call Notes</p></figcaption></figure>

</details>

<details>

<summary>Close the Call</summary>

To close the active dispatch, click on the active call and press "Close Call".

Or, you can select "Edit Call", change the status to "Closed", and press "Update Call".

![Sonoran CAD - Close Call](/files/-Mfuv_vgRayh0EVLlPrA)

</details>

## Saved Call Types

<details>

<summary>Create a Saved Call Type</summary>

Saved call types allow dispatchers to quickly create commonly used calls.

To add a new saved call type, simply fill the information out in your editor, and press the save button. The saved types are organized based off of the call's title.

Saving a call with an identical title as another one will override it.

![Saved Dispatch Calls - Create](/files/-MfuzfNxDRFNtn5eM0d8)

</details>

<details>

<summary>Open a Saved Call Type</summary>

To open a saved call type, simply select it from the dropdown at the top of the editor. The dropdown will also automatically filter as you type.

![Saved Dispatch Calls - Select](/files/-Mfv-JofZOrJM9Mcqgmx)

</details>

<details>

<summary>Remove a Saved Call Type</summary>

To remove a saved call type, simply select it from the dropdown and press the trash icon.

![Saved Dispatch Calls - Remove](/files/-Mfv-cWbadRQRs25TKQ0)

</details>

<details>

<summary>Import/Export Saved Call Types</summary>

With a saved call type selected, the export button will allow you to save the current call type to a JSON file. Or, right-click the export button to export all of your saved call tyles to a JSON file.

<figure><img src="/files/E39vL9JXnX2lf3ylfjrZ" alt=""><figcaption></figcaption></figure>

To import saved call types, the import button will appear when no saved call is selected. Click the icon to import a JSON file with one or more saved call types.

<figure><img src="/files/eOOVxOiNMNPZ6EjYGTR8" alt=""><figcaption></figcaption></figure>

</details>


# Rapid IQ

Rapid IQ guides emergency call-takers through dynamic, protocol-driven medical intake flows, enabling faster triage, consistent decision-making, and accurate dispatching.

<figure><img src="/files/HVJsYubQH6wMJaswBEO6" alt=""><figcaption></figcaption></figure>

## What is Rapid IQ?

**Rapid IQ** (Rapid Intake Questionnaire) is an emergency call intake system that helps dispatchers ask the right questions during medical calls designed after [standardized MPDS systems](https://en.wikipedia.org/wiki/Medical_Priority_Dispatch_System). It guides dispatchers step-by-step through a structured flow based on the caller’s answers, making sure important details aren’t missed.

Rapid IQ combines these responses into the dispatch call description, giving the best possible information to responding units.

## Using Rapid IQ

### Opening Rapid IQ

<details>

<summary>Via Call Editor</summary>

Select the **Rapid IQ** button at the top of the call editor to open the window.

<figure><img src="/files/sS45AZm5fj4Azvu9LBcR" alt="" width="375"><figcaption></figcaption></figure>

</details>

<details>

<summary>Via Taskbar</summary>

In the taskbar, use the search box or navigate to **Dispatch** > **Rapid IQ** to open the window.

<figure><img src="/files/ndj2LcQay2mZ2uko6bly" alt="" width="331"><figcaption></figcaption></figure>

</details>

### Navigating Flows

<details>

<summary>Inputs</summary>

Rapid IQ is designed for quick, seamless information inputs.

**Text Inputs**

* Inputs are automatically focused
* Pressing **Enter** navigates to the next question
* Custom addresses are type-to-filter
  * If results are filtered to a single result, pressing **Enter** automatically selects it and navigates to the next question. Pressing **Enter** with more than one result left will select the top option.

**Checkbox Inputs**

* Type-to-filter search at the top is automatically focused
  * If results are filtered to a single result, pressing **Enter** automatically selects it and navigates to the next question. Pressing **Enter** with more than one result left will select the top option.
* Selecting a checkbox navigates to the next question

**Navigation**

* Use the **Left** and **Right** arrow keys to navigate forward and backwards manually

**Masks**

* Flow inputs that use a mask (strict formatting for numbers, text, symbols, etc.) will automatically navigate to the next question once all text has been entered

</details>

<details>

<summary>End Toggle Options</summary>

Once all information has been entered, Rapid IQ offers different data display options.

**Import to Call Editor**

When toggled, all information will be automatically imported into the dispatch call editor and the window will be automatically closed (unless **Display Card** is enabled).

This feature is automatically toggled on when opening Rapid IQ from the call editor.

<div><figure><img src="/files/njKb9ujLwmutBGa7uu7A" alt=""><figcaption></figcaption></figure> <figure><img src="/files/SwRocyBbAy1GBVDquLZC" alt=""><figcaption></figcaption></figure></div>

**Display Card**

When toggled, all information will be displayed in a card of questions and answers. Users can also press the **Copy** button (top right) to copy and paste all questions and answers elsewhere.

This feature is automatically toggled on when opening Rapid IQ from the taskbar.

<div><figure><img src="/files/CVZWel7vzjkrDLEtLd3S" alt=""><figcaption></figcaption></figure> <figure><img src="/files/8jktjOEHqLBK8gh2qvpk" alt=""><figcaption></figcaption></figure></div>

</details>

## Customizing Flows

The default Rapid IQ flow is complex and configured by real-world dispatchers and medical personnel. **With heavy knowledge**, the system can be customized for different localities and situations. [You can read more about standard MPDS systems here](https://en.wikipedia.org/wiki/Medical_Priority_Dispatch_System).

#### Accessing the Editor

The Rapid IQ configuration is accessible under **Admin** > **Customization** > **Customization** > **Rapid IQ**

#### Default Path

The **Default Path** section configures the initial questions asked in-order. These questions can be selected and reordered via drag-and-drop.

<figure><img src="/files/Pl0sJt0vWgGLS8SBQRbH" alt="" width="375"><figcaption></figcaption></figure>

#### Questions

Configure custom **Questions** to be asked in order to gain more information about the medical issue.

Questions have specific input types like **Text**, **Number**, [**Address**](/cad/tutorials/customization/addresses-and-street-names), or **Choices**.

**Text** and **Number** inputs can also have a **Mask** input. A **Mask** enforces a specific input format. Once a user has entered all numbers/letters into the input, it will automatically advance to the next question.

Ex: `(###) ### - ####` forces a phone number format.

<details>

<summary><strong>Mask Options</strong></summary>

| Token | Description  |
| ----- | ------------ |
| #     | Numeric      |
| S     | Letter A-Z   |
| X     | Alphanumeric |

</details>

<figure><img src="/files/MVOBMFB2630qcDtVOBZt" alt="" width="375"><figcaption></figcaption></figure>

#### Codes

Once all questions have been answered, Rapid IQ will display a code. The code is a short way to classify and triage the severity of the incident and to determine how best to respond.

#### What a code means

<details>

<summary>What a code means</summary>

A Rapid IQ code is a triage label in this format:

```
[Protocol Number][Priority Letter][Branch Number]
```

Example: `31C3`

* `31` = Unconscious / Fainting
* `C` = priority tier
* `3` = specific branch inside that protocol

</details>

#### Protocol numbers

<details>

<summary>Protocol Numbers</summary>

1. Abdominal Pain
2. Allergies / Envenomations
3. Animal Bites / Attacks
4. Assault / Sexual Assault
5. Back Pain
6. Breathing Problems
7. Burns / Explosion
8. Carbon Monoxide / Inhalation / HazMat
9. Cardiac / Respiratory Arrest / Death
10. Chest Pain
11. Choking
12. Convulsions / Seizures
13. Diabetic Problems
14. Drowning / Diving / SCUBA
15. Electrocution / Lightning
16. Eye Problems / Injuries
17. Falls
18. Headache
19. Heart Problems / AICD
20. Heat / Cold Exposure
21. Hemorrhage / Lacerations
22. Inaccessible Incident / Entrapment
23. Overdose / Poisoning
24. Pregnancy / Childbirth / Miscarriage
25. Psychiatric / Abnormal Behavior / Suicide Attempt
26. Sick Person
27. Penetrating Trauma
28. Stroke / TIA
29. Traffic / Transportation Incidents
30. Traumatic Injuries
31. Unconscious / Fainting
32. Unknown Problems (Person Down)

</details>

#### Priority Letters

<details>

<summary>Priority Letters</summary>

* E = highest severity / most urgent
* D = very high severity
* C = high severity
* B = moderate severity
* A = lower severity
* Ω = public assist / lowest-acuity pathway
* 000 = no final code (an error code)

</details>

#### How the system picks a code

<details>

<summary>Flow Code Selection</summary>

1. Ask default intake questions.
2. Check flow rules in order (top to bottom).
3. If a rule needs an unanswered question, ask that question next.
4. When a full rule matches, return that rule’s code.
5. Some rules use @ to auto-set/re-route (example: nature\@chestpain).

</details>

#### Flows

Flows combine everything above. Flows string a list of questions together and determine which questions should be asked next, based on response. Once a flow is completed, a code will be generated.

#### Flow rule format

`{question} -> condition is “answered” {question=value} -> equals {question>=number} -> numeric compare {question<=number} -> numeric compare {question@value} -> auto-set answer {cond1}.{cond2}.{cond3}->CODE`

Example:

`{nature=abdominalPain}.{fainting=true}.{age>=50}->1C1`

<figure><img src="/files/UcYC0LLklqkIXrETUD4m" alt="" width="375"><figcaption></figcaption></figure>

### Import and Export

Rapid IQ configurations can be imported and exported to save and share with other communities. Simply select the **Import** or **Export** button at the top to handle JSON files.

<figure><img src="/files/aW8ysuBOOWXdxMz4g0UN" alt="" width="375"><figcaption></figcaption></figure>


# Unit Management

Learn more about managing unit information, statuses, and more!

## Unit Management

<details>

<summary>Modifying Status</summary>

You can click on a unit's status for a dropdown menu to quickly modify it.

<figure><img src="/files/GhE27i2MOPDrUUeaBUWF" alt=""><figcaption></figcaption></figure>

Units can also select one of the status buttons in the header:

<figure><img src="/files/ItmmxmOJtUagGp3Flrtj" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Modifying Unit Information</summary>

Click on any active unit and select "Edit Unit" to change their identifier information.

<figure><img src="/files/aTAhbhJMMG199amB4sGq" alt=""><figcaption></figcaption></figure>

Units with the edit identifier permission can also click on their unit number in the header to open the identifier editor:

<figure><img src="/files/kfx747cW0oiAvmMPC2eO" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/TQ4hmI1SMJdvL6bLblww" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Unit Groups</summary>

Unit groups are a way to combine two units together, typically when they're in the save vehicle or apparatus.

To add a unit to a group, simply select the unit and select **Add to Group > New Group** or an existing group.

Or, drag-and-drop a unit to an existing group to attach.

<figure><img src="/files/k4rxKifmKBFGSuIGZHgf" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Persistent Unit Groups</summary>

Unit groups can be configured as **persistent**, meaning they remain visible even when no units are assigned.

Persistent groups are set up in the Department Editor under **Admin → Customization → Departments**. These groups can optionally enforce a maximum number of units that may be attached.

<figure><img src="/files/jm9QvhsED4tV24ks3hGp" alt=""><figcaption></figcaption></figure>

Once configured, persistent groups can be dragged into the Call Editor or onto an existing dispatch call to attach them.

<figure><img src="/files/1IL2pYd7hDbfnZUYwTcc" alt=""><figcaption></figcaption></figure>

Units can self-attach to these groups by clicking on their unit number to open the identifier editor **→ Persistent Group**

<figure><img src="/files/cwlIOqz5GfcRZiqzLwC2" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Automatic Unit Status</summary>

Dispatchers can also customize what to automatically set unit statuses to after specific actions. Select the [**Automations**](/cad/tutorials/dispatching/automations) button in the call editor to enable status changes on call attachment, detachment, and closure.

<figure><img src="/files/5BFMyji60QWxpTvaJa6Q" alt=""><figcaption></figcaption></figure>

</details>


# Self Dispatch

Sonoran CAD allows units to create new calls, self-attach, and preview calls without the need for a dedicated dispatcher!

{% hint style="info" %}
Self Dispatch requires an additional user account permission!

Users will need the "Self Dispatch" permission to enable this feature. View our guide on [granting account permissions](/cad/tutorials/getting-started/permissions) for more information.
{% endhint %}

### Enable Self-Dispatch

In the top right of the call viewer, select "Self Dispatch"

![Sonoran CAD's "Self Dispatch" option](/files/-M5Gj8AqicGKGiWC3rIt)

### Add, Edit, or Attach

With self dispatch enabled, regular units can now open additional windows to view dispatch calls, 911 calls, and active units.

![Sonoran CAD's "Self Dispatch" windows](/files/-M5GjdPlxAIzabaIL6i0)


# Timers

Create custom timers to check in on pursuits, dispatch calls, units, and more!

## What are Dispatch Timers?

Sonoran CAD allows users to create custom dispatch timers. Some example use cases of these timers are as follows:

* Creating a 10 minute pursuit timer before authorizing a pit maneuver
* Reminders to periodically check in on a unit
* Reminders to check in on a specific dispatch call

When a timer has completed, it will flash an icon next to any [attachments ](#timer-attachments)and play a [customizable tone](/cad/tutorials/customization/custom-audio-notifications).

## Creating a New Timer

Dispatch timers can be created through multiple different shortcuts.

### Via the Timer Panel

From the start menu: `Unit Management` > `Timers`

Press `New` to create a new timer.

![Sonoran CAD - Timer Panel](/files/frbQFuffMK49UHvy8hP2)

### Drag-And-Drop to Tab

If you have the timer [panel tab minimized or pinned](https://docs.sonoransoftware.com/cad/tutorials/dispatching/pages/-M_O3aJdPNa7DL9I8RCh#7.-tab-system), you can drag a unit, group, or dispatch call right to the tab.

![Sonoran CAD - Drag Unit to Timer Tab](/files/mjpsLvp9mftAFPImzuJ8)

### From the Context Menu

Left click on a unit ID, group name, or dispatch call ID: `Timers` > `New Timer`

![Sonoran CAD - New Timer from Context Menu](/files/KnrixBw4iBn1rAxeLMtX)

## Editing a Timer

### Via Timer Panel

The timer panel has options to start, pause, restart, and remove a timer.

Additionally, you can expand the timer to change the name and duration.

![Sonoran CAD - Timer Panel](/files/HJqKUQx6kdKZ4h7uMTHc)

### Via the Context Menu

When a unit, group, or call is [attached to a timer](#undefined) you can click on the timer icon. A timer menu will be displayed, allowing you to start, pause, restart, or clear the timer's attachment.

![Sonoran CAD - Timer Context Menu](/files/uGOQ1vcN0BWsbBkGbPlp)

## Timer Attachments

You can attach a unit, group, or call to a timer. This will display a timer icon next to the attached unit or call. You can hover over this icon to view the remaining time, or click on it for the timer context menu.

### Via Drag-And-Drop

In addition to dragging a unit, group, or dispatch call to a minimized tab you can also drag it to a timer in the panel.

![Sonoran CAD - Drag Unit to Timer Panel](/files/olmXWY1ncKBlPf3sO4JL)

### Via Context Menu

Click on a unit, group, or dispatch call: `Timers` > `Select a Timer`

![Sonoran CAD - Attach to Timer from Context Menu](/files/pVImG5FeKpvjySPPtdkt)

## Automations

Timers can also be created via [dispatcher automations](/cad/tutorials/dispatching/automations).


# Command Line Interface (CLI)

Sonoran CAD's CLI allows you to quickly create and close dispatch calls, attach, detach, add notes, change statuses, and more right from your keyboard!

## UI Overview

The CLI allows you to more quickly run common dispatch actions without the need to move your mouse, click, or drag-and-drop. The CLI is optimized to make these actions as fast as possible.

### Accessing the CLI

#### Via Hotkey

The CLI can be brought up using a [global hotkey](/cad/tutorials/other-features/configurable-hotkeys). This will automatically open the CLI in a popup modal with the input field focused.

<figure><img src="/files/swNE9eN76IZR8BI3dMw5" alt=""><figcaption></figcaption></figure>

#### Via Window Tab

You can also access add the CLI panel to your custom layout.

<figure><img src="/files/swm4UokUDQImjarUBLm8" alt=""><figcaption></figcaption></figure>

### Utilizing the CLI

The CLI uses custom commands and arguments to complete actions.

For example, to create a new dispatch call:

`NEW "TRAFFIC STOP" A-10 123 Example Description`

`[Command] [Saved Call Type] [Unit] [Postal] [Description`

Arguments are type-to-filter for items like units or [saved call types](/cad/tutorials/dispatching/creating-a-call#saved-call-types). Press **TAB** to auto-complete the argument. Press **Enter** to send the command.

### Customizing Commands

Select the **Customize Commands** icon to configure custom commands and arguments.

<figure><img src="/files/BBv5P3WkACpaOEgUc5P1" alt="" width="375"><figcaption></figcaption></figure>

### Custom Shortcuts

Users can also configure custom shortcuts. Shortcuts can be configured to enter custom CLI variables.

{% content-ref url="/pages/akF2UdeZU2uvu9kgqL3p" %}
[Shortcuts](/cad/tutorials/dispatching/shortcuts)
{% endcontent-ref %}


# Automations

Automate key parts of your dispatching workflow.

## Dispatch Automations Menu

The **Automations** menu is available to dispatchers in the call editor.

<figure><img src="/files/oCb8qiDGVtENnVF3MZZA" alt="" width="375"><figcaption></figcaption></figure>

### Call Attachment: Auto Status

Automatically change the status of a unit when they're attached and detached to a call, or when their call is closed.

<figure><img src="/files/B7qIHA2GTtIkgs5NfkVN" alt="" width="277"><figcaption></figcaption></figure>

### Unit Status: Timers

Automatically start a countdown/up [timer](/cad/tutorials/dispatching/timers) when a unit status is changed. This can be helpful to quickly see how long a unit has been at a particular status, or to be notified once a unit status has been set for too long.

<figure><img src="/files/50DXW67cMEXyV6HLqyka" alt="" width="278"><figcaption></figcaption></figure>


# Chat

Communicate with other units and send record attachments via chat.

## CAD Chat

The Sonoran CAD chat system allows units to send text messages to eachother, or in groups. Messages can also contain links to custom records.

## Using CAD Chat

### Opening the Chat

The **Chat** window can be found under the **Taskbar** > **Unit Management** > **Chat**

Additionally, it can be found by searching for **Chat** in the taskbar search.

<figure><img src="/files/fspp1NYiKs3UZeqEIo4X" alt="" width="201"><figcaption></figcaption></figure>

### Creating a Chat

Select the green **Plus** button to create a new chat.

In the **Recipients** drop-down, type to filter for user options. Individual units can be selected, entire departments, specific dispatch calls, or even all online units.

Once you enter a message and press **send** the chat room is created.

<figure><img src="/files/hkyx8buYZeTDzach8dEi" alt="" width="375"><figcaption></figcaption></figure>

### Attachments

Just like dispatch call notes, chat messages can contain records to be quickly referenced and opened.

On a record window, select the **copy** button at the top left. Then, in the chat window, select the blue **paste attachment** button.

Once sent, units can click on the attachment to open the record.

<div><figure><img src="/files/iFexocS8HSEhmv9eI8EC" alt=""><figcaption></figcaption></figure> <figure><img src="/files/miOX1s9mQrOhk1WUPhE6" alt=""><figcaption></figcaption></figure></div>

### Text-to-Speech

Users can optionally toggle on text-to-speech, which will read out incoming messages.

Text-to-speech voice can be customized in the **settings** panel.

<figure><img src="/files/6DJbZ4xmSWpwKxXLg9HV" alt=""><figcaption></figcaption></figure>

### Data Retention

Currently, chat messages are temporary and stored locally on the client and are wiped on refresh. Messages are not stored or persisted in any database.


# Shortcuts

Record and automate flows with shortcuts!

## What are Shortcuts?

Shortcuts allow you to record multiple button presses, menu selections, key presses, and replay them with a hotkey, taskbar click, or Stream Deck key.

Ex: A **Plate** shortcut automatically opens a new lookup, selects the plate search type, and highlights the search box for entry.

## Creating a Shortcut

### Recording a Shortcut

Select **Shortcuts** in the taskbar > **Record New Shortcut**. This will start recording all menu selections, button presses, and more. Select **Stop** at the top of your screen once you are finished recording the workflow.

<figure><img src="/files/x50frbWkHpdJZA2f2OW8" alt="" width="375"><figcaption></figcaption></figure>

### Customizing a Shortcut

Once a shortcut has been recorded, edit the label, icon, optional l hotkey, and optional CLI command. Select **Add Step** to record an additional step, a keypress, or mark a textbox as a new CLI variable.

<figure><img src="/files/uWBw1WJTKiYWhlXv8bkW" alt="" width="375"><figcaption></figcaption></figure>

### Command Line Interface (CLI)

Shortcuts also integrate with the [CLI](/cad/tutorials/dispatching/command-line-interface-cli). Enter a **CLI Command** name to add the shortcut to your CLI options. Additionally, select **Add Step** > **CLI Variable** > name the variable and select the step where the variable's CLI answer should be entered.

<figure><img src="/files/nkrnbGlnLZkMqAJNwTxm" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/MNMujDBVoe4tTCXcAP0h" alt=""><figcaption></figcaption></figure>


# Records Management

Sonoran CAD offers an in-depth record management system. For more information, see our guides below!


# Record Lookups

Sonoran CAD's in-depth record management system makes searching for records easy!

## Getting Started

From the start menu select `Record Management` > `Lookup` to open a new lookup window.\
You can also [minimize and pin this window type](/cad/tutorials/customization/customizing-your-layout#7-tab-system) to your taskbar for faster access.

![Sonoran CAD - New Lookup](/files/-Mhg-RYyhvi1nj6vX469)

## Running a Search

The lookup window has tabs at the top to search via name, license plate, unit identifier, record ID, or one of your [custom lookup types](/cad/tutorials/customization/custom-search-types).

### Partial vs Exact Lookups

The lookup window allows you to toggle the search to return only exact matches, or partial matches.

#### Example: Partial Search

Running partial lookup on `John Anderson` will return results for `John Anderson` and `John Handerson`.

Running an exact lookup on `John Anderson` will only return results for `John Anderson` as `Handerson` is not an exact last name match.

### Record Type Filters

Click on the filter button just above the results tab to expand the filters section.

Here, you can toggle on/off exactly what record types to search for.

![](/files/-Mhg1E9g3e372-m70KCs)

### Send Lookup to Units

Anyone on the Dispatcher page, or in self-dispatch mode has the option to send the lookup results to other units. Performing this action will have all record results sent to their CAD.

#### Shortcut and Drag-and-Drop

You can click on any active unit and select `Lookup` to open a new lookup window with this unit added, or have it added to any existing lookup windows.

Additionally, units and unit groups can be dragged-and-dropped directly to the lookup window.

![Sonoran CAD - Send Lookup to Unit(s)](/files/-Mhg2ZGYS_NiNdKmk8sE)

#### Manual Search and Selection

Next to the search button, you can click on the `Send to Unit(s)` button to toggle this mode on.

Using the dropdown, you can type to filter active units or select them from the list directly.

![Sonoran CAD - Send Lookup to Unit(s)](/files/-Mhg46KDZ4kIw67i6iYH)

### Copy Record Links

Records can be [linked to other records](/cad/tutorials/customization/creating-custom-record-and-report-types#linked-records) via the `Linked Records` custom section, or [added to dispatch call notes](/cad/tutorials/dispatching/creating-a-call#note-links).

Press the link icon in the top left to copy the record to your clipboard.

<figure><img src="/files/cy4x86E9Ogu9OMSOZrYS" alt=""><figcaption><p>Sonoran CAD - Copy Record Link</p></figcaption></figure>

### Lookup from Plate Lock

Our [Wraith radar plugin](broken://pages/-M7U3aBbrsfrj1Cmeqmm) allows you to lock your plate reader in-game and have the lookup automatically ran in your CAD.

### Voice Commands

Lookups can also be ran via a search [voice command](/cad/tutorials/other-features/voice-commands).

## Record Audit History

<figure><img src="/files/uZgiuoYUbgGDUxuTbC0B" alt=""><figcaption></figcaption></figure>

Select the **History** button when viewing a record to see an audit log of all changes.

### PDF Printing

Any record results returned can be opened and printed to [PDF](/cad/tutorials/records-management/pdf-records).


# Adding a Record

This guide covers creating a new record in Sonoran CAD.

### Open the Record Editor

In the police, fire, EMS, or dispatch page open the record panel.

This can be found as a [pinned tab](https://docs.sonoransoftware.com/cad/tutorials/records-management/pages/-M_O3aJdPNa7DL9I8RCh#7.-tab-system), via [taskbar search](/cad/tutorials/customization/customizing-your-layout#search-box), or in the taskbar sub menu.

<figure><img src="/files/tR4vVdpPPq7WRAFLDIUj" alt=""><figcaption></figcaption></figure>

### Select The Record Type

Click the "New Record" button and a dropdown menu will appear, where users can select the new record type.

![Selecting the New Record you would like to make](/files/-MXYPjwPAUTTqBPtOPhc)

Records (by default) are comprised of several sections:

1. Record Flags
2. Agency/Department Information
3. Civilian Information
4. Vehicle Information
5. Charges
6. Narrative
7. Status

{% hint style="info" %}
All records and reports are fully customizable, you may change the fields as much as you want. Each of the default record types are customizable as well and may look different if your community has customized the record shown below.
{% endhint %}

Civilian and vehicle information sections also include a search feature. Here, you can search and import information from a registered civilian or vehicle. This feature can also [search for civilians and vehicles directly from your in-game database](/cad/integration-plugins/database-sync-and-merge).

![Sonoran CAD's record information search feature](/files/-MXYSKf1pnn9xIx9na3D)

## Record Drafts

Working on a record but not ready to submit? Records can be saved as drafts and revisited later from the report center before final submission.

<figure><img src="/files/hmjam0V7eCjekrlBrlT9" alt=""><figcaption></figcaption></figure>


# PDF Records

Sonoran CAD allows you to print criminal records, civilian records, and call history logs to a PDF document!

{% hint style="info" %}
PDF records are not included with the free version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

{% hint style="warning" %}
Having trouble opening the PDF in the web version?

Your Ad-Blocker may be preventing the PDF from opening in a new window. Disable your Ad-Blocker on our website to prevent this issue.
{% endhint %}

<figure><img src="/files/DHqerEHMsiSip3mBFUT1" alt=""><figcaption></figcaption></figure>

### Records

To download a PDF copy of a criminal or civilian record, select the PDF button in the bottom action bar.

![PDF print options are shown at the bottom of the record viewer](/files/-M5GcaPOMApTvWVsVM1S)

![PDF records are generated and can be saved](/files/-M5GcndBi0-goAOEMzO_)

### Call Logs

Prior call logs can also be printed to a PDF record.

1. Navigate to the "Active Calls" window
2. Select the "Call History" tab
3. Click the call and select "Print Call"

![The "Call History" tab's PDF print option is displayed for all users](/files/-M5GdyJb_jHiOQ0nGaIT)

![Call logs are formatted and printed to a PDF as shown](/files/-M5GeCfO281YfT-ITxRX)


# Scene Diagram Builder

Build detailed scene diagrams in custom records!

<figure><img src="/files/LBDDpTaPEBrcbvl8rsBJ" alt=""><figcaption><p>Sonoran CAD: Scene Diagram Builder</p></figcaption></figure>

## Adding the Diagram Builder

The scene diagram builder allows you to create detailed visuals of vehicle accidents, crime scenes, and more.

The diagram builder can be added to any [custom record template](/cad/tutorials/customization/creating-custom-record-and-report-types). Select `Diagram` from the `Premade Sections` dropdown.

## Using the Diagram Builder

Custom records with a diagram section will show an interactive canvas inside the record. Select the edit icon to open up the builder.

<div><figure><img src="/files/8P3pnsJc2XRykkX2sKDg" alt="" width="371"><figcaption><p>Record: Diagram Viewer</p></figcaption></figure> <figure><img src="/files/9QhpZZEHTGnUHwTGBMCt" alt="" width="375"><figcaption><p>Diagram Builder</p></figcaption></figure></div>

### Adding, Editing, and Removing Elements

#### Adding

* Drag-and-drop items from the toolbox to the canvas.

#### Editing

* When selected, items can be moved, resized, and edited.
* When an item is selected, the gear icon will open up an options menu for more customization.
* Select multiple items at once with `SHIFT` + `CLICK`.

#### Removing

* Select the item(s) and click the trash icon ([or the shortcut](#shortcuts)) to remove

<div><figure><img src="/files/vD5lQMwJ806RhAajBlCl" alt="" width="313"><figcaption><p>Diagram: Road Element Resize</p></figcaption></figure> <figure><img src="/files/Qhl0h7Z7Y714BoXEdZBI" alt="" width="321"><figcaption><p>Diagram: Road Element Options</p></figcaption></figure></div>

### Shortcuts

The diagram builder is packed with powerful shortcuts to help quickly build the scene.

Hover over any of the top action items for a tooltip listing the shortcut.

<figure><img src="/files/MG1ueN719arGozHqg8RH" alt=""><figcaption><p>Diagram Builder: Action Buttons</p></figcaption></figure>

<details>

<summary>List of Shortcuts</summary>

| Shortcut                               | Description                                                                                     |
| -------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `O`                                    | Opens the item options/settings when an element is selected.                                    |
| `UP ARROW` or `SHIFT` + `UP ARROW`     | <p>Moves the selected item up a layer.<br>Shift option brings it to the very top.</p>           |
| `DOWN ARROW` or `SHIFT` + `DOWN ARROW` | <p>Moves the selected item down a layer.<br>Shift option brings it to the very bottom.</p>      |
| `L`                                    | Locks the selected item(s) from moving.                                                         |
| `G`                                    | Groups or ungroups the selected items together. Use `SHIFT` + `CLICK` to select multiple items. |
| `CTRL` + `Z`                           | Undo last action(s)                                                                             |
| `CTRL` + `SHIFT` + `Z`                 | Redo last action(s)                                                                             |
| `DELETE`                               | Delete selected item(s)                                                                         |
| `CTRL` + `C`                           | Copy selected item(s)                                                                           |
| `CTRL` + `V`                           | Paste copied item(s)                                                                            |

</details>

### Default Images and More

Communities can also customize the diagram builder to have default images (like a [medical diagram](#using-the-diagram-builder)) for each record type. Simply hit the edit (pencil icon) in the custom record builder on the diagram to customize and save the template.


# Administration

Everything you need to know about administrating your new CAD system.


# System Logs

Learn more about Sonoran CAD's advanced logging feature!

Sonoran CAD logs all user actions in-depth, allowing community administrators to take action against user abuse and help debug common issues.

![Sonoran CAD - Admin Logs](/files/-MiY6Sc8ebXloQRF3VnT)

## Searching for Logs

### 1. Access the Log Panel

In the admin page, navigate to `Advanced` > `Logs`

### 2. Filtering and Searching for Logs

The log panel allows you to filter search results by date, log type, username, and log contents.

#### Log Type

The log `Type` dropdown allows you to search and select specific log types. This allows you to search only for logs pertaining to a specific action in the CAD.

If left blank, no log filtering will be applied.

![](/files/-MiY5Unul60vU9ziNVlX)

#### Log Date

The log `Date` selection allows you to choose the specific date the logs are from.\
\&#xNAN;*Note: Dates and the accompanying timestamps are based in UTC.*

![](/files/-MiY5yAUMXOXcpDrmsBh)

#### Username

The log `Username` selection allows you to search and filter logs down to a specific username. You can also search for a partial username.

#### Log Text

You can also filter logs based on partial text put into the `Log` field.


# Remove User Account

Looking to remove your Sonoran Software account?

### 1. Access your Sonoran Software Account

You can access your Sonoran Software account by going to [account.sonoransoftware.com](https://account.sonoransoftware.com), or by selecting "Modify" in the side menu's account modal.

![Sonoran CAD - Modify Account](/files/-Md3s1PnUbXtGLDgVPzX)

### 2. Send an Account Removal Email

On the Sonoran Account website, select Account > Advanced > Delete Account

This will send an email confirmation to the address on file.

![Sonoran Account - Delete Account](/files/-Md3se8qDVqn45yJeS3G)

### 3. Verify your Email

Check your email for an account removal request and click the "Remove Account" button.\
Having trouble seeing it? Be sure to check your spam/junk folder.

![Sonoran Account - Removal Email](/files/-Md3srq6VER4ErjAQ1e9)


# Deleting or Transferring your CAD

Sonoran CAD offers you the ability to delete/transfer your current CAD.

{% hint style="warning" %}
Only the community owner can delete or transfer the community.
{% endhint %}

## 1. Access the Menu

Navigate to Admin > Advanced > Transfer or Delete CAD

![Advanced Dropdown Menu](/files/-MLkT9xxeVZia1dVo_Ed)

## 2. Transfer or Delete the CAD

Select **TRANSFER CAD** or **REMOVE CAD**:

![Transfer or Remove CAD options](/files/-MLkT9xyvX1xJewlG5UZ)

Once you have chosen an option, you will be **required** to verify your email. (This will be the email you originally signed up for the CAD with.) Upon clicking the verification link, the process will be completed.

{% hint style="danger" %}
Once a CAD is deleted, there is NO WAY for us to recover it. Please consider this before making your choice.
{% endhint %}


# Other Features

Check out some of Sonoran CAD's other features below!


# Configurable Hotkeys

Learn more about Sonoran CAD's customizable global hotkey system!

{% hint style="warning" %}
Configurable hotkeys are not included with the free version.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

{% hint style="info" %}
Hotkeys are enabled **globally** on the [Desktop ](/cad/download)application. This means users do not have to have the app or page in focus or visible for the hotkeys to be registered.

For desktop users, we **highly recommend** viewing our [guide on in-game use](/cad/download/steam-browser-workaround)!
{% endhint %}

### Configure your Hotkeys

In the side menu, open the "Settings" modal to display your hotkey configuration menu.\
Here, you can configure your prefix and hotkey buttons using the drop-downs below.

Once changed, your settings are automatically applied and saved.

![Sonoran CAD's hotkey configuration menu](/files/-M5VzyyArIfBjh4RoOq2)

{% hint style="info" %}
*Note:* This image also displays [custom unit status options](/cad/tutorials/customization/unit-status-codes), and may differ slightly from your view.
{% endhint %}


# Voice Commands

Sonoran CAD’s voice commands allow for quick and easy to use actions via voice.

{% hint style="danger" %}
Currently, Sonoran CAD only supports voice commands in the **Chrome desktop browser**.

Voice recognition is provided by Google, and performance may vary based upon pronunciation, speed, and other factors.
{% endhint %}

### 1. Enable Microphone Access

When navigating to a page with voice commands enabled, the browser will prompt you for microphone access.

![Enable microphone access](/files/-M4zgERSEhz7Y0kidoYq)

### 2. Ensure Your Microphone is being Received

Now that microphone access has been granted, a red circle will appear at the top right of the browser tab.

![A red, blinking light appears in the browser tab](/files/-M4zgXUnNn7nslzN3yjz)

### 3. Test out the Voice Commands

Your keyword can be changed from "Sonoran" to something customizable. For more information, check out our guide on [custom voice command keywords](/cad/tutorials/customization/community-branding-and-info).

#### PANIC

```
Sonoran, Panic
```

#### Lookup Name

```
Sonoran, lookup name John Doe
```

#### Lookup Plate

```
Sonoran, lookup plate ABCD1234
```


# Volume and Language

This guide covers changing your volume and TTS language settings in Sonoran CAD.

### Open the Settings Modal

In the sidebar menu, select the settings button:

![The settings button is displayed in the side navigation menu](/files/-M5GeypjinXAqY8R2BUK)

### Change your Volume and Language

You can easily adjust your volume, and set your text-to-speech voice in the settings modal:

![Sonoran CAD's settings modal](/files/-M5GfK6E5IQ2OxjwArxj)

### Translation Support

Sonoran CAD also supports full language translation support for any country or locality. Click below for more information.

{% content-ref url="/pages/-MGbWE4KQP505l15Ewvm" %}
[Broken mention](broken://pages/-MGbWE4KQP505l15Ewvm)
{% endcontent-ref %}


# Dispatch AI

Dispatch AI is our most advanced integration to date—bringing a real-time AI dispatcher directly into your community’s CAD. Control everything with just your voice!

<figure><img src="/files/xxo17dZutUatokmMGS62" alt=""><figcaption></figcaption></figure>

Dispatch AI is our most advanced integration to date—bringing a real-time AI dispatcher directly into your community’s CAD.

When paired with [Sonoran Radio](https://docs.sonoransoftware.com/radio), units can create calls, run license plates, update their status, and more—all automatically through their radio transmissions.

**Learn more about Dispatch AI:**

{% content-ref url="/spaces/fCk5zoeun5gx3ujYW6eg/pages/MxfarGUh9jR6xIXgMNdF" %}
[Dispatch AI](/radio/tutorials/integrations/dispatch-ai)
{% endcontent-ref %}


# Paid Integration Resources

Learn more about our paid FiveM integration resources, powered by Tebex!


# Mobile Command Center

Sonoran's mobile command center enables you to take command like never before. Learn more about the integration with Sonoran CAD!

<figure><img src="/files/RNIjigeI3SKJYhavpgTl" alt=""><figcaption><p>Sonoran Mobile Command Center</p></figcaption></figure>

<figure><img src="/files/lVZwbwWvughqexyNTRL4" alt=""><figcaption><p>Sonoran Mobile Command Center - CAD ALPR</p></figcaption></figure>

[Learn more about the Sonoran mobile command center, integrated with Sonoran CAD!](https://www.sonoran.store/package/5287071)


# ATM Robbery

{% embed url="<https://www.youtube.com/watch?v=2Z6FepWQM2E>" %}
Sonoran Store - ATM Robbery
{% endembed %}

[Learn more about this script!](https://www.sonoran.store/package/5441412)

Sonoran's ATM Robbery allows players to rob ATMs like never before!

* Drill the ATM
* Attach a rope and rip the ATM out with your vehicle
* Drive the ATM to a safe location
  * ATM can be visibly loaded into the back of a vehicle (configurable) or dragged via rope
  * ATMs are trackable LIVE on the Sonoran CAD live map and in-game map (configurable)
* Finish drilling into the ATM for the final payout
  * ESX, QB-Core, and third-party payout compatible (not-required)

This script integrates with Sonoran CAD's 911 system and live map!


# In-Vehicle Radar

View your radar from first person!

{% embed url="<https://www.youtube.com/watch?v=mZqMl9oNQcQ>" %}

[Learn more about this script!](https://www.sonoran.store/package/5362825)

Sonoran's Radar Display brings new levels of immersion to Police Radars in FiveM!


# Evidence Camera

Sonoran's evidence camera allows you to send in-game photos directly to your CAD for reports!

{% embed url="<https://www.youtube.com/watch?v=jxTvYyDmJAE>" %}

The Sonoran Evidence Camera allows you to capture, hold, and share in-game photos with other players. Or, upload the in-game photo directly to Sonoran CAD for easy reports!

[Learn more about this paid resource!](https://www.sonoran.store/package/5183521)


# Power Grid

Learn more about our Power Grid script on the Sonoran Store!

{% embed url="<https://www.youtube.com/watch?v=3JhmcqlOWv8&t=1s>" %}

Sonoran's Power Grid network allows players to manipulate and disable nearly any in-game feature imaginable!

Hack the grid to disable a Sonoran Radio tower, disable a speed or security camera, shut off a shot spotter, and more! Our in-depth permission customization and integration options allow communities to expand with vastly new and unique RP scenarios. Easily "wire" a power source to any compatible object with our link tool. Our power grid offers real-time alerts via Discord, in-game, on the Sonoran CAD live map and more!

[Learn more about this paid resource](https://www.sonoran.store/package/5120025).


# Speed Cameras

Learn more about our Speed Camera script on the Sonoran Store!

![Sonoran Store - Speed Camera](/files/X1FGiwT3bEs58xtlfitU)

The Sonoran Speed Camera offers the most in-depth, integrated, and customizable traffic camera network available.

[Learn more about this paid resource!](https://www.sonoran.store/package/5056701)


# Shot Spotter

Learn more about our Shot Spotter script on the Sonoran Store!

![Sonoran Store - Shot Spotter](/files/U1Sp9GTbcsaEpKEPrG4z)

The Sonoran Shot Spotter offers the most in-depth, integrated, and customizable shot spotter network available.

[Learn more about this paid resource!](https://www.sonoran.store/package/5078838)


# Integrated Vendors

Check out the other third-party scripts and projects that are directly integrated with SonoranCAD!

<figure><img src="/files/ZnOZGIdTVBR9XvAQfCQr" alt=""><figcaption></figcaption></figure>

### London Studios

* [Smart Signs](https://info.sonorancad.com/integration-plugins/integration-plugins/available-plugins/smart-signs)
  * Integration: Update smart sign displays in-game from SonoranCAD!
* [Smart Fires](https://store.londonstudios.net/category/fire-resources)
  * Integration: Automatic 911 Calls sent directly to SonoranCAD!

<figure><img src="/files/d8UcVpAPYBcnmLEn6Ilg" alt=""><figcaption></figcaption></figure>

### Rainmad

Integration includes automatic 911 calls sent directly to SonoranCAD!

* [Gun store Heist](https://store.rainmad.com/package/6117275)
* [Weed shop Heist](https://store.rainmad.com/package/5377128)
* [Vangelico Heist](https://store.rainmad.com/package/5292185)
* [Artifact Heist](https://store.rainmad.com/package/5189211)
* [Betta Heist](https://store.rainmad.com/package/5177698)
* [Oil Rig Heist](https://store.rainmad.com/package/5165368)
* [Flecca Heist](https://store.rainmad.com/package/5044286)
* [Deluxe Car Heist](https://store.rainmad.com/package/5025943)
* [Yacht Heist](https://store.rainmad.com/package/5020777)
* [Paleto Heist](https://store.rainmad.com/package/5015559)
* [Union Heist](https://store.rainmad.com/package/4927857)
* [Drug Boat Heist](https://store.rainmad.com/package/4882048)
* [Underground Heist](https://store.rainmad.com/package/4860157)
* [Pacific Heist](https://store.rainmad.com/package/4692451)
* [Train Heist](https://store.rainmad.com/package/4674512)
* [Van Heist](https://store.rainmad.com/package/4780625)
* [Casino Heist](https://store.rainmad.com/package/4625772)
* [Flecca Heist](https://store.rainmad.com/package/4636375)
* [Art Heist](https://store.rainmad.com/package/4626148)


# Twitch Bodycam, Bot, & Lighting Integration

Display your identifier information, attached call information, and more on your gaming stream!

<figure><img src="/files/l82o7mZIOIMFSq5sp05l" alt=""><figcaption></figcaption></figure>

![Sonoran CAD - Smart Lighting](/files/-MkoH0j3mUVY4Fcnovb8)

## What is Sonoran CAD's Livestream Overlay?

Sonoran CAD has a built-in livestream overlay, allowing you to display your live unit information, call information, and more!

Our Twitch bot can also be configured to send out chat messages when data is modified.

## Bodycam Overlay

![](/files/7w8ehQIbyD3YKyHkaW1C)

{% hint style="warning" %}
The free version of the overlay does not include the customizable bodycam asset.\
However, you can still create [custom overlay text](#custom-overlay-text) with the free version!

Learn more about the [full version of Sonoran CAD's stream overlay](#purchasing-the-overlay)!

The bodycam creates local text files and hosts a local webserver.\
**This requires the** [**desktop** ](/cad/download)**application to run.**
{% endhint %}

The stream overlay also includes a customizable version of the popular [XION Chase Cam asset](https://github.com/zhivotnoya/XION-ChaseCam).

This allows you to customize a bodycam overlay on your stream, with your real-time unit and call information.

### 1. Set a File Directory

**First, ensure you are using the** [**desktop** ](/cad/download)**version of Sonoran CAD.** The application has to generate physical files, and host a local webserver to work. This can not be done in a browser.

In the stream overlay, open the txt file directory viewer and select a folder for the text files and bodycam webpage to be generated:

![Stream Overlay - Text file Location](/files/-MgmuyRm59WI22_UiFx-)

### 2. Configuring the Bodycam Contents

In the livestream overlay config section, expand the `Bodycam` section.

Here, you can enable and customize the data placement and keys just as before with the [customizable text files](#3-toggle-and-configure-keys).

* Expand the `Unit Updates` or `Call Updates` Section
* Toggle `ON` the txt file
* `COPY` the field key
* `PASTE` the field key into the bodycam section
* `SAVE` the configuration once complete

You can also optionally specify a different port for the bodycam webpage to run on (`9990` is the default).

![](/files/-MhkuB1OhENszIqywhu4)

### 3. Add the Bodycam to OBS

In OBS, add a new "Browser" source and paste the URL listed in the bodycam section.\
By default, this will be `http://localhost:9990`

![OBS - New Browser Source](/files/-MhkuoC72zXP72SSqucp)

Paste the URL into the browser source and hit OK.

![](/files/-Mhkv1Nh3EjmEfAguyds)

### 4. Customize the Size and Placement

You can now customize the size and placement of this browser window in OBS as you normally would.

## Smart Lighting

{% hint style="warning" %}
Due to the nature of most smart bulb manufacturers, our smart lighting integration is at the mercy of their API support.\
\
We can not guarantee that these manufacturers won't change or remove backdoor support to these bulbs in the future.
{% endhint %}

#### [Video Promo and Tutorial](https://www.youtube.com/watch?v=gs6RdZt3mUo)

![Sonoran CAD - Smart Lighting](/files/-MkoH0j3mUVY4Fcnovb8)

Sonoran CAD allows you to configure in-game events to smart lighting in your own home!

When you toggle your police lights in-game, your room can flash with custom lighting patterns to further immerse and simulate real world lighting.

{% hint style="warning" %}
The smart lighting integration is **not included with the free version** of the Stream Overlay.\
\
[Learn more about the full version of Sonoran CAD's stream overlay.](#purchasing-the-overlay)\
\
The smart lighting integration creates local text files and hosts a local webserver.\
**This requires the** [**desktop** ](/cad/download)**application to run.**
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=gs6RdZt3mUo>" %}
Sonoran CAD - Smart Lighting Video
{% endembed %}

### Supported Smart Bulbs

At this time, Sonoran CAD currently supports the following smart bulb types:

#### [Wyze Color](https://wyze.com/wyze-bulb-color.html) (Recommended)

Many of our development team members personally use and recommend these bulbs. Due to the design, these tend to provide the fastest response type with more complex lighting patterns. A 4 pack typically costs \~$40 ($10/bulb).

#### [Philips Hue](https://www.philips-hue.com/en-us/products/smart-light-bulbs)

Philips Hue is significantly more expensive, but is typically the most widely known option. This option will also require the purchase of a Hue bridge/hub. Due to the design, these tend to have a \~10ms+ delay when setting the color of multiple bulbs at a time.

**Therefore, we recommend keeping the `delay` between frames above 500ms when using Philips Hue bulbs.**

#### [Govee](https://us.govee.com/products/wi-fi-led-bulb)

Govee light bulbs are supported via Bluetooth and WiFi.

Bluetooth bulbs are supported, but can have additional time when starting the initial connection. Bluetooth connections can also experience intermittent connection problems. Govee's WiFi bulbs are currently ran through the official API, resulting in rate limitations of 60 calls per minute.

**Therefore, we recommend keeping the `delay` between lighting frames above 1,000ms when using Govee wifi bulbs.**

### 1. Searching for Bulbs

The smart lighting section has multiple `Scenes`

* `Restore`: Set when you are no longer flashing emergency lights, turn signals, etc.
* `Emergency Lights`: While you are in an emergency vehicle with the lights on
* `Panic`: While your panic status is toggled
* `Available`: When your unit status is set to available
* `Unavailable`: When your unit status is set to unavailable
* `Busy`: When your unit status is set to busy
* `Enroute`: When your unit status is set to enroute
* `On Scene`: When your unit status is set to on scene
* `Left Turn Signal`: While your left hand turn signal is on
* `Right Turn Signal`: While your right hand turn signal is on
* `Hazard Lights`: While your hazard lights are on

Expand the `Scene` > `Add Bulb` > `Search for Bulbs` > Select `Wyze` or `Philips Hue`

![Sonoran CAD - Scan for Smart Bulbs](/files/-MkivaNNLObTV23XrRis)

#### Credentials: Wyze

<figure><img src="/files/3oK5lflbqMDq5vEgqeHk" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/rPFUxECcepoCOQ6q6Et8" alt=""><figcaption></figcaption></figure>

* Username: Email address used to login to your Wyze account
* `Password`: Password used to login to your Wyze account
* `Key ID`: The "Key ID" in the [Wyze API key generator](https://developer-api-console.wyze.com/#/apikey/view)
* `API Key`: The "API Key" in the [Wyze API key generator](https://developer-api-console.wyze.com/#/apikey/view)

#### Credentials: Philips Hue

Your Philips Hue bridge should be automatically discovered by pressing the `Scan` button in Sonoran CAD.

If you are seeing the following error:\
`Error: Unable to find a Hue bridge on the local network.`

You may need to manually enter the bridge's IP address. This is most easily found using the Philips Hue mobile app.

1. Select Settings
2. Network Settings
3. Toggle `DHCP` Off
4. Copy the `IP address` to Sonoran CAD
5. Toggle `DHCP` On
6. Scan for the bridge in Sonoran CAD

![Philips Hue - Copy Bridge IP](/files/-MksE3kGphGH8HoYR29-)

![Sonoran CAD - Manual Hue Bridge IP](/files/-MksFbzg8U57UTIUOabS)

#### Credentials: Govee WiFi

Govee WiFi bulbs are handled via Govee's official API. Note that this does include a rate limit of 60 calls/minute.

**1. Request an API Key**

Using the Govee mobile app navigate to `Account` > `Settings` > `About Us` > `Apply for API Key`

<img src="/files/WF8kZVH0IR1VG2MkCHac" alt="" data-size="original">

**2. Retrieve your API Key and Search**

Within a few minutes, Govee should email your account API credentials to use. Paste these into Sonoran CAD and search for your Govee WiFi lights.

#### Credentials: Govee Bluetooth

Govee Bulb models only supporting bluetooth can be controlled by Sonoran CAD, as long as your PC supports bluetooth connections. Windows limits this to no more than 5 active bluetooth connections at one time.

**1. Scan for Bluetooth devices**

Sonoran CAD will scan for all locally active Bluetooth devices. Govee bulbs will typically be found with a name format: `WORD_MODELNUMBER_XXXX`.

If your bulb is not discoverable, turn the bulb's power off entirely for \~5 seconds then turn it back on. This should place your bulb into discovery mode.

![](/files/LpHpxwsri95mMSqlq4jq)

**2. Add the Bulb**

Click on the Bluetooth bulb to add it to your scene, and continue on to building your lighting sequences.

Bluetooth bulbs will have their status listed on the left side. When you click the `Test` button, it may **take up to 60 seconds** for the connection to complete.

![](/files/V6WqCXuYn1lR6iKofXkU)

### 2. Creating Sequences

You can add the desired bulb to your `Scene`. Each `scene` is made up of multiple `frames`.

The example below shows a very simple sequence of two lights switching back and forth between red and blue, with a `delay` of `500ms` between each frame. You can duplicate and create advanced chase sequences, flashes, etc. with several bulbs at a time.

We recommend keeping the delays no shorter than:\
`250ms` for Wyze Color Bulbs\
`500ms` for Philips Hue Bulbs

![](/files/-MkjMQ9u2SLJahD565yW)

### 3. Testing and Using In-Game

You can press the `Test Scene` button to test the scene with your smart bulbs. Press the `Test Scene` button in the `Restore` scene section to go back to your normal lighting.

#### Local Webserver: In-Game Use

For in-game use, your lights, turn signals, and hazards will automatically run as long as your community has the Sonoran CAD integration framework installed. This utilizes a [local webserver](/cad/api-integration/api-endpoints-v2/local-endpoints/smart-lighting) running from your desktop app.

1. If you have modified your Bodycam port from the default `9990`, you will need to update this port in-game as well. Use the `/setlightport <some port here>` command in-game to change your port from `9990` to something else.
2. Additionally, ensure you have set your file directory in the credentials section of the stream overlay.

## Configuring the Twitch Bot

Sonoran CAD's stream overlay also comes with a configurable Twitch bot. This bot will send out chat updates when unit or call data is updated.

{% hint style="warning" %}
The Twitch bot is **not included with the free version** of the Stream Overlay.\
\
[Learn more about the full version of Sonoran CAD's stream overlay.](#purchasing-the-overlay)
{% endhint %}

### 1. Create a Twitch OAuth Token

Create a new Twitch OAuth token by going to <https://twitchapps.com/tmi/>

### 2. Configure your Twitch Bot Token and Username

Using the overlay in OBS, select the `Twitch Bot` button in the taskbar.\
Paste in your Twitch channel name and OAuth key.

![Overlay - Twitch Bot Credentials](/files/-Mgn-lgKdCWwM49_QmJn)

Once set, you can press `Test` to display a test message in your Twitch chat.

### 3. Configure the Bot's Event Data

Every piece of unit and call data can be toggled on or off individually.

**It is highly recommended to only toggle on data updates that will not be frequently spammed.** Toggling too many data fields and updating data too quickly may result in **Twitch rate limiting your bot.**

![Overlay - Twitch Data Fields](/files/-Mgn0pM53HDPalmx1rDd)

### 4. Save and Run

Once you have configured your Twitch Bot's credentials and data fields, press `Save`.

Now, whenever one of those data fields is updated, your Twitch bot will send a chat message.

![Sonoran CAD - Stream Overlay](/files/-MgT5MJpzjE8MHuhxOBb)

### Debugging the Twitch Bot

If you're having issues seeing the Twitch bot messages, view the `Twitch Logs` panel in the stream overlay.

This will contain valuable information on the twitch bot's connection, rate limiting, and other errors.

![Overlay - Twitch Logs](/files/-Mgn0WrbRBMAP-aQUtba)

If you have too many data fields toggled, and are sending Twitch updates too quickly you may experience rate limiting.

## Custom Overlay Text

The overlay is immensely customizable, allowing you to customize every piece of data displayed.

### 1. Accessing the Overlay Window

The overlay configuration modal can be opened by navigating to `Start Menu` > `System` > `Stream Overlay`. Or, by searching in the start menu.

### 2. Configuring Text File Location

While the Twitch bot can run in a browser instance of Sonoran CAD, the [desktop application](/cad/download) **is required**, to generate unit/call data txt files.

In the stream overlay, open the txt file directory viewer and select a folder for the text files to be generated:

![Stream Overlay - Text file Location](/files/-MgmuyRm59WI22_UiFx-)

### 3. Toggle and Configure Keys

{% hint style="warning" %}
The **free version** of the overlay is limited to three (3) data keys.\
Learn more about the [full version of Sonoran CAD's stream overlay](#purchasing-the-overlay)!
{% endhint %}

In the `Configuration` tab, toggle on the desired data fields for your unit and dispatch call information.

For every field toggled, a text file will be generated to be viewed in OBS.\
However, we **recommend creating custom text files** to combine multiple data fields in a single text file.

![Stream Overlay - Custom Text Files](/files/-MhPdeeYiNHA9w8H3uUQ)

#### Data Field Keys:

These can be easily copied from the UI, by pressing the `Copy` button next to the toggled field and pasting into the custom file's key textbox.

| Key                 | Description               |
| ------------------- | ------------------------- |
| {unit\_status}      | Unit Status               |
| {unit\_location}    | Unit Location             |
| {unit\_aop}         | Unit AOP                  |
| {unit\_number}      | Unit Number               |
| {unit\_name}        | Unit Name                 |
| {unit\_agency}      | Unit Agency               |
| {unit\_department}  | Unit Department           |
| {unit\_subdivision} | Unit Subdivision          |
| {unit\_rank}        | Unit Rank                 |
| {unit\_group}       | Unit Group                |
| {unit\_panic}       | Unit Panic Status         |
| {call\_id}          | Dispatch Call ID          |
| {call\_origin}      | Dispatch Call Origin      |
| {call\_status}      | Dispatch Call Status      |
| {call\_priority}    | Dispatch Call Priority    |
| {call\_block}       | Dispatch Call Block       |
| {call\_address}     | Dispatch Call Address     |
| {call\_postal}      | Dispatch Call Postal      |
| {call\_title}       | Dispatch Call Title       |
| {call\_code}        | Dispatch Call 10-Code     |
| {call\_description} | Dispatch Call Description |

### 4. Save your Configuration

Don't forget to save your configuration!

### 5. Configure Data in OBS

In OBS, add a new text source:

![OBS - New Text Source](/files/-MgmwDqgk6jz9otetbNe)

In the text source properties, select `Read from File` and select one of your generated data key files from the [location specified earlier](#2-configuring-text-file-location).

![Stream Overlay - Text Files](/files/-MgmwtgC5G90cl7Vsc6v)

![Stream Overlay - Text file Viewer](/files/-MgmwoUBH0R050owLsZr)

You can now place the text field anywhere in your OBS stream layout.

You can also customize the fonts, change the background and more!

## Purchasing the Overlay

The free version of the livestream overlay allows anyone to test out the basic functionality. The free version does not allow use of the [Twitch bot](#configuring-the-twitch-bot), [bodycam](#bodycam-overlay), or [smart lighting integration](#smart-lighting) and is locked to a maximum of three custom "data keys".

The full, individual license for Sonoran CAD's livestreaming tools is available for $7.99/mo.

Or, **include the livestreaming tools for your&#x20;*****entire*****&#x20;community** with [Sonoran One](https://sonoran.one).

Users can purchase a license to the full version in their billing center:

{% content-ref url="/pages/-MN\_kXCLkdJQm7i8ugAK" %}
[Create and Manage a Subscription](/cad/pricing/faq/create-and-manage-a-subscription)
{% endcontent-ref %}

###


# Database Sync and Merge

Database Sync allows you to search all in-game characters, licenses, and vehicle registrations stored in your FiveM database—without manually creating records in Sonoran CAD.

{% hint style="info" %}
Database Sync requires the **Plus** version or higher of Sonoran CAD.

Additional features like Database Merge and Friendly Mapping require the **Pro** version of Sonoran CAD.

For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

{% hint style="success" %}
Looking for VPS, web, or dedicated hosting? Check out our official [server hosting](https://docs.sonoransoftware.com/promotions/fivem-hosting)!
{% endhint %}

<figure><img src="/files/Bul1LbdUNdUhWosEH2cS" alt=""><figcaption></figcaption></figure>

## What is DB Sync?

Database Sync allows you to search all in-game characters, licenses, and vehicle registrations stored in your FiveM database—without manually creating records in Sonoran CAD.

When a lookup is performed, Sonoran CAD securely queries your FiveM framework’s database and displays the results using your custom record templates.

## Configuring DB Sync

### 1. Enter Connection Credentials

In order for Sonoran CAD to read your in-game database, you must configure the connection information.

{% tabs %}
{% tab title="RocketNode" %}
**Rocket Node Hosting - Database Credentials**

**1. Login**

Login to your RocketNode game panel and navigate to your FiveM Server.

**2. Select the Database**

On the left sidebar select **Databases** > **...** menu > **Details**

<figure><img src="/files/bwQo8RPYtd0lElShz9e3" alt="" width="375"><figcaption></figcaption></figure>

**3. Copy Connection Credentials**

Enter the following items from the RocketNode database details panel into Sonoran CAD

* **Endpoint**
  * This includes the "Host" and "IP" portions for Sonoran CAD. From the image below, the Sonoran CAD **Host** would be `db-ash-06.apollopanel.com` and the **Port** would be `3306`.
* **Username**
  * Direct copy from RocketNode to the Sonoran CAD's **Username** field.
* **Password**
  * Direct copy from RocketNode to the Sonoran CAD's **Password** field.
* **Database**
  * Outside of the database details window the database name can be clicked to be copied and pasted into the Sonoran CAD **Database** field (image 2).

<div><figure><img src="/files/hSV1v6FGcYuP3pPeCRwy" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Te0r5KonsLDSDChOFKjy" alt=""><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="Zap Hosting" %}
**Zap Hosting - Database Credentials**

**1. Login**

Login to your Zap Hosting Account and Navigate to your FiveM Server.

**2. View the Tools Section**

Scroll down until you see **TOOLS** on the left hand side of your screen and select **`Databases`.**

![ZAP Hosting Tools - Database](/files/-MWjK3UlEhRdpFy5I-3t)

**3. View Database Credentials**

In the Center of your screen you will see you're database Credentials.

![Zap Hosting - Database Credentials](/files/-MWjKPKbCo2z5AImerWB)

**4. Set DB Credentials in Sonoran CAD**

Database Translation Information

| Zap Hosting | SonoranCAD   |
| ----------- | ------------ |
| Server/IP   | Host/Address |
| Database    | Database     |
| User        | Username     |
| Password    | Password     |

{% hint style="warning" %}
See [Database Sync and Merge Connection Credentials](#written-configuration-guide) to figure out how to add Credentials to your CAD Instance using the information above.
{% endhint %}
{% endtab %}

{% tab title="HeidiSQL" %}
**HeidiSQL - Database Credentials**

**1. Login to your database using HeidiSQL.**

**2. Open the User Manager**

At the top of your screen click `Tools` and then `User Manager.`\
Then, click `Add` at the top left.

![HeidiSQL - Open User Manager](/files/-MWjQT3UVuP7D4kx9Q6-)

**3. Enter the Account Information**

Enter a user name, password, and enter `%` in the From host field. This will allow external IPs (Sonoran CAD) to connect to your database.

Under `Allow Access To` select `Add Object`

![HeidiSQL - User Account Credentials](/files/-MX-VTOzcsf8Ec5M1Jid)

**4. Select the Database**

Select the name of your database, then hit `Ok`.

![HeidiSQL - Select Database](/files/-MX-W-nvHtc_EpPSUaZh)

**5. Select the Permissions**

Check off the `EXECUTE`, `SELECT`, and `SHOW VIEW` read permissions. Then press `Save`.

![HeidiSQL - Select User Permissions](/files/-MX-WNPCeOEkxJgYX6Gi)

**6. Save the user and set credentials in Sonoran CAD**

You will now want to go to <http://whatsmyip.org> and get your Public IP Address to use as your Host.

Database Translation Information

| HeidiSQL  | SonoranCAD   |
| --------- | ------------ |
| Host      | Host/Address |
| User name | Username     |
| Password  | Password     |
| Database  | Database     |

{% hint style="warning" %}
See [Database Sync and Merge Connection Credentials](#written-configuration-guide) to figure out how to add Credentials to your CAD Instance using the information above.
{% endhint %}
{% endtab %}

{% tab title="phpMyAdmin" %}
**phpMyAdmin - Database Credentials**

**1. Navigate to your phpMyAdmin Web Panel**

**2. Navigate to User Accounts**

At the top of your screen click on **`User Accounts`**.

![](/files/-MWjLzfxRef-WszvYJiD)

**3. Create a new user account**

![phpMyAdmin - New User Account](/files/-MWjN9cKTJEAThsUa5ZG)

**4. Fill out the account information**

The `Host Name` field should be set as `Any Host` and the value as `%`. This will allow external IPs (Sonoran CAD) to connect to your database.

![phpMyAdmin - New User Information](/files/-MX-QLCPQG94DRhsVKkE)

**5. Once created, edit the user account privileges**

![phpMyAdmin - Edit Account Privileges](/files/-MX-RAa8To9-btZ6p8o3)

**6. Select your specific database**

![phpMyAdmin - Set Database](/files/-MX-RM4rqRoKm356kqMn)

**7. Select only the required permissions**

`SELECT` and `SHOW VIEW` will ensure this account can only read from your database.

![phpMyAdmin - Read Only Permissions](/files/-MX-RfXYmnK-1fvTV8nj)

**8. Save the user and set credentials in Sonoran CAD**

You will now want to go to <http://whatsmyip.org> and get your Public IP Address to use as your Host.

Database Translation Informatio&#x6E;**:**

| phpMyAdmin | SonoranCAD   |
| ---------- | ------------ |
| Host       | Host/Address |
| Database   | Database     |
| User name  | Username     |
| Password   | Password     |

{% hint style="warning" %}
See [Database Sync and Merge Connection Credentials](#written-configuration-guide) to figure out how to add Credentials to your CAD Instance using the information above.
{% endhint %}
{% endtab %}
{% endtabs %}

<details>

<summary>Manual Port Forwarding</summary>

If your database port has not already been opened, you will need to forward/open this port.\
Typically, the default MySQL port is `3306`.

To check if your MySQL port has been properly opened, [visit a port checking utility](https://www.yougetsignal.com/tools/open-ports/) and enter your MySQL server's IP address and port.

**If you are unsure how to open a port, you will need to contact your hosting provider.**

</details>

<details>

<summary>IP Whitelisting</summary>

## IP Whitelisting

My community wants to whitelist **only** the Sonoran CAD IP address to connect on this SQL user account. How can I do this?

You may whitelist the following IPs:

```
34.173.36.190
```

Last Updated : 1/15/2026

</details>

### 2. Combine API and DB Sync Records

<details>

<summary>Combine API and DB Sync Records</summary>

When a community uses database sync, all record lookups run against that community’s external database. Some communities may also want to include CAD records created through [integrations such as ERS](/cad/integration-plugins/in-game-integration/available-plugins/ers). Enabling this option allows lookups to return both in-game data, such as characters, licenses, and vehicles, and API-created characters and vehicles from ERS.

To enable this, turn on **Include CAD API records in DB Sync lookups**.

<figure><img src="/files/xzsUvxzLFA6JL6VLfPeE" alt=""><figcaption></figcaption></figure>

</details>

### 3. Automatic AI Setup

<details>

<summary>Automatic AI Setup</summary>

Sonoran CAD's automatic AI setup handles all of the configuration for you. Once your connection credentials are entered correctly, select **AI Automatic Setup** to complete the full configuration.

The AI will automatically add any primary key columns if missing, will update your license record for any additional types, and will configure friendly mapping values if your community is on the Pro version. This process typically takes 60-90 seconds.

Once completed, the AI will inform you of any missing columns (record fields that don't exist in your database) and will save the new configuration.

Next, run a lookup in the police or dispatch panel to test searching for exisitng in-game characters, licenses, and vehicle registrations.

<figure><img src="/files/ct4zuzY2nyx5VetJayjV" alt=""><figcaption></figcaption></figure>

<div><figure><img src="/files/mOjQwgTK2dM46NnffxOW" alt=""><figcaption></figcaption></figure> <figure><img src="/files/2LbvrfuNut85hO6WwgLO" alt=""><figcaption></figcaption></figure> <figure><img src="/files/GIGGcqhjCC62wws5T9xq" alt=""><figcaption></figcaption></figure></div>

</details>

## Database Merge

<details>

<summary>Database Merge</summary>

For security, Sonoran CAD’s database sync is read-only. It retrieves information from your in-game database but never modifies it. Available fields—such as vehicle color, hair color, and other character details—are automatically loaded into your custom record templates.

If your database does not contain the information required for certain custom fields, those fields will appear blank. Database Merge allows you to manually complete these records without changing your in-game database.

When you enter information into a blank field, Sonoran CAD saves the additional data separately. During future lookups, it automatically combines your in-game database information with the manually entered CAD data to display a more complete record.

Database Merge is available exclusively to Pro communities and can be enabled from the Connection Credentials tab.

<figure><img src="/files/LQCzNWfBJUQfTIRhwo8M" alt=""><figcaption></figcaption></figure>

</details>

## Friendly Mapping

<details>

<summary>Friendly Mapping</summary>

Friendly mapping allows you to convert any raw database value to a more user friendly value.

\
Ex:

* `drive_license` in your database is converted to `Driver's License`.
* `color1` in your database is converted to `Brown`.

To manually configure friendly mapping on a field, select the **Modify** button under the **Friendly Mapping** column. Enter in a raw database value and the friendly value that should be replaced.

<figure><img src="/files/6CpiWI6ziRrTJZUzR6Sd" alt=""><figcaption></figcaption></figure>

</details>


# Old: Manual Sync Setup

Getting your database Credentials to use with Database Sync.

## Character Mapping

{% hint style="warning" %}
Sonoran CAD requires character mapping to be properly configured for the additional license and vehicle registration mapping.
{% endhint %}

### 1. What is DB Sync Mapping?

The DB sync configuration is designed to show Sonoran CAD the specific tables and columns that data can be pulled from in your database.

### 2. Table Columns and Name

The `table name` field will contain the name of your database table containing character records.

The `column name` field will contain the name of the specific column in the character records table containing data for this row.

The `Character Mapping Column` contains a unique ID for the specific character. This unique identifier will also map records in your license and vehicle registration tables back to the character that owns them. Typically, this is a Steam ID or license ID.

Character records can also pull data from multiple different tables, such as a properties table to add address information. Just be sure that those additional tables have a proper `identifier` column to map back to the other characters table.

**Example:**

In our database, the `characters` table contains our character records. The `identifier` column contains the character's unique ID, the `firstname` column contains the characters first name, the `lastname` character contains the characters last name, etc.

![SQL Table Example](/files/-Mc3NoAGDZZ7d9cbu10C)

![DB Sync Character Mapping Example](/files/-Mc3OXs6u_uTfsQ1Hb8Z)

### 3. Enable, Save and Test

Be sure that you have enabled character mapping via the toggle. Once your character mapping has been completed, hit the save button and then the test button. The test button will attempt to select a single random character with the mapping configuration specified.

If you see "Success!" move onto the next section.

## License and Vehicle Mapping

Licenses and Vehicle registrations can also be automatically pulled via CAD search with Database Sync.

### 1. Table Columns and Names

Similar to the character mapping, specify the table name containing your vehicle registrations or licenses. Unlike character mapping, data for these records can only be pulled from a single table.

The vehicle and license mapping will also need to have the `Character Mapping Column` specified. Again, this is the name of the column in your license/vehicle table containing a unique ID that maps back to the character that owns it.

**Example:**

In our database, the `owned_vehicles` table contains our stored vehicles. The `owner` column contains the character's unique ID that owns the vehicle, and the `plate` column contains the vehicle's license plate.

![SQL Vehicle Table Example](/files/-Mc3QO3CLYcZ4D_3Htgx)

![DB Sync - Vehicle Mapping Example](/files/-Mc3QhuXgi3RtQE64IIX)

### 2. Enable, Save and Test

Be sure that you have enabled the license/vehicle mapping via the toggle. Once your mapping has been completed, hit the save button and then the test button. The test button will attempt to select a single random license or vehicle with the mapping configuration specified.

If you see "Success!" move onto the next section.

## JSON Columns

Many databases store data in a JSON formatted column. Sonoran CAD can also parse these columns for data.

<details>

<summary>JSON Columns (Objects)</summary>

The following is for JSON columns that contain one or more object(s). Objects are formatted using `{}` and are NOT enclosed by `[]`.

**1. View the JSON Data**

In our database, the `accounts` column stores JSON formatted data. For this example, we want to display the `bank` money in the custom character record.

![SQL - JSON Column Example](/files/-Mc3SJsmnjmcaXtvBx7e)

To more easily view the JSON data, we can copy it from the cell and paste it into a [JSON formatter](http://jsonviewer.stack.hu/).

![](/files/-Mc3SsrguC1yhixjQFBX)

We can see that the JSON "key" for the bank account amount is `bank`.

**2. Nested JSON Values**

Nested JSON values are also supported.\
Here, the `eye_color` is a JSON object, with the `item` property of `0`.

![Database - Nested JSON Value](/files/-MkxR4CcySFu23zrDg--)

In the DB Sync config, we list the JSON key as `eye_color.item`

![](/files/-MkxRJTS5wD0o3l7Fh2q)

Then, we can use [friendly mapping](#friendly-mapping) to convert the eye color `0` value to an actual color, like "brown".

</details>

<details>

<summary>JSON Columns (Array)</summary>

The following is for JSON columns that contain an array of objects. Arrays are enclosed by `[]` and contain one or more objects formatted by `{}`.

**1. View the JSON Data**

In our database, the `licenses` column stores JSON formatted data. This data is an array (list) `[]` of license objects `{}`.

To more easily view the JSON data, we can copy it from the cell and paste it into a [JSON formatter](http://jsonviewer.stack.hu/).

<figure><img src="/files/GRTEnLIFkYLgRrDas8VM" alt="" width="148"><figcaption></figcaption></figure>

For this example, we want to display the status (valid/invalid) of the license type `drivers`.

**2. Configure the JSON Key**

We want our `Driver's License Status` field in our custom record to reflect whether or not their license is valid. The `expireDate` JSON property displays `true` (expired) or `false` (valid).

For our JSON key, set it to the following:

`[?(@.license='drivers')].expireDate`

This tells DB sync to look in the array (list) `[]` for a license type of `drivers` and give us the `expireDate` value.

<figure><img src="/files/nUg3U1H5XSEypLg9txgq" alt=""><figcaption></figcaption></figure>

Then, we can use [friendly mapping](#friendly-mapping) to convert the `true` to `Expired` and `false` to `Valid`.

</details>

## External Keys

### Introduction

In some cases, your license or vehicle registration tables may not directly contain a `Character Mapping ID` column (a column with an ID that directly maps back to the character/civilian record), but may contain a unique ID that maps back to a specific character in another table.

### Example: DB Layout

In this example, the `vehicle` table contains all of the vehicle information, but does not contain a `CharacterID` column. Instead, the `vehicle` table contains a `VehicleRegistrationID` column.

The `VehicleRegistrationId` column then maps to the `vehicleregistration` table. The `vehicleregistration` table then contains a corresponding `CharacterId` column, which maps back to the `character` table.

![Sonoran CAD - External Key DB Layout](/files/-Mix0ZHulFOaSRygZyAq)

### Example: CAD Config

In the CAD, the configuration is simple.

Toggle on the `External Key` checkbox, as the `vehicle` table's `VehicleId` needs to be mapped to an external table to be turned into the proper `characterId`.

Specify the external key's table (`vehicleregistration`) and the external key's column `CharacterId`.

![Sonoran CAD - External Key](/files/-Mix1BnL0fbwwoVkxKh8)

### 2. Set the JSON Column and Key

Back in the mapping panel, we toggle the field as a `JSON Column` and set the column name to `accounts` as this is the column in our character table that contains the JSON data.

We can then set the JSON Key for this data as `bank`.

![DB Sync - JSON Column](/files/-Mc3TbvPyg5p0uI3THEN)

## Friendly Mapping

{% hint style="warning" %}
Friendly Mapping requires the **pro** version of Sonoran CAD.

For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

Friendly mapping allows you to convert any raw database value to a more user friendly value.\
Ex: `drive_license` in your database is converted to `Driver's License`.

### 1. Find Values to "Friendly Map"

{% hint style="warning" %}
MySQL `tinyint` column types may be displayed as numerical values `0` and `1` but be read as `True` and `False` by Sonoran CAD.\
\
Instead of mapping the "Database Vaue" as `0` or `1` you will need to map `False` and `True`.
{% endhint %}

In our SQL table, we can see the character's job columns has text values that can be improved. The `taxi` job value can be automatically converted to `Taxi Driver` in DB Sync records, and the `cardealer` jon can be automatically converted to `Car Dealer`.

![SQL Table - Unfriendly Values](/files/-Mc3UFuczJxGLlMpVYFc)

### 2. Configure the Friendly Mapping

In our character table mapping, we can select `Modify` on the `job` field's friendly mapping.

![DB Sync - Modify Friendly Mapping](/files/-Mc3V4zK3_6QmqyKfLUd)

In the editor, we can now map the raw database value of `taxi` to a friendly value of `Taxi Driver` and the raw db value of `cardealer` to `Car Dealer`.

Be sure to hit save in the friendly mapping editor, and then save the configuration for your mapping section.

These new friendly mapped values will even work with [custom search types](/cad/tutorials/customization/custom-search-types)!

![Friendly Mapping Editor](/files/-Mc3VFpH3_291zGCd5e2)

### Import via CSV

#### 1. Copy the Google Sheet

Navigate to our [official friendly mapping Google Sheet](https://docs.google.com/spreadsheets/u/1/d/1Q83yqdH-YGlAv9zW-hJ1dA5k5hYPQDLfeXby0BXB6-k/copy) and make a copy. Using a copy of our official sheet ensures your friendly mapping is formatted correctly.

**You may ONLY use the Google sheet directly. Editing this via Excel or any other program is NOT supported.**

![Sonoran CAD - Copy Friendly Mapping CSV](/files/-MkxaLi-DuJX9PkHNaXN)

**2. Add your Friendly Mappings**

Be sure to leave the top header line as it is. Below the header, add in your friendly mapping keys and values.

![Sonoran CAD - Edit Friendly Mapping CSV](/files/-MkxaedQV5FL_zGqMFUc)

#### 3. Download the CSV

In Google Sheets, navigate to File > Download > Comma Separated Values (.csv) to download the file.

![Sonoran CAD - Download Friendly Mapping CSV](/files/-Mkxatf15jvh_roRK97m)

#### 4. Import the CSV File

In the friendly mapping editor select `Import` > `CSV` > Select your downloaded Google spreadsheet

Then, save the mapping and save the database sync config.

![](/files/-Mkxb8jMmuMejBgsqnag)

### Import from JSON

You can also build and format your friendly mapping from raw JSON and paste them directly into the UI.

#### 1. Format the JSON Structure

The JSON structure is an object array. Be sure to strictly follow the format.

```javascript
[
  {
    "dbValue": "0",
    "friendlyValue": "Brown"
  },
  {
    "dbValue": "1",
    "friendlyValue": "Green"
  },
  {
    "dbValue": "2",
    "friendlyValue": "Blue"
  }
]
```

#### 2. Import the JSON Structure

In the friendly mapping editor select `Import` > `JSON` > Paste your JSON formatted structure

![Friendly Mapping - Import via JSON](/files/-Mkx_WzECvvlc4S-HZta)

## Custom Record Fields

Sonoran CAD's records are entirely customizable, this includes database sync records! You can easily enable database sync mapping for any custom field you add to a character, license, or vehicle registration record.

### 1. Edit your Custom Record

Navigate to Admin > Customization > Custom Records

Select your custom character, license, or vehicle registration record to open the editor.

Simply add a field if the desired field doesn't already exist and note the `Label` name for the next step. For this example, we'll enable database sync for a new `job` field in our character's table.

Be sure to save your custom record format after enabling this!

<figure><img src="/files/0xQ0lwYbyhvU2IiyT8fK" alt=""><figcaption><p>Custom Records - DB Sync Mapping Toggle</p></figcaption></figure>

### 2. Configure the Newly Mapped Field

Back in our database sync editor, we can now see the new `Job` field has been added. We can map this new field to our database as any other field.

![Database Sync - Custom Field Mapping](/files/-Mc3XFlF_43n1A7FMr62)


# QB Core Mapping Tutorial

Find out how to map a QB Core database with Sonoran CAD!

## Character Mapping

QB Core stores player information in the `players` table.

The player's first and last name is stored as JSON in the `charinfo` column. We'll toggle these as a `JSON Column` and set the JSON keys to `firstname` and `lastname`.

The `citizenid` column stores a unique player ID. This will be our `Character Mapping Column`.

![](/files/L546jje8k32GB4bzlkvz)

![](/files/HXLjdljI5uN6JZEBNFaY)

### Multiple Residency

QB Core also allows players to own multiple residences at once.

Sonoran CAD's DB Sync will pull all of these from their external `player_houses` table.

![QB Core - DB Sync - Residency Mapping](/files/IRphkPbym8c6HXcyEbED)

Because multiple residences can be listed at once, it's recommended you update your custom record's residence field to the `textarea` type.

![](/files/5LZzdkkPIHHn65aXAUW9)

The custom record now shows the residency textarea with all owned addresses.

![QB Core - Multi Residence in Custom Record with DB Sync](/files/GNOHhK3yLMkZ16Y3yLko)

## Vehicle Mapping

QB Core stores the vehicle information in the `player_vehicles` table.

The `Unique ID` for vehicles is stored in the `citizenid` column and matches the values stored in the `citizenid` column from our player mapping.

The `plate` column stores the vehicle's license plates.

You can configure other custom fields may include color, make, model, etc. Vehicle colors are often stored as a number. You can use [friendly mapping](/cad/integration-plugins/database-sync-and-merge#friendly-mapping) to convert a number to a color name.

![](/files/dfCvtWP4TQIdnyrYDFqZ)

![](/files/te917yByt5y1AAb3o2oc)

## License Mapping

Because of how licenses are stored in QB Core, this process adds a couple of extra steps.

### 1. Open Admin panel to License Record

You will first need to edit the License record to adapt it for how QBCore stores its licenses. Open the Admin Panel by going to the following...

`Admin Panel` -> `Customization` -> `Custom Records` -> Click `#4 - License`

![Sonoran CAD Custom Record Editor](/files/W2adsdwBErBOLoYvHudV)

### **2**. Edit License Information Section

Replace the last three fields in the `License Information:` section with the following. Make sure to change the `type` to `text` and remove the `mask`. You can use the screenshot below as a guide. Then click `Save` before moving on.

{% hint style="danger" %}
**Don't forget to click Save before continuing!**
{% endhint %}

![Sonoran CAD custom record editor](/files/0zwTPW1T6syldOXYEthx)

### 3. Open DBSync Settings

Click `Advanced` -> `In-Game Integration` to open the DBSync settings menu.

### 4. Fill in DBSync Settings

As of writing on 2/28/2022, the following pictured settings will work for QBCore's latest version. Fill in the `Table Name`, `Character Mapping Column`, `Column Name`s, `JSON Column`s and `Friendly Mapping`s as shown below. Make sure to click `Save Mapping Config` once finished.

{% hint style="info" %}
We are aware of the misspelling "licence", this is intentional in QBCore to differentiate between another piece of data referred to as "license"
{% endhint %}

![Sonoran CAD DBSync Settings](/files/Nl2CFRmHPDl9iXdV46xT)

![Sonoran CAD DBSync Friendly Mapping Settings](/files/RgFas8oj6RXNOvjR7wsH)

Congratulations! You should now be all set up to display your licenses from QBCore in Sonoran CAD. Feel free to test a record lookup to verify everything is in order.

![Example QBCore DBSynced license data](/files/px7l1q4fKSzaNHJZ1wvy)


# Troubleshooting

Troubleshooting for common issues encountered with Database Sync

## Slow lookups

Sometimes with certain server hosts, their networks tend to respond slower for a variety of reasons. In MySQL there is a process as part of each login in which a DNS lookup is run before the CAD or other database users can be allowed in.

With slow DNS server settings, this can sometimes cause lookups to take 5-20 seconds in the CAD. We are going to show you one way to resolve this in MySQL Server/MariaDB Server.

1\. Open your my.ini configuration file for your MySQL server. If you are using XAMPP simply open the XAMPP Control Panel and click `Config` then `my.ini` from the line for your MySQL Module.

![XAMPP - Opening my.ini configuration file](/files/2WSb4eqfP6HR6YL09EEq)

2\. With the my.ini configuration file open, scroll down till you find the "\[mysqld]" section and add the following line right under `[mysqld]`

> skip-name-resolve

![MySQL my.ini configuration file](/files/gpiqSD8KujA41ZnmeR4T)

3\. Save the my.ini file and then restart your MySQL server. For XAMPP simply click Stop in the XAMPP Control Panel then click Start.

Your lookups in Sonoran CAD with DBSync enabled should now be faster. If your lookup speed is still slow (ie. takes over 5 seconds) this is usually due to much greater issues either with the performance of your server or network.


# Discord Bot Integration

Our official Discord bot provides deep integration for your community, including automatically syncing roles on your server with permissions in the CAD!

<figure><img src="/files/tVMjT55uDTjcT6jKOClt" alt=""><figcaption></figcaption></figure>

### Getting Started

Get started with SonoranBot today by inviting it to your Discord:

{% content-ref url="/spaces/gJnyZgUQPWpA5p9njAAR/pages/1jdipf4RgfuLEZ4nlTrv" %}
[Getting Started](/bot/tutorials/getting-started)
{% endcontent-ref %}

### CAD Integration

Learn more about SonoranBot's CAD integration features:

{% content-ref url="/spaces/gJnyZgUQPWpA5p9njAAR/pages/WznsA2eFX2EUFOOLkIry" %}
[Sonoran CAD Integration](/bot/tutorials/sonoran-cad-integration)
{% endcontent-ref %}

### Settings

Configure SonoranBot's settings in your server:

{% content-ref url="/spaces/gJnyZgUQPWpA5p9njAAR/pages/RmmQ4VmMQYTRebFbBdZq" %}
[Settings](/bot/tutorials/usage/settings)
{% endcontent-ref %}

### Commands

Reference a list of bot commands:

{% content-ref url="/spaces/gJnyZgUQPWpA5p9njAAR/pages/XGzCFTCXEaoQLNxXPwBB" %}
[Commands](/bot/tutorials/usage/commands)
{% endcontent-ref %}


# Discord Rich Presence

Our desktop app allows you to advertise your community right in Discord!

{% hint style="info" %}
Rich presence is included with all versions of Sonoran CAD, but customization requires the **Standard** plan or higher, and the **Pro** plan for complete customization with the icon.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

## What is Discord Rich Presence?

When running our [desktop application](/cad/download), Discord can automatically detect and display information about your community.

![Sonoran CAD - Discord Rich Presence](/files/-MfBZHrRLtBNIQRNRY2U)

## Customizing your Rich Presence

![Sonoran CAD - Discord Presence Customization](/files/-MfFk_cL48Malw6Zvd2C)

### Customizing Buttons

Discord presence currently allows for two customizable buttons.

Navigate to Admin > Customization > Customization > Discord Rich Presence

#### For communities on the **Standard** plan or higher:

\- Button #2 may be customized to any [Sonoran CAD](/cad/tutorials/customization/custom-login-page#in-game-tablet) or [Sonoran CMS](https://info.sonorancms.com/why-choose-sonoran-cms/why-choose-sonoran-cms) invitation link.\
\- Ex: `https://sonorancad.com/#/?comid=mycommunityid` or `https://sonorancms.com/#/?comid=mycommunityid`

#### For communities on the Pro plan:

\- Both buttons may be customized to any URL desired.\
\- The Icon and title can also be customized with a Discord developer application.

### Customizing the Icon

Communities on the **Pro** version may customize the rich presence icon:

#### 1. Create a new Discord Application

On <https://discord.com/developers/applications> create a new application

![Discord Developer - New Application](/files/-MfFmFqG1nMoBSE5Vw3m)

#### 2. Copy your Client ID

Under OAuth2, copy your `Client ID`

![Discord Developer - Application Client ID](/files/-MfFmblCUDZdSEZNzLEe)

#### 3. Add an Icon

Next, upload an icon for your new application. Be sure to copy down the name of the icon for later.

![Discord Developer - Application Icon](/files/-MfFmtsZeWwUcM-fG1wt)

#### 4. Configure in Sonoran CAD

Back in the admin customization menu, we can paste the Discord application's Client ID and Icon name.

![Sonoran CAD - Custom Discord Presence Config](/files/-MfFn9ySa07Ih53WX_1g)

Once saved, your Discord presence for all community members will reflect your custom icon, title, and buttons.

![Sonoran CAD - Custom Discord Presence View](/files/-MfFne7EdccZWmlmylbM)

## Toggle On/Off Rich Presence

### Community Toggle

To hide the invite button for your community's Discord rich presence, simply leave the button text and URL blank.

### User Toggle

In the settings menu, users can toggle this display on or off for their individual desktop client.

![Sonoran CAD Settings - Disable Discord's Rich Presence](/files/-MfBcorvmMRL8mBU5wKB)

## Known Issues

#### My presence visible, but not to others?

If your Discord presence is visible to you personally but not to others, ensure the button labels don't include any sort of `:emoji:` in them.


# Discord Webhooks

Receive instant notifications in your Discord channel when new records are added, dispatches are modified, admin actions occur, and more!

{% hint style="info" %}
The free version of Sonoran CAD is limited to one (1) Discord webhook.\
For more information, see our [pricing](/cad/pricing/faq) or view how to check your community [limits](/cad/tutorials/getting-started/view-your-limits).
{% endhint %}

{% hint style="warning" %}
Currently, Discord webhooks can only be created using the Desktop version of Discord.
{% endhint %}

<figure><img src="/files/YDiYIgns3MAMHIn9a6KT" alt=""><figcaption></figcaption></figure>

### 1. Open your Server Settings

Open the "Server Settings" panel in the top right of your Discord server.

![](/files/-MFEa1pGxpts7G4ttcje)

### 2. Open your Discord Integrations

In the server settings panel, select the “Integrations” tab.

![](/files/-MFEaJH6mlYI40cZbdCj)

### 3. View your Webhooks

On the right, click to view all of your current Discord webhooks.

![](/files/-MFEaS_B1pOi1Mte9jpu)

### 4. Create a New Webhook URL

Select the "New Webhook" button.

![](/files/-MFEaVHatwC1pj80FzmG)

### 5. Customize the New Webhook

Here, you can set the Webhook name, channel and icon.

Press the "Copy Webhook URL" button to copy the webhook's URL.\
Press the "Save Changes" button to save your new webhook in Discord.

![](/files/-MFEatrMGOX-skht5dV-)

### 6. Configure the Sonoran CAD Webhook

{% hint style="warning" %}
New webhooks are created as "discord.com". If you are having problems please change the URLs of the old webhooks from "discordapp.com" to "discord.com" so they will function.
{% endhint %}

In the Sonoran CAD Admin panel, select “Advanced > Discord Integration”\
Paste your Webhook URL in the desired webhook configuration box.\
Toggle the desired notification events for the specific webhook. Press the “Save Configuration” button.

![](/files/-MFEb7CR8nyAzOFyB0cl)

{% hint style="info" %}
*Note:* Some webhooks allow you to customize the notification settings even further. For example, you can specify to only receive a webhook when a police record is added, edited or removed.
{% endhint %}

### 7. Footer Metadata

{% hint style="danger" %}
As of Sonoran Bot v2, the ability to react to webhooks to create actions has been depreciated.

Footer metadata is still available to all communities.

[Submit a suggestion](https://support.sonoransoftware.com) to see this reimplemented!
{% endhint %}

### Footer Metadata

Webhook footers contain metadata that can be pulled from a bot for further integration.\
These follow the format: `USERNAME or UUID` | `TYPE` | `ID`

![Sonoran CAD - Webhook Footer Data](/files/-Map0sbAHqkjqVdAAmHb)

| Type               | ID Value                            |
| ------------------ | ----------------------------------- |
| 0: UNIT\_PANIC     | Identifier ID                       |
| 1: TEN\_CODES      |                                     |
| 2: PENAL\_CODES    |                                     |
| 3: SIGNAL          | Signal Value                        |
| 4: ACCOUNT         |                                     |
| 5: NEW\_DISPATCH   | Call ID \| Server ID                |
| 6: EDIT\_DISPATCH  | Call ID \| Server ID                |
| 7: CLOSE\_DISPATCH | Call ID                             |
| 8: EMERGENCY       | Call ID \| Server ID                |
| 9: RECORD\_ADD     | Record ID                           |
| 10: RECORD\_EDIT   | Record ID                           |
| 11: RECORD\_REMOVE | Record ID                           |
| 12: TONE\_PLAYED   | Tone Label                          |
| 999: SYSTEM        | Systemwide Broadcast (From Sonoran) |


# Stream Deck Plugin

Sonoran CAD’s official Stream Deck plugin gives you faster, customizable control over the tools and actions you use most.

<figure><img src="/files/c5AmdSOoOE2VucWkPtsC" alt=""><figcaption></figcaption></figure>

<div><figure><img src="/files/QTaPm4Ninj7HhE6tiUxe" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Bh41NVk1tLjD2GgsF0Ar" alt=""><figcaption></figcaption></figure> <figure><img src="/files/7dNehWEL55NafPBgpgUx" alt=""><figcaption></figcaption></figure></div>

## Introduction

Sonoran CAD's MacOS and Windows desktop applications offer direct integration with [Stream Deck hardware](https://www.elgato.com/us/en/p/stream-deck). By installing our official Stream Deck plugin, users can customize layouts and buttons to control their CAD faster than ever before.

Don't have a physical Stream Deck? Download the [free Stream Deck Mobile app](https://www.elgato.com/us/en/s/stream-deck-mobile)!

## Installation

### 1. Download and Install the Plugin

Download the official [Sonoran CAD Stream Deck plugin from the Elgato Marketplace](https://marketplace.elgato.com/product/sonoran-cad-fcdbaa52-45cc-4569-89f2-c395d2ae8834).

<figure><img src="/files/LnnxMdIAKhcVbhmcwYmr" alt=""><figcaption></figcaption></figure>

Stream Deck will automatically install your plugin for use.

<figure><img src="/files/9pyspJDAbOB6hmLEXkVo" alt=""><figcaption></figcaption></figure>

### 2. Configure Actions

Using the Stream Deck desktop application search for **Sonoran CAD** in the **Keys** section.

Drag-and-drop an action category to the Stream Deck. Select the action to update the sub-type.

Ex: **Status** action type > **Status Option** > **Panic**

<figure><img src="/files/T8Dsd3XvEbzYVSeB2hRU" alt="" width="375"><figcaption></figcaption></figure>

## Action Capabilities

The Sonoran CAD desktop application must be running and signed in to a Police, Fire, EMS, or Dispatch page for actions to run.

### Status

Status buttons will automatically change labels based on your community's custom status buttons. Your current status option will show as a filled outline when selected.

* **Available**
* **Busy**
* **Unavailable**
* **Enroute**
* **On Scene**

### Panic

The **Panic** button will toggle your active unit's panic status.

The button will change from outlined to filled when a panic mode is active.

### Window

When pressed, these actions will open the corresponding window in the CAD.

* **3D Live Map -** [**FiveM**](/cad/integration-plugins/in-game-integration/available-plugins/live-map) **or** [**ER:LC**](/cad/integration-plugins/erlc/3d-live-map)
* [**Tone Board**](/cad/tutorials/customization/tone-board) (Available to dispatchers or when Self Dispatch Mode is enabled)
* [**Rapid IQ**](/cad/tutorials/dispatching/rapid-iq) (Opens in the active visible Call Viewer)
* [**Command Line**](/cad/tutorials/dispatching/command-line-interface-cli)
* [**Street Signs**](/cad/integration-plugins/in-game-integration/available-plugins/smart-signs)
* **Call Viewer**
* [**Lookup**](/cad/tutorials/records-management/searching-for-records)
* [**Records**](/cad/tutorials/records-management)
* [**10-Codes**](/cad/tutorials/customization/10-codes)
* [**Penal Codes**](/cad/tutorials/customization/penal-codes)
* [**Quick Links**](/cad/tutorials/customization/quick-links)
* **BOLOs**
* **Active Calls**
* **Emergency Calls** (Available to dispatchers or when Self Dispatch Mode is enabled)
* **Signal** (Available to dispatchers or when Self Dispatch Mode is enabled)
* **Timers**
* **Notepad**

### Bodycam

* **Open Bodycam** (Requires an active unit)
* **Record Bodycam** (Requires an active unit)
* **View Recordings**

### Other Actions

* **Clear Dispatch Editor** (Requires a visible Call Viewer)
* **Self-Clear** (Detaches your active unit from its current call)

The following actions run the corresponding ER:LC integration from a Police or Dispatch page:

* [**Traffic Stop**](/cad/integration-plugins/erlc/traffic-stops)
* [**Plate Reader**](/cad/integration-plugins/erlc/plate-reader)


# FiveM

Sonoran CAD offers the largest library of FiveM integrations available.

{% hint style="info" %}
Looking to host your FiveM server? Check out our official [server hosting](https://docs.sonoransoftware.com/promotions/fivem-hosting)!
{% endhint %}

<figure><img src="/files/YqgeitLgs4mQTONYkTCb" alt=""><figcaption></figcaption></figure>

### FiveM Installation

From one-click installation options to pre-configured resource downloads, we've made integration setup a breeze!

Learn more about installing the resource below.

{% content-ref url="/pages/fHmv4G6wzzVdIaTEjx3a" %}
[FiveM Installation](/cad/integration-plugins/in-game-integration/fivem-installation)
{% endcontent-ref %}

### FiveM Submodules

The Sonoran CAD FiveM resource is packed with over a dozen submodules. Each submodule offers unique feature customization.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Body Camera</td><td><a href="/files/uqkGIRFLP3cpESC2JLHq">/files/uqkGIRFLP3cpESC2JLHq</a></td><td><a href="/pages/rKwXeTbUWK3IdDLTRziR">/pages/rKwXeTbUWK3IdDLTRziR</a></td></tr><tr><td>CAD Display</td><td><a href="/files/rnxvUnUK0c2WNBvcLmUz">/files/rnxvUnUK0c2WNBvcLmUz</a></td><td><a href="/pages/5Ezx514THVXyhar7XpfC">/pages/5Ezx514THVXyhar7XpfC</a></td></tr><tr><td>Call Commands</td><td><a href="/files/oaRvKPAtrKBRa437zIDX">/files/oaRvKPAtrKBRa437zIDX</a></td><td><a href="/pages/NscX5N7h6q5qOUCXpX1T">/pages/NscX5N7h6q5qOUCXpX1T</a></td></tr><tr><td>Call Templates</td><td><a href="/files/QF5g5kWQ1iUk3fSqUyua">/files/QF5g5kWQ1iUk3fSqUyua</a></td><td><a href="/pages/6IcdcOIXS11ER1UpesO7">/pages/6IcdcOIXS11ER1UpesO7</a></td></tr><tr><td>Civilian Integration</td><td><a href="/files/lpVvA2uzAElkkAloOqAa">/files/lpVvA2uzAElkkAloOqAa</a></td><td><a href="/pages/7ffKsdIGu6CODhKs4Wiz">/pages/7ffKsdIGu6CODhKs4Wiz</a></td></tr><tr><td>Database Sync</td><td><a href="/files/Bul1LbdUNdUhWosEH2cS">/files/Bul1LbdUNdUhWosEH2cS</a></td><td></td></tr><tr><td>Dispatch Notify</td><td><a href="/files/lOdP8ncq6sPQBWHtY2nq">/files/lOdP8ncq6sPQBWHtY2nq</a></td><td><a href="/pages/IT7Bz3CuGsCZn6291lcX">/pages/IT7Bz3CuGsCZn6291lcX</a></td></tr><tr><td>ERS Integration</td><td><a href="/files/JiyWgY4ufQV6wKlbGxJL">/files/JiyWgY4ufQV6wKlbGxJL</a></td><td><a href="/pages/w0r6DUmKMxQJMo10HBGJ">/pages/w0r6DUmKMxQJMo10HBGJ</a></td></tr><tr><td>Framework Support</td><td><a href="/files/Od2IkQWCsvJHvJFY56kn">/files/Od2IkQWCsvJHvJFY56kn</a></td><td><a href="/pages/QhnxZFSlSjR1QunttDaZ">/pages/QhnxZFSlSjR1QunttDaZ</a></td></tr><tr><td>Force Register</td><td><a href="/files/DI7UcS5j9QE5888AHCGc">/files/DI7UcS5j9QE5888AHCGc</a></td><td><a href="/pages/fMYLsy3YjzWSsRa2jzXV">/pages/fMYLsy3YjzWSsRa2jzXV</a></td></tr><tr><td>Kick</td><td><a href="/files/7QN5g3AbjKX6KX4nQFTM">/files/7QN5g3AbjKX6KX4nQFTM</a></td><td><a href="/pages/2UwcyVm3qzgUmiARRQAx">/pages/2UwcyVm3qzgUmiARRQAx</a></td></tr><tr><td>LB Phone App</td><td><a href="/files/YjHF93Uc3e7RE8vHjqcO">/files/YjHF93Uc3e7RE8vHjqcO</a></td><td><a href="/pages/QBDSFkwqNIafb0u675SR">/pages/QBDSFkwqNIafb0u675SR</a></td></tr><tr><td>Local Callers</td><td><a href="/files/TDPn5zegYGavHwSLrty5">/files/TDPn5zegYGavHwSLrty5</a></td><td><a href="/pages/RghWK0eGsoyBuoESIaJ5">/pages/RghWK0eGsoyBuoESIaJ5</a></td></tr><tr><td>Live Map</td><td><a href="/files/r2vGQHkazuu41xdjkOf4">/files/r2vGQHkazuu41xdjkOf4</a></td><td><a href="/pages/3s2cHiXd23KEaK7V05bs">/pages/3s2cHiXd23KEaK7V05bs</a></td></tr><tr><td>Pager Reborn</td><td><a href="/files/f0msZ6SAADq6wNCf78G7">/files/f0msZ6SAADq6wNCf78G7</a></td><td><a href="/pages/A6rlyOku6g7Zp2rpN99o">/pages/A6rlyOku6g7Zp2rpN99o</a></td></tr><tr><td>Record Printer</td><td><a href="/files/T2qJHh5S8CTpceeMQgoB">/files/T2qJHh5S8CTpceeMQgoB</a></td><td><a href="/pages/Nlz6Gqo8SxFenDRF6tDE">/pages/Nlz6Gqo8SxFenDRF6tDE</a></td></tr><tr><td>Smart Signs</td><td><a href="/files/k0uGticoRcHtozMsmPOl">/files/k0uGticoRcHtozMsmPOl</a></td><td><a href="/pages/evVPOhjlGJ7sPt0fAORk">/pages/evVPOhjlGJ7sPt0fAORk</a></td></tr><tr><td>Sonoran Radio</td><td><a href="/files/4b5K9DoDFysCs2POppzs">/files/4b5K9DoDFysCs2POppzs</a></td><td><a href="/pages/UiV2SyaTSBuq0VwuTXJx">/pages/UiV2SyaTSBuq0VwuTXJx</a></td></tr><tr><td>Station Alert</td><td><a href="/files/6CmLCoffqNgPAG2SvI16">/files/6CmLCoffqNgPAG2SvI16</a></td><td><a href="/pages/rxU3bAFphHvVS52w5RUc">/pages/rxU3bAFphHvVS52w5RUc</a></td></tr><tr><td>Tablet &#x26; Mini-CAD</td><td><a href="/files/3TV1kelAh5IJ2HW1QSrW">/files/3TV1kelAh5IJ2HW1QSrW</a></td><td><a href="/pages/sfKJYu5LBvN60oJQYxnj">/pages/sfKJYu5LBvN60oJQYxnj</a></td></tr><tr><td>Unit Status</td><td><a href="/files/x2ec4X7BsyjnMIxkX6GC">/files/x2ec4X7BsyjnMIxkX6GC</a></td><td><a href="/pages/TQZk3IPmAjAXFoh7N7i7">/pages/TQZk3IPmAjAXFoh7N7i7</a></td></tr><tr><td>Vehicle Register</td><td><a href="/files/YfLhCSE8ajQKRf7fws3U">/files/YfLhCSE8ajQKRf7fws3U</a></td><td><a href="/pages/ujHsLwULply6JDERzmM6">/pages/ujHsLwULply6JDERzmM6</a></td></tr><tr><td>WraithV2</td><td><a href="/files/47lAxsa7r5VwdSEMleDi">/files/47lAxsa7r5VwdSEMleDi</a></td><td><a href="/pages/AZHJdaclU5nJBl9wHVMo">/pages/AZHJdaclU5nJBl9wHVMo</a></td></tr></tbody></table>

{% content-ref url="/pages/L15Qgtrxp6hPlpj1DXQ1" %}
[Submodule Configuration](/cad/integration-plugins/in-game-integration/submodule-configuration)
{% endcontent-ref %}

### Developer Documentation

<figure><img src="/files/qAa6cCVSTvaHHzUYtLBy" alt=""><figcaption></figcaption></figure>

### API Documentation

View our API endpoints, documented with examples for all code libraries, raw requests, rate limit information, and more.

{% content-ref url="/pages/-M4pGj0KLMkIUwHsRqNa" %}
[API Integration](/cad/api-integration)
{% endcontent-ref %}

### FiveM Developer Documentation

In addition to the official API libraries, FiveM developers can access exports and functions from the official resource.

{% content-ref url="/pages/G94tDY9K46yrhEvt6uH0" %}
[FiveM Development Documentation](/cad/integration-plugins/in-game-integration/framework-development-documentation)
{% endcontent-ref %}


# FiveM Installation

Sonoran CAD's Integration Core imports common API method wrappers and functionality. Installing our integration framework is easy! Learn more below.

## A. One-Click Installation (RocketNode)

We've partnered with Rocket Node to bring you one-click Sonoran CAD installation for FiveM — making it easier than ever to host your community and connect with Sonoran CAD.

* [Purchase your FiveM Game Server!](https://sonoran.link/v2E9hKGm)
* Use code `SONORAN`to save big!

{% embed url="<https://www.youtube.com/watch?v=h8Ftx14j8l8>" %}

The Sonoran CAD FiveM resources has multiple "submodules" for every integration feature. [These are easily enabled and configured](/cad/integration-plugins/in-game-integration/submodule-configuration) in the `/configuration` folder.

{% content-ref url="/pages/L15Qgtrxp6hPlpj1DXQ1" %}
[Submodule Configuration](/cad/integration-plugins/in-game-integration/submodule-configuration)
{% endcontent-ref %}

***

## B. Pre-Configured Resource Installation <a href="#pre-configured-resource-installation-recommended" id="pre-configured-resource-installation-recommended"></a>

{% embed url="<https://youtu.be/QimkcbTPl44>" %}

### 1. Download the ZIP

Download a pre-configured version of the in-game integration resource from the panel. This download will already have your community ID and API Key in the `config.lua` file in addition to file renaming done for you.

Navigate to `Admin` -> `Advanced` -> `In-Game Integration` -> `FiveM`

<figure><img src="/files/glbhHdUVrjqof8SDFVxX" alt=""><figcaption><p>Sonoran CAD: FiveM Resource Download</p></figcaption></figure>

### 2. Extract the ZIP File

Extract the `.zip` file into your resources directory. Place the `[sonorancad]` folder directly in the resources root directory.

<figure><img src="/files/WuJXTsFnrOgeoOuLZzjH" alt=""><figcaption><p>Sonoran CAD - Folder Structure</p></figcaption></figure>

### 3. Update Your Server Config

In your `server.cfg` file, simply add the following line:

**This is the** 🌟**only**🌟 **line that you need to add to your `server.cfg` file. Do not ensure any other part of the resource.**

```
exec @sonorancad/sonorancad.cfg
```

{% hint style="danger" %}
It is very important that the `sonoran_updatehelper` resource is not started manually. Doing so may cause a server crash if updates are available due to a race condition.

**DO NOT** start the whole \[sonorancad] folder as that will also start the sonoran\_updatehelper which might cause crashing if it is started manually. Example of not what to do `ensure [sonorancad]`
{% endhint %}

<details>

<summary>Advanced - Remove Tablet, pNotify, etc.</summary>

Adding the `exec @sonorancad/sonorancad.cfg` starts multiple resources bundled with the download. If you wish to not use one or more of the resources (or with a different name) you will need to:

* Copy/paste the contents of `sonorancad.cfg` to your `server.cfg`
* Remove the `exec @sonorancad/sonorancad.cfg` line from your `server.cfg`

Do not update the contents of `sonorancad.cfg` as it will be overwritten on resource updates.

</details>

### 4. Configure the Resource

Modify the `/configuration/config.json`file for any additional configuration values.

This is also where the global FiveM notification backend is configured. Set `notificationSystem` to one of:

* `auto`
* `ox_lib`
* `lation_ui`
* `pnotify`
* `chat`

When `notificationSystem` is `auto`, Sonoran CAD selects the first available system in this order:

1. `ox_lib`
2. `lation_ui`
3. `pnotify`
4. `chat`

### 5. Configure the Submodules

The Sonoran CAD FiveM resources has multiple "submodules" for every integration feature. [These are easily enabled and configured](/cad/integration-plugins/in-game-integration/submodule-configuration) in the `/configuration` folder.

{% content-ref url="/pages/sgIyAQyYroJy46k7JfvC" %}
[FiveM Submodules](/cad/integration-plugins/in-game-integration/available-plugins)
{% endcontent-ref %}

### 6. Configure the Auto-Updater

The Sonoran CAD FiveM resource contains an auto-updater that will override all non-configuration files when a new version of Sonoran CAD is released.

#### Whitelist Specific Files

Some communities have custom files inside the `[sonorancad]` folder they don't wish to have overwritten, like custom plate reader images.

Simply add the direct path to the directory or individual files to the `sonorancad/configuration/updaterIgnore.json` file.

#### Disable Automatic Updates

To disable this auto-update entirely set `allowAutoUpdate` to `false` in the `config.json`.

***

## Additional Configuration

### Convar Overrides

<details>

<summary>Convar Overrides</summary>

Starting with framework version 2.6.2, you can override any configuration option in your `config.json` file by specifying a convar before the sonorancad resource starts.

{% hint style="warning" %}
This feature does not work with arrays (like statusLabels). Any other configuration option can be set using the `sonoran_<configSettingHere>` format.
{% endhint %}

</details>

### Manual IP:Port Push Events

<details>

<summary>Manual IP:Port Push Events</summary>

The FiveM resource uses a [websocket](/cad/api-integration/websocket-api) to stream all events from the CAD to your local FiveM server. In the event that this websocket is not connected (games outside of FiveM) it will fall back to an optional `http://ip:port/sonorancad/event` POST method.

In the CAD admin panel, navigate to: Advanced > In-Game Integration\
Expand the "Server Events and Integrated Live Map" section.

Enter your server's public IP address and your game server's port. By default, this is port `30120`.

**Forward Push Events to an External Server**

You may wish to also send push events to another external web server, like a Discord bot.

In the framework configuration file, simply set `enablePushEventForwarding` to `true` and `pushEventForwardUrl` to your web server address.

</details>

### Steam API Key

<details>

<summary>Steam API Key</summary>

If your framework has the `primaryIdentifier` set to `steam` in the [configuration ](#3.-configure-and-rename)(used for your API ID type), you'll need to ensure a Steam API key is set in your `server.cfg` file.

You can register a new Steam API Key at <http://steamcommunity.com/dev/apikey>

Then, paste it into your `server.cfg`

```
# Steam Web API key
# If you want to use Steam authentication (https://steamcommunity.com/dev/apikey) # -> replace "" with the key
set steam_webApiKey "YOUR_KEY_HERE"
```

</details>

## Updates

Sonoran CAD's integration framework and submodules will automatically update with the latest features, fixes, and changes!

Or, run `sonorancad update` to instantly check and apply any updates for the framework core.

## Commands

The Sonoran CAD integration framework comes with several commands. These commands can be run in your server console to provide information, update submodules , and more.

| Command                | Description                              |
| ---------------------- | ---------------------------------------- |
| `sonorancad help`      | Display list of commands                 |
| `sonorancad update`    | Run core/framework updater               |
| `sonorancad debugmode` | Toggle debug mode on/off                 |
| `sonorancad info`      | Dump version info and configuration data |
| `sonorancad support`   | Dump information for support staff       |

## Troubleshooting

{% content-ref url="/pages/W7NagKQu08GrUYAit7Fw" %}
[Troubleshooting](/cad/integration-plugins/in-game-integration/fivem-installation/troubleshooting)
{% endcontent-ref %}

### Server Crashes

1\. Check to make sure `sonoran_updatehelper` or `[sonorancad]` is not being started in your server.cfg.

{% hint style="danger" %}
It is very important that the `sonoran_updatehelper` resource is not started manually. Doing so may cause a server crash if updates are available due to a race condition.

**DO NOT** start the whole \[sonorancad] folder as that will also start the sonoran\_updatehelper which might cause crashing if it is started manually. Example of not what to do `ensure [sonorancad]`
{% endhint %}

2\. Try updating your smartsigns submodule manually to the latest version. This is done by copying over the lua files from the latest release found [here](/cad/integration-plugins/in-game-integration/available-plugins/smart-signs) and overrideing the old files.

{% hint style="info" %}
We have gotten isolated reports of servers crashing with the following error, this is assumed to be related to having lower end VPS hardware specs and txadmin rebooting the server because the update process is taking too long.
{% endhint %}

![](/files/rpKhp5Rjp7QLsgQuIgYC)

### Warning: Could not find file X

1.) Check that the file in question is actually present in the specified file path. To find the correct path please read the example below:

```
Started resource sonorancad (3 warnings)
^3Warning: Could not find file `html/config.js` (defined in fxmanifest.lua:16^7
```

In this example, you would navigate to the `sonorancad` **resource**, open the `html` **folder** and ensure the **file** `config.js` is present.

{% hint style="info" %}
This is simply a **WARNING**, if the resource works **AS EXPECTED**, you can simply ignore the warning and continue
{% endhint %}


# FiveM Resource Migration (v4)

Sonoran CAD's FiveM resource is moving from v3 to v4, requiring a manual update. FiveM integration is now available for FREE with easier integration than ever before.

## FiveM CAD v4 Resource Available

As of 4/27/2026 our Sonoran CAD FiveM v4 resource is now available. This resource:

* Migrates all API usage to our new v2 endpoints
* Allows full API and FiveM integration with the **free version** of Sonoran CAD
* Includes expanded and improved developer documentation, rate limits, and more.

## CAD FiveM v3 Depreciation

With the release of our all new v2 API and corresponding FiveM resource v4, we will be depreciating the CAD FiveM v3 and API v2 endpoints on **June 15th, 2026** (\~45 days from announcement).

Communities must update from the v3 to v4 CAD resource by **June 15th, 2026** before the v3 resource no longer works at all. Support will not be provided to communities on the old v3 resource.

## Migrating to FiveM CAD v4

1. Backup your existing CAD v3 resource and configuration files.
2. [Download a new, pre-configured CAD resource and install it as normal.](/cad/integration-plugins/in-game-integration/fivem-installation)
3. Carefully, manually migrate configuration settings for each submodule from v3 to v4.
   1. Note: Some submodule configuration files have changed from v3 to v4. **Do not just copy the old v3 configs to v4** as some names have changed.
4. Review updated in-game command names.
   1. Use `/sonorancad help` in-game to view all
   2. Review the [submodule documentation pages](/cad/integration-plugins/in-game-integration/available-plugins) for more information.

Having trouble? Contact our [customer support team](https://support.sonoransoftware.com/).




---

[Next Page](/llms-full.txt/1)

