RE:NODE

Guides12 min read

Garry's Mod TTT server: setup, maps, addons

Set up a Trouble in Terrorist Town server: the terrortown gamemode, ttt_ cvars and karma, CS:S content, maps, damage logs, map votes and the addons worth adding.

0 readers

Trouble in Terrorist Town ships with Garry's Mod, so a TTT server is a normal Garry's Mod server started with +gamemode terrortown on a ttt_ map. The settings are ttt_ cvars in garrysmod/cfg/server.cfg - round length, traitor percentage, karma - and the defaults are sensible enough to play on the first evening. What turns a working server into one people come back to is three things: Counter-Strike: Source content mounted so maps do not fill with ERROR models, a damage log so admins can rule on random deathmatch fairly, and a map vote over a short list of good maps. This guide covers the install, the cvars that matter, karma, maps, the addons TTT servers actually run, and the problems you will hit in the first week.

What a TTT server is made of#

TTT is a round-based social deduction gamemode: a few players are secretly traitors, a few are detectives with a shop and tools, and everyone else is innocent. Rounds are short, deaths are permanent until the next round, and the whole game depends on players trusting the server's rules more than each other.

The pieces:

PieceWhat it isWhere it lives
Gamemodeterrortown, bundled with Garry's Modgarrysmod/gamemodes/terrortown/
Mapsttt_ maps, mostly from the WorkshopWorkshop collection or garrysmod/maps/
CS:S contentTextures and models many maps useMounted on server and clients
Admin modULX/ULib or SAMAddons
Damage logsWho hurt whom, for RDM rulingsAddon
Map voteEnd-of-map vote over your listAddon
OptionalPointshop, custom weapons, TTT2Addons

TTT2 is worth knowing about before you start. It is a community rewrite of TTT, distributed through the Workshop, with many more roles and a large addon ecosystem. It is a different gamemode with its own settings, and most classic TTT addons need TTT2-specific versions. Decide early which one you run; this guide is about classic TTT, with notes where TTT2 differs.

Requirements and sizing#

TTT is one of the better-behaved Garry's Mod gamemodes. Rounds reset the map, so entities do not accumulate the way they do on DarkRP or sandbox, and the Lua running each tick is modest until addons add to it.

ServerRAMCPUNotes
12-16 players, light addons1.5-2 GB1 coreA friends server
16-24 players, typical addons2-3 GB1-1.5 coresThe common public setup
24-32 players, Pointshop and many weapons3-4 GB1.5-2 coresAddons dominate the cost

Garry's Mod runs its game logic on one thread, so clock speed matters more than core count, and the Workshop collection size drives both disk and first-boot time. Garry's Mod server setup covers the base install, the 64-bit branch and the sandbox limits.

Installing and starting TTT#

On your own machine, Garry's Mod server installs with SteamCMD as app 4020. Start it on the TTT gamemode and a TTT map:

bash
$ ./srcds_run -game garrysmod -console -port 27015 \    +maxplayers 24 +gamemode terrortown +map ttt_minecraft_b5 \    +host_workshop_collection <collection_id> -authkey <steam_web_api_key>

+gamemode terrortown is the whole switch. +host_workshop_collection mounts your maps and addons from the Workshop, and it needs a valid Steam Web API key in -authkey or the collection is silently skipped. On a panel host you do not type this line: the launch arguments are variables on the Startup tab, and the panel builds the command from them.

Mounting Counter-Strike: Source content

Many popular TTT maps use textures and models from Counter-Strike: Source. If a player does not have that content, those surfaces render as purple-and-black checkerboards and props as giant red ERROR signs. There is no legal way for your server to give players CS:S content; they need to own CS:S or play with the errors.

The server should mount it too, because some maps rely on CS:S physics models for collisions. The free Counter-Strike: Source dedicated server (SteamCMD app 232330) provides the files without a game licence. Install it in its own folder and point Garry's Mod at it:

garrysmod/cfg/mount.cfg
"mountcfg"{	"cstrike"	"/home/gmod/css/cstrike"}

Tell players in your server description and MOTD that CS:S content is required for the best experience, and pick maps that use as little of it as possible if your community is mostly players without it. Garry's Mod Workshop and FastDL covers how the rest of your content reaches players.

The ttt_ settings that matter#

TTT reads its settings from ttt_ convars, set in garrysmod/cfg/server.cfg. The defaults below are from the TTT documentation and have been stable for years; type any cvar into the console without a value to see its current value and default on your server.

CvarDefaultWhat it does
ttt_firstpreptime60Seconds of preparation before the first round on a map
ttt_preptime_seconds30Preparation before every later round
ttt_posttime_seconds30Time after a round ends before the next one
ttt_roundtime_minutes10Round length when haste mode is off
ttt_haste1Haste mode: short rounds that gain time per death
ttt_haste_starting_minutes5Initial round time in haste mode
ttt_haste_minutes_per_death0.5Time added per innocent death
ttt_traitor_pct0.25Share of players who become traitors
ttt_detective_pct0.13Share of players who become detectives
ttt_detective_min_players8No detectives below this player count
ttt_minimum_players2Players needed to start a round
ttt_round_limit6Rounds per map before it changes
ttt_time_limit_minutes75Maximum minutes on one map

A typical public server tunes a few of these and leaves the rest:

garrysmod/cfg/server.cfg
hostname "Longship TTT | Karma on | Damage logs"sv_password ""sv_alltalk 0ttt_firstpreptime 45ttt_preptime_seconds 20ttt_posttime_seconds 15ttt_round_limit 8ttt_time_limit_minutes 60ttt_traitor_pct 0.25ttt_detective_min_players 8

Leave sv_alltalk at 0. TTT manages voice itself: the dead cannot talk to the living, and traitors have a private channel. Turning alltalk on hands dead players a microphone into the living game, which ends the deduction half of the gamemode.

Shorter prep and post times make the server feel busier, but the first prep time is when players are still loading the map, and cutting it too far means people spawn into the middle of a round. Forty-five seconds is a good compromise on a server with a large collection.

Karma: the setting that keeps it fair#

Karma is TTT's built-in answer to random deathmatch - killing or hurting people on your own side. Every player starts with karma, loses it for damaging teammates, and earns it back over clean rounds. Karma scales the damage a player does: someone at low karma deals noticeably less damage, and below a threshold they are kicked or banned.

CvarDefaultWhat it does
ttt_karma1Karma system on or off
ttt_karma_strict1Damage penalty falls off faster as karma drops
ttt_karma_starting1000Karma a new player starts with
ttt_karma_max1000Highest possible karma
ttt_karma_low_autokick1Kick players who end a round below the threshold
ttt_karma_low_amount450The threshold
ttt_karma_low_ban1Ban instead of only kicking
ttt_karma_low_ban_minutes60Length of that ban
ttt_karma_persist0Keep karma across disconnects and map changes

ttt_karma_persist 1 is the setting most public servers should change. Without it, a player who has wrecked their karma reconnects and starts fresh, which makes the system easy to dodge. With it on, karma is stored and follows the player back.

Karma is automatic and blunt. It catches obvious RDM and misses subtle griefing, and it occasionally punishes an honest mistake. Treat it as a filter, not a judge, and back it with damage logs and admins.

Credits and the equipment shops

Traitors and detectives buy equipment with credits from a shop opened with C. Traitors start with ttt_credits_starting credits (default 2) and detectives with ttt_det_credits_starting (default 1); more are awarded as innocents die and when detectives confirm bodies. Those two numbers decide how much of a round is about gadgets rather than guns. Raising them makes traitor rounds louder and shorter; lowering them makes traitors rely on deception. Leave them at the defaults until you have watched a few dozen rounds on your own server, then change one at a time.

Workshop weapon packs add items to these shops, and they are where balance goes to die. A single traitor item that kills a room without warning turns every round into the same round. Test each new shop item with staff before it goes public.

Rules, staff and RDM rulings

TTT generates more disputes than any other Garry's Mod gamemode, because the core mechanic is people lying and shooting each other on suspicion. A server stays fun when rulings are predictable. A workable setup:

  1. Write a short rule list: what counts as RDM, what counts as reasonable suspicion, whether ghosting (dead players passing information) is banned, how many warnings before a ban.
  2. Give staff the damage log and the ULX TTT commands, nothing more than that until they have proved themselves.
  3. Rule from the log, not from chat. A complaint that says "he killed me for no reason" is answered by the log showing what the killer saw - a traitor weapon in hand, a body nearby, a shot fired first.
  4. Prefer slaying a player at the start of the next round over kicking them for a first offence. It punishes the action without emptying the server.

Panel access is a different matter from in-game power. On RE:NODE a subuser can be limited to the console, without files or billing, which is the right level for a trusted moderator who restarts the server when a map hangs. Server rules, moderation and staff covers building a team that stays consistent.

Maps and the map vote#

TTT maps carry the ttt_ prefix and almost all of them come from the Workshop. Classic, widely played examples include ttt_minecraft_b5 and ttt_67thway_v14, and every community has its own favourites. A good TTT map has hiding places, a traitor room or traps, decent weapon spawns and a size that suits your player count - a map built for 32 is empty with 10.

Weapon placement comes from the map itself, plus optional weapon spawn scripts: TTT can read a maps/<mapname>_ttt.txt file that places weapons and ammo, controlled by ttt_use_weapon_spawn_scripts. Community maps converted from other modes often rely on these.

Map changes happen after ttt_round_limit rounds or ttt_time_limit_minutes, whichever comes first. Without an addon the server moves through the map cycle; with a map vote addon - MapVote is the common choice on TTT servers - players pick from a list at the end of each map. Keep the list to fifteen or twenty maps you have tested with your player count and with and without CS:S content.

host_workshop_collectionmounteddownloads on joinroundsnext mapCS:S contentmount.cfgWorkshop collectionmaps and addonsPlayersown CS:S or see errorsMap voteafter round limitGMod server+gamemode terrortown
How a TTT server reaches its players

Addons TTT servers actually run#

Every addon adds Lua that runs on the server, on clients, or both. These are the categories almost every public TTT server ends up with:

  • Admin mod. ULX with ULib, or SAM. On TTT, add the TTT-specific command module for ULX, which adds commands such as slaying a player at the start of the next round and forcing roles for testing. ULX and SAM for Garry's Mod compares the two.
  • Damage logs. The single most important addon after admin. A damage log records every hit and kill with roles, so a staff member can open a menu and see whether that "RDM" was actually a traitor kill. TTT Damagelogs is the widely used one.
  • Map vote. As above.
  • Custom weapons. Workshop weapon packs that add guns to the traitor and detective shops. Add a few, not fifty. Unbalanced shop items are the fastest way to make a server feel random.
  • Pointshop. Points earned for playing, spent on cosmetics. Popular, and the item models are extra downloads for every player. Points shops that sell gameplay advantages make for a worse server.

Keep addons to a list you can explain. Each addon is code with full access to the server, and some Workshop items include remote code loaders that let their author run Lua on your server later. Read an addon's code or reputation before installing it, and avoid anything that asks for HTTP access without a reason.

Performance and the first week#

Most TTT servers that lag do so because of addons, not players. The common culprits are weapon packs with heavy effects, Pointshop item models, and addons running a Think hook for every player every tick. The diagnostic routine - watch for Lua errors in the console, remove half the addons on a test server, measure - is covered in Garry's Mod performance and Lua errors.

Two habits keep a TTT server healthy:

  1. Restart daily at an empty hour. Garry's Mod servers slowly accumulate memory and Lua state. On RE:NODE the Schedules tab runs a nightly restart from a cron expression, and the console graphs show memory against the plan's limit, so you can see whether it is creeping.
  2. Back up before changing the collection. Your configs, ULX data and damage log settings are small files and easy to lose. A backup slot before each change costs nothing.

Troubleshooting#

The server starts in sandbox. +gamemode terrortown is missing or misspelled, or a map with no TTT entities loaded. Check the startup line and the map prefix.

Players see ERROR models and checkerboard textures. Missing CS:S content on their side, or a Workshop item they did not download. Check mount.cfg on the server and tell players to mount CS:S.

Rounds never start. Fewer players than ttt_minimum_players, or everyone is in spectator mode. Check ttt_minimum_players and the spectator toggle in the F1 menu.

No detectives appear. Fewer than ttt_detective_min_players players, or detective karma requirements exclude everyone eligible. Lower the minimum on a small server.

Karma resets when people reconnect. ttt_karma_persist is 0. Set it to 1.

The Workshop collection does not load. Missing or invalid -authkey, or the collection is not public.

FAQ#

Do I need to install TTT separately?

No. Trouble in Terrorist Town is bundled with Garry's Mod as the terrortown gamemode. Start the server with +gamemode terrortown on a ttt_ map. TTT2 is a separate Workshop gamemode if you want the extended version.

Do players need Counter-Strike: Source for TTT?

For many maps, yes, to see textures and models correctly. Without it they see ERROR models. The server mounts CS:S content from the free CS:S dedicated server, but players must own CS:S themselves.

What is a good traitor percentage?

The default 0.25 - one traitor per four players - works for most servers. Small servers sometimes lower it so two traitors among eight does not feel crowded; large servers sometimes cap traitors with ttt_traitor_max.

Should karma be on?

Yes, with ttt_karma_persist 1 so players cannot reset it by reconnecting. Karma does not replace admins and damage logs, but it filters out the worst random killing automatically.

Is TTT2 better than classic TTT?

It is bigger. TTT2 adds many roles and a large ecosystem, at the cost of complexity and addon compatibility. Classic TTT is simpler, lighter and still what many players expect. Pick one and build around it.


Comments

Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.

0/2000