Command nets
The order gets through.
A net is a named radio channel with a rank. Listen to as many as you like. Talk on one. When somebody on a higher-ranked net speaks, the others fade down under them.
Three levels
Pick how much structure you want.
Some groups want a chat app with voice in it. Some want a forty-person night to run like a proper radio net. Both work on the same server, and the casual group never has to see the top level.
Simple
Text channels, voice channels, roles, screen share. If your lot have just come over from somewhere else, there's nothing to explain. Join a channel and talk.
Squads
Each squad gets a net and a push-to-talk key. Leads get a second key that reaches the commander and nobody else. Your normal channels carry on underneath.
Full command
Every net carries a rank. Three keys reach past your own net. A live board shows who's on what, and the server keeps the discipline.
For now you get to a level with a one-click setup. A proper per-server switch is on the board.
What Squads sets up for you
Three nets, three keys, three colours. You know what you're hearing before the first word lands.
| Net | Key | Who hears it | Who can speak | Colour |
|---|---|---|---|---|
| Team | V | Your whole team, leads and command included. | Everyone | ● Green |
| Leads | C | Team leads and command. Nobody else. | Leads and command | ● Amber |
| Command | X | Command, with the leads listening in. | Command only | ● Red |
Every net you're allowed comes through at once. The count, the keys, the colours, who may listen and who may speak: all settings, per server.
What it does
The whole comms set.
- The comms list
- Under your channels, a row for every net you can reach, always in the same order. Rows never shuffle because somebody started talking. Sounds small until you've tried to find the right one mid-fight.
- Talk on one, listen to 24
- Click a row and you're talking on it: your push-to-talk key goes there, one net at a time, remembered per server. The other nets you can hear are marked listening in. When more nets want you than you can hold, the lowest rank loses and the list says which, in amber.
- A key for every net
- A net you're allowed to talk on can carry its own key. Press it and you answer there without leaving the net you're on. Hold two and the higher rank wins.
- Mute a net, or drop it
- Two buttons that look alike and aren't. Mute keeps your place and turns the net to zero. Drop hands its place to a net that was waiting. Both remembered per server, so if you don't want Logistics in your ear tonight, that survives a rejoin.
- Higher ranks fade the rest
- While someone senior talks, the lower nets turn down by the amount set on the net, so a command call reads by ear. Fade, not cut. Nobody loses the picture.
- Every voice channel is a net
- The room you're sitting in gets a row like any net, so you can listen to a room from outside it.
- Three keys past your own net
- Report up to your leader, all-call to everyone under you, and an emergency that outranks every net. Each fades the others by a set amount, so you can tell them apart by ear. Details below.
- The cut-in banner
- When one of those keys reaches you,
↑ REPORT — name,◎ ALL-CALL — nameor! EMERGENCY — namesits at the top of the list for a moment, so you know who cut in. - Connect two nets
- Two nets can be connected for a while, with an optional expiry and a countdown in the list. One hop only: A to B plus B to C never reaches A to C.
- One-click setups
- Small team, squad and lead, or multi-level. Each lays down nets, links, keys and colours in one go, and the preview shows exactly what it'll make before it makes it. Setups never create roles.
- Who may hear, who may speak
- Per role, per net. A net can only take away from what the channel already allows, never add. Where a role blocks a right, the grid marks that cell amber and links to the role.
- The editor
- A panel that slides out beside the list, with the whole structure on the left and the net you picked on the right. The list stays live, so you watch a change land while people are talking.
- Order moves a step at a time
- Whoever runs comms moves a net up or down with buttons, one step at a time. There's no dragging a row about. The order is muscle memory on a loud night, and a slipped hand shouldn't change it.
- The board
- Whoever's running comms sees every net, everyone on it, and any emergency in progress with its hold time counting up. More below.
- Rosters with badges
- Under each net, who's on it, with a speaking ring. Roles can carry a small badge you upload once; leaders sort to the top.
- Changes land without reconnecting
- Rename a net, pull a right, time someone out. The list refreshes and running calls re-route by the next frame. Nobody rejoins.
- Nothing shown to the unadmitted
- Someone still in screening gets no nets, no rosters, no board. Your command structure isn't on show before they're in.
- The server decides who hears you
- You press a key; the server works out who that reaches. Nothing the app sends names a person, so it can't be talked into putting audio somewhere it shouldn't go. The voice server passes the audio on without opening it.
The numbers
- Up to 24 nets at once. Ranks run from 0 to 9. Each net also carries a fade depth, a suggested key, a colour and a position in the list.
- In the list,
MONmarks a net you're listening in on andLIVEthe one you're talking on.T1,T2are the rank labels the app uses today. - The structure is capped at 64 nets and can't contain a loop; a link that would close one is refused before it exists and the refusal is audited.
- Ten new nets and thirty permission changes a minute, per person. Anyone editing a structure fits inside that; a script doesn't.
- Comms Manage builds structures; Comms Override broadcasts over them. Neither includes the other.
The three keys
Three ways to talk past your own net.
| Key | What it does | Who hears it |
|---|---|---|
| ↑ Report up | Talk to your leader. | The net directly above yours, and no further. The key only shows up on a net that has one above it. |
| ◎ All-call | Talk to everyone under you. | Everyone below you, including people who never tuned in. Needs the Override permission. |
| ! Emergency | Override everything. | The same people. It outranks every net, though a personal block still cuts it. You hold the key; it doesn't latch. |
An emergency turns the room down. Everyone else drops to a quiet floor, still there. It lasts while the key's held. Five seconds of silence ends it early; fifteen ends it regardless. Then the caller waits a minute before the next. While that wait runs, the ! key greys out and tells you how long. Every one goes in the audit log: who, which net, how far, how long.
The numbers
- Report up and all-call fade everyone else by 12 dB; emergency by 18 dB. Fades take 5 ms down and 50 ms back.
- The three keys rank above every ordinary net: report up by 50, all-call by 100, emergency by 200.
- The cut-in banner shows for 2.5 seconds.
The board
Whoever's running comms gets a panel.
Open it from the ⋯ at the top of the comms list. Everyone on it carries one of three labels: in channel, listening in, or allowed — they may hear the net but aren't on it right now. The app labels that entitled. Connected nets show their time left. An empty net just says No one.
The rules
What holds, whoever's shouting.
Seven things the server won't let anyone break, however senior they are or however hard they hold the key.
A net can only take reach away
Hearing a net needs the same permission as joining voice, and talking on one needs the same as speaking. A net can never give you more than the server already allows, so a timeout, a lockdown or a server mute applies to nets on its own.
A block is the last check, every time
If you've blocked someone, that check runs on every frame, after the rank check, and it cuts both ways. No rank, key or emergency gets past it.
A call already running re-routes itself
Change a role, take a right away, time somebody out, block them. The routing updates by the next frame, and nobody reconnects, nobody rejoins.
The structure can't loop
Nets report up to other nets. A link that would make a circle is refused before it exists, and the refusal goes in the audit log.
Nothing is dropped in silence
When more nets want you than you can hold, the lowest-ranked ones lose, whatever order they arrived in, and the list says so in amber: 1 net not heard (Salvage).
You keep your own list
Whether a net is in your ears is yours to set, and it stays that way per server. Its place in the list comes from the structure, and somebody speaking doesn't move it.
You can ask it why
Pick a member, and a channel if you like, and the inspector shows what they end up with and where each right came from: the base everyone gets, the roles that added, the exception that removed, the timeout sitting on top. It runs the same check the server does, so the answer can't drift.
Where it's at
Built, being tried, and what's next.
The nets, the list, the fades and the setups are built. The three keys, the board and the role badges are built too. The gaps today: no screen to rebind your keys yet; the editor can't change a voice channel's colour, rank or key (the server can); and connecting a net to a voice channel isn't routed yet.
On the board, in no promised order, sit the Squads and Full command levels as a proper per-server switch instead of a one-click setup, a voice server spread across more than one box for the big nights, and the rest of the comms work we chose to hold. A whisper key is parked. The roadmap has each one and where it stands. No dates.
The words
Six plain words, and what the app calls them.
The app grew its own vocabulary while it was being built. Here's the map, so the settings screens make sense when you get there.
- Net
- A named radio channel with a rank. The app says net too.
- Level
- Simple, Squads or Full command. The app calls these Tier 1, 2, 3 and reaches them through presets for now.
- Talking on
- Your key points at this net; in the app that's standing in, marked
LIVE. - Listening in
- You hear it without talking on it. The app says monitoring, marked
MON. - Mute / drop
- Mute keeps your place; drop gives it up. The app says squelch and tune out.
- Connect two nets
- Join two nets for a while. In the app this is a patch.