This plugins adds Jail to your minecraft server. Admins can define several jails and then jail/unjail people or jail them on time basis. Plugin also offers wide variety of protections, so players won't escape out of your jail.


  • Jail online and offline players
  • Wide variety of protections to prevent escaping or simply to create more interesting escape route on role play server.
  • Protection penalties (increase jail sentence if player is not behaving well)
  • Guards that will kill player if he tries to escape
  • Data is stored in either SQLite or MySQL.
  • Supports multiple worlds
  • Jailing without commands via item
  • Supports escaping for role play servers.
  • Allows players to vote a player to be jailed

Plugin Stats
(you can opt-out from tracking in plugins/PluginMetrics/config.yml)

For errors, problems and suggestion make a ticket! Errors, problems and suggestions in comments will be ignored.


Video Tutorials Configuration ( Protections | Guards | JailStick | JailPay | MySQL | Miscellaneous )
Permission nodes
API guide ( Javadocs )


French French German Spanish Norwegian Polish Bulgarian


See Full Changelog

How can I help?

There are many ways you can help this plugin to continue to grow:

  • Report any bugs you find by submitting a ticket.
  • Suggesting ideas of things you would like to see in the plugin
  • Telling people about the plugin so more ideas and bugs will be reported
  • Donating to the project (top right of the screen) to help keep it alive
  • Voting in polls on the main project page


  • Tkelly for major part of SQL connectivity
  • Hidendra for a good way to update SQL database
  • CuteLord for help with testing and update videos.
  • DeadIntermediate for help with testing and ticket management.
  • lightmaster for reporting a lot of bugs, testing, and helping with tickets.

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

  • Avatar of graywolf336 graywolf336 Apr 23, 2014 at 06:13 UTC - 0 likes

    @darrenstraight: Go

    @pilvimaa: Go

    This got me thinking and I think I know what the real issue is. With the recent updates bukkit now makes a blocking call when getOfflinePlayer is called and we call that method a couple different places.

    1. If scoreboard is enabled, it is called for each online player that is in jail every ten seconds
    2. Every ten seconds it calls it if you have offline players counting down Sadly I'm not too sure what can be done about this, as it is Bukkit making the blocking call. I'm going to have to take a look tomorrow into what can be done as a hotfix.

    @uSoc_lifehome: Go

    The current version will not, but the rewrite that is in beta will.

  • Avatar of pilvimaa pilvimaa Apr 23, 2014 at 05:44 UTC - 0 likes

    @darrenstraight: Go

    Same here. Had to remove Jail to get my server working again after updating. It's no fun playing at 9 TPS :-)

    Using latest Spigot at the time of writing.

  • Avatar of uSoc_lifehome uSoc_lifehome Apr 16, 2014 at 11:33 UTC - 0 likes

    Sorry to be noob, but is Jail considered the UUID change?

    BFAK:90737389,0151cc4e8e2581d2ce7e224a27805a6704fab1bfbd04ee89045c4d53188b586b The heartbreaking feeling isn't that bad, but it tortures me... continuously...

  • Avatar of darrenstraight darrenstraight Apr 15, 2014 at 21:56 UTC - 0 likes

    @graywolf336: Go

    Currently using sqlite not mysql, but you got me thinking about the database, so I did some tests:

    1. Deleted the Jail folder and let the plugin recreate the config files/database, then proceeded to create a new jail. I did not try jailing anyone. This caused no TPS problems at all.

    2. Used my original jail database (with players in it) and jail config files, but this time I used SQLite Database browser and removed all player records. I loaded up the server. I did not try jailing anyone. This caused no TPS problems at all. 3. Using the database from my previous step, for every time I jailed someone the TPS decreased. 4. Using the same database again I deleted records leaving only 5 players in jail, TPS with 5. was at 20, I started to add players, between 10-15 players TPS decreased again.

    6. Finally I deleted the database and config files one more time and created a new jail but this time adding players, even though this was a fresh jail database/config files once I started getting over 10 jailed players the TPS started to drop dramatically.

    This has been tested both on a local and hosted server.

    My jail sqlite database had 30 players in it on the live server before I removed the plugin as it was making play unbearable, now I know the issue seems to get worse with the more players you have I will have a cleanup, however there hasent been any changes in amount of players jailed between 1.7.5 and 1.7.8 - it was working fine on 1.7.5.

    I will do some more testing tomorrow.

    Thanks, Darren

  • Avatar of graywolf336 graywolf336 Apr 15, 2014 at 19:31 UTC - 0 likes

    @darrenstraight: Go

    As the current version with mysql runs sync, that could indicate an issue with the connection to the mysql servers.

  • Avatar of darrenstraight darrenstraight Apr 15, 2014 at 19:28 UTC - 0 likes

    Was having severe lag issues earlier with the latest build of craftbukkit/spigot for Minecraft 1.7.8.

    TPS Started at 20 then after a few minutes it dropped down to around 12 to 9.

    Thanks to bukkits plugin-profiling option and the "/timings paste" command I was able to find out that it was the Jail plugin that was causing the problem, remove this with or without other plugins and my TPS was between 20 - 19.

    Timing data evidence: http://aikar.co/timings.php?url=7256800 http://aikar.co/timings.php?url=7257064

  • Avatar of skipeeto0 skipeeto0 Apr 09, 2014 at 23:16 UTC - 0 likes

    So after setting up jail sticks, this plugin no longer works. If I type any commands nothing happens at all. Doesn't even say the "This isn't a command type /help" thing. With the exception of /jail. But rather than it saying the whole /jail [playername] j:jail name c:cell name r:reason [time] it says /jail [player name] (time) jail name:cell name (reason). And when using either format, nothing happens. Please help. I didn't have this problem until I set up some jail sticks.

  • Avatar of graywolf336 graywolf336 Apr 05, 2014 at 16:51 UTC - 0 likes

    @phillipkdick: Go

    Please open a ticket about it with a pastebin of your code...

  • Avatar of phillipkdick phillipkdick Apr 05, 2014 at 14:29 UTC - 0 likes

    Hi, i can fix the last fail, but now, when execute the plugin and test it, have this error in consolé, and no send anybody to the jail

    at me.nerubian.palitoMolon.main.frisk(main.java:244) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [?:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [?:1.7.0_25]


i research a little but i dont know why happend this, the code is the next:


241 String playerName = victim.getName();

    242 int time = 500;

    243 String reason = "A la carcel!";

    244 jail.jailPlayer(playerName, time, null, reason);


i have a warning in 244 line ( The method jailPlayer(String, int, String, String) from the type JailAPI is deprecated)

    you can helpme o that is new wrong?


    Last edited Apr 05, 2014 by phillipkdick
  • Avatar of graywolf336 graywolf336 Apr 04, 2014 at 05:56 UTC - 0 likes

    @phillipkdick: Go Please go read Step #3 again on that api page, it says to cast and then get something else. You need to do the following:

    jail = ((Jail) plugin).API;

    Because that gets the instance of the API class and not the main jail class.


Date created
Aug 25, 2011
Last update
Dec 23, 2013
Development stage
  • enUS
Attribution-NonCommercial-ShareAlike 3.0 Unported
Curse link
Recent files