# Radio Scanners

<figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2FF5jUqeY1uge17Y0x5CdY%2Fscanner%20(1).png?alt=media&#x26;token=c4596dce-0f21-4499-af0e-ad367e3b69a3" alt=""><figcaption><p>Sonoran Radio - In-Game Scanner</p></figcaption></figure>

{% hint style="warning" %}
Due to bandwidth usage, this feature is automatically enabled with the Pro version only!

[Learn more about our paid subscription plans.](https://docs.sonoransoftware.com/radio/pricing/pricing-faq/standalone-pricing)
{% endhint %}

## Video Example

## Using the Radio Scanner

### Enabling the Scanner

1. Enable the `config.chatter`  option in your [config.lua](https://docs.sonoransoftware.com/radio/getting-started/installing-the-in-game-resource#updates).
2. Add the `sonoranradio.scanner` [ace permission](https://docs.sonoransoftware.com/radio/tutorials/usage/in-game-radio/configuring-ace-permissions).

### Opening in Standalone

You can use `/radio scanner` command to open a personal scanner. This requires the `sonoranradio.scanner` [ace permission](https://docs.sonoransoftware.com/radio/tutorials/usage/in-game-radio/configuring-ace-permissions).

### Opening in a Framework Server (QBCore, Qbox, etc.)

With the radio scanner item in their inventory, users can double click to open the [scanner menu](#using-the-radio-scanner-1).

[View our complete list of supported FiveM frameworks an inventories.](https://docs.sonoransoftware.com/radio/tutorials/integrations/fivem-inventories)

<figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2Fg4kz9BZpcvRcfriyR5x1%2Fimage.png?alt=media&#x26;token=6534c03b-d1e5-4e01-929c-e1e5fb668557" alt=""><figcaption><p>Sonoran Radio Scanner Item in Inventory</p></figcaption></figure>

#### Item Drop

{% hint style="warning" %}
Dropping scanners is not currently supported in OX inventory.

Support will be added at a later date, pending more information from the OX development team.
{% endhint %}

If the scanner item is dropped on the floor, you can open its scanner menu by being near it and pressing `E`.

If the scanner is powered, transmissions will be heard by nearby users.

<figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2FUE5DjwcGfi8t0s5fSwN7%2Fimage.png?alt=media&#x26;token=8cd1c918-5b79-4f2e-89b7-fdc909cc2934" alt=""><figcaption><p>Sonoran Radio Scanner Item Drop Use Hint</p></figcaption></figure>

### Radio Scanner Menu

<div><figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2Fh08ph7RRWXHyOFIt4Cqg%2Fimage.png?alt=media&#x26;token=4e86c4bb-9a93-44ad-ba5e-cf09517e8c28" alt="" width="209"><figcaption></figcaption></figure> <figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2Fm9rWOhEexlSEW9aA8IZq%2Fimage.png?alt=media&#x26;token=651a759e-a63b-4ced-a331-5aed07423639" alt="" width="200"><figcaption></figcaption></figure></div>

Press the power button and the scanner will auto-connect to the default channel. Use the knob to scroll through all available channels.

By default, only public radio channels will be available. For [private channels](https://docs.sonoransoftware.com/radio/tutorials/dispatch-panel/configure-channels#restrict-channel-visibility), you can [configure ACE permissions to access them](#ace-permissions).

## Permanent Scanners

Permanent Scanners are scanners that are available to everybody at configurable locations across the map. For example, you can add a scanner in the Sandy Shores Sheriff Station that will always listen the `County Patrol Ops` channel.

#### Configuring Permanent Scanners

You can use `/radiomenu` to easily add, move, or delete persistent scanners

<div data-full-width="false"><figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2FxOWT6MFkekZ1bEqUkPf4%2Fimage.png?alt=media&#x26;token=545356c8-dba6-4de9-81a0-f82abdc612e5" alt=""><figcaption></figcaption></figure> <figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2FyaQxgaI90tLoaQjXgKDH%2FDiscord_3K6SgyKxlB.png?alt=media&#x26;token=58bf07e7-3038-43aa-b7ca-dee15e6c761e" alt=""><figcaption></figcaption></figure> <figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2FWRHoBglwsmv4JpMqREZ7%2FDiscord_ENiHYlz2zJ.png?alt=media&#x26;token=7028fcd0-33a0-403e-9db1-392aed3c2c76" alt=""><figcaption></figcaption></figure> <figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2FX5wMO6dHDA84fj8JP3lh%2FDiscord_tdGWrI3Idq.png?alt=media&#x26;token=1f24d5e2-d76a-4ea4-8d5e-2d97ab41e81e" alt=""><figcaption></figcaption></figure></div>

When creating a scanner, you have the ability to choose between many different scanner-like models to best fit your needs

<figure><img src="https://1542307009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfCk5zoeun5gx3ujYW6eg%2Fuploads%2F8pl5WzsU6FILw5PnJcF9%2Fimage.png?alt=media&#x26;token=2555cc18-b897-4528-b0c3-a1af417832fd" alt="" width="375"><figcaption></figcaption></figure>

You can also modify the `scanners.json` JSON config file for more customization. By default, scanners connect to the default channel, but you can customize the channel ID it uses.

<details>

<summary>Example Scanner JSON</summary>

```json
{
    "Id": "036a2ad1-eeae-4519-be4c-67157b8a035d",
    "Note": "Sandy Sheriff Station",
    "Powered": true,
    "ChannelId": 31226,
    "PropModel": "prop_cs_hand_radio",
    "PropPosition": {
        "x": 1853.98,
        "y": 3688.92,
        "z": 34.38054,
        "heading": 32.76,
        "exact": false
    }
}
```

</details>

#### Finding Channel IDs

The channel IDs can be found in the [dispatcher panel](https://docs.sonoransoftware.com/radio/tutorials/dispatch-panel/using-the-dispatch-panel#channel-ids) or [in-game radio](https://docs.sonoransoftware.com/radio/tutorials/usage/using-the-in-game-radio/fivem-keybinds-and-commands#copying-channel-and-scan-list-ids).

## Developers

### Ace Permissions

If you have enabled `Config.acePermsForScanners`, you must add permissions in your `server.cfg`for the scanner to work.

The channel IDs can be found in the [dispatcher panel](https://docs.sonoransoftware.com/radio/tutorials/dispatch-panel/using-the-dispatch-panel#channel-ids) or [in-game radio](https://docs.sonoransoftware.com/radio/tutorials/usage/using-the-in-game-radio/fivem-keybinds-and-commands#copying-channel-and-scan-list-ids).

```bash
# Give the group access to /radio scanner
add_ace group.admin sonoranradio.scanner allow

# Only public (non-private) channels are accessible
# Grant access to a private channel with the ID of 123
add_ace group.admin sonoranradio.channel.123 allow
```

### Giving the Scanner Item (QBCore)

Sonoran Radio does not provide a way to get the scanner item independently. You can give the item with any method, but here's an example chat command:

```
/giveitem <playerId> sonoran_radio_scanner 1
```

Please note that if you changed `Config.ScannerItem.name`, it will not work with `sonoran_radio_scanner`
