TTT (Trouble In Terrorist Town)


Inspired by the popular Garry's Mod gamemode Trouble In Terrorist Town, this plugin attempts to emulate the game in Minecraft. At the start of a round, players are assigned a role: Innocent, or Traitor. It is the job of each group to eliminate the other. While the traitors are outnumbered, they have the advantage of knowing the role of all players. It will be up to the Innocents to decide who should live, and who's a traitor.


  • Traitors are automatically selected at a configurable rate
  • Players are automatically given a "crowbar" and a "gun" when entering a game
  • Ingame players may not chat with players outside the arena
  • Dead players receive messages of the living, but not vice versa
  • When a player dies, he becomes a ghost, not visible to other players
  • Dead players leave behind "bodies", or chests detailing their role
  • Rounds automatically start once enough players have entered an arena
  • Detective roles are randomly assigned to players at a configurable ratio to total players
  • Players' ingame actions affect their karma level in the exact same configurable way that it does in the real Trouble In Terrorist Town game
  • Players' karma is displayed on an ingame scoreboard along with their alive status
  • Fully functional lobby system, allowing for automated minigame servers
  • Admins can import worlds from folders in the server's root directory
  • When a dev, tester, or translator of the plugin joins a round, the message announcing the event will state their role.
  • Automatic build stability checker. When a build is marked as unstable, a warning will be displayed to the console when the plugin loads, and to administrators when they join. (Note: this means the plugin must connect to my web server to retrieve the build status as a string.)

How to Use

To start, you'll need to import a TTT map. This is done by placing the folder containing the map into your server's root directory, then type /ttt import [world name]. Now that your world is imported, you'll need to join the map with /ttt join [world name]. Once a certain number of players (defined in the config) have joined a map, the round preparation timer will automatically start, and after that, the round. Once all innocents or traitors have been eliminated, players will be teleported out of the world, which will be rolled back.
Lobby Help

English Video Tutorial


Some friends have assisted me in making maps for this plugin, and many of them will soon be available for download right here. You must simply copy the world folder from the ZIP archive for each map into your server's root directory, then run /ttt import to import it into the plugin.

Commands, Configuration, and Permissions


Planned Features

Items are organized by priority, highest to lowest. This list is subject to change, and as such, version predictions are not set in stone. They do, however, give a general idea of how long it will be before a feature is added. Major updates (where the first or second digit of the version number changes) typically take one to two months to release.

  • Multiple maps in one world (available in 0.6.0 snapshots)
  • Multiple spawnpoints per map (available in 0.6.0 snapshots)
  • Custom map data: when a map creator makes a TTT map, he or she will have the option to define areas which will function as traitor rooms, traitor testers, and ammo crates. This will be stored in and loaded from a single file in the TTT world directory. (Will likely be included in 0.7.0)
  • A credit system similar to the one in the actual game (Will likely be included by 0.8.0)
  • More guns! (This could take a while, as it would take a lot of code to make each gun unique)
  • Implement vanilla spectating (sometime after MC 1.8 is released)

    If you would like a feature added which is not on this list, please create a ticket explaining it in detail. Please do not create tickets for features which are already on this list!


Current Version (0.5)

  • New Features
  • Add lobby system
  • Lobby signs are protected from direct and indirect destruction
  • Two types of signs: "status" and "players"
  • Add "/ttt help lobby" command
  • Add build stability checker (reports stability of current build when plugin is loaded)
  • DNA scanners spin when no sample has been collected
  • Add esES locale
  • Add itIT locale
  • Add plPL locale
  • Add output to /ttt ss command
  • Bug Fixes
  • Fix "IOException: String length longer than maximum allowed (X > 16)"
  • Fix improper round conclusion on server reload/restart (before, players in rounds would lose their inventory and remain in the arena)
  • Fix conflicts with Multiverse
  • Fix potential memory leaks on server reload due to static variables
  • Change gamemode to survival on round join
  • Fix IllegalPluginAccessException on disable
  • Fix StringIndexOutOfBoundsException when importing world
  • Internal Changes
  • Refactor project to "TTT"
  • Load all config values on plugin enable so as not to continually reference it while running
  • Update MCStats to Revision 7
  • Change encoding of source files and in turn strings in binaries to UTF-8 without BOM
  • Change encoding of locales to UTF-8 without BOM, fixing special characters being displayed incorrectly
  • Change updater class so as to comply with ToS changes
  • Compile with Java 7

Click here to view the changelog for all versions

Known Bugs

  • Messages introduced in 0.5 may not be 100% accurate for some locales; namely: deDE, nlNL, plPL, and ptBR
  • Lobby signs may not update properly upon round end

Help, It's Broken!

If you should encounter a bug not listed on this BukkitDev site, please create a ticket explaining in detail the bug and the steps taken to produce it. Please include an error log (if applicable), as we generally can't do anything without it. Bug reports posted in the comments of this page will be ignored!

Donate Maybe?

Hey, I just met you
And this is crazy
But here's my plugin
So donate maybe?

I... I'm sorry. I literally wrote that in 5 seconds right before I typed it. Joke's on me, because now that song is stuck in my head. Anyway, if you'd like to support my work, feel free to click that donate button up at the top.

I also accept various cryptocurrencies. Here are my addresses:
Bitcoin: 1HP2h5RDfKen8AVFK17u96kkN161LABep4
Litecoin: Lh11mxdwH7FhiyB4EoQdxKKi1Du4MQcYQK
Gabencoin: 7jkFT1uGjVmEAww79uuQBivdGfMG2GPJFS

Translators Needed

We need translators to help translate this plugin into as many languages as possible. If you speak English and your native language has not yet been localized (or has, but is inaccurate), we encourage you to download the English localization file and translate it for us. Make sure not to touch the keys, only the messages! You'll receive credit for translating it on the plugin's page. Each update usually adds new messages to the plugin, so we ask that you be able to translate a few additional messages each month or so (the typical time between updates). If a release is delayed while waiting for translations, we will unfortunately need to use Google Translate for any missing messages.

The plugin is currently localized in:

Steam Group

Be sure to join our Steam group to receive development news, info about testing sessions, and more!


Bleeding-edge Builds

Development builds of this project can be acquired at the provided continuous integration (Jenkins) server. These builds have not been approved by the BukkitDev staff. Use them at your own risk. Additionally, these builds often undergo little to no testing, so there is no guarantee they will function properly.

Source Code


This plugin is designed to submit anonymous usage statistics to Click the below graphs to see them:


Status Updates

If you want to keep up with the development of the plugin, be sure to check out my Twitter feed here. I'll be posting updates as to each update's progress, along with anticipated release dates.


Special thanks to HostHorde for supporting TTT! Make sure to check them out!

Like what I do? Feel free to give me an Internet!


You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Shady_Potato Shady_Potato Sep 02, 2014 at 20:06 UTC - 0 likes

    @Ikillnukes: Go

    This has already been patched in 0.6.0, which should be available for download very shortly. Also, if your world takes up 1 GB, I'd strongly advise moving the arena to a discrete world in the meantime.

    MGLib: Minigames Made Easy My Blog
  • Avatar of Ikillnukes Ikillnukes Sep 02, 2014 at 17:35 UTC - 0 likes

    Seriously? If I want to create a arena I have to create a world for every arena, and If I have for example 1GB of world, I have to copy 1GB every time if I want to create a simple arena of 80x80 blocks?? Really guys, you have to improve that... In the meantime, I have to say goodbye to you... =/

  • Avatar of Shady_Potato Shady_Potato Aug 30, 2014 at 02:15 UTC - 0 likes

    @jordypwner: Go

    This is already a planned feature. It will be added in a future update.

    @Donio95: Go

    I don't know what that is, so it's probably not possible to hook it.

  • Avatar of Donio95 Donio95 Aug 29, 2014 at 18:11 UTC - 0 likes

    How to hook this plugin with CrackShot?

  • Avatar of jordypwner jordypwner Aug 15, 2014 at 11:58 UTC - 0 likes

    @Shady_Potato: Go

    Hey! Could you add a Traitor tester? if you dont know what i mean then pm me :P

    My Plugins: HubTeleportBow My Server:

  • Avatar of Shady_Potato Shady_Potato Aug 14, 2014 at 16:09 UTC - 0 likes

    @CaptainChickenzz: Go

    Rest assured I'm in the process of updating the plugin. It takes time, though, so I must ask for your patience. 0.5-pre5 should work with the latest Minecraft version. If you PM me with the error you're getting, I might be able to help you fix it.

  • Avatar of CaptainChickenzz CaptainChickenzz Aug 14, 2014 at 09:42 UTC - 0 likes

    PLz UPDATE to 1.7.9 or 1.7.10 PLX its not working for meh server m8, UPDATE

  • Avatar of Shady_Potato Shady_Potato Aug 02, 2014 at 17:19 UTC - 0 likes

    @Pixiio: Go

    Thank you for the report; it really helps. This is caused by an invalid value for log-level in the config, but it shouldn't be happening anyway. I'll add a fix for it, but in the meantime, you can get rid of it by changing the value to "WARNING" (without the quotes).

  • Avatar of Pixiio Pixiio Aug 02, 2014 at 14:46 UTC - 0 likes with newest dev + MGlib. Please help. Thanks!

  • Avatar of RodryFull001 RodryFull001 Jul 10, 2014 at 22:37 UTC - 0 likes

    @liltyskie: Go

    This is a future feature.

Which feature do you want to see most in 0.7.0?

  1. Choice:

  1. Results
  2. 0 comments


Date created
Feb 22, 2013
Last update
Jan 02, 2014
Development stage
  • deDE
  • enUS
  • esES
  • frFR
  • itIT
  • plPL
  • ptBR
GNU General Public License version 3 (GPLv3)
Curse link
TTT (Trouble In Terrorist Town)
Recent files