Installation — ns-radio
-
Put the
ns-radiofolder into your resources (e.g.resources/[nullsect]/ns-radio). -
Add to
server.cfgafter pma-voice and your framework:ensure pma-voice ensure ns-radio -
Stop the radio script you used before (
qb-radio,mm_radio, …). Two radio scripts on the same item fight over pma-voice's channel. -
Point the radio item to ns-radio.
-
ox_inventory (
ox_inventory/data/items.lua):['radio'] = { label = 'Radio', weight = 1000, allowArmed = true, consume = 0, client = { event = 'ns-radio:cl:use' }, }, -
qb-core / ESX: nothing to do, ns-radio registers the item as usable.
-
No item:
Config.Item.required = falseand use/radio.
-
-
Optional:
Config.Locale = 'tr', your locked ranges inConfig.Channels.restricted, a default key inConfig.Keys.open. -
Restart the server. No database setup is needed.
Verification
| Check | Expected |
|---|---|
| Server console | N locked frequencies registered with pma-voice and [ns-radio:SV] [INFO] ready (framework=qbox, inventory=ox, …) |
Use the radio item or /radio | the radio opens, powered off; prop in hand |
| Power key | LCD lights up and joins the last frequency (1.00 the first time) |
Type 101.5 + Enter with a second player on 101.50 | both hear each other with the radio key (pma-voice, default Left Alt) |
A civilian types 1 + Enter | "This frequency is locked."; the radio stays on its old channel |
| Drop the radio item while on a channel | within Config.Item.checkInterval the radio goes off |
Troubleshooting
pma-voice is not started→ ns-radio must start after pma-voice.- The item opens another radio →
items.luastill points to the old script's event (step 4). - Locked channels are open while ns-radio is stopped → pma-voice has no checks then; restart ns-radio, don't leave it stopped.
Config.Debug = truelogs why a player was taken off a channel.