How a radio system is laid out¶
Most roleplay servers build a radio system by adding channels until it feels like enough. That produces a list, not a system, and a list is the thing everybody quietly stops using two weeks in, because nobody can find anything on it under pressure.
This page is the shape PulseRadio ships instead. It is a real county system (Hennepin County, Minnesota, transcribed channel by channel from a working radio) with San Andreas names on it. Every convention here exists because somebody who carries a radio for a living needed it to, and each one is written down with the reason attached, because a convention without a reason gets "improved" away within a month.
Read this before you build. The screens that do the building are described in Channels, agencies and codeplugs.
The one rule that makes a codeplug usable¶
Every zone starts with your law channel and your car-to-car, then the other agencies' mains, then the channels that zone is actually for.
That is the whole rule, and it is the difference between a codeplug people use and one they work around.
A zone knob is turned with a thumb, often while driving, usually without looking. If turning it costs you your dispatch channel, then every time somebody calls you, you have to turn back, so in practice nobody ever leaves zone 1, and the other five zones may as well not exist.
So positions 1 and 2 are always home. You can be nine zones deep in the fire bank and still key up on your own main without looking at the radio, because it is where it always is. Positions 3 and 4 are the other dispatch centers' mains, for the same reason: mutual aid is a channel change, not a phone call.
PulseRadio generates that head for every zone rather than trusting a hand-written list per zone. Thirty zones written out by hand will contain a slip, and a slip in one zone out of thirty is invisible until the one shift it matters.
What that looks like¶
A Blaine County deputy's codeplug, with the whole plan selected:
| DAY TO DAY | SA TACS | LTAC | POOL | FIRE | SA | |
|---|---|---|---|---|---|---|
| 1 | BLAW1 | BLAW1 | BLAW1 | BLAW1 | BLAW1 | BLAW1 |
| 2 | BC2C | BC2C | BC2C | BC2C | BC2C | BC2C |
| 3 | ALMC2C | LSLAW2 | LSLAW2 | LSLAW2 | LSLAW2 | LSLAW2 |
| 4 | SATAC3 | SLAW3 | SLAW3 | SLAW3 | SLAW3 | SLAW3 |
| 5 | SATAC9E | SATAC1 | LTAC1 | SPOOL1 | BFIRE1 | SACALL |
| 6 | LTAC1 | SATAC2 | LTAC2 | SPOOL2 | LSFIRE2 | SAINT1 |
| 7 | SAC2C | … | … | … | … | … |
| 8 | LSLAW2 | |||||
| 9 | SLAW3 |
DAY TO DAY is the only bespoke zone, and it is the one a unit lives in all shift: your main, your car-to-car, your regional car-to-car, the first clear tac and the first encrypted tac, the statewide law tac, the state car-to-car, then the other centers' mains. Nine channels, all of them things you reach for without planning to.
Two details that follow from the rule:
- A zone comes up on position 1, which is your own main. Turning the knob never leaves you keyed up on somebody else's channel.
- DAY TO DAY scans your main and your car-to-car only. A scan list is not "everything you carry"; it is the short list you want swept while you are working something else.
Dispatch centers are jurisdictions, not departments¶
This is the thing most server channel plans get wrong, and it is why they never quite feel right no matter how many channels get added.
A dispatch center is a jurisdiction: a county, a big city, the state. Individual departments do not run their own. Hennepin County dispatches every agency inside it, including the small suburban PDs. Minneapolis is large enough to run its own center. The State Patrol has its own. Three centers, one radio system, everybody carrying everybody else's primary channel for mutual aid.
Mapped onto San Andreas, PulseRadio ships three:
| Center | Dispatches | Covers |
|---|---|---|
| Blaine County | Blaine County Sheriff's Office | Paleto Bay, Mount Chiliad, Sandy Shores, Grapeseed, Harmony |
| Los Santos Metro | Los Santos Police Department | Vespucci, Del Perro, Rockford, Vinewood, Davis, Chumash |
| State Patrol | San Andreas Highway Patrol | Senora Freeway, Route 68, Great Ocean Highway, the whole state |
Two consequences fall straight out of it:
The mains carry the county's name, never a department's. BLAW1 is Blaine County's law dispatch
channel. It is not the sheriff's channel: the sheriff, the town PDs and anybody else working in the county
all answer on it. Naming it after a department would say the department owns a dispatch center, which it
does not.
What a department owns is its car-to-car. Unit-to-unit traffic belongs to the people having it, and it
is the one channel that genuinely is a department's own. If you add per-department car-to-cars later, give
them the department's prefix and never the county's. BLAW3 sitting next to PBP1E reads correctly as
"the county's law 3, Paleto Bay PD's car-to-car". BLAW3 next to BPD1E reads as one agency owning both,
which means nothing.
Naming conventions¶
The names are not decoration. On the air you say the name, on the card you read the ID, and both have to survive somebody shouting them once.
The prefix says who owns it. B is Blaine County, LS is Los Santos Metro, S is the state. Every
channel a center owns starts with its prefix, so you can tell at a glance whose system you are on.
LAW numbers run continuously across counties, they do not restart. Blaine, Metro and State become
BLAW1, LSLAW2, SLAW3, not three separate LAW1s. On a shared system there is exactly one law 1, and
saying "law 2" on the air has to mean one thing. The numbering describes the system that actually exists: if
you only run the state, its main is SLAW1.
A trailing E means encrypted. SATAC9E, MED3E. It is part of the spoken name (you say "S-A tac
nine echo") and it is the fastest way to know, mid-sentence, whether what you are about to say is going out
in the clear.
Within a bank, the clear channels come first and the encrypted ones sit at the end. SATAC1 through
SATAC7 are clear, SATAC8E through SATAC10E are encrypted. So "anything below eight is open" is a rule
you can hold in your head, instead of remembering ten individual channels.
Regional car-to-cars are named for the geography, not the agency. ALMC2C is the Alamo Sea ring,
BCHC2C is the coast. They exist so neighbouring departments working the same stretch of map can talk
without involving a center, and the geography is what they have in common.
A prefix can differ within one system, and that is normal. The state's main is SLAW3 while its
car-to-car is SAC2C. Real plans do this constantly, because the channels were named at different times by
different people, and a system that pretends otherwise reads as generated rather than grown.
The six zones¶
| Zone | What it is for |
|---|---|
| DAY TO DAY | Everything you use without planning to. Your main, your car-to-cars, the primary tacs, the other centers' mains. This is where a unit lives. |
| SA TACS | SATAC1–SATAC10. Regional tactical channels a center assigns to an incident. Seven clear, three encrypted. |
| LTAC | LTAC1–LTAC9. Statewide **L**aw **TAC**tical. Pursuits and anything crossing jurisdiction. Seven clear, two encrypted. |
| POOL | SPOOL1–SPOOL6. Unassigned statewide talkgroups handed out per event and given back afterwards. |
| FIRE | A fire dispatch main per county, two fireground channels, EMS main and ops, and encrypted med control. |
| SA | Statewide interop: SACALL, SAINT1/SAINT2, air-to-ground, mutual aid staging, and the state EOC. What an outside agency sharing no system with you calls in on. |
There is one fire main per county (BFIRE1, LSFIRE2) and none for the state, because a highway
patrol does not run a fire service.
The fire department is an agency of its own¶
Each county with a fire main also gets a fire department: an agency named for the county (Blaine Fire
Department), its own encrypted car-to-car (BFD1E, LSFD1E) granted to that department and nobody else,
and its own codeplug.
That codeplug is the mirror of a law one. Where a deputy's zones open [county main, county car-to-car], a
firefighter's open [own fire main, own FD1E], every zone, so the zone knob never costs you dispatch. Its
zones are DAY TO DAY, FIREGROUND, EMS, LAW (every county's law main, for talking to whoever
is running the scene), then a zone per other bank you selected. There is no FIRE zone on it, because those
channels are already positions 1 and 2 of every zone.
This is what makes the volunteer case work: somebody on both the fire roster and the sheriff's roster has two agencies to be in, and their radio programs from whichever one they are working today, read from the MDT they are signed into when PulseCAD is linked, or from the agency they picked when it is not.
Everything shipped is a trunked talkgroup, and dispatch carries all of it
Including the car-to-cars. That is deliberate: each main's car-to-car is its emergency traffic overflow (below), and a center that could not hear it would be deaf to every unit not on the incident.
If you want a genuine simplex talkaround (radio to radio, no infrastructure, and no console path to it at all) add it yourself and set its type accordingly. See channel types; never infer the type from the name.
Roles¶
Four roles, plus the owner. Set them on People.
| Owner | Everything, plus billing and handing the community over. One per community. |
| Admin | Everything except billing: channels, radio programming, departments, people, settings. Has a radio and the console. |
| Dispatcher | The dispatch console and a radio. Cannot change how the community is set up. |
| Member | A radio, in game. What almost everybody here should be. |
| Scanner | A radio that receives and can never transmit. Civilians, trainees, anyone on probation. |
The role decides which tools you can open, not which channels you get. Channels come from your department, your radio programming, the channel's own permissions and, at a console, your position.
Changed on 23 August 2026
supervisor folded into Admin, judge was dropped, and readonly became Scanner with a
radio that actually works. Nobody was demoted: no community had ever assigned any of the three.
Clear and encrypted¶
Six channels ship encrypted: SATAC8E, SATAC9E, SATAC10E, LTAC8E, LTAC9E and MED3E.
This is a gameplay feature before it is a security feature. A scanner character, a press character or a civilian listening in genuinely cannot hear those channels: not muted, not quieter, not there. That is what makes plainclothes work, a sensitive welfare call or a patient report worth having on the air at all, and it is what makes the clear channels worth listening to.
What "encrypted" actually means here¶
Be clear about this, because the word oversells itself.
An encrypted channel in PulseRadio is a restricted channel. A restricted channel is carried in a room of its own, and the server only issues you a key to that room after checking your permission. If you are not granted it, you are not refused at the door; you are never told which door, and no client-side setting will change that. That is why the enforcement is real rather than cosmetic.
It is access control, not end-to-end encryption of your voice. The audio is carried over the same encrypted transport as every other channel, and the algorithm and key ID shown on the card are a label: they change what the padlock says and nothing else. Labelling an open channel "AES-256" would be worse than leaving it blank, which is why PulseRadio only offers those fields once the channel is genuinely restricted.
Two things that follow¶
A restricted channel with no permissions is usable by nobody. That is deliberate, because a misconfiguration has to fail closed rather than hand a secure talkgroup to everybody, but it means encrypted channels have to be granted as well as created. Six encrypted channels with no grants would look complete on every screen and be unkeyable by a single member, including the admin who built them.
Patching across the encrypted boundary is not allowed by default. A patch that quietly widened an encrypted channel's audience is the exact failure the restriction exists to prevent. None of the patches in the shipped plan cross it.
Who gets them, and the scanner seat¶
Out of the box the encrypted channels are granted to everyone on the job: owner, admin, dispatcher and member. That is a working starting point, not a finished policy: subtraction from a working system is a far easier job than discovering six channels exist that nobody can key.
So if you run press or civilian characters, narrow it before you launch. Take the blanket member
grant off the encrypted channels and grant them to the roles, agencies or people who should actually have
them.
Scanner is the civilian seat
The Scanner role is a radio that receives and can never transmit. It is deliberately left out of the encrypted grants above, so a scanner hears the clear channels everybody hears and nothing behind encryption: exactly the "civilian with a scanner" seat, with no permission work needed.
Scanner replaced the old readonly role on 23 August 2026. readonly had no radio at all and could
not join a session, so it heard nothing, clear or otherwise. Anyone who held it is now a Scanner and
can hear the clear channels. See permissions.
Procedures¶
None of this is enforced by software. It is what makes a net sound like a net rather than a group call, and it is worth publishing to your members as house rules.
Emergency traffic¶
A unit calls emergency traffic. Dispatch declares it, and the main is now that incident's channel only.
Everybody else's routine business moves to the matching car-to-car, and dispatch answers it there. That is what the car-to-car is for and why the center carries it: a county does not stop having other calls because one of them went bad.
Tac assignment¶
Dispatch assigns a tac ("Units on the Vinewood call, go to S-A tac three") and you acknowledge on the tac, not on the main. Moving and then saying so proves the move worked. Acknowledging on the main and then moving means nobody finds out for two minutes that you are on the wrong channel.
SATAC3 is the first clear tac a center reaches for and SATAC9E the first encrypted one, which is why
both sit in DAY TO DAY.
Pursuits¶
A pursuit crossing jurisdictions goes to LTAC1. It is statewide, everybody chasing it is already
programmed for it, and it is in every DAY TO DAY zone for exactly this reason: there is no time to look one
up.
Working across a jurisdiction¶
You do not leave your own main to talk to another agency. You would lose your dispatch channel, and your center would lose you.
- Stay on your main. It is still where your calls come from.
- Reach the other agency over the state car-to-car,
SAC2C, for a quick word: where they are, what they have. - If it is going to run, ask dispatch to patch. The center joins the two channels and both sides keep the channel they are already on.
Moving a whole incident to LTAC costs everybody their dispatch channel. A patch costs nobody anything, which is why it is the normal answer rather than the clever one.
Pool channels¶
SPOOL1–SPOOL6 are statewide talkgroups belonging to nobody in particular. Dispatch assigns one per
event, renames it for the duration ("Bank Heist", "Vinewood Parade") and puts it back in the bank
afterwards.
That is why they are numbered rather than named: a channel called "Parade" is useless the other fifty-one
weekends of the year, and a channel called SPOOL2 is useful every one of them.
A patch is not a multi-select¶
PulseRadio has both, they are one keystroke apart on the console, and confusing them is a real operational error rather than a UI complaint.
| Patch | Multi-select (Msel) | |
|---|---|---|
| Who hears whom | The members hear each other | Only you reach all of them; the members are deaf to one another |
| How long it lasts | Outlives the console that made it | Dies with your selection |
| What it is | A real, shared thing on the system | Your microphone, fanned out |
A dispatcher combining two agencies must use a patch. Multi-select would let the dispatcher talk to both sides while the two sides cannot hear each other at all, which looks like it is working right up until the moment the two units needed to coordinate directly, and it is the failure that gets somebody hurt in a scene.
Multi-select is the right tool when you need to say one thing to several channels at once: a BOLO, a county-wide alert, a tone-out. Both panels on the console say which one they are. See patch and multi-select.
Running more than one game server¶
If your community runs two game servers, you do not build two radio systems. You build one, and both servers use it.
Everything on this page is shared across every server you run: the same departments, the same channels, the same zones and codeplugs, the same permissions, the same radio IDs, and one comms log covering all of it. Change a channel once and it changes everywhere. That is the point: administering two parallel copies of a county radio system is how the two quietly drift apart, and then a mutual-aid channel exists on one server and not the other.
What is not shared is the air. Each server is its own net. A unit on server one cannot hear a unit on server two, even though both are tuned to a channel with the same name, because they are not on the same radio system at that moment, any more than two counties sharing a channel name are on the same repeater. That follows for everything live:
- Transmitting. Two people can hold the same channel at the same time on different servers without either blocking the other.
- Patches. A patch you make is live on the server you made it on and nowhere else. A dispatcher on the other server has their own board and makes their own.
- Who is on the air. The console's roster shows the units on your server only.
Adding a server¶
An owner or admin adds each one under Connections → Game servers, then downloads that server's bundle and installs it. Each server gets its own bundle and its own key, which is what tells PulseRadio which net a player is on, so nobody in game ever has to pick.
You do not need to add anything to run a single server. Every community starts with one net already, which is what the in-game radio and the console use until you add more.
The download includes the cell on wheels: a towable trailer with a telescoping mast that puts real coverage over wherever it is deployed. It adds one vehicle to your server, so if you keep a curated fleet you can untick Include the cell on wheels before downloading and the bundle arrives without it. The radio and the tower builder are unaffected either way, and you can change your mind by downloading again.
Picking one¶
Anywhere a person is not in game, they choose:
- The dispatch console shows a Server dropdown on the sign-on card, before you connect. Pick the net you are dispatching for and press Connect. The console remembers it, so you land on the same board next shift.
- The web radio has the same dropdown.
- In game, there is no choice to make. The resource knows which server the player is on and joins the right net automatically.
The dropdown only appears once you actually have more than one server, and it is only offered before connecting; changing nets means joining a different one, so you disconnect and reconnect rather than switching underneath a live board.
What the setup wizard builds¶
You do not have to type any of this in. PulseRadio's setup wizard offers the plan as modules: tick what you actually run, rename it in place, and it writes the whole thing.
- Three dispatch centers: Blaine County, Los Santos Metro, State Patrol. Each contributes a main, a car-to-car, its regional car-to-car where it has one, an agency and a codeplug.
- Five channel banks: SA Tacs, LTAC, Pools, Fire & EMS, and statewide interop. Each becomes a zone in every codeplug. Fire & EMS also builds a fire department, car-to-car and codeplug per county (above).
Selecting everything reproduces the plan on this page exactly. Selecting three modules produces a short, honest system rather than one full of channels that do not exist.
Renaming is real renaming, not a label. Calling Blaine "Sandy Shores" with the prefix SS regenerates
SSLAW1, SSC2C and SSFIRE1. The fire bank follows the rename too, so you are not left hand-editing the
thirty channels the wizard existed to save you.
It writes the channels, the categories, the agencies, the codeplugs and the permission grants the encrypted channels need, all in one step. It skips anything already named the same rather than duplicating it, so re-running it later to add a bank you left out is safe.
The preview is the thing to read
It prints every zone of every codeplug in knob order, with real channel names, before anything is written. The layout is the decision being made; a count of channels tells you nothing about whether you want these ones.
Everything it creates is ordinary configuration. Rename it, reorder it, delete it, add to it. See Channels, agencies and codeplugs.