Trouble in Terrorist Town, originally a Garry's Mod game mode created by Bad King Urgrain (not me), has been recreated for Sonic Robo Blast 2! This is a psychological action game mode that requires a minimum of three players (ideally five or more) and replaces normal netgame Match.

When the host starts the round with the Toss Flag key, a ten-second countdown is triggered. After this, the round starts. One in every three players will become a Traitor, and one in every five players will become a Detective. The rest will become Innocents. There are no respawns! Sudden death is in effect. Spectators are only able to speak to other spectators, and cannot join a round in progress. The game ends when all Traitors die, or when all Innocents and Detectives die.

Innocent players are the majority. Your goal is to inspect each player closely. Look at how they're playing. Do they seem suspicious? They could be a Traitor. Don't attack everything that moves, though, because killing teammates may cause your team to lose. Instead, focus on other players' reactions and movements. Keep an eye on your assumed-to-be buddies, too, because you will not be alerted to their deaths.

Traitors are outnumbered. As a traitor, your job is to eliminate the Innocents quietly and quickly. You appear as an Innocent to everyone else, except for fellow Traitors. Don't blow your cover. Use team chat, an ability unique to Traitors, to whisper amongst your accomplices. Coordinate and take down Detectives from a distance to cripple the Innocents.

Detectives are scarce. Anyone who is a Detective is guaranteed to not be a traitor, and has a blue name. As a detective, you are alerted if a Traitor is nearby - their identity is not revealed, but you should be able to narrow it down. Traitors will probably try to kill you first to keep you from informing your teammates, so watch your back. Anyone trying to keep their distance may be a suspect.

Please, please inform me if you find any Lua errors, code that needs to be improved, or unintended gameplay issues! I will do my best to fix them. As of now, this is not entirely stable. Sync fails are almost guaranteed if someone joins in the middle of a round, and they sometimes seem to happen without rhyme or reason. On top of that, the highest stable player count I have achieved was eight players. Don't try anything above eight unless you have some magical cure for desyncs, in which case you should probably share it with me. For science.

Spoiler: Changelog

Version 1.1 - 8/10/2015

Environmental damage now permanently kills you, just like player deaths, and no longer spits out an error.

Proper traitor anti-camp system has been introduced - if you are a traitor and do not kill an innocent within three minutes, you will die. You will be warned at one minute left, thirty seconds left, and ten seconds left.

Detectives have a 33% larger "traitor is nearby" radius, although this gimmick should probably be dropped in favor of a better one.

Removed teamkill limit and console notifications.

Added an explanation for why the round ended (no traitors left, traitors ran out of time, etc.)

Sometime tomorrow I may start on making player corpses and make the detectives less broken by getting rid of their current ability. My idea is to make the corpses a still frame of the player's death state that is pushable so that traitors can hide them, but others can discover them to confirm a death on the player list.

The only solution I could think of for resyncs, however, is an optional cvar (default: on) that disables joins during rounds, and allows them during pregame, endgame, and intermissions.

I have a feeling I'm going to keep sudden death, though. Health is justifiable in a game where you don't move anywhere near as fast, but this is SRB2.

Lastly, I'm going to add some chat shortcuts (imwith, suspect, traitor, check, etc...) so you can bind these to keys for tricky situations.

Not to be a bit of a drag, but, what happens if more than one player share the same color and skin?

Sure, it might make for good camouflage or otherwise, but consider the fact that the game revolves around identity. My thought is only allowing one player to have a specific color and skin combination. The game will let you pick a color immediately, but change you to another color if if you pick a color (or join as a color) that someone else is using with that specific skin. To encourage malleability, I would offer the command "colortrade" to go along with this, where you use colortrade to request a trade with someone, and if they agree, you swap colors. Because, if there are a bunch of blue Sonics, and the Detective is a blue sonic, well, what then?

I really like this mod, even if it's way too underrated. Although people usually don't get how it works and leave the server before any consistent testing, I've been able to do a few test runs with 7 players at max. It's particularly fun with OtherChen's Spy Watch mod, by the way.

Here are a few observations from my testing:

・Innocents have both the ability and the tendency to go on killing rampages as much as the traitors do - except they have nothing to lose if they accidentally kill another innocent, a detective or die. This makes them the most potentially powerful role in the game mode (detectives are just innocents with a radar, traitors are alone), which is why in many of the matches one of the innocents kept killing everyone they encountered, regardless of role, until one of them just happened to be the traitor.

Because of this, innocents should have their ringslinger turned off - and if possible, stripped of every ability to hurt other players - and in its place, there should be a countdown poll in which every player votes on who should die. If the decision is unanimous or almost unanimous, the player is sacrificed, regardless of class. This is a gimmick already known and used in games of the sort (eg EpicMafia).

Notice that this poll system hinders everyone who isn't the traitor from starting a killing rampage, and solves not only this problem, but the low innocent mortality problem as well, since traitors will have one more weapon to take down innocents (and the detective) by tricking them, and the innocents are guaranteed to go down one per round. (I'm defining a round as every interval the traitor has to kill someone or until someone dies by the poll or by the detective. From any of these conditions, the traitor's countdown should be resetted.)

・From this we can conclude that the only ones able to shoot and kill innocents - and each other - are traitors and detectives. This is an automatic balance to both of them compared to innocents, but with the intent to balance traitors, detectives should no longer be identifiable by a blue label. This casts suspicion on the detective if they're caught shooting or accidentally kill an innocent, and can be used by the traitor to frame them into being sacrificed.

・This is an optional suggestion, but since traitors and detectives are the only ones able to kill, they could be able to kill by touch, just like Tag, and their default (and only) weapon could be switched to Rail, for the purpose of stealth. This is especially important for games with no detectives (3 and 4 players).

・Instead of a warning text, you could use the Emerald Hunt mechanics regarding the detective towards the traitors, that is, a sound signal that gets more intense the closer the traitor is. More precision, and yet more difficulty.

・I forgot to actually test it, but dead players should not be able to tell the alive ones who the traitor is since it ruins the game. In the aforementioned example, EpicMafia, dead players can't communicate at all with the alive ones - they go to a graveyard area in which they can talk between themselves, but can only observe the conversation of the alive.

・Everyone should be notified when a player dies, together with their role, in an obituary fashion. There's no need to conceal that information for any of the parties - the fact that it was hidden made players in my matches very confused instead.

・As I mentioned in the beginning of this reply, OtherChen's Spy Watch Lua possesses some gimmicks that were pretty fun to use together with your game mode - mostly the Scan and Cloak functions. Respectively, they let you locate players on the map like a radar, and make yourself invisible for a short time. Since every player could use it, there were no major effects regarding balance - in fact the matches were less of a hide-and-seek. If you two were willing to collab, this could lead to interesting results.

・The Help window... It's of extreme importance. You should add preferentially graphic information so it's easy to grasp the gametype in the few seconds of intermission.

I have more suggestions that could work in larger games, like new roles (most of them extracted from the game I used as example) but in the wake that it could make the gametype harder to understand, these are the changes I think would be the most basic and interesting to see. I don't know if you are willing to update it any longer (or even still tracking this thread), but at any rate, I'm looking forward to the next version!

Last edited by Ikkarou Tatsuru; 04-22-2018 at 08:08 PM.
Reason: Welp, are they still seeing this?