Each round a percentage of players will be chosen as detectives. A fraction of those players have a chance to be a special detective, and the others will each be a Detective.

The following ConVars can be used to configure the requirements and restrictions on how detectives spawn.

ConVar Default Type Description
ttt_detective_pct 0.13 Float (0-1) Vanilla TTT ConVar - Percentage of players, rounded up, that will spawn as a detective.
ttt_detective_max 32 Integer Vanilla TTT ConVar - The maximum number of players that can spawn as a detective.
ttt_detective_min_players 8 Integer Vanilla TTT ConVar - The minimum number of players required to spawn detectives.
ttt_detective_karma_min 600 Integer Vanilla TTT ConVar - The minimum amount of karma required for a player to be selected to spawn as a detective.
ttt_special_detective_pct 0.33 Float (0-1) Percentage of detectives, rounded up, that have the chance to spawn as a special detective.
ttt_special_detective_chance 0.5 Float (0-1) The chance that a special detective will spawn in each individual slot made by ttt_special_detective_pct.

Example: There are eight players in the game. ttt_detective_pct is 0.13, ttt_special_detective_pct is 0.33, and ttt_special_detective_chance is 0.5 as per the default values above. 13% of the players in the game (rounded up) will spawn as detectives as ttt_detective_pct is set to 0.13. This means there will be two players that are detectives. At most 33% of those detectives (rounded up) can be special detectives as ttt_special_detective_pct is set to 0.33. This means that there will be at most one special detective. However, that player only has a 50% chance to be a special detective as ttt_special_detective_chance is set to 0.5. This means it is possible for the round to have zero or one special detective. All remaining detectives will each be a Detective.

If you wanted it to be possible for all detectives to be special detectives at once, set ttt_special_detective_pct to 1. Alternately, if you always wanted the same number of special detectives in each round with no variation, set ttt_special_detective_chance to 1. Setting either ttt_special_detective_pct or ttt_special_detective_chance to 0 will make it impossible for special detectives to spawn.

Additionally, detectives are able to earn credits to spend in the shop. The following ConVars can be used to configure how credits are earned.

ConVar Default Type Description
ttt_det_credits_traitorkill 0 Integer Vanilla TTT ConVar - The number of credits detectives receive when they kill a traitor.
ttt_det_credits_traitordead 1 Integer Vanilla TTT ConVar - The number of credits detectives receive when a traitor dies.
ttt_detectives_credits_timer 0 Integer How often in seconds to give detectives a credit. (Set to 0 to disable.)
ttt_detectives_search_credits 0 Integer How many credits a detective should get for searching a corpse. (Set to 0 to disable.)
ttt_detectives_search_credits_friendly 0 Boolean Whether detectives should get credits for searching friendly corpses
ttt_detectives_search_credits_share 0 Boolean Whether all detectives should get credits for searching corpses. If disabled, only the searching detective gets credits

Detectives also have the ability to search bodies and uncover information about dead players and how they died. The following ConVars can used to configure what information is available to which players.

ConVar Default Type Description
ttt_all_search_postround 1 Boolean Whether non-detectives can search bodies post-round.
ttt_all_search_binoc 0 Boolean Whether non-detectives can search bodies if they are using binoculars.
ttt_all_search_dnascanner 0 Boolean Whether non-detectives can search bodies if they are holding the DNA scanner.
ttt_detectives_corpse_call_expiration 45 Integer How many seconds before detective corpse calls should expire. Set to 0 to disable.
ttt_detectives_disable_looting 0 Boolean Whether to disable a detective role's ability to loot credits from bodies.
ttt_detectives_search_only 1 Boolean Whether only detectives can search bodies.
ttt_detectives_search_only_* 0 Boolean Whether only detectives can reveal specific information from a body. Once a detective searches a body, this information will be available to all players. Replace * with any of the following:
  • arsonistdouse - If the dead player was doused by an Arsonist and when.
  • c4 - The dead player's C4 disarm code.
  • dmg - The type of damage used to kill the dead player.
  • dtime - The dead player's time of death.
  • equipment - Any equipment the dead player had on them.
  • head - If the dead player was killed by a headshot.
  • kills - A list of players that the dead player killed.
  • killer - Information about team of the player's killer. (Requires one of the ttt_corpse_search_killer_team_text_* team convars to be enabled.)
  • lastid - The last player the dead player saw before they died.
  • nick - The dead player's name.
  • role - The dead player's role.
  • stime - The dead player's DNA sample decay time.
  • team - The dead player's team. (Requires ttt_detectives_search_only_role to be disabled.)
  • wep - The weapon used to kill the dead player.
  • words - The dead player's last words.
(Requires ttt_detectives_search_only to be disabled.)

Finally the following miscellaneous ConVars can be used to configure options that apply to all detectives.

ConVar Default Type Description
ttt_detectives_glow_enabled 0 Boolean Whether detectives and detective-likes can see other detectives and detective-likes through walls via a highlight effect.
ttt_detectives_hide_special_mode 0 Integer (0-2) How to handle special detective role information:
  1. Show the special detective's role to everyone.
  2. Hide the special detective's role from everyone and just show as a regular detective instead.
  3. Hide the special detective's role from everyone but themselves.
ttt_special_detectives_armor_loadout 1 Boolean Whether special detectives get armor automatically for free. (Regular detectives always get body armor for free.)

Instructions for using ConVars can be found on the Configuring ConVars tutorial page, and ConVars specific to configuring each role can be found below.

When designing roles it is important to make sure your role is part of the correct team. Each team has a unique identity along with strengths and weaknesses that play better with some roles than others. If you are designing a detective role, keep the following in mind:

Detectives should:
  • Win by working with innocents and other detectives to identify and kill the traitors.
  • Be able to search and identify bodies.
Detectives should NOT:
  • Have unique win conditions. If your role requires a unique win condition consider making them a jester or independent.
  • Have any reason to kill/damage/annoy innocents and other detectives. If your role wants to cause chaos and confusion consider making them a traitor, jester or independent.
  • Have any reason to stay hidden from players. Detectives are meant to be a public team leader for the innocents.

These are just guidelines and in some special circumstances a role might be best fit as a detective even if it doesn't align with the above suggestions. However, in general following these suggestions will ensure that your role works well within the framework that Custom Roles for TTT provides.

A walkthrough for creating your own role can be found on the Create Your Own Role tutorial page.

[more]

The Detective is the base version of the detectives who can use their DNA scanner to track down killers.

The Detective has access to a shop containing powerful items that can be used to help the innocent team win against the traitors.

The Detective also spawns with a DNA scanner that can be used to track down players using DNA samples left on dead bodies, weapons, or other items. Samples do not last forever and will decay if they are not collected quickly. Once a sample has been collected the DNA scanner will provide frequent updates that point towards the player that the sample belongs to.

Unlike most unique role items, the DNA scanner can be dropped and used by other players of any role.

Role Configuration:

ConVar Default Type Description
ttt_det_credits_starting 1 Integer Vanilla TTT ConVar - The number of credits a detective should start with.

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.

[more]

The Illusionist prevents members of the traitor team from learning who their allies are.

As long as an Illusionist is alive, members of the traitor team will not be able see icons and roles of fellow traitors', use team chat, or transfer credits. When the Illusionist dies, members of the traitor team will be notified and will regain these abilities.

If ttt_illusionist_hides_monsters is enabled, the above effects will also apply to members of the monster team.

Role Configuration:

ConVar Default Type Description
ttt_illusionist_hides_monsters 0 Boolean Whether the Illusionist should prevent monsters from knowing who their team mates are.

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.

[more]

The Marshal can use their badge to turn a player into a Deputy or an Impersonator.

The Marshal is given a deputy badge as part of their loadout which can be used to convert players into either a Deputy or an Impersonator. If the badge is used on a member of the innocent team that player will become a Deputy, and if it is used on a member of the traitor team that player will become an Impersonator.

If the badge is used on any other player, there is a chance for that player to become either a Deputy or an Impersonator. This chance can be configured independently for each team with the ConVars below.

The Marshal has access to a shop containing a small handful of useful items. However, if the ttt_marshal_shop_sync ConVar is enabled the Marshal will have access to all items available to the Detective.

Role Configuration:

ConVar Default Type Description
ttt_marshal_announce_deputy 1 Boolean Whether a player being deputized will be announced to everyone.
ttt_marshal_prevent_deputy 1 Boolean Whether to only spawn the marshal when there isn't already a deputy or impersonator in the round.
ttt_marshal_badge_time 8 Integer The amount of time in seconds the Marshal's badge takes to use.
ttt_marshal_credits_starting 1 Integer The number of credits a Marshal should start with.
ttt_marshal_independent_deputy_chance 0.5 Float (0-1) The chance that an independent will become a Deputy when the Marshal's badge is used on them. (Set to -1 to disable.)
ttt_marshal_jester_deputy_chance 0.5 Float (0-1) The chance that a jester will become a Deputy when the Marshal's badge is used on them. (Set to -1 to disable.)
ttt_marshal_monster_deputy_chance 0.5 Float (0-1) The chance that a monster will become a Deputy when the Marshal's badge is used on them. (Set to -1 to disable.)

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.

[more]

The Medium can communicate the souls of dead players.

The positions of dead players' spectator cameras appear to the Medium as colourful floating orbs. While dead players cannot communicate directly with living players, they are able to use their position to try to give the Medium hints.

If ttt_medium_spirit_color is enabled each player's spirit will be given a unique color, otherwise each spirit will be white.

The Medium has access to a shop containing a small handful of useful items. However, if the ttt_medium_shop_sync ConVar is enabled the Medium will have access to all items available to the Detective.

Role Configuration:

ConVar Default Type Description
ttt_medium_credits_starting 1 Integer The number of credits a Medium should start with.
ttt_medium_dead_notify 1 Boolean Whether player should be notified that there is a Medium when they die.
ttt_medium_hide_killer_role 0 Boolean Whether to hide the role of a player's killer when there is a medium in the round.
ttt_medium_seance_cooldown 3 Integer The amount of time (in seconds) the Medium's seance goes on cooldown for after losing it's target.
ttt_medium_seance_distance 250 Integer The maximum distance away the seance target can be.
ttt_medium_seance_float_time 1 Integer The amount of time (in seconds) it takes for the Medium's seance to lose it's target after getting out of range.
ttt_medium_seance_max_info 0 Integer (0-3) The maximum amount of information the Medium can learn about a spirit by performing a seance:
  1. None/Disabled.
  2. Name.
  3. Team.
  4. Role.
ttt_medium_seance_time 8 Integer The amount of time (in seconds) it takes for the Medium to finish a seance.
ttt_medium_spirit_color 1 Boolean Whether players' spirits should have different colors.
ttt_medium_spirit_vision 1 Boolean Whether players' spirits should be able to see each other.

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.

[more]

The Paladin has an aura that can heal players and reduce incoming damage.

Players inside the Paladin's aura will slowly heal over time at a rate determined by ttt_paladin_heal_rate. The Paladin themselves will also slowly heal if ttt_paladin_heal_self is enabled.

The Paladin's can also reduce incoming damage for players inside their aura by a factor determined by ttt_paladin_damage_reduction. By default the Paladin will not receive this incoming damage reduction themselves, but this can be enabled with ttt_paladin_protect_self.

If ttt_detectives_hide_special_mode is changed from its default such that the Paladin's role is hidden from other players, the Paladin's aura will also be made invisible to other players, however it's effects will still apply.

The Paladin has access to a shop containing a small handful of useful items. However, if the ttt_paladin_shop_sync ConVar is enabled the Paladin will have access to all items available to the Detective.

Role Configuration:

ConVar Default Type Description
ttt_paladin_aura_radius 5 Float The radius of the Paladin's aura in meters.
ttt_paladin_credits_starting 1 Integer The number of credits a Paladin should start with.
ttt_paladin_damage_reduction 0.3 Float (0-1) The fraction an attacker's damage will be reduced by when they are shooting a player inside the Paladin's aura. (e.g. 0.5 = 50% less damage.)
ttt_paladin_heal_rate 1 Integer The amount of health a player inside the Paladin's aura will heal each second.
ttt_paladin_heal_self 1 Boolean Whether the Paladin's healing aura will heal themselves or not.
ttt_paladin_protect_self 0 Boolean Whether the Paladin's damage reduction aura will protect themselves or not.

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.

[more]

The Quartermaster can buy items available to Traitors as weapon crates for other players.

The Quartermaster cannot buy items for themselves, and instead all items bought by the Quartermaster will be dropped on the ground in crates that can be opened by other players. The Quartermaster cannot open their own crates and so must instead supply items to other players.

If ttt_quartermaster_limited_loot is enabled, each player will only be able to open one weapon crate per round, otherwise each player is free to open as many crates as they would like.

Role Configuration:

ConVar Default Type Description
ttt_quartermaster_credits_starting 3 Integer The number of credits a Quartermaster should start with.
ttt_quartermaster_limited_loot 0 Boolean Whether players should be limited to looting a single Quartermaster crate per round.
ttt_quartermaster_set_crate_owner 0 Boolean Whether crates given by the quartermaster should be owned by them for the purposes of roles that react to the original weapon buyer (e.g the beggar).

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.

[more]

The Sapper has an aura that makes players immune to explosions.

Players inside the Sapper's aura will be immune to explosion damage. The Sapper themselves will also be immune if ttt_sapper_protect_self is enabled.

Players inside the Sapper's aura will also be immune to fire damage if ttt_sapper_fire_immune is enabled.

The Sapper can be configured to also be more effected against C4. Enabling ttt_sapper_can_see_c4 will allow Sapper's to see the location of armed C4 through walls, and enabling ttt_sapper_c4_guaranteed_defuse will make it impossible for the Sapper to detonate C4 while defusing.

If ttt_detectives_hide_special_mode is changed from its default such that the Sapper's role is hidden from other players, the Sapper's aura will also be made invisible to other players, however it's effects will still apply.

The Sapper has access to a shop containing a small handful of useful items. However, if the ttt_sapper_shop_sync ConVar is enabled the Sapper will have access to all items available to the Detective.

Role Configuration:

ConVar Default Type Description
ttt_sapper_aura_radius 5 Float The radius of the Sapper's aura in meters.
ttt_sapper_c4_guaranteed_defuse 0 Boolean Whether the Sapper is guaranteed to always successfully defuse C4.
ttt_sapper_can_see_c4 0 Boolean Whether the Sapper can see C4 pings on their radar like traitors.
ttt_sapper_credits_starting 1 Integer The number of credits a Sapper should start with.
ttt_sapper_fire_immune 0 Boolean Whether Sapper's protection aura also grands fire immunity.
ttt_sapper_is_innocent 0 Boolean Whether the Sapper should be treated as a special innocent.
ttt_sapper_protect_self 1 Boolean Whether the Sapper's protection aura will protect themselves or not.

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.

[more]

The Tracker can see a trail of footsteps left by other players.

If ttt_tracker_footstep_color is enabled each player's footsteps will be given a unique color, otherwise all footsteps will be white.

Footsteps will disappear over time, fully disappearing after the length of time determined by ttt_tracker_footstep_time has passed.

The Tracker can buy the tracking radar which will periodically show the locations of all living players and any dead bodies. The colors used by the tracking radar match the colors of each player's footsteps.

The Tracker has access to a shop containing a small handful of useful items including the tracking radar. However, if the ttt_tracker_shop_sync ConVar is enabled the Tracker will also have access to all items available to the Detective.

Role Configuration:

ConVar Default Type Description
ttt_tracker_credits_starting 1 Integer The number of credits a Tracker should start with.
ttt_tracker_footstep_color 1 Boolean Whether players' footsteps should have different colors.
ttt_tracker_footstep_time 15 Integer The time in seconds a player's footsteps should show to the Tracker before fading. (Set to 0 to disable.)
ttt_tracker_radar_loadout 0 Boolean Whether the Tracker should get the tracking radar automatically for free. (Server or round must be restarted for changes to take effect.)

A list of ConVars shared by every role and instructions for using ConVars can be found on the Configuring ConVars tutorial page.