TTT – Trouble in Terrorist Town
Traitors are hiding among the players. The Innocents have to find them before they are all dead themselves, and the Detectives help them. It plays like on GommeHD:
- Chests with weapons and the traitor tester
- Corpses that you identify
- Karma and a points shop for Traitors and Detectives
- Passes that you buy with coins
TTT is a game mode (license gm:ttt); everything can be configured per task.
Setting up
- Create a task: Cloud → Spielmodi ("Game modes") → TTT → Task erstellen ("Create task"). 1.5 GB RAM is enough for 24 players.
- Maps: at least one waiting lobby and one arena. Several arenas are better, because then there is a map vote.
- Set markers on the setup server (
/gsetup tp <Karte>,/gsetup marker <Typ>):
| Marker | Map | Count | How to set |
|---|---|---|---|
lobby-spawn | Waiting lobby | exactly 1 | stand there |
spawn | Arena | at least 4, ideally as many as there are slots | stand there (viewing direction counts) |
spectator | Arena | exactly 1 | stand there: the dead and spectators appear here |
tester-inside | Arena | 0–1 | stand there: whoever stands here (1.5 blocks) gets tested |
tester-button | Arena | 0–1 | look at the button |
tester-lamp | Arena | 0–8 | look at the lamp blocks (they light up green or red) |
tester-door | Arena | 0–16 | look at each block of the closed door (e.g. iron blocks in the entrance): open during the round, closed while testing, so the tested player is locked in |
trap-button | Arena | 0–1 | look at the button of the traitor trap |
- Chests you simply build into the map: every chest (trapped chests too) gives a random item when opened and disappears. An ender chest gives the strong item (default: iron sword).
- Finish setup.
How a round works
| Phase | What happens |
|---|---|
| Lobby | Players wait in the waiting lobby. From Minimum players (Mindestspieler) on, the countdown runs; when the round is full it jumps to Countdown when full (Countdown bei voller Runde). At 10 seconds the map is fixed. |
| Grace period | Everyone starts on the spawns. No damage, loot the chests. |
| Round | The roles are assigned. A team wins when the other one is dead; if time runs out, the Innocents win. |
| End | The winners and all roles are shown, along with karma, coins and statistics. Then everyone goes back to the lobby, and the server makes room for a fresh round. |
Roles:
- Traitors: players × Traitor share (Anteil Traitor), at least 1.
- Detectives: only from Detectives from players (Detective ab Spielern) on; they are visible to everyone (blue name, blue helmet).
- Innocents: everyone else.
Traitors see the other Traitors in red and write in the traitor chat (@Nachricht, i.e. @ followed by the message, or /tc). The dead and spectators only chat among themselves and see all roles.
Corpses
Whoever dies stays behind as a corpse with their head („Unbekannte Leiche“, "Unknown corpse"). A right-click identifies it; everyone then learns who it was and which role they had. Detectives additionally see how long the person has been dead. Optionally they also see whether the killer was a Traitor (Detective sees killer's role, Detective sieht Täterrolle).
Traitor tester
One player stands on the tester spot, another one presses the tester button. After the Test duration (Prüfdauer) the lamps light up red (Traitor) or green; after that the tester needs a cooldown.
The traitor trap: once per round a Traitor presses the trap button. The tester then always shows green for a while.
Karma
| Event | Karma (default) |
|---|---|
| Killed an enemy | +20 |
| Killed an ally (Innocent ↔ Detective are one team) | −50 |
| Damage to an ally | −3 per heart |
| Finished the round without a wrong kill | +5 |
- Starting value: Everyone starts with 1000, which is also the maximum.
- Less damage: With Damage by karma (Schaden nach Karma), players below the starting karma deal less damage (karma ÷ start, at least 50 %).
- Lockout: With Lockout below karma (Sperre unter Karma), players with too little karma are no longer allowed to play at all.
Shop
Traitors and Detectives get a shop item (emerald, right-click). Payment is in points: Starting points (Startpunkte) at the start of the round, plus Points per kill (Punkte pro Kill) for every enemy.
| Item | Traitor | Detective | Effect |
|---|---|---|---|
| Healing potion | 1 | 1 | Right-click: 4 hearts |
| Speed | 1 | 1 | Right-click: 20 s Speed II |
| Knockback stick | 1 | – | Stick with Knockback III, 3 hits |
| Invisibility | 2 | – | 15 s invisible (armor stays visible) |
| Creeper bow | 2 | – | 5 arrows that cause a small explosion on impact |
| Fake chest | 1 | – | Place it: explodes when a non-Traitor opens it |
| Jihad bomb | 3 | – | Right-click: big explosion after 3 s, for you too |
| Radar | 2 | 1 | 60 s: compass and level point to the nearest player |
| Healing station | – | 2 | Place it: heals players next to it (30 heals) |
Every price is configurable. With 0, an item is not in the shop. Kills by explosions count for whoever triggered them. The map itself always stays intact.
Passes
With a Traitor or Detective pass you are guaranteed the role as long as slots are free.
- How many: At most Max. via pass (Höchstens per Pass) of the slots, by default half.
- Redeeming: in the lobby via the pass item. The pass is only used up once you actually get the role.
- Buying: in the same menu with coins (Traitor pass price (Preis Traitor-Pass) and Detective pass price (Preis Detective-Pass); 0 = cannot be bought).
- Free: Anyone with
eternal.ttt.pass.freeredeems passes for free. - Granting:
/ttt givepass <player> <traitor|detective> [amount](permissioneternal.ttt.pass.give; minus takes away) or in the dashboard under Cloud → Gamemodes → task → Pässe, with a history. - Web shop (real money too): REST API with an API key or the permission
eternal.web.gamemodes.passes:
POST /api/gamemodes/ttt/passes/player/{name or UUID}
{ "kind": "traitor", "amount": 1, "reference": "order-1234", "reason": "Web shop" }
→ { "ok": true, "duplicate": false, "count": 3, "uuid": "…", "name": "…" }
- A
reference(order id) is booked once: if the payment provider repeats the call, the answer is"duplicate": trueand no second pass is granted. - A negative
amounttakes passes away (e.g. for a chargeback); if the player has fewer, the API answers 409. - A UUID also works for players who have never joined.
GET /api/gamemodes/ttt/passes/player/{player}returns count and history,GET /api/gamemodes/ttt/passes/reference/{reference}the booking of an order.- Passes belong to the player network-wide. Buying, granting and redeeming are separate bookings; nothing overwrites anything (not even while the player is in a round).
Rewards and statistics
Coins are awarded for a win (Coins per win (Coins für Sieg), everyone in the winning team) and for every enemy kill (Coins per kill (Coins pro Kill)). For this the server needs the Coins module. If a coins cluster is set on the TTT server, they go into that cluster's balance.
/ttt stats [Spieler] shows:
- Games, wins and karma
- Kills (correct and wrong), deaths and K/D
- Wins per role and your own passes
The data applies across the whole network and to all TTT tasks.
Commands
| Command | Permission | Effect |
|---|---|---|
/ttt stats [Spieler] | – (others: eternal.ttt.stats.others) | Statistics |
/ttt vote · /ttt pass | – | Map vote, passes (lobby) |
/tc <Text> | – | Traitor chat |
/ttt start | eternal.ttt.start | Countdown to 10 s |
/ttt map <Karte> | eternal.ttt.forcemap | Fix the map (before the map vote) |
/ttt forcestart | eternal.ttt.admin | Start even with fewer players (at least 2) |
/ttt givepass <player> <traitor|detective> [amount] | eternal.ttt.pass.give | Grant passes (minus takes away) |
Permissions and packages
| Permission | Effect |
|---|---|
eternal.ttt.vote.double | Your map vote counts twice |
eternal.ttt.forcemap | /ttt map |
eternal.ttt.start | /ttt start |
eternal.ttt.joinfull | Join a full lobby (a player without the permission has to leave) |
eternal.ttt.pass.free | Free passes |
eternal.ttt.pass.give | /ttt givepass |
eternal.ttt.spectate | Join running rounds as a spectator |
eternal.ttt.stats.others | Other players' statistics |
eternal.ttt.admin | Setup, /ttt forcestart, building in creative mode |
Packages:
- TTT Premium: double vote, join full rounds, spectate.
- TTT YouTuber: additionally fix the map and shorten the start.
- TTT Team:
eternal.ttt.*.
Assigned under Task → Rechte-Pakete ("Permission packages"), see Game modes.
Settings
All values are in the dashboard under Task → Einstellungen ("Settings") and are explained there one by one:
| Group | What you configure |
|---|---|
| Runde ("Round") | Minimum and maximum players, countdowns, grace period, round duration, end screen, map vote |
| Rollen ("Roles") | Share of Traitors and Detectives, minimum number for Detectives, Traitors see each other, traitor chat prefix, dead chat |
| Karma | on/off, start, maximum, all plus and minus values, damage by karma, lockout |
| Punkte & Shop ("Points & shop") | on/off, starting points, points per kill, price of every item per role |
| Kisten ("Chests") | Chest contents (lines MATERIAL;Menge;Gewicht – material;amount;weight – modern names also on 1.8), ender chest item, ender chest only after the grace period, weapon limit |
| Tester & Leichen ("Tester & corpses") | Tester on/off, test duration, cooldown, trap, sabotage duration, corpses, killer's role for Detectives |
| Pässe & Belohnungen ("Passes & rewards") | Passes on/off, prices, share via pass, coins for win and kill |
For a quick test, Minimum players 2, Lobby countdown (Lobby-Countdown) 15 and Grace period (Schutzzeit) 5 are enough.