# Installation > Setup guide for ML Radio Category: RADIO · Source: https://miciomods.it/docs/ml-radio-installation · Last updated: 2026-07-28 ## Overview ML Radio adds handset radios on pma-voice with antenna-based signal coverage, jammers, hackable towers, job-gated broadcast stations, speaker zones and placeable stereos. It persists placed infrastructure to the database and integrates with the inventory through `ml_bridge`. ## Quick Start 1. Download from [CFX Portal](https://portal.cfx.re) 2. Extract to your `resources` folder as `ml_radio` 3. Add to `server.cfg`: **server.cfg** ```cfg ensure oxmysql ensure ox_lib ensure pma-voice ensure ml_bridge ensure xsound # optional — station and stereo audio ensure ml_radio ``` > **WARNING:** Load Order > > `ml_radio` must start AFTER `ml_bridge` and `pma-voice`. ## Database Tables are created automatically on first start: `ml_radio_data` | Per-player radio state: frequencies, callsign, favorites, battery `ml_radio_antennas` | Player-placed antennas: position, health, lockout `ml_radio_fixed_antennas` | Fixed tower state overrides: health, lockout `ml_radio_disruptors` | Placed jammers: position, power, health `_INSTALL/sql.sql` is an optional manual version of the same schema. It also drops the `ml_radio_antennas` / `ml_radio_extenders` tables when they are present, so run it once if your database still has them. ## Item Registration Register the following items in your inventory system. Ready-to-paste definitions ship in `_INSTALL/items.lua`, and `_INSTALL/ox_items.txt` is pre-formatted for `ox_inventory/data/items.lua`: - `radio`: Basic handset - `radio_military`: Long-range handset with a bigger battery - `radio_jammer` / `radio_jammer_advanced`: Placeable jamming towers - `radio_antenna_small` / `radio_antenna_medium` / `radio_antenna_large`: Placeable antennas - `boombox`: Placeable stereo - `batteria_stilo`: Battery, recharges handsets and jammers - `electronic_kit` / `metal_scrap`: Repair materials - `hacking_device`: Required to hack antennas Item names are configurable in `Config.Items`. > **WARNING:** Antenna Model > > Antennas and fixed towers use `model = 'dgm_antenna'` by default. That model must be streamed on your server; if it is not, change `model` on the antenna tiers (`Config.Items.antennas`) and every entry in `Config.FixedAntennas.locations` to a base-game prop such as `prop_radiomast01`. Jammers and boomboxes use base-game props and need nothing extra. ## Verify After starting, the console prints the resource banner and the fixed towers load. In game: hold a `radio` item, press `F5`, tune a frequency near a fixed tower and the signal bars read above zero. **Troubleshooting** - Radio opens but nobody hears voice - check that `pma-voice` is running and started before `ml_radio`. - Stations and boomboxes play no music - `xsound` is missing or `Config.Broadcast.streamingProvider = 'none'`. Voice radio is unaffected. - Antennas are invisible - the `dgm_antenna` model is not streamed on your server. Swap the `model` values as described above. - "No signal" everywhere - signal starts at `Config.Signal.baseSignalWithoutAntenna = 0`; coverage comes from fixed towers and placed antennas. Check the tower coords are loaded. - Nothing posts to Discord - the webhooks in `server/config_server.lua` ship as placeholders; fill in real URLs.