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.

Let's Talk about Java Versions

Java 8 was recently released, and yet some of you are still on Java 6. While I will continue to compile TTT with JDK 1.6 since I don't feel like re-configuring my build server, I highly recommend that you update to Java 7 or 8, because other devs may not stick to 6, as it's now two versions behind.

When Will You Release the Next Update?

I recently started a new project called MGLib. It's basically a library designed to ease the creation of minigame plugins. As such, I'm going to be devoting most of my coding time to it over the next few weeks. Its backend will be based on TTT, so it will in many ways be similar. My ultimate goal is to recode TTT to use MGLib. This will result in the implementation of plenty of promised features such as multiple arenas per world and dedicated mode. However, development on TTT will be put on hold until I can get a working beta of MGLib out.

Update: MGLib 0.3.0 should be generally available within a week or two. In the meantime, I've started porting TTT to the snapshot builds. The aim is to release TTT 0.6.0 and MGLib 0.3.0 at the same time. The initial process is mostly complete as of 7/24, but it still requires a ton of testing. I'll update this blurb as the porting continues.


  • 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:

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.

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 RodryFull001 RodryFull001 Jul 10, 2014 at 22:37 UTC - 0 likes

    @liltyskie: Go

    This is a future feature.

  • Avatar of liltyskie liltyskie Jul 10, 2014 at 19:04 UTC - 0 likes

    How do I get ammo in-game? Do I just place some arrows in chests around the map or what?

  • Avatar of Shady_Potato Shady_Potato Jul 07, 2014 at 15:53 UTC - 0 likes

    @PieofGuy: Go

    Not currently, though I may implement this at some point in the future.

    MGLib: Minigames Made Easy My Blog
  • Avatar of PieofGuy PieofGuy Jul 07, 2014 at 14:27 UTC - 0 likes

    @PieofGuy: Go

    or to like an apple

  • Avatar of PieofGuy PieofGuy Jul 07, 2014 at 02:40 UTC - 0 likes

    Is there a way to change the gun from the anvil to Podzol?

  • Avatar of Pixiyo Pixiyo Jul 06, 2014 at 16:09 UTC - 0 likes

    Thanks for the updates!

  • Avatar of Shady_Potato Shady_Potato Jul 06, 2014 at 01:52 UTC - 0 likes

    @AleNova15551: Go

    That just means the Curse file API is temporarily down. Nothing to do with the plugin itself.

  • Avatar of AleNova15551 AleNova15551 Jul 06, 2014 at 00:47 UTC - 0 likes

    i got error with the TTT but its work fine i use craftbukkit 1.7.9-R0.2 and ProtocolLib 3.4.0 and JAVA 8

  • Avatar of Shady_Potato Shady_Potato Jul 04, 2014 at 19:26 UTC - 0 likes

    @DanSpedey: Go

    0.6.0 will probably only serve the purpose of porting the plugin to MGLib, and so it'll introduce any features present in the library. I'm not entirely sure what will happen after that, but I'll probably focus next on interactive map features such as traitor rooms or testers. I'll try to keep the Planned Features list updated as I decide. :)

    Last edited Jul 06, 2014 by Shady_Potato
  • Avatar of DanSpedey DanSpedey Jul 04, 2014 at 18:15 UTC - 0 likes

    Could you tell us please what is coming in the upcoming updates?


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