The flow of information from SS13 can be pretty hard to manage. The purpose of this proposal is to provide users a tool to manage the information.
With this proposal, the current chatOutput window remains, no matter what, and accepts 90% of the to_chat messages. (by souce code reference, not by frequency of use.)
So all your in-game messages to the user ("You feel a tiny prick!", "Joe Diphtheria coughs!", <object description text>, "The glass table breaks!", "You feel like having some nicotine right about now!") -- These all stay as they have been, along with any channels you haven't messed with.
However, the current headset TGUI gets expanded. Right now it looks like this...
With this proposed change, Instead of just a column of checkboxes, there's now a new grid of radio buttons.
Now for each channel, you can can choose (in columns) among: "A / B / C / Main / Mute"
"Mute" is the same as the current "Unchecked" behavior. Put it in mute and you don't hear it.
"Main" is the same as the current "Checked" behavior -- the chatter from that channel is mixed in with all other chatOutput messages.
The new behavior -- If you have any channels sorted into the "A/B/C" categories, then your chat window splits into (up to) four panes. How many panes it splits to depends on how many different categories you have configured using the radio buttons).
Here's an example comms setup:
(you'll have to imagine the tgui for this part, I haven't prototyped it yet.)
A - Antagonist (this is the roll-up of traitor comms, changeling hivemind, spider talk, whatever kind of baddie you are)
A - Command (This also sets the routing for CentCom / ERT / Deathsquad / Admin messages too)
A - Security
B - Engineering
B - Science
B - Medical
Main - Supply
Mute - Service
B - Procedure
C - Common
So that's me as a player expressing comms preferences of:
Most important -- Antag / Command / Security (So if you're an antag, antag comms matter. If you're a captain or head, then Cmd/Sec matter. If you somehow are actually hearing radio chatter from all three of these channels simultaneously, then you're you're definitely living your best life.)
Moderate Importance - Engi / Sci / Medical / Procedure (Three of these departments kinda matter, and I guess I'd better at least keep that IAA asshole engaged, so he doesn't go faxing CC over nothing... (Again!) )
Low Importance - Common (The gretytde wasteland needs its own (ignorable) window.)
Main output - Supply, plus All the other in-game messages. (That QM doens't know how to shut up, I'll stick him with the rest of the stuff, like getting shot)
Muted output - Service (I can't possibly be bothered with whatever the bartender is yammering on about.)
Not everybody's headset will have all comms, but you can still configure the routing for irrelevant channels. So you can set up, "yeah if I roll antag some other round, then I want that in my "most important comms" channel. Maybe types of comms that your current headset doesn't support are greyed out, to make it clearer. All this gets stored in a user pref so it's persisted from round to round.
With that config you get a client that looks like this:
Note that each of the four chat panes is lightly background-colored -- green / blue / grey / white -- to help tie it to the tgui columns so the channels make sens connect up from a visual presentation.
Next steps:
Also provide a mechanism to pop green/blue/grey panes out into a full window, allowing them to be tiled onto a second monitor.
Make it per-user, with prefs saving so it lasts across rounds, not just a proof of concept.
... profit?