Getting started

Overview & requirements

Jail-Reloaded 1.0.0 is a free, maintained fork of graywolf336’s Jail plugin. Define physical jail regions, optionally add individual cells, and manage timed or indefinite sentences, confiscated property, prisoner restrictions, payments, jail sticks and player votes.

RequirementDetails
ServerSpigot, Paper or Purpur; the published 1.0.0 release lists Minecraft 1.19–26.3. Use a compatible build of every optional dependency.
JavaThe release lists Java 17+. Your Minecraft server may require a newer Java runtime; follow its requirement.
StorageSQLite by default; MySQL or flatfile are alternatives. This is not a cross-server prison synchronization system.
Vault and an economy providerOptional, needed for money-based jail payments when jailpay.item is air. Item-based payments do not need Vault.
WorldEdit / Multiverse-CoreListed as soft dependencies, not requirements for the documented brick-wand creation workflow. No implemented WorldEdit creation command was found in this source.
EditionOne Free edition; no Premium license is required.
Download Jail-Reloaded
Back to top ↑

Getting started

Installation & first run

  1. Back up the server and any existing jail data. Do not run this fork and another plugin claiming the same Jail commands/data at the same time.
  2. Stop the server, place the Jail-Reloaded release JAR in plugins, and install Vault plus an economy plugin only if you want money-based payments.
  3. Start the server. The Bukkit plugin identity is JailReloaded; its data folder is plugins/JailReloaded/. Check the console for successful storage initialization.
  4. Review config.yml and locales/en.yml (or your selected locale). Generated defaults are a starting point, not a recommendation to overwrite existing customized data.
  5. Choose storage and language, grant narrowly scoped staff permissions, then run /jail reload after editing valid YAML.
  6. Build and register a jail before attempting to jail anyone. Add cells if you want individual arrival points, signs or property chests.
  7. Use /jail version, /jail list, and /jail help admin 1 to inspect readiness. Test a short sentence on a non-OP test account with disposable items.
PathPurpose
config.ymlBehavior, storage, restrictions, displays, payments, sticks and voting.
locales/<code>.ymlServer-wide language messages and localized command grammar.
jail3.sqliteDefault SQLite database; back up its companion WAL/SHM files consistently or make a backup while the server is stopped.
data.yml / records.ymlJail/prisoner data and historical records when storage.type is flatfile.
External MySQL tablesUsed instead of local jail storage when storage.type is mysql; back up the external database too.
Back to top ↑

Getting started

A complete first-jail walkthrough

The names rivenmoor and cell_a below are examples. Use simple, unique jail and cell names without spaces. Commands starting with / are player-chat examples; omit / in the server console.

Example workflow — follow the wand prompts between commands
/jail create rivenmoor
# Complete the four region/arrival/release selections in game.
/jail createcell rivenmoor cell_a
# Select cell arrival, optional signs, and optional double chest.
/jail stop
/jail listcells rivenmoor
/jail Alex -j rivenmoor -c cell_a -t 2m -r Staff setup test
/jail check Alex
/jail time show Alex
/unjail Alex
Back to top ↑

Jails & cells

Create a jail region

A jail is a cuboid plus a common arrival point and a release point. It does not build walls for you. Construct the prison first and include enough floor, ceiling, corridor and escape-boundary space in the region.

Start jail creation
/jail create rivenmoor
  1. Run the command in game with jail.command.jailcreate. The plugin supplies a named BRICK wand; hold that special item in your main hand, not an ordinary brick.
  2. Right-click the first corner block. Select the whole 3D volume, not just two points on the floor.
  3. Right-click the diagonally opposite corner, including the full jail height.
  4. Stand at the desired arrival location INSIDE the selected cuboid and right-click with the wand. This saves your player position and facing, not the clicked block as the arrival point.
  5. Stand at a safe release position OUTSIDE the cuboid and right-click again. An inside release point is rejected; move outside and retry.
  6. Wait for the creation success message, then verify with /jail list and /jail telein rivenmoor. Check that arrival/release positions are safe and accessible.

Movement protection uses the registered cuboid, not physical cell walls. A cell is an assignment and arrival point, not a separately selected confinement cuboid. Prisoners are allowed to move around inside the overall jail unless your prison design or other rules prevent it.

Back to top ↑

Jails & cells

Create cells, signs & property chests

Create a named cell
/jail createcell rivenmoor cell_a
  1. Use jail.command.jailcreatecells in game after the parent jail exists. The first optional cell name defaults to cell_n<count+1> if omitted.
  2. Stand at the cell’s arrival point inside the parent jail, then right-click with the supplied brick wand.
  3. Right-click each existing sign you want assigned to this cell. You can register multiple signs, or none. Click a non-sign block to advance to chest selection.
  4. Right-click an optional DOUBLE CHEST or double trapped chest to register stored-property access. A single chest is rejected. Click a non-chest block to complete the cell without a chest.
  5. The cell is saved immediately. Creation automatically starts another cell with the next generated cell_n name. Repeat the selections for more cells, or run /jail stop when finished.
  6. Use /jail listcells rivenmoor to inspect the result and test with a disposable inventory before real sentencing.

Cell signs are controlled by the plugin; registering them replaces their display text. They are not clickable jail-command signs. The assigned property chest is protected even when its cell is vacant, and staff chest permissions do not provide an unrestricted bypass. Delete the registration safely before repurposing the chest.

Setting / optionBehavior
jailing.jail.automaticCell: trueIf the jail has cells and you did not explicitly choose one, the first empty cell is selected. If all are occupied, jailing fails rather than overbooking.
-c cell_aChoose that specific existing, empty cell. A missing or occupied cell is rejected.
-aRequest any empty cell explicitly; fails if no empty cell is available. This is a boolean flag, not a cell name.
No cell assignmentPossible when automatic cell selection is disabled or the jail has no cells; the common jail arrival point and serialized property storage are used.
Back to top ↑

Jails & cells

Cell signs, tags & display refresh

Edit jailing.during.cellsign in config.yml. Only the first four entries become sign lines. Use & color codes, keep lines short enough for the Minecraft sign display, and retain exact placeholder spelling.

Four-line sign example
jailing:
  during:
    cellsign:
      - '&6%player%'
      - '&f%prettytime%'
      - '@locale:sign.reason'
      - '&7%reason%'
TagSubstitution
%player%Prisoner’s last known player name.
%uuid%Prisoner UUID.
%reason%Stored sentence reason.
%jailer%Name recorded as the jailer.
%timeinminutes%Remaining time in whole minutes; -1 for an indefinite sentence.
%prettytime%Localized days/hours/minutes/seconds, or the localized life-sentence label.
%afktime%Formatted recorded inactivity duration.
@locale:sign.reasonLocalized sign label for the reason line, rather than a named prisoner variable.
Check and refresh signs
/jail signs verify rivenmoor
/jail signs clean rivenmoor
/jail signs refresh rivenmoor
/jail signs update rivenmoor cell_a cell_b
  • verify reports recorded locations that are no longer signs without being a manual text editor.
  • clean removes invalid sign references. refresh and update refresh display text and also clean missing signs.
  • Without cell names, the action covers all cells in the named jail. Append one or more names to restrict it.
  • Signs refresh during relevant prisoner events, plugin reload and chunk loading. Existing custom sign templates are preserved.
  • Right-click editing, dye/wax-style interactions and manual SignChange edits are blocked on registered signs. Use config.yml and the sign commands instead.
Back to top ↑

Commands & administration

Jail players & use every flag

The main syntax is /jail <player> [options]. Omitted time uses jailing.jail.default.time (30m); omitted jail uses jailing.jail.default.jail (nearest). Console has no location, so nearest falls back to a registered jail; specify -j for predictable automation.

FlagLong forms declared in the parserMeaning
-p <player>--player, --pl (see note below)Explicit player name. Required to disambiguate a name such as check, time or status from a subcommand.
-t <duration>--time, --lengthOverride sentence duration. Examples: 30s, 15m, 2h, 1d.
-i--forever, --eternity, --infiniteIndefinite sentence; overrides the parsed time. No true/false argument.
-j <jail>--jail, --prisonChoose an existing jail with its world loaded.
-c <cell>--cellChoose an existing empty cell in that jail.
-a--anycellChoose any empty cell. No value follows this flag.
-m--muted, --canttalkStart muted. automaticMute: true also mutes the prisoner even if -m is omitted.
-r <reason...>--reasonSentence reason; put this last, followed by the reason’s words.
-f--forceAllow a player who has never joined before for this jailing. Does not bypass staff immunity, unavailable worlds, or the offline-jailing switch.
Sentencing examples
/jail Alex -j rivenmoor -t 30m -r Repeated griefing
/jail Alex -j rivenmoor -c cell_a -t 2h -m -r Staff decision
/jail Alex -j rivenmoor -a -t 10m -r Select any empty cell
/jail Alex -j rivenmoor -i -r Indefinite sentence pending review
/jail -p check -j rivenmoor -t 5m -r Player name matches a command
/jail NewPlayer -f -j rivenmoor -t 15m -r Pending first join

An offline jailing is stored as pending until the player first joins and the jailing process completes. Default allowJaillingOfflinePlayers is true; allowJailingNeverPlayedBeforePlayers is false. Preserve the historical Jailling spelling. An online player with jail.cantbejailed is immune, including most OP test accounts.

Back to top ↑

Commands & administration

Durations, offline time & release

InputMeaning
30s / 30secondsThirty seconds.
5m / 5minutes / 5minFive minutes.
2h / 2hoursTwo hours.
1d / 1dayOne day.
30Thirty minutes, not seconds.
0Exactly zero. In penalty settings it adds no time but does not disable protection.
-1 / -i-1 is the internal indefinite-duration value; use the -i jailing flag for an indefinite sentence.

Use one numeric duration with one unit: use 90m rather than 1h30m. Use plain English unit suffixes even when messages and subcommands are localized. Sentences update about every ten seconds, so the displayed countdown and actual release are not a one-second stopwatch.

Adjust and release a sentence
/jail time show Alex
/jail time add Alex 5m
/jail time remove Alex 2m
/jail time set Alex 20m
/jail time set Alex 0
/unjail Alex
  • show needs no time argument; add, remove and set do. Reaching zero schedules normal release.
  • By default, established sentences pause while the player is offline. Set jailing.during.countDownTimeWhileOffline: true to count them while the server is running. This does not count down an initial offline-pending placement or guarantee elapsed time while the server itself is stopped.
  • Normal offline release is completed at the next join so restoration and teleport handling can run. /unjail is the first choice for release.
  • jailing.release.teleport defaults to true and normally uses the jail release point. backToPreviousPosition: true records and attempts the pre-jail position instead.
  • restorePreviousGameMode defaults to false. Enable it BEFORE jailing if you want the original game mode saved and restored; enabling it later cannot recreate missing historical state.
Back to top ↑

Commands & administration

Transfers, inspections & moderation

Staff workflow examples
/jail list
/jail listcells rivenmoor
/jail check Alex
/jail mute Alex
/jail transfer -p Alex -j rivenmoor -c cell_b
/jail transferall rivenmoor north_prison
/jail telein rivenmoor
/jail teleout rivenmoor Morgan
/jail record Alex
/jail record Alex display
  • transfer needs both -p <player> and -j <jail>; -c is optional. The destination cell, when supplied, must exist and be empty.
  • transferall moves all prisoners to the target jail with no individual destination cell selected. Check the target before bulk movement; it is not an automatic one-cell-per-prisoner allocator.
  • telein and teleout are location teleports, not sentence creation or release commands. An already jailed player can still be contained by movement protection.
  • mute toggles chat muting; it is separate from whether a prisoner receives other players’ chat.
  • record <player> reports a count; adding the display argument lists entries. Historical records require jailing.jail.log.profile. Console audit logs and record history serve different purposes.
Back to top ↑

Commands & administration

Clearing prisoners & deleting jails

CommandEffect / safeguards
/jail clear rivenmoorRequest normal release of that jail’s prisoners.
/jail clearTargets all jails. Avoid omitting the name unless that is intentional.
/jail clear -f rivenmoorRequest forced clearing; additionally requires jail.command.jailclearforce. clearforce is an accepted subcommand form too.
/jail deletecell rivenmoor cell_aDelete one cell only after it is empty.
/jail deletecells rivenmoorDelete eligible empty cells; occupied cells are not silently discarded.
/jail delete rivenmoorDelete an empty jail; release or transfer prisoners first.
/jail confirmConfirm the pending action within ten seconds as the same sender.

Take backups first. Initiate only the intended named action, read the feedback, and then confirm. Only one confirmation can be pending for a sender. An expired confirmation requires repeating the original command. Cell/jail deletion removes plugin registrations, not the physical prison build.

Back to top ↑

Commands & administration

Complete command & alias reference

The following reference is extracted from all 32 registered command handlers. Angle brackets in this guide mean required arguments and square brackets mean optional ones. The “Source usage” column preserves original annotation notation, where older handlers use square brackets for required values and parentheses for optional values. Read the workflow examples for corrected practical syntax.

Player-only commands cannot be used from console. telein/teleout can run from console when an online player is specified. Root commands shown here are the actual names from plugin.yml; short forms appearing only in Java patterns are not guaranteed registered top-level aliases.

/jail subcommands and sentencing

Source usagePermission / contextPurpose & aliases
/jail [name] (-t time) (-j JailName) (-c CellName) (-a AnyCell) (-m Muted) (-r A reason for jailing)jail.command.jail

Console or player, subject to target/context rules

Jail a named player. Use /jail <player> or /jail -p <player>; the jailing flags below control the sentence.
/jail check [name]jail.command.jailcheck

Console or player, subject to target/context rules

Inspect a prisoner’s reason, jailer and remaining time.

Accepted English tokens: check.

/jail clear (-f) (jail)jail.command.jailclear

Console or player, subject to target/context rules

Request normal or forced clearing of prisoners, not deletion of the jail. Requires /jail confirm.

Accepted English tokens: clear, clearforce.

/jail confirmPending-action access only

Console or player, subject to target/context rules

Confirm the pending action for this sender within 10 seconds; no standalone permission grants destructive access.

Accepted English tokens: confirm, con.

/jail create [name]jail.command.jailcreate

In-game player required

Start the interactive brick-wand jail-region setup.

Accepted English tokens: create.

/jail createcell [jail] (cellname)jail.command.jailcreatecells

In-game player required

Create cells inside an existing jail. Cell name is optional; creation repeats until /jail stop.

Accepted English tokens: createcells, createcell, cellcreate, cellscreate, cc.

/jail delete [jail]jail.command.jaildelete

Console or player, subject to target/context rules

Request deletion of an empty jail; release or transfer prisoners first.

Accepted English tokens: delete, d.

/jail deletecell [jail] [cell]jail.command.jaildeletecell

Console or player, subject to target/context rules

Request deletion of one empty cell; confirm before deletion.

Accepted English tokens: deletecell, dc.

/jail deletecells [jail]jail.command.jaildeletecells

Console or player, subject to target/context rules

Request deletion of empty cells in a jail; occupied cells cannot simply be deleted.

Accepted English tokens: deletecells, dcs.

/jail help [players|admin] [page]jail.command.jailhelp

Console or player, subject to target/context rules

Permission-filtered help. Use /jail help players 1 or /jail help admin 1; bare /jail also opens help.

Accepted English tokens: help, h.

/jail list (jail)jail.command.jaillist

Console or player, subject to target/context rules

List jails, prisoner counts and unloaded-world status.

Accepted English tokens: list, l.

/jail listcells [jail]jail.command.jaillistcells

Console or player, subject to target/context rules

List cells in a named jail.

Accepted English tokens: listcells, lc.

/jail mute [name]jail.command.jailmute

Console or player, subject to target/context rules

Toggle one prisoner’s chat mute.

Accepted English tokens: mute, m.

/jail pay (amount) (name)jail.usercmd.jailpay

In-game player required

Show your bill, pay toward your own sentence, or pay for another prisoner when you are not jailed.

Accepted English tokens: pay.

/jail record [name] (display)jail.command.jailrecord

Console or player, subject to target/context rules

Show the number of historical entries; append display to list them.

Accepted English tokens: record, r.

/jail reloadjail.command.jailreload

Console or player, subject to target/context rules

Validate and reload settings, locales, timers, displays, sticks, payments and voting.

Accepted English tokens: reload.

/jail signs [clean|refresh|update|verify] [jail] (cell)...jail.command.jailsigns

Console or player, subject to target/context rules

Verify, clean or refresh registered cell signs, optionally only named cells.

Accepted English tokens: signs.

/jail statusjail.usercmd.jailstatus

In-game player required

Show your own reason, jailer and remaining sentence.

Accepted English tokens: status, s.

/jail stickjail.usercmd.jailstick

In-game player required

Toggle your own jail-stick usage; material-specific permission is also required.

Accepted English tokens: stick.

/jail stopjail.command.jailstop

In-game player required

Stop your current jail/cell creation session; does not delete completed cells.

Accepted English tokens: stop.

/jail telein [jail] (name)jail.command.jailtelein

Console or player, subject to target/context rules

Teleport yourself or an online named player to a jail arrival point. Console must name a player. Does not itself jail them.

Accepted English tokens: teleportin, telein.

/jail teleout [jail] (name)jail.command.jailteleout

Console or player, subject to target/context rules

Teleport yourself or an online named player to a jail release point. Does not itself release a sentence; movement protection may prevent a prisoner leaving.

Accepted English tokens: teleportout, teleout.

/jail time [add|remove|set|show] [name] <time>jail.command.jailtime

Console or player, subject to target/context rules

Add, remove or set sentence time; show does not take a duration.

Accepted English tokens: time, t.

/jail transfer [-p player] (-j jail) (-c cell)jail.command.jailtransfer

Console or player, subject to target/context rules

Move a prisoner to a named jail, optionally a particular empty cell. -p and -j are required in practice.

Accepted English tokens: transfer, trans.

/jail transferall [current] [target]jail.command.jailtransferall

Console or player, subject to target/context rules

Transfer all prisoners from the current jail to the target; does not individually assign destination cells.

Accepted English tokens: transferall, transall, ta.

/jail versionjail.command.jailversion

Console or player, subject to target/context rules

Show the installed plugin version.

Accepted English tokens: version, ver.

/jail vote [player] (yes|no)jail.usercmd.jailvote

In-game player required

Start a vote or vote yes/no in an existing vote.

Accepted English tokens: vote, v.

Separate top-level commands

Source usagePermission / contextPurpose & aliases
/handcuff [player]jail.command.handcuff

Console or player, subject to target/context rules

Toggle handcuffs on an online, non-jailed player unless immune.
/togglejaildebugjail.command.toggledebug

Console or player, subject to target/context rules

Staff diagnostics: toggle additional console diagnostics; keep disabled during normal operation.
/unhandcuff [player]jail.command.handcuff

Console or player, subject to target/context rules

Remove an online player’s handcuffs.
/unjail [player]jail.command.unjail

Console or player, subject to target/context rules

Normal release; offline prisoners finish release when they next join.
/unjailforce [player]jail.command.unjailforce

Console or player, subject to target/context rules

Recovery-only forced release. Offline records can be removed without restoring player property.
Back to top ↑

Prisoner behavior

Block, command & interaction rules

Configuration under jailing.duringBundled behavior
blockBreakProtection / blockBreakWhiteListBreaking is blocked except listed block materials. Defaults list wheat, carrot and potato; use exact block material names supported by your server when customizing.
blockPlaceProtection / blockPlaceWhiteListPlacement is protected. A placement whitelist alone does not bypass a blocked held-item interaction. Adventure mode can independently prevent building.
commandProtection / commandWhitelistCommands not whitelisted are blocked. Prefix matches respect a space boundary; /ping does not whitelist /pinganything. Include the leading /.
preventInteractionBlocksRight-click block blacklist; the bundled list contains * and therefore blocks every block material, not only the old doors listed before it.
preventInteractionItemsRight-click held-item blacklist for both hands, in air, on blocks and on entities. The default ["*"] intentionally blocks eating, drinking, pearls, buckets and other item use.
cropTramplingProtectionPrevents jailed players trampling farmland inside a jail.
jails.endermenProtection / jails.explosionProtectionSeparate world-region protections against enderman block changes and explosion block damage.
jail.modifyjail permissionAllows ordinary non-prisoner block editing in a jail region; it is not a universal bypass for prisoner, registered chest or sign protections.

Penalty fields use durations. All bundled penalties are 0: the action is still blocked, but no extra sentence time is added. A positive penalty such as 30s adds time when that prohibited action is attempted. Do not use a negative penalty.

Example: block item use selectively instead of everything
jailing:
  during:
    preventInteractionBlocks: ['oak_door', 'iron_door', 'lever']
    preventInteractionBlocksPenalty: 0
    preventInteractionItems: ['ender_pearl', 'chorus_fruit']
    preventInteractionItemsPenalty: 30s
    commandWhitelist:
      - '/jail status'
      - '/jail pay'
      - '/jail help'
      - '/jailreloaded:jail help'

Localized /jail subcommands are canonicalized for command-whitelist checks. English aliases and namespaced forms should still be listed explicitly when you want to permit them. Granting a command permission does not by itself bypass the prisoner whitelist.

Back to top ↑

Prisoner behavior

Containment versus escape mode

SettingResult
jailing.during.moveProtection: trueLeaving the jail region is prevented; the player is returned to their cell arrival point or common jail arrival. The configured movePenalty may add time. Jail clothing is locked.
jailing.during.moveProtection: falseThe movement boundary is not enforced. Prisoners may leave physically, reclaim eligible assigned-chest property, and remove/replace jail clothing. Their sentence and other restrictions do not automatically end.

Escape mode is not an automatic pardon system. Block, command and interaction restrictions remain independently configured. Arrival points, respawn handling, item use rules, physical prison design and any other protection plugins still matter.

Example escape-mode switch
jailing:
  during:
    moveProtection: false
    movePenalty: 0
    openChest: true
Back to top ↑

Prisoner behavior

Confiscated property & jail uniforms

jailing.jail.inventory.store defaults to true. Original property is captured for restoration, using an assigned double chest or serialized prisoner data. The inventory blacklist is destructive: listed materials are deliberately discarded instead of stored. Keep it empty unless that loss is intentional.

  • With openChest: true, only the currently assigned prisoner can view their own registered property chest. Vacant cell chests and other players’ chests remain protected.
  • In containment mode, the chest is preview-only. In escape mode, left-click or shift-click reclaims a stack; right-click reclaims one item, subject to free player inventory space.
  • Deposits, drags, hotbar swaps, double-click collection and automation are blocked. A full inventory leaves property stored. Reclaimed items are removed from saved property so release does not return the same item twice.
  • Jail uniforms are tagged plugin-issued equipment, not the prisoner’s original armor. They are unbreakable; containment mode locks and restores them after rejoining/respawning. Escape mode allows removing/replacing them.
  • Keep the stored prisoner record, cell/chest registration, actual inventory and relevant database backup together. Do not manually edit serialized inventories or substitute an empty value to bypass a restore error.
Example: orange leather uniform
jailing:
  jail:
    inventory:
      store: true
      blacklist: []
    clothing:
      enabled: true
      helmet: leather_helmet~255,128,0
      chest: leather_chestplate~255,128,0
      legs: leather_leggings~255,128,0
      boots: leather_boots~255,128,0

The color suffix is ~red,green,blue with each channel from 0 to 255; colors apply to leather armor. Use valid material names. Clothing and storage are separate settings: disabling storage is not an inventory-preserving workaround, especially if you continue issuing a uniform.

Back to top ↑

Prisoner behavior

Chat, hunger, AFK & respawning

  • automaticMute defaults to true. /jail mute <player> toggles a specific prisoner’s ability to send normal chat. recieveMessages (preserve that spelling) controls whether prisoners receive chat.
  • maxAFKTime defaults to 10m. Movement resets recorded inactivity; 0 disables AFK kicking. The sentence timer checks periodically rather than on every second.
  • ignoreSleeping defaults to true, excluding prisoners from the player count required to skip night.
  • Respawning while jailed selects the cell/jail arrival location; dying does not remove the sentence. Other death, keep-inventory and inventory plugins can affect the experience, so test those combinations.
  • The default jail game mode is adventure. restorePreviousGameMode is false by default, so configure restoration before sentencing if you want a return to the original mode.

foodControl uses a 0–20 food scale (20 is a full food bar). The bundled min is 10 and max is 20. The current event handler sets an event below min to min; otherwise it sets it to max. It is not a smooth “clamp only when over max” implementation. Valid settings require 0 ≤ min ≤ max ≤ 20.

Example: no AFK kick and no forced hunger control
jailing:
  during:
    maxAFKTime: 0
    foodControl:
      enabled: false
      min: 10
      max: 20
Back to top ↑

Optional systems

Buying sentence reductions

Jail pay can use Vault money or a material-based item payment. Players need jail.usercmd.jailpay and the command must be allowed by the prisoner command whitelist. Use /jail pay to inspect your bill before choosing an amount.

Payment examples
/jail pay
/jail pay 15
/jail pay 30 Alex
RuleBehavior
Timed billceil(remaining milliseconds / 60000) × pricePerMinute. At 1.5 per minute, 59 seconds costs 1.5 and 10m01s costs 16.5.
Partial paymentfloor(amount / pricePerMinute) whole minutes are removed. A smaller-than-one-minute payment is rejected. Choose whole multiples of the rate; an accepted non-multiple can charge the offered amount without buying the fraction.
Full paymentIf the offered amount covers the bill, only the bill is charged, but the current command checks that the player can afford the offered amount first. Do not offer an unnecessarily large number.
Indefinite sentenceUses priceInfinite as one flat bill; a partial amount does not shorten an indefinite sentence.
Item paymentsUse an item material instead of air; the item count charged rounds up. Matching is by material, not a custom-item template identity.
Paying for someone else/jail pay <amount> <player> is for a payer who is not jailed. A prisoner cannot pay for another prisoner.
Zero pricepricePerMinute: 0 disables timed payments; priceInfinite: 0 disables indefinite payments. It does not mean a free release.
Example: diamonds instead of Vault currency
jailpay:
  enabled: true
  item: diamond
  pricePerMinute: 1
  priceInfinite: 64
Back to top ↑

Optional systems

Hit-to-jail sticks & health thresholds

A jail stick is a configured held material plus an opt-in player toggle. Create a jail first, run /jail reload so sticks can resolve a valid jail, then use /jail stick to enable your own usage. Toggle it off when you are done.

Jail stick CSV format
material,duration,jail,reason,maximumVictimHealth

jailstick:
  enabled: true
  sticks:
    - 'stick,30m,rivenmoor,Prison arrest,-1'
    - 'blaze_rod,15m,rivenmoor,@locale:jailstick.fun,6'
FieldMeaning
materialOne valid item material; each material can have only one stick definition.
durationSentence duration such as 30m.
jailExisting jail name. Empty uses the manager’s fallback registered jail; explicitly name it for reliable behavior.
reasonLiteral text or supported @locale: key. Do not put commas inside the reason; the parser splits on commas.
maximumVictimHealthHit points, not hearts. 6 means the target must have at most 6 HP (3 hearts); equality is accepted. -1 disables the health test. The fifth field is optional in the parser and defaults to no threshold.
  • The user needs jail.usercmd.jailstick to toggle, plus jail.usejailstick.<material> to use that material—for example jail.usejailstick.stick or jail.usejailstick.blaze_rod.
  • Use a direct player melee hit with the configured material in the main hand; projectile hits are not the same workflow. An already-cancelled damage event does not trigger it.
  • A player already jailed or protected by jail.cantbejailed cannot be jailed this way.
  • The threshold compares the target’s health at the event, not a promise that the weapon’s damage will first reduce it to the threshold.
  • The declared legacy node jail.canbestickjailed is not checked by the current stick handler; use actual actor permissions and target immunity. reload rebuilds the stick manager; re-enable /jail stick if needed.
Back to top ↑

Optional systems

Temporary handcuffs

Online-player handcuff commands
/handcuff Alex
/unhandcuff Alex

Both commands use jail.command.handcuff. /handcuff toggles an online non-jailed player’s state; /unhandcuff explicitly removes it. jail.cantbehandcuffed is checked as an immunity node even though it is not declared in plugin.yml. Assign it explicitly if your permission policy needs it.

  • Movement and teleports are held at the recorded cuff location; looking around is allowed.
  • Breaking and placing blocks are blocked. Normal chat and commands are blocked for cuffed players without the handcuff staff permission.
  • Do not rely on old /r or /reply exemptions: the current command condition does not provide a dependable reply-command bypass.
  • Handcuffs are separate, in-memory temporary state, not a timed sentence or a persisted jail record. Actually jailing the player removes their cuffs.
Back to top ↑

Optional systems

Player votes to jail

Start a vote and cast votes
/jail vote Alex
/jail vote Alex yes
/jail vote Alex no

Voting needs jailvote.enabled, a working vote manager and at least one jail. The command permission is jail.usercmd.jailvote; starting a new vote additionally needs jail.vote.start. The target must be online and not immune through jail.cantbejailed.

  • Starting a vote automatically counts the starter’s yes vote. Using /jail vote <player> during an existing vote also attempts a yes vote.
  • Each voter UUID can vote only once for that active target. The default timer is 60s.
  • Success requires yes > no AND at least minimumYes yes votes (default 5). A tie or insufficient yes count fails.
  • The target must still be online at calculation time and the destination jail/world must remain usable. A successful default vote gives a 5m sentence with the localized configured vote reason.
  • Use the actual supported words yes and no, or their configured localized grammar. A vote is not a percentage quorum system and does not bypass other jailing event hooks.
Example vote settings
jailvote:
  enabled: true
  voteTimer: 60s
  minimumYes: 5
  reason: '@locale'
  time: 5m
Back to top ↑

Setup & configuration

Editing YAML & reloading safely

  1. Back up plugins/JailReloaded and the active database before edits. Save configuration as UTF-8 with spaces, never tabs.
  2. Merge examples into the existing tree. Do not add a second top-level jailing key or replace an entire file with a small snippet.
  3. Use actual YAML booleans and numbers; quote strings with punctuation, color codes and * wildcards. Preserve misspelled historical keys exactly.
  4. Run /jail reload and check both the command response and console. It saves active data and validates the candidate configuration before replacing working settings.
  5. If reload fails, correct the file and retry. Invalid YAML is not silently accepted; replacement storage errors retain the previous connection. Do not assume your edited disk file and current runtime settings match after a rejected reload.
  6. Re-test a short sentence, sign updates, releases and optional systems. New defaults do not overwrite all existing server-specific values automatically.

Reload covers locales, command grammar, sentence/AFK timer settings, signs, scoreboard, movement policy, jail sticks, payments and voting. It rebuilds relevant runtime managers; do not expect active vote sessions or jail-stick toggles to survive reconfiguration unchanged.

Back to top ↑

Setup & configuration

Storage engines, migration & backups

ValueData location / requirement
sqliteDefault; plugins/JailReloaded/jail3.sqlite. storage.mysql.prefix also determines SQLite table names.
flatfileplugins/JailReloaded/data.yml for active jail data and records.yml for history. Use flatfile, not YAML, as the setting value.
mysqlExternal database; configure host, port, username, password, database and prefix. Create the database first and give the plugin account only the access it needs.
Example external MySQL configuration
storage:
  type: mysql
  mysql:
    host: '127.0.0.1'
    port: 3306
    username: 'jail_app'
    password: 'REPLACE_WITH_YOUR_DATABASE_PASSWORD'
    database: 'jail_database'
    prefix: 'j3_'

The reload code can copy currently loaded active jails/cells/prisoners to a changed storage target. This is not a promise of complete historical-record migration. Archive the old database or records.yml and verify both active data and history separately. A cold restart after changing storage may load the new empty target instead of having the old active state available to copy.

  1. Test any storage change on a cloned server and backed-up database first.
  2. Take a consistent backup of the old data, configuration, locale files and physical property chest/world data.
  3. For a live-runtime conversion, prepare a new empty target, change only the intended storage settings, and run /jail reload while the old active state is still loaded.
  4. Review migration feedback and confirm jail count, cells, prisoners, saved property, pending offline operations and history access before allowing normal use.
  5. Keep the original backup. Do not share one database/table prefix among independent servers; a shared database does not add network synchronization.

Active jail data is saved periodically (about once per minute), during important operations and on clean shutdown. Never treat that as a replacement for backups, especially before deleting, force releasing or switching storage.

Back to top ↑

Setup & configuration

Complete config.yml & all 75 settings

The full commented configuration and every leaf setting below are copied from the bundled 1.0.0 source, not from a live server. The reference retains original credit and explains defaults. Internal system.version is a configuration schema (3), not the plugin’s public version.

Complete bundled config.yml — commented defaults
Download the bundled default config.yml
Jail-Reloaded 1.0.0 defaults — reference only
# ============================================================================
# Jail-Reloaded v1.0.0 | Configuration
# Original Creator: graywolf336
# Fork By: Rismr1 | ImagineCraft Plugins
#
# Based on the original Jail plugin for Minecraft 1.9, updated to API 1.19
# and developed/tested with Minecraft 1.19-26.3 in mind.
# All original credit belongs to graywolf336 and the original contributors.
# The original GNU GPL v2 license is preserved and will always stay the same.
# This fork will never be sold and will respect the original project's license.
# ImagineCraft Plugins supports and updates this fork upon user request.
#
# Original Download: https://www.curseforge.com/minecraft/bukkit-plugins/jail
# Original GitHub: https://github.com/graywolf336/Jail
# Plugin Fork Website: https://plugins.imagine-craft.net/
#
# Use spaces, never tabs. Save as UTF-8. Run /jail reload after editing.
# New defaults do not replace existing server values automatically.
# Durations: 30s, 5m, 1h, 2d; full words also work (e.g. 5minutes).
# A number without a suffix means minutes; 0 always means zero without a unit.
# Penalty 0 keeps protection active but adds no extra sentence time.
# Material names ignore case. Newer names are silently ignored on older servers.
# Interaction lists accept '*' for every material, including newly added ones.
# Quote '*' so YAML treats it as text.
# ============================================================================

# General behavior and maintenance.
system:
  # Internal configuration schema. Leave unchanged.
  version: 3
  # true adds diagnostic console messages; normally leave false.
  debug: false
  # Locale filename in plugins/JailReloaded/locales, without .yml (see supported codes below).
  # Server-wide messages, help, signs, scoreboard defaults, and command syntax.
  # Supported: en, fi, de, es, fr, it, ja, ko, nl, pl, pt_br, ru, sv, uk, zh_cn, zh_hk, zh_tw.
  # /jail always stays /jail. English subcommands also remain usable.
  # Edit locales/<code>.yml to customize wording. Missing entries use bundled defaults.
  # Apply a language change with /jail reload; existing custom messages are preserved.
  language: 'en'
  # true uses Bukkit scheduling; false uses a Java timer that queues server work.
  # Both count sentences about every 10 seconds on the server thread.
  useBukkitTimer: true

# Persistent storage. Back up your data before switching engines.
storage:
  # flatfile = data.yml/records.yml; sqlite = jail3.sqlite; mysql = external database.
  type: sqlite
  # Connection values apply to mysql. SQLite also uses the table prefix below.
  mysql:
    # Database host, e.g. localhost or a private database hostname.
    host: 'localhost'
    # Database TCP port; normally 3306.
    port: 3306
    # Database account with permission to create/read/update/delete plugin tables.
    username: 'root'
    # Account password. Keep quotes if it contains YAML punctuation.
    password: 'password'
    # Existing database name; create this database before selecting mysql storage.
    database: 'jailDatabase'
    # Table prefix: letters/digits/underscores. Avoid changing after setup.
    prefix: 'j3_'

# Rules applied during jailing, detention, and release.
jailing:
  # Restrictions and displays while a prisoner is jailed.
  during:
    # Extra sentence for prohibited breaking. 0 blocks without adding time.
    blockBreakPenalty: 0
    # true blocks prisoners breaking blocks except the whitelist below.
    blockBreakProtection: true
    # Breakable block names, not item names. [] allows no exceptions.
    blockBreakWhiteList: ['wheat', 'carrot', 'potato']
    # Extra sentence for prohibited placement; 0, 30s, 5m, 1h, etc.
    blockPlacePenalty: 0
    # true blocks placement except the whitelist below.
    blockPlaceProtection: true
    # Placeable block names. Strict item rules may also block using the held item.
    blockPlaceWhiteList: ['wheat', 'carrot', 'potato']
    # Up to four sign lines. Supports & colors, %player%, %uuid%, %reason%,
    # %jailer%, %timeinminutes%, %prettytime%, and %afktime%.
    # @locale:sign.reason uses the localized reason label. Custom lines stay unchanged.
    cellsign:
      - '%player%'
      - '%prettytime%'
      - '@locale:sign.reason'
      - '%reason%'
    # Extra sentence for a blocked command. 0 leaves the restriction active.
    commandPenalty: 0
    # true blocks commands not explicitly allowed below.
    commandProtection: true
    # Allowed commands, including the leading slash. Add desired English aliases explicitly.
    # Localized /jail subcommands follow their English equivalent automatically.
    commandWhitelist: ['/ping', '/list', '/jail status', '/jail pay', '/jail help', '/jail h', '/jailreloaded:jail help']
    # true counts established sentences offline; false pauses them.
    # An offline jailing stays pending until the first join completes jailing.
    countDownTimeWhileOffline: false
    # Extra sentence for trampling farmland; 0 adds no time.
    cropTramplingPenalty: 0
    # true prevents prisoners trampling farmland inside a defined jail.
    cropTramplingProtection: true
    # Prisoner hunger bounds, measured from 0 to 20 (20 = full hunger bar).
    foodControl:
      # true applies the min/max bounds below.
      enabled: true
      # Highest allowed food level (0-20); keep at least min.
      max: 20
      # Lowest allowed food level (0-20); keep at most max.
      min: 10
    # true excludes prisoners from the number of sleepers required to skip night.
    ignoreSleeping: true
    # Inactivity duration before a prisoner is kicked. 0 disables AFK kicking.
    maxAFKTime: 10m
    # Extra sentence for attempting to leave the cuboid; 0 adds no time.
    movePenalty: 0
    # true returns escape attempts to the jail/cell arrival point.
    # false allows escape, reclaiming assigned chest contents, and removing jail gear.
    moveProtection: true
    # true allows the prisoner's assigned double chest, including trapped chests.
    # With moveProtection: true, the chest is preview only.
    # With moveProtection: false, click/shift-click to reclaim a stack into your
    # inventory, or right-click for one item. A full inventory leaves items stored.
    # Deposits, dragging, hotbar swaps, and automated transfers remain blocked.
    # Reclaimed items are removed from saved property to prevent duplicate returns.
    # Jail clothing is locked only while moveProtection is true.
    # Everyone else is denied access, including while the cell is vacant.
    # This exception overrides the block blacklist for that chest only.
    # Other chests remain protected; false blocks every chest.
    openChest: true
    # Right-click block-use blacklist. '*' includes EVERY block across 1.19-26.3:
    # doors, trapdoors, gates, buttons, levers, containers, workstations, beds,
    # signs, newer wood variants, and newer interactive blocks. Original doors remain.
    # Remove '*' to restrict only listed material names. [] disables this blacklist.
    # Newer names such as cherry_door on 1.19 produce no warnings.
    preventInteractionBlocks: ['oak_door', 'spruce_door', 'birch_door', 'jungle_door', 'acacia_door', 'dark_oak_door', 'iron_door', '*']
    # Extra sentence for blocked block use. 0 adds no time.
    preventInteractionBlocksPenalty: 0
    # Right-click item-use blacklist for BOTH hands, in air or on a block/entity.
    # '*' includes EVERY held item: food, potions, pearls, projectiles, buckets,
    # tools, vehicles, placeable items, and materials from newer game versions.
    # Remove '*' to restrict selected names; [] allows all item interactions.
    # This strict default intentionally prevents eating, drinking, and placing items.
    preventInteractionItems: ['*']
    # Extra sentence for blocked item use. 0 adds no time.
    preventInteractionItemsPenalty: 0
    # true lets prisoners receive normal chat. Preserve this historical spelling.
    recieveMessages: true
    # Sidebar displaying remaining sentence time.
    scoreboard:
      # true displays the jail sidebar while imprisoned.
      enabled: true
      # Sidebar heading; @locale uses the selected language. Custom text supports & colors.
      title: '@locale'
      # Remaining-minutes label; @locale uses the selected language. Custom text supports & colors.
      time: '@locale'
  # What happens when a player is sent to jail.
  jail:
    # true allows jailing names that have not joined before; -f can force one jailing.
    allowJailingNeverPlayedBeforePlayers: false
    # true allows offline jailings, completed at the next join. Keep this key spelling.
    allowJaillingOfflinePlayers: true
    # true picks an empty cell automatically when no cell was specified.
    automaticCell: true
    # true mutes chat on jailing; /jail mute toggles it afterward.
    automaticMute: true
    # true broadcasts jailings to players with jail.see.broadcast.
    broadcastJailing: false
    # Uniform equipped after original inventory storage.
    clothing:
      # true issues the configured uniform when jailed.
      # With moveProtection: true, it is locked and restored after respawn/rejoining.
      # With moveProtection: false, prisoners may remove or replace it freely.
      # Uniform pieces are unbreakable. Disabling clothing removes tagged jail gear.
      enabled: true
      # Material, optionally ~red,green,blue (each 0-255) for leather armor only.
      helmet: leather_helmet~175,105,33
      # Chestplate material; same color format as helmet.
      chest: leather_chestplate~175,105,33
      # Leggings material; same color format as helmet.
      legs: leather_leggings~175,105,33
      # Boots material; same color format as helmet.
      boots: leather_boots~175,105,33
    # Console commands after jailing, WITHOUT /. [] runs nothing.
    # Placeholders: %p%, %player%, %uuid%, %reason%.
    commands: []
    # Used when the jail command omits the corresponding option.
    default:
      # nearest selects the nearest jail; alternatively specify a jail name.
      jail: nearest
      # Default sentence duration. -1 means forever; otherwise use a positive duration.
      time: 30m
    # Prisoner game mode: survival, creative, adventure, or spectator.
    gameMode: adventure
    # Inventory confiscation/restoration.
    inventory:
      # Materials deliberately discarded instead of stored, e.g. ['tnt']; [] discards none.
      blacklist: []
      # true stores inventory in the assigned double chest or serialized prisoner data.
      # false disables storage/restoration. Test with spare items before changing.
      store: true
    # Audit messages and jailing history.
    log:
      # true logs completed jail/release/transfer/time/mute/payment actions.
      # Tick updates and blocked-click details are debug-only to avoid console spam.
      console: true
      # true records jailing history for /jail record.
      profile: true
  # What happens on normal release.
  release:
    # true saves the pre-jail position and attempts to return there on release.
    backToPreviousPosition: false
    # Console commands after release, without /. Same placeholders as jail.commands.
    commands: []
    # true saves/restores the original game mode; false keeps the current mode.
    restorePreviousGameMode: false
    # true uses the release point unless returning to a saved position succeeded.
    teleport: true

# Jail-region protections, independent of individual sentence penalties.
jails:
  # true prevents endermen moving blocks inside defined jail regions.
  endermenProtection: true
  # true prevents explosions damaging jail-region blocks.
  explosionProtection: true

# Buying sentence reductions. Currency mode needs Vault and an economy provider.
jailpay:
  # true enables /jail pay when a payment method is available.
  enabled: true
  # air = Vault currency; another material (e.g. diamond) = physical item payments.
  item: air
  # Cost per remaining minute, rounded up (e.g. 59s is billed as one minute).
  # Partial payments must cover at least one minute; smaller amounts are not taken.
  # 0 disables payment for timed sentences.
  pricePerMinute: 1.5
  # Flat cost for an infinite sentence. 0 disables payment for infinite sentences.
  priceInfinite: 10000

# Hit-to-jail tools. A user must enable /jail stick and have the material permission.
jailstick:
  # true enables jail sticks; /jail reload applies changes.
  enabled: true
  # Entries: material,duration,jail,reason,maximumVictimHealth.
  # Empty jail selects the default jail. -1 health disables the health threshold.
  # Reasons accept @locale:jailstick.running or @locale:jailstick.fun. Custom text stays literal.
  # Health is in hit points (20 = 10 hearts). Permission: jail.usejailstick.<material>.
  # Create at least one jail before loading sticks.
  sticks: ["stick,30m,,@locale:jailstick.running,-1", "blaze_rod,15m,,@locale:jailstick.fun,6"]

# /jail vote <player> starts a vote; append yes or no to vote.
jailvote:
  # true enables voting; command and vote-start permissions still apply.
  enabled: true
  # Positive duration before the votes are counted, e.g. 60s.
  voteTimer: 60s
  # Minimum yes votes. Successful votes also need more yes than no votes.
  minimumYes: 5
  # Reason recorded for a successful vote. @locale uses the selected language.
  reason: "@locale"
  # Sentence imposed after a successful vote.
  time: 5m
system — every default and its explanation
Configuration pathBundled defaultSource explanation
system.version3Internal configuration schema. Leave unchanged.
system.debugfalsetrue adds diagnostic console messages; normally leave false.
system.languageenLocale filename in plugins/JailReloaded/locales, without .yml (see supported codes below). Server-wide messages, help, signs, scoreboard defaults, and command syntax. Supported: en, fi, de, es, fr, it, ja, ko, nl, pl, pt_br, ru, sv, uk, zh_cn, zh_hk, zh_tw. /jail always stays /jail. English subcommands also remain usable. Edit locales/<code>.yml to customize wording. Missing entries use bundled defaults. Apply a language change with /jail reload; existing custom messages are preserved.
system.useBukkitTimertruetrue uses Bukkit scheduling; false uses a Java timer that queues server work. Both count sentences about every 10 seconds on the server thread.
storage — every default and its explanation
Configuration pathBundled defaultSource explanation
storage.typesqliteflatfile = data.yml/records.yml; sqlite = jail3.sqlite; mysql = external database.
storage.mysql.hostlocalhostDatabase host, e.g. localhost or a private database hostname.
storage.mysql.port3306Database TCP port; normally 3306.
storage.mysql.usernamerootDatabase account with permission to create/read/update/delete plugin tables.
storage.mysql.passwordpasswordAccount password. Keep quotes if it contains YAML punctuation.
storage.mysql.databasejailDatabaseExisting database name; create this database before selecting mysql storage.
storage.mysql.prefixj3_Table prefix: letters/digits/underscores. Avoid changing after setup.
jailing.during — every default and its explanation
Configuration pathBundled defaultSource explanation
jailing.during.blockBreakPenalty0Extra sentence for prohibited breaking. 0 blocks without adding time.
jailing.during.blockBreakProtectiontruetrue blocks prisoners breaking blocks except the whitelist below.
jailing.during.blockBreakWhiteList["wheat","carrot","potato"]Breakable block names, not item names. [] allows no exceptions.
jailing.during.blockPlacePenalty0Extra sentence for prohibited placement; 0, 30s, 5m, 1h, etc.
jailing.during.blockPlaceProtectiontruetrue blocks placement except the whitelist below.
jailing.during.blockPlaceWhiteList["wheat","carrot","potato"]Placeable block names. Strict item rules may also block using the held item.
jailing.during.cellsign["%player%","%prettytime%","@locale:sign.reason","%reason%"]Up to four sign lines. Supports & colors, %player%, %uuid%, %reason%, %jailer%, %timeinminutes%, %prettytime%, and %afktime%. @locale:sign.reason uses the localized reason label. Custom lines stay unchanged.
jailing.during.commandPenalty0Extra sentence for a blocked command. 0 leaves the restriction active.
jailing.during.commandProtectiontruetrue blocks commands not explicitly allowed below.
jailing.during.commandWhitelist["/ping","/list","/jail status","/jail pay","/jail help","/jail h","/jailreloaded:jail help"]Allowed commands, including the leading slash. Add desired English aliases explicitly. Localized /jail subcommands follow their English equivalent automatically.
jailing.during.countDownTimeWhileOfflinefalsetrue counts established sentences offline; false pauses them. An offline jailing stays pending until the first join completes jailing.
jailing.during.cropTramplingPenalty0Extra sentence for trampling farmland; 0 adds no time.
jailing.during.cropTramplingProtectiontruetrue prevents prisoners trampling farmland inside a defined jail.
jailing.during.foodControl.enabledtruetrue applies the min/max bounds below.
jailing.during.foodControl.max20Highest allowed food level (0-20); keep at least min.
jailing.during.foodControl.min10Lowest allowed food level (0-20); keep at most max.
jailing.during.ignoreSleepingtruetrue excludes prisoners from the number of sleepers required to skip night.
jailing.during.maxAFKTime10mInactivity duration before a prisoner is kicked. 0 disables AFK kicking.
jailing.during.movePenalty0Extra sentence for attempting to leave the cuboid; 0 adds no time.
jailing.during.moveProtectiontruetrue returns escape attempts to the jail/cell arrival point. false allows escape, reclaiming assigned chest contents, and removing jail gear.
jailing.during.openChesttruetrue allows the prisoner's assigned double chest, including trapped chests. With moveProtection: true, the chest is preview only. With moveProtection: false, click/shift-click to reclaim a stack into your inventory, or right-click for one item. A full inventory leaves items stored. Deposits, dragging, hotbar swaps, and automated transfers remain blocked. Reclaimed items are removed from saved property to prevent duplicate returns. Jail clothing is locked only while moveProtection is true. Everyone else is denied access, including while the cell is vacant. This exception overrides the block blacklist for that chest only. Other chests remain protected; false blocks every chest.
jailing.during.preventInteractionBlocks["oak_door","spruce_door","birch_door","jungle_door","acacia_door","dark_oak_door","iron_door","*"]Right-click block-use blacklist. '*' includes EVERY block across 1.19-26.3: doors, trapdoors, gates, buttons, levers, containers, workstations, beds, signs, newer wood variants, and newer interactive blocks. Original doors remain. Remove '*' to restrict only listed material names. [] disables this blacklist. Newer names such as cherry_door on 1.19 produce no warnings.
jailing.during.preventInteractionBlocksPenalty0Extra sentence for blocked block use. 0 adds no time.
jailing.during.preventInteractionItems["*"]Right-click item-use blacklist for BOTH hands, in air or on a block/entity. '*' includes EVERY held item: food, potions, pearls, projectiles, buckets, tools, vehicles, placeable items, and materials from newer game versions. Remove '*' to restrict selected names; [] allows all item interactions. This strict default intentionally prevents eating, drinking, and placing items.
jailing.during.preventInteractionItemsPenalty0Extra sentence for blocked item use. 0 adds no time.
jailing.during.recieveMessagestruetrue lets prisoners receive normal chat. Preserve this historical spelling.
jailing.during.scoreboard.enabledtruetrue displays the jail sidebar while imprisoned.
jailing.during.scoreboard.title@localeSidebar heading; @locale uses the selected language. Custom text supports & colors.
jailing.during.scoreboard.time@localeRemaining-minutes label; @locale uses the selected language. Custom text supports & colors.
jailing.jail — every default and its explanation
Configuration pathBundled defaultSource explanation
jailing.jail.allowJailingNeverPlayedBeforePlayersfalsetrue allows jailing names that have not joined before; -f can force one jailing.
jailing.jail.allowJaillingOfflinePlayerstruetrue allows offline jailings, completed at the next join. Keep this key spelling.
jailing.jail.automaticCelltruetrue picks an empty cell automatically when no cell was specified.
jailing.jail.automaticMutetruetrue mutes chat on jailing; /jail mute toggles it afterward.
jailing.jail.broadcastJailingfalsetrue broadcasts jailings to players with jail.see.broadcast.
jailing.jail.clothing.enabledtruetrue issues the configured uniform when jailed. With moveProtection: true, it is locked and restored after respawn/rejoining. With moveProtection: false, prisoners may remove or replace it freely. Uniform pieces are unbreakable. Disabling clothing removes tagged jail gear.
jailing.jail.clothing.helmetleather_helmet~175,105,33Material, optionally ~red,green,blue (each 0-255) for leather armor only.
jailing.jail.clothing.chestleather_chestplate~175,105,33Chestplate material; same color format as helmet.
jailing.jail.clothing.legsleather_leggings~175,105,33Leggings material; same color format as helmet.
jailing.jail.clothing.bootsleather_boots~175,105,33Boots material; same color format as helmet.
jailing.jail.commands[]Console commands after jailing, WITHOUT /. [] runs nothing. Placeholders: %p%, %player%, %uuid%, %reason%.
jailing.jail.default.jailnearestnearest selects the nearest jail; alternatively specify a jail name.
jailing.jail.default.time30mDefault sentence duration. -1 means forever; otherwise use a positive duration.
jailing.jail.gameModeadventurePrisoner game mode: survival, creative, adventure, or spectator.
jailing.jail.inventory.blacklist[]Materials deliberately discarded instead of stored, e.g. ['tnt']; [] discards none.
jailing.jail.inventory.storetruetrue stores inventory in the assigned double chest or serialized prisoner data. false disables storage/restoration. Test with spare items before changing.
jailing.jail.log.consoletruetrue logs completed jail/release/transfer/time/mute/payment actions. Tick updates and blocked-click details are debug-only to avoid console spam.
jailing.jail.log.profiletruetrue records jailing history for /jail record.
jailing.release — every default and its explanation
Configuration pathBundled defaultSource explanation
jailing.release.backToPreviousPositionfalsetrue saves the pre-jail position and attempts to return there on release.
jailing.release.commands[]Console commands after release, without /. Same placeholders as jail.commands.
jailing.release.restorePreviousGameModefalsetrue saves/restores the original game mode; false keeps the current mode.
jailing.release.teleporttruetrue uses the release point unless returning to a saved position succeeded.
jails — every default and its explanation
Configuration pathBundled defaultSource explanation
jails.endermenProtectiontruetrue prevents endermen moving blocks inside defined jail regions.
jails.explosionProtectiontruetrue prevents explosions damaging jail-region blocks.
jailpay — every default and its explanation
Configuration pathBundled defaultSource explanation
jailpay.enabledtruetrue enables /jail pay when a payment method is available.
jailpay.itemairair = Vault currency; another material (e.g. diamond) = physical item payments.
jailpay.pricePerMinute1.5Cost per remaining minute, rounded up (e.g. 59s is billed as one minute). Partial payments must cover at least one minute; smaller amounts are not taken. 0 disables payment for timed sentences.
jailpay.priceInfinite10000Flat cost for an infinite sentence. 0 disables payment for infinite sentences.
jailstick — every default and its explanation
Configuration pathBundled defaultSource explanation
jailstick.enabledtruetrue enables jail sticks; /jail reload applies changes.
jailstick.sticks["stick,30m,,@locale:jailstick.running,-1","blaze_rod,15m,,@locale:jailstick.fun,6"]Entries: material,duration,jail,reason,maximumVictimHealth. Empty jail selects the default jail. -1 health disables the health threshold. Reasons accept @locale:jailstick.running or @locale:jailstick.fun. Custom text stays literal. Health is in hit points (20 = 10 hearts). Permission: jail.usejailstick.<material>. Create at least one jail before loading sticks.
jailvote — every default and its explanation
Configuration pathBundled defaultSource explanation
jailvote.enabledtruetrue enables voting; command and vote-start permissions still apply.
jailvote.voteTimer60sPositive duration before the votes are counted, e.g. 60s.
jailvote.minimumYes5Minimum yes votes. Successful votes also need more yes than no votes.
jailvote.reason@localeReason recorded for a successful vote. @locale uses the selected language.
jailvote.time5mSentence imposed after a successful vote.
Back to top ↑

Reference

Languages & localized command syntax

Choose system.language in config.yml. This is server-wide, covering messages, help, localized subcommands, sign labels and scoreboard defaults. The root /jail and the other top-level command names remain English; English subcommands remain accepted in every locale.

Example: switch to Simplified Chinese
system:
  language: 'zh_cn'

# Apply from the game or console:
# /jail reload
  • Edit plugins/JailReloaded/locales/<code>.yml to customize wording. Missing keys fall back to bundled wording. A damaged or missing selected language falls back appropriately rather than publishing raw broken text.
  • Preserve the exact set of placeholders required by each bundled message. If an override changes or loses tokens, that entry falls back to the bundled text. An intentional empty string hides a message.
  • language.syntax.words entries must be single words made from letters, numbers, underscores or hyphens. Conflicting or invalid aliases fall back to canonical English.
  • Only grammar is translated. Player names, jail/cell identifiers, sentence reasons, short flags and English duration units stay as entered.
  • English aliases stay usable. Localized argument labels in help are explanations, not new values that must be typed.
English — en: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

English command examples
/jail help players 1
/jail status
/jail create rivenmoor
/jail createcell rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail time show Alex
/unjail Alex
English tokenLocalized token
helphelp
statusstatus
paypay
votevote
stickstick
createcreate
createcellcreatecell
stopstop
listlist
listcellslistcells
checkcheck
timetime
mutemute
transfertransfer
transferalltransferall
teleintelein
teleoutteleout
recordrecord
signssigns
clearclear
deletecelldeletecell
deletecellsdeletecells
deletedelete
confirmconfirm
reloadreload
versionversion
playersplayers
adminadmin
addadd
removeremove
setset
showshow
cleanclean
refreshrefresh
updateupdate
verifyverify
yesyes
nono
Download complete bundled locale
Finnish — fi: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Finnish command examples
/jail ohje pelaajat 1
/jail tila
/jail luo rivenmoor
/jail luoselli rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail aika näytä Alex
/unjail Alex
English tokenLocalized token
helpohje
statustila
paymaksa
voteäänestä
stickkeppi
createluo
createcellluoselli
stoplopeta
listlista
listcellssellit
checktarkista
timeaika
mutemykistä
transfersiirrä
transferallsiirräkaikki
teleinsisään
teleoutulos
recordhistoria
signskyltit
cleartyhjennä
deletecellpoistaselli
deletecellspoistasellit
deletepoista
confirmvahvista
reloadlataa
versionversio
playerspelaajat
adminylläpito
addlisää
removevähennä
setaseta
shownäytä
cleansiivoa
refreshpäivitä
updatekirjoitauudelleen
verifytarkasta
yeskyllä
noei
Download complete bundled locale
German — de: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

German command examples
/jail hilfe spieler 1
/jail status
/jail erstellen rivenmoor
/jail zelle-erstellen rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail zeit anzeigen Alex
/unjail Alex
English tokenLocalized token
helphilfe
statusstatus
payzahlen
voteabstimmen
stickstab
createerstellen
createcellzelle-erstellen
stopstoppen
listliste
listcellszellen
checkprüfen
timezeit
mutestumm
transferverlegen
transferallalle-verlegen
teleinhinein
teleouthinaus
recordakte
signsschilder
clearleeren
deletecellzelle-löschen
deletecellszellen-löschen
deletelöschen
confirmbestätigen
reloadneuladen
versionversion
playersspieler
adminadmin
addhinzufügen
removeentfernen
setsetzen
showanzeigen
cleanbereinigen
refreshauffrischen
updateaktualisieren
verifyüberprüfen
yesja
nonein
Download complete bundled locale
Spanish — es: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Spanish command examples
/jail ayuda jugadores 1
/jail estado
/jail crear rivenmoor
/jail crearcelda rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail tiempo mostrar Alex
/unjail Alex
English tokenLocalized token
helpayuda
statusestado
paypagar
votevotar
stickvara
createcrear
createcellcrearcelda
stopparar
listlista
listcellsceldas
checkconsultar
timetiempo
mutesilenciar
transfertrasladar
transferalltrasladartodos
teleinentrar
teleoutsalir
recordhistorial
signscarteles
clearvaciar
deletecellborrarcelda
deletecellsborrarceldas
deleteborrar
confirmconfirmar
reloadrecargar
versionversión
playersjugadores
adminadmin
addañadir
removequitar
setestablecer
showmostrar
cleanlimpiar
refreshrefrescar
updateactualizar
verifyverificar
yessí
nono
Download complete bundled locale
French — fr: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

French command examples
/jail aide joueurs 1
/jail statut
/jail créer rivenmoor
/jail créercellule rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail durée afficher Alex
/unjail Alex
English tokenLocalized token
helpaide
statusstatut
paypayer
votevoter
stickbâton
createcréer
createcellcréercellule
stoparrêter
listliste
listcellscellules
checkvérifier
timedurée
mutemuet
transfertransférer
transferalltransférertous
teleinentrer
teleoutsortir
recordcasier
signspanneaux
clearvider
deletecellsupprimercellule
deletecellssupprimercellules
deletesupprimer
confirmconfirmer
reloadrecharger
versionversion
playersjoueurs
adminadmin
addajouter
removeretirer
setdéfinir
showafficher
cleannettoyer
refreshrafraîchir
updateactualiser
verifycontrôler
yesoui
nonon
Download complete bundled locale
Italian — it: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Italian command examples
/jail aiuto giocatori 1
/jail stato
/jail crea rivenmoor
/jail creacella rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail tempo mostra Alex
/unjail Alex
English tokenLocalized token
helpaiuto
statusstato
paypaga
votevota
stickbastone
createcrea
createcellcreacella
stopferma
listlista
listcellscelle
checkcontrolla
timetempo
mutesilenzia
transfertrasferisci
transferalltrasferiscitutti
teleinentra
teleoutesci
recordprecedenti
signscartelli
clearsvuota
deletecelleliminacella
deletecellseliminacelle
deleteelimina
confirmconferma
reloadricarica
versionversione
playersgiocatori
adminadmin
addaggiungi
removerimuovi
setimposta
showmostra
cleanpulisci
refreshaggiorna
updateriscrivi
verifyverifica
yessì
nono
Download complete bundled locale
Japanese — ja: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Japanese command examples
/jail ヘルプ プレイヤー 1
/jail 状態
/jail 作成 rivenmoor
/jail 独房作成 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 表示 Alex
/unjail Alex
English tokenLocalized token
helpヘルプ
status状態
pay支払
vote投票
stick逮捕棒
create作成
createcell独房作成
stop中止
list一覧
listcells独房一覧
check確認
time刑期
muteミュート
transfer移送
transferall全員移送
telein入所地点
teleout釈放地点
record履歴
signs看板
clear全員釈放
deletecell独房削除
deletecells全独房削除
delete削除
confirm確定
reload再読込
versionバージョン
playersプレイヤー
admin管理者
add追加
remove減算
set設定
show表示
clean整理
refresh再表示
update更新
verify検証
yes賛成
no反対
Download complete bundled locale
Korean — ko: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Korean command examples
/jail 도움말 플레이어 1
/jail 상태
/jail 생성 rivenmoor
/jail 감방생성 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 형기 표시 Alex
/unjail Alex
English tokenLocalized token
help도움말
status상태
pay지불
vote투표
stick체포막대
create생성
createcell감방생성
stop중지
list목록
listcells감방목록
check확인
time형기
mute음소거
transfer이송
transferall전체이송
telein입소지점
teleout석방지점
record기록
signs표지판
clear전체석방
deletecell감방삭제
deletecells전체감방삭제
delete삭제
confirm확정
reload다시불러오기
version버전
players플레이어
admin관리자
add추가
remove차감
set설정
show표시
clean정리
refresh새로고침
update갱신
verify검사
yes찬성
no반대
Download complete bundled locale
Dutch — nl: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Dutch command examples
/jail hulp spelers 1
/jail status
/jail maak rivenmoor
/jail maakcel rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail tijd toon Alex
/unjail Alex
English tokenLocalized token
helphulp
statusstatus
paybetaal
votestem
stickstok
createmaak
createcellmaakcel
stopstop
listlijst
listcellscellen
checkcontroleer
timetijd
mutedemp
transferverplaats
transferallverplaatsallen
teleinbinnen
teleoutbuiten
recorddossier
signsborden
clearleeg
deletecellverwijdercel
deletecellsverwijdercellen
deleteverwijder
confirmbevestig
reloadherlaad
versionversie
playersspelers
adminbeheer
addvoegtoe
removeverminder
setstel-in
showtoon
cleanschoon
refreshververs
updatewerkbij
verifycontroleer
yesja
nonee
Download complete bundled locale
Polish — pl: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Polish command examples
/jail pomoc gracze 1
/jail status
/jail utwórz rivenmoor
/jail utwórzcelę rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail czas pokaż Alex
/unjail Alex
English tokenLocalized token
helppomoc
statusstatus
payzapłać
votegłosuj
stickpałka
createutwórz
createcellutwórzcelę
stopstop
listlista
listcellscele
checksprawdź
timeczas
mutewycisz
transferprzenieś
transferallprzenieśwszystkich
teleinwejdź
teleoutwyjdź
recordhistoria
signstabliczki
clearopróżnij
deletecellusuńcelę
deletecellsusuńcele
deleteusuń
confirmpotwierdź
reloadprzeładuj
versionwersja
playersgracze
adminadmin
adddodaj
removeodejmij
setustaw
showpokaż
cleanwyczyść
refreshodśwież
updateaktualizuj
verifyzweryfikuj
yestak
nonie
Download complete bundled locale
Brazilian Portuguese — pt_br: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Brazilian Portuguese command examples
/jail ajuda jogadores 1
/jail estado
/jail criar rivenmoor
/jail criarCela rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail tempo mostrar Alex
/unjail Alex
English tokenLocalized token
helpajuda
statusestado
paypagar
votevotar
stickbastão
createcriar
createcellcriarCela
stopparar
listlista
listcellscelas
checkconsultar
timetempo
mutesilenciar
transfertransferir
transferalltransferirtodos
teleinentrar
teleoutsair
recordhistórico
signsplacas
clearesvaziar
deletecellapagarCela
deletecellsapagarCelas
deleteapagar
confirmconfirmar
reloadrecarregar
versionversão
playersjogadores
adminadmin
addadicionar
removeremover
setdefinir
showmostrar
cleanlimpar
refreshrenovar
updateatualizar
verifyverificar
yessim
nonão
Download complete bundled locale
Russian — ru: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Russian command examples
/jail помощь игроки 1
/jail статус
/jail создать rivenmoor
/jail создатькамеру rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail срок показать Alex
/unjail Alex
English tokenLocalized token
helpпомощь
statusстатус
payоплатить
voteголосовать
stickжезл
createсоздать
createcellсоздатькамеру
stopстоп
listсписок
listcellsкамеры
checkпроверить
timeсрок
muteзаглушить
transferперевести
transferallперевестивсех
teleinвнутрь
teleoutнаружу
recordистория
signsтаблички
clearочистить
deletecellудалитькамеру
deletecellsудалитькамеры
deleteудалить
confirmподтвердить
reloadперезагрузить
versionверсия
playersигроки
adminадмин
addдобавить
removeубрать
setзадать
showпоказать
cleanочиститьтаблички
refreshобновить
updateперезаписать
verifyсверить
yesда
noнет
Download complete bundled locale
Swedish — sv: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Swedish command examples
/jail hjälp spelare 1
/jail status
/jail skapa rivenmoor
/jail skapacell rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail tid visa Alex
/unjail Alex
English tokenLocalized token
helphjälp
statusstatus
paybetala
voterösta
stickstav
createskapa
createcellskapacell
stopavbryt
listlista
listcellsceller
checkkontrollera
timetid
mutetysta
transferflytta
transferallflyttaalla
teleinin
teleoutut
recordhistorik
signsskyltar
cleartöm
deletecelltabortcell
deletecellstabortceller
deletetabort
confirmbekräfta
reloadladdaom
versionversion
playersspelare
adminadmin
addläggtill
removeminska
setange
showvisa
cleanrensa
refreshuppdatera
updateskrivom
verifygranska
yesja
nonej
Download complete bundled locale
Ukrainian — uk: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Ukrainian command examples
/jail довідка гравці 1
/jail статус
/jail створити rivenmoor
/jail створитикамеру rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail строк показати Alex
/unjail Alex
English tokenLocalized token
helpдовідка
statusстатус
payсплатити
voteголосувати
stickжезл
createстворити
createcellстворитикамеру
stopстоп
listсписок
listcellsкамери
checkперевірити
timeстрок
muteзаглушити
transferперевести
transferallперевестивсіх
teleinусередину
teleoutназовні
recordісторія
signsтаблички
clearочистити
deletecellвидалитикамеру
deletecellsвидалитикамери
deleteвидалити
confirmпідтвердити
reloadперезавантажити
versionверсія
playersгравці
adminадмін
addдодати
removeзменшити
setзадати
showпоказати
cleanочистититаблички
refreshоновити
updateперезаписати
verifyзвірити
yesтак
noні
Download complete bundled locale
Simplified Chinese — zh_cn: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Simplified Chinese command examples
/jail 帮助 玩家 1
/jail 状态
/jail 创建 rivenmoor
/jail 创建牢房 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 显示 Alex
/unjail Alex
English tokenLocalized token
help帮助
status状态
pay支付
vote投票
stick逮捕棒
create创建
createcell创建牢房
stop停止
list列表
listcells牢房列表
check查看
time刑期
mute禁言
transfer转移
transferall全部转移
telein入狱点
teleout释放点
record记录
signs告示牌
clear清空
deletecell删除牢房
deletecells删除全部牢房
delete删除
confirm确认
reload重载
version版本
players玩家
admin管理员
add增加
remove减少
set设置
show显示
clean清理
refresh刷新
update更新
verify检查
yes赞成
no反对
Download complete bundled locale
Hong Kong Traditional Chinese — zh_hk: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Hong Kong Traditional Chinese command examples
/jail 說明 玩家 1
/jail 狀態
/jail 建立 rivenmoor
/jail 建立牢房 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 顯示 Alex
/unjail Alex
English tokenLocalized token
help說明
status狀態
pay支付
vote投票
stick逮捕棒
create建立
createcell建立牢房
stop停止
list列表
listcells牢房列表
check查看
time刑期
mute禁言
transfer轉移
transferall全部轉移
telein入獄點
teleout釋放點
record記錄
signs告示牌
clear清空
deletecell刪除牢房
deletecells刪除全部牢房
delete刪除
confirm確認
reload重載
version版本
players玩家
admin管理員
add增加
remove減少
set設定
show顯示
clean清理
refresh重新整理
update更新
verify檢查
yes贊成
no反對
Download complete bundled locale
Traditional Chinese — zh_tw: all grammar words & example

The values are read from this locale’s bundled language.syntax.words section. English remains usable; conflicting custom words fall back to English.

Traditional Chinese command examples
/jail 說明 玩家 1
/jail 狀態
/jail 建立 rivenmoor
/jail 建立牢房 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 顯示 Alex
/unjail Alex
English tokenLocalized token
help說明
status狀態
pay支付
vote投票
stick逮捕棒
create建立
createcell建立牢房
stop停止
list列表
listcells牢房列表
check查看
time刑期
mute禁言
transfer轉移
transferall全部轉移
telein入獄點
teleout釋放點
record紀錄
signs告示牌
clear清空
deletecell刪除牢房
deletecells刪除全部牢房
delete刪除
confirm確認
reload重載
version版本
players玩家
admin管理員
add增加
remove減少
set設定
show顯示
clean清理
refresh重新整理
update更新
verify檢查
yes贊成
no反對
Download complete bundled locale
Complete English language file — message keys & positional tags
# Jail-Reloaded en | UTF-8
# Preserve %number% placeholders. /jail always stays unchanged.
# syntax.words aliases must be single words. English commands remain available.
language:
  actions:
    blockbreaking: breaking a block
    blockplacing: placing a block
    command: trying to use a command
    croptrampling: trampling crops
    interactionblocks: interacting with a block
    interactionitems: interacting with an item
    moving: trying to escape
  confirm:
    already: '&cYou are already confirming something else, please type ''&b/jail confirm&c'' to confirm it.'
    expired: '&cYour confirmation expired already, retype what you are trying to confirm.'
    nothing: '&cYou are not confirming anything.'
    start: '&cPlease type ''&b/jail confirm&c'' to confirm we should continue.'
  general:
    alljails: all the jails
    cellemptysign: Empty cell
    cellremovalunsuccessful: '&cThe removal of cell %0% from jail %1% was unsuccessful because there is a prisoner in there still. Release or transfer before trying to remove the cell again.'
    cellremoved: '&9Cell %0% has been successfully removed from the jail %1%.'
    cleanedsigns: '&aThe following signs were successfully cleaned:'
    invalidsigns: '&cThe following signs are invalid:'
    jailedforeversign: '&cfor life'
    jailing: '&9jailing'
    jailremovalunsuccessful: '&cThe removal of the jail %0% was unsuccessful because there are prisoners in there, please release or transfer them first.'
    jailremoved: '&9Jail %0% has been successfully deleted.'
    jailstickdisabled: '&3Jail stick usage: &cdisabled'
    jailstickenabled: '&3Jail stick usage: &aenabled'
    jailstickusagedisabled: '&cThe usage of Jail Sticks has been disabled by the Administrator.'
    nocell: '&cNo cell found by the name of %0% in the jail %1%.'
    nocells: '&cNo cells found in the jail %0%.'
    noinvalidsigns: '&aNo invalid signs were found.'
    nojail: '&cNo jail found by the name of %0%.'
    nojails: '&cThere are currently no jails.'
    nopermission: '&cInsufficient permission.'
    numberformatincorrect: '&cNumber format is incorrect.'
    playercontextrequired: '&cA player context is required for this.'
    playernotonline: '&cThat player is not online!'
    pluginnotloaded: '&cThe plugin did not load correctly, tell the administrator to check the console for errors.'
    pluginreloaded: '&9Jail configuration successfully reloaded.'
    prisonerscleared: '&cAll the prisoners from %0% have been cleared.'
    recordentry: '&7[%0%]: &9%1% &fjailed by &9%2% &ffor &9%3% &fminutes with a reason of &9%4%&f. [%5%]'
    recordtimesjailed: '&c%0% has been jailed &a%1% &ctimes.'
    sign: Sign
    signsrefreshed: '&aWe have successfully refreshed %0% signs and removed %1% signs in %2% cells.'
    timeformat: MM/dd/yyyy HH:mm:ss
    transferring: '&9transferring'
    unknowncommand: '&cNo commands registered by the name of %0%.'
    amountnumber: <amount> must be a number.
    paymentminimum: 'Payment must cover at least one minute: %0%.'
    reloadfailed: Reload failed. Check the console for details.
    version: 'Jail version: %0%'
    debugon: Jail debugging enabled.
    debugoff: Jail debugging disabled.
    jails: Jails
    prisoners: Prisoners
    cells: Cells
    unloaded: WORLD UNLOADED
    prisonerentry: '%0%: %1%; %2% (%3%)'
    minutes: '%0% min'
    operationfailed: '&cThe operation failed. Check the console for details.'
  jailing:
    afkkickmessage: '&cYou can not be afk while being jailed.'
    alreadyjailed: '&c%0% is already jailed.'
    broadcastmessageforever: '&9%0% has been jailed forever for: &c%1%'
    broadcastmessageforminutes: '&9%0% has been jailed for %1% minutes for: &c%2%'
    broadcastunjailing: '&9%0% has been unjailed by %1%.'
    cancelledbyanotherplugin: '&cJailing %0% was cancelled by another plugin and they did not leave you a message.'
    cantbejailed: '&cThat player can not be jailed.'
    cellnotempty: '&cThe destination cell, %0%, already has a prisoner in it.'
    defaultjailer: Al Capone
    defaultjailedreason: Breaking the rules.
    forceunjailed: '&c%0% was forcefully unjailed.'
    jailed: '&cYou have been jailed!'
    jailedwithreason: '&cYou have been jailed for: %0%'
    muted: '&cStop talking, you are in jail.'
    noemptycells: '&cNo empty cells were found for %0%, all of them appear to be full.'
    noprisoners: '&9%0% is empty and contains no prisoners.'
    notjailed: '&c%0% is not jailed.'
    nowmuted: '&9%0% is now muted.'
    nowunmuted: '&9%0% is now unmuted.'
    offlinejail: '&2%0% is offline and will be jailed when they next come online for %1% minutes.'
    onlinejail: '&2%0% was jailed for %1% minutes.'
    playerhasneverplayedbefore: '&cThe player %0% has never played on the server before.'
    prisonerstime: '&2%0% has %1% minutes remaining.'
    protectionmessage: '&c%0% minutes have been added to your time for %1%.'
    protectionmessagenopenalty: '&cProtection enabled for %0%, do not do it again.'
    provideaplayer: '&cPlease provide a player when %0% &cthem.'
    provideajail: '&cPlease provide a jail to %0% &cthem to.'
    resistedarrestjailer: '&c%0% has resisted arrest thanks to having more health than you can jail at.'
    resistedarrestplayer: '&cYou have resisted arrest due to having more health than %0% can jail at.'
    status: '&2You have been jailed with a reason of ''%0%'' by %1% and have %2% minutes remaining (%3%&2).'
    suggestedcell: '&cAn empty cell in the same jail, %0%, was found: %1%'
    telein: '&9Teleported %0% to %1%''s teleport in location.'
    teleout: '&9Teleported %0% to %1%''s teleport out location.'
    transferallcomplete: '&2Successfully transferred all the prisoners from %0% to %1%.'
    transfercancelledbyanotherplugin: '&cTransferring %0% was cancelled by another plugin and they did not leave you a message.'
    transfercompletecell: '&2Successfully transferred %0% to %1% in the cell %2%.'
    transfercompletenocell: '&2Successfully transferred %0% to %1%.'
    transferred: '&9You have been transferred to %0%.'
    unallowedtojailoffline: '&cJailing offline players is not allowed.'
    unjailed: '&2You have been released! Please respect the server rules.'
    unjailsuccess: '&2%0% has been released from jail.'
    willbeunjailed: '&2%0% will be released the next time they log on.'
    worldunloaded: '&4%0% is located in a world that is not loaded, jailing to it is disabled.'
    worldunloadedkick: '&4You are jailed in a jail that is located in a world which is currently unloaded, try again later.'
    youarenotjailed: '&2You are not jailed.'
  jailpay:
    cantpayforotherswhilejailed: '&cYou are jailed and as a result you can not pay for others.'
    cost: '&9You have to pay %0% %1% per minute which equates to %2% %1%.'
    costinfinite: '&9Since you are jailed forever, you have to pay %0% %1%.'
    nonegativeamounts: '&cYou can not pay negative amounts.'
    notenabled: '&cSorry, money won''t help this time.'
    notenoughmoney: '&cYou don''t have that much money!'
    notenoughmoneyprovided: '&cYou have not provided enough money to cover the sentence!'
    paidreleased: '&2You have just paid %0% and released yourself from jail!'
    paidreleasedelse: '&2You have just paid %0% and released %1% from jail!'
    paidloweredtime: '&2You have just paid %0% and lowered your sentence to %1% minutes!'
    paidloweredtimeelse: '&2You have just paid %0% and lowered %1%''s sentence to %2% minutes!'
  jailvote:
    broadcast:
      header: '&3------------- Jail ------------'
      line1: '&a%0% &bhas voted that &c%1% &bshould be jailed.'
      line2: '&6Type &a/jail vote %0% yes &6if you agree'
      line3: '&6or type &a/jail vote %0% no &6if you disagree.'
      line4: '&bThis vote will be open for %0%!'
      footer: '&3-----------------------------'
    novotegoingforthatplayer: '&cThere is currently no vote running to jail %0%.'
    nopermissiontostartvote: '&cYou don''t have permission to start a vote to jail %0%.'
    notenabled: '&cJail vote is disabled by the administrator.'
    voteunsuccessful: '&cYour vote to jail someone was unsuccessful, you already voted.'
    votenosuccessful: '&aYou successfully voted for %0% to &cnot&a be jailed!'
    voteyessuccessful: '&aYou successfully voted for %0% to be jailed!'
    votestied: '&cThe votes were tied, %0% was not jailed.'
    morenovotes: '&cThere were more votes for no, %0% was not jailed.'
    notenoughyes: '&cThe voting to jail %0% was not successful, %1% out of a minimum %2% yes votes were received.'
    playernolongeronline: '&cThe player %0% is no longer online, player not jailed.'
    alreadyvotedfor: '&cYou have already voted for %0%, you can''t vote again.'
    reason: Jailed by players via Jail Vote
  handcuffing:
    cantbehandcuffed: '&9%0% &ccan not be handcuffed.'
    currentlyjailed: '&9%0% &cis currently jailed, you can not handcuff a prisoner.'
    nothandcuffed: '&9%0% &cdoes not have any handcuffs to remove!'
    handcuffson: '&9%0% &ahas been handcuffed!'
    handcuffed: '&cYou have been handcuffed.'
    handcuffsreleased: '&9%0% &ahas been released from their handcuffs.'
    unhandcuffed: '&aYour handcuffs have been removed.'
    nomove: You cannot move while handcuffed.
    nochat: You cannot chat while handcuffed.
    nobreak: You cannot break blocks while handcuffed.
    noplace: You cannot place blocks while handcuffed.
    nocommand: You cannot use commands while handcuffed.
  creation:
    zone: '---------- Jail Zone Creation ----------'
    cell: '---------- Jail Cell Creation ----------'
    start: Select the jail cuboid with your brick wand. Right-click the first corner, including the floor and ceiling.
    failed: Creation failed. Please start again.
    second: First corner selected. Now select the opposite corner.
    arrival: Corners selected. Stand inside the jail and right-click with your wand to set the arrival point.
    release: Arrival point selected. Stand outside the jail and right-click to set the release point.
    inside: Stand inside the jail and right-click to set the arrival point.
    outside: The release point must be outside the jail. Move outside and try again.
    cellarrival: Stand at the cell arrival point, then click with your brick wand.
    signs: Arrival point selected. Select this cell’s signs, then right-click a block that is not a sign to continue.
    signused: That sign already belongs to another cell.
    signadded: Sign added. Select another sign, or right-click another block to continue.
    chestused: That chest already belongs to another cell.
    chestselected: Chest selected.
    doublechest: Select a double chest. A single chest cannot be used.
    nochest: No chest selected. Belongings will still be saved.
    busy: Finish or cancel your current creation first.
    stopcells: Cell creation cancelled.
    stopjail: Jail creation cancelled.
    nothing: You are not creating anything.
    chest: Select a double chest, or right-click another block to skip it. Belongings are saved even without a chest.
    created: Jail %0% created.
    nextcell: Cell created. Select the arrival point for the next cell, %0%, or type /jail stop to finish.
    cellexists: A cell named %0% already exists. Choose another name.
    jailexists: A jail named %0% already exists.
    conflict: This cell shares a chest or sign with another cell. Choose different blocks.
  wand:
    name: Jail Wand
    lore1: Create a jail or cell.
    lore2: Right-click to select.
  help:
    players: Player Commands
    admin: Admin Commands
    empty: No commands available with your permissions.
    credit: 'Originally By: %0%'
    title: Jail Commands
    page: Page %0%/%1% - %2%
    previous: ← Previous Page
    next: → Next Page
    entry0: Open your command help.
    entry1: View your sentence and reason.
    entry2: View or pay a jail bill.
    entry3: Start or join a jail vote.
    entry4: Toggle your permitted jail stick.
    entry5: Open admin command help.
    entry6: Jail a player; use -i for forever.
    entry7: Release a prisoner normally.
    entry8: Force release; offline items are not restored.
    entry9: Select a cuboid, then arrival/release points.
    entry10: Select cell arrival, signs, and chest.
    entry11: Cancel your creation wizard.
    entry12: List jails or show a jail's details.
    entry13: List a jail's cells.
    entry14: Check another player's sentence.
    entry15: Manage a sentence.
    entry16: Toggle a prisoner's chat mute.
    entry17: Transfer a prisoner.
    entry18: Transfer all prisoners between jails.
    entry19: Teleport inside a jail.
    entry20: Teleport to a jail's release point.
    entry21: Restrict a player's movement.
    entry22: Remove handcuffs.
    entry23: View recorded jailings.
    entry24: Maintain cell signs.
    entry25: Release a jail's prisoners; -f forces it.
    entry26: Delete one cell.
    entry27: Delete a jail's cells.
    entry28: Delete a jail after confirmation.
    entry29: Confirm your pending action.
    entry30: Reload configuration and managers.
    entry31: Show the plugin version.
    entry32: Toggle diagnostic logging.
  time:
    days: d
    hours: h
    minutes: m
    seconds: s
  syntax:
    words:
      help: help
      status: status
      pay: pay
      vote: vote
      stick: stick
      create: create
      createcell: createcell
      stop: stop
      list: list
      listcells: listcells
      check: check
      time: time
      mute: mute
      transfer: transfer
      transferall: transferall
      telein: telein
      teleout: teleout
      record: record
      signs: signs
      clear: clear
      deletecell: deletecell
      deletecells: deletecells
      delete: delete
      confirm: confirm
      reload: reload
      version: version
      players: players
      admin: admin
      add: add
      remove: remove
      set: set
      show: show
      clean: clean
      refresh: refresh
      update: update
      verify: verify
      'yes': 'yes'
      'no': 'no'
    arguments:
      player: player
      name: name
      jail: jail
      cell: cell
      time: time
      reason: reason
      amount: amount
      page: page
      current: current
      target: target
      display: display
      jailname: jail
      cellname: cell
      anycell: any-cell
      muted: muted
  scoreboard:
    title: Jail Info
    time: '&aTime:'
  sign:
    reason: with a reason
  jailstick:
    running: Running away
    fun: Having too much fun
Back to top ↑

Reference

Permission reference & staff roles

Grant only the commands needed for each role. Plugin configuration, player/console context, target immunity and the prisoner command whitelist are additional checks. A permission alone does not guarantee a command will work in every state.

RoleSuggested explicit permissions
Ordinary playerjail.command.jailhelp, jail.usercmd.jailstatus and jail.usercmd.jailpay are bundled default-true nodes. Keep voting/sticks limited to your policy.
Moderation staffjail.command.jail, jail.command.unjail, jail.command.jailcheck, jail.command.jailtime, jail.command.jailmute; add record/transfer only when needed.
Prison builderjail.command.jailcreate, jail.command.jailcreatecells, jail.command.jailstop, jail.command.jaillist, jail.command.jaillistcells, jail.command.jailsigns and jail.modifyjail.
Recovery administratorExplicitly controlled clear, clearforce, delete, deletecell, deletecells, unjailforce, reload and storage-file access; never give these for ordinary support.
All 45 bundled permission definitions & child grants
NodeDefaultDescription / explicit children
jail.*Not explicitly set (Bukkit default: op)See the corresponding command and caveat tables.
  • jail.command.*: true
  • jail.usercmd.*: true
  • jail.modifyjail: true
  • jail.usejailstick280: true
  • jail.canbestickjailed: true
  • jail.openchest: true
  • jail.cantbejailed: true
  • jail.vote.start: true
  • jail.see.broadcast: true
jail.command.*Not explicitly set (Bukkit default: op)access to all admin commands
  • jail.command.handcuff: true
  • jail.command.jail: true
  • jail.command.jailcheck: true
  • jail.command.jailclear: true
  • jail.command.jailclearforce: true
  • jail.command.jailcreate: true
  • jail.command.jailcreatecells: true
  • jail.command.jaildelete: true
  • jail.command.jaildeletecell: true
  • jail.command.jaildeletecells: true
  • jail.command.jailhelp: true
  • jail.command.jaillist: true
  • jail.command.jaillistcells: true
  • jail.command.jailmute: true
  • jail.command.jailrecord: true
  • jail.command.jailreload: true
  • jail.command.jailsigns: true
  • jail.command.jailstop: true
  • jail.command.jailtelein: true
  • jail.command.jailteleout: true
  • jail.command.jailtime: true
  • jail.command.jailtransfer: true
  • jail.command.jailtransferall: true
  • jail.command.jailversion: true
  • jail.command.toggledebug: true
  • jail.command.unjail: true
  • jail.command.unjailforce: true
  • jail.vote.start: true
jail.usercmd.*Not explicitly set (Bukkit default: op)access to all user commands
  • jail.usercmd.jailpay: true
  • jail.usercmd.jailstatus: true
  • jail.usercmd.jailstick: true
  • jail.usercmd.jailvote: true
jail.command.jailopSee the corresponding command and caveat tables.
jail.command.jailcreateopSee the corresponding command and caveat tables.
jail.command.jailcreatecellsopSee the corresponding command and caveat tables.
jail.command.jaildeleteopSee the corresponding command and caveat tables.
jail.command.jaildeletecellopSee the corresponding command and caveat tables.
jail.command.jaildeletecellsopSee the corresponding command and caveat tables.
jail.command.jailhelptrueSee the corresponding command and caveat tables.
jail.command.unjailopSee the corresponding command and caveat tables.
jail.command.jailtransferopSee the corresponding command and caveat tables.
jail.command.jailtransferallopSee the corresponding command and caveat tables.
jail.command.jailcheckopSee the corresponding command and caveat tables.
jail.command.jailteleinopSee the corresponding command and caveat tables.
jail.command.jailteleoutopSee the corresponding command and caveat tables.
jail.command.jaillistopSee the corresponding command and caveat tables.
jail.command.jaillistcellsopSee the corresponding command and caveat tables.
jail.command.unjailforceopSee the corresponding command and caveat tables.
jail.command.jailclearopSee the corresponding command and caveat tables.
jail.command.jailclearforceopSee the corresponding command and caveat tables.
jail.command.jailmuteopSee the corresponding command and caveat tables.
jail.command.jailsignsopSee the corresponding command and caveat tables.
jail.command.jailstopopSee the corresponding command and caveat tables.
jail.command.jailsetopSee the corresponding command and caveat tables.
jail.command.jailcreateweopSee the corresponding command and caveat tables.
jail.command.jailreloadopSee the corresponding command and caveat tables.
jail.command.jailrecordopSee the corresponding command and caveat tables.
jail.command.handcuffopSee the corresponding command and caveat tables.
jail.usercmd.jailvote.playeropSee the corresponding command and caveat tables.
jail.usercmd.jailvote.immuneopSee the corresponding command and caveat tables.
jail.usercmd.jailstatustrueSee the corresponding command and caveat tables.
jail.usercmd.jailpaytrueSee the corresponding command and caveat tables.
jail.usercmd.jailsticktrueSee the corresponding command and caveat tables.
jail.modifyjailopSee the corresponding command and caveat tables.
jail.usejailstick.stickopchange stick for another jailstick item
jail.canbestickjailedtrueSee the corresponding command and caveat tables.
jail.openchestopSee the corresponding command and caveat tables.
jail.cantbejailedopSee the corresponding command and caveat tables.
jail.command.toggledebugopSee the corresponding command and caveat tables.
jail.command.jailtimeopSee the corresponding command and caveat tables.
jail.command.jailversionopSee the corresponding command and caveat tables.
jail.usercmd.jailvoteopSee the corresponding command and caveat tables.
jail.vote.startopSee the corresponding command and caveat tables.
jail.see.broadcasttrueSee the corresponding command and caveat tables.
NodeActual behavior in this source
jail.cantbejailedChecked for normal online jailing, jail sticks and vote initiation; default OP.
jail.cantbehandcuffedChecked by /handcuff but not declared in plugin.yml; assign explicitly.
jail.usejailstick.<material>Actual material-specific stick check; e.g. stick or blaze_rod.
jail.usejailstick280Legacy umbrella child, not a replacement for jail.usejailstick.stick.
jail.canbestickjailedDeclared legacy node; not consulted in the current stick handler.
jail.openchestDeclared legacy node; not a bypass for the current assigned-property chest access checks.
jail.usercmd.jailvote.player / jail.usercmd.jailvote.immuneDeclared legacy nodes; current vote logic uses jail.usercmd.jailvote, jail.vote.start and jail.cantbejailed.
jail.command.jailset / jail.command.jailcreateweDeclared legacy nodes without a registered corresponding command implementation.
Back to top ↑

Reference

Placeholder contexts & console hooks

Tags are context-specific. A sign placeholder, indexed locale placeholder and console-command placeholder are not interchangeable. There is no bundled PlaceholderAPI expansion in the inspected source; do not invent %jail_*% placeholders for other plugins.

ContextSupported syntax
Cell sign templates%player%, %uuid%, %reason%, %jailer%, %timeinminutes%, %prettytime%, %afktime%.
Jail and release console commands%p% or %player% for name; %uuid% and %reason%. Do not assume the sign-only time/jailer tokens work here.
Language messages%0%, %1%, %2% and further indexed tokens as required by that specific bundled message. Preserve the exact token set.
Localized configured labels@locale for supported scoreboard/vote labels; @locale:sign.reason for the sign reason label; @locale:jailstick.running and @locale:jailstick.fun for configured stick reasons.
Example console-command hooks, without a leading slash
jailing:
  jail:
    commands:
      - 'say %player% has been sent to prison.'
  release:
    commands:
      - 'say %player% has completed their sentence.'

Hooks execute as the server console after the relevant jailing/release stage. Every extra command must exist on your server and is governed by that command’s own requirements. Avoid inserting free-form reasons into privileged command arguments; reasons can contain user-supplied words. Commands default to [] so nothing extra runs.

Back to top ↑

Reference

Scoreboard, colors & audit records

jailing.during.scoreboard.enabled defaults to true. title and time accept @locale for selected-language defaults or a custom literal label. This is a sidebar for remaining sentence minutes, not a customizable unlimited-line HUD.

Example custom scoreboard labels
jailing:
  during:
    scoreboard:
      enabled: true
      title: '&6Prison'
      time: '&eMinutes:'
  • Text formatting uses Bukkit & color/format codes such as &6, &c and &l. The inspected renderer does not provide a MiniMessage or arbitrary HEX-format promise.
  • jailing.jail.log.console records completed jail/release/transfer/time/mute/payment actions. Routine timer updates and blocked-click details are not normal audit spam.
  • jailing.jail.log.profile enables historical jailing entries used by /jail record. This history is separate from current prisoner state.
  • Server logs and prisoner data may contain player identifiers and reasons. Retain them privately and remove sensitive information from support excerpts.
  • If another plugin owns the player scoreboard, test the interaction or disable the jail sidebar; do not assume multiple sidebar plugins merge automatically.
Back to top ↑

Reference

Developer API & event integration

The bundled API keeps the original com.graywolf336.jail package names. Integrations should load after the enabled JailReloaded plugin, use the matching released JAR/source as their compile dependency, and avoid packaging a second copy of the plugin classes. No Maven Central coordinates are established by this uploaded source.

MethodPurpose
getJailManager()Access jails/cells/prisoner lookups.
getPrisonerManager()Use supported jailing/release/transfer operations rather than editing storage directly.
getJailStickManager()Access the jail-stick manager interface.
getHandCuffManager()Access temporary cuff state and operations.
getJailVoteManager()Access the vote manager; check availability.
getTimeFromString(String)Convert supported duration syntax to milliseconds.
getBuildNumber()Parse the legacy build suffix, or -1 when the version is not in that format; this is not reliable semantic-version comparison.
Read-only lookup from a Bukkit plugin
import com.graywolf336.jail.JailsAPI;

// Run after JailReloaded is enabled, on the server thread.
boolean jailed = JailsAPI.getJailManager()
    .isPlayerJailed(player.getUniqueId());

Events present in the uploaded source

JailPluginReloadedEventOfflinePrisonerJailedEventPrePrisonerJailedByJailStickEventPrePrisonerJailedEventPrePrisonerReleasedEventPrePrisonerTransferredEventPrisonerDeathEventPrisonerJailedEventPrisonerReleasedEventPrisonerTimeChangeEventPrisonerTransferredEvent
Back to top ↑

Maintenance & support

Troubleshooting & verification checklist

SymptomWhat to check
No jails / creation does not advanceCreate the jail first. Hold the named BRICK wand in the main hand, right-click deliberately, and follow the current step. /jail stop ends a stale setup.
Player cannot be jailedCheck jail.command.jail, jail.cantbejailed (including OP), existing sentence, loaded destination world, exact jail/cell names and available cells.
Prisoner cannot eat, use doors or place a whitelisted blockThe default * interaction lists are strict; review both block and held-item blacklists, game mode and block permissions.
Prisoner cannot use a permitted commandCheck commandWhitelist as well as permission; add English aliases/namespaced forms explicitly. Handcuffs have their own command restriction.
Cannot open or take items from cell chestVerify current assignment, openChest, movement mode, resource conflicts, an empty hand and free inventory slots. A containment-mode chest is intentionally preview-only.
Sentence or offline release appears stuckInitial offline jailings wait for join. Normal offline releases wait for restoration on join; inspect loaded worlds/storage and avoid forced clearing as a quick fix.
Money payments unavailableVault plus an economy provider are needed for item: air. Verify enabled, positive price, command access and actual runtime readiness after reload.
Jail stick does nothingCreate a jail, reload, toggle /jail stick, grant material-specific permission, check main hand/health threshold/target immunity and cancelled damage events.
Vote failsCheck permission to start, enabled manager, destination jail, target still online, enough yes votes and yes > no.
Signs or language not updatingKeep valid tokens, use the correct locale code, reload, and run signs verify/refresh. Check the console for rejected locale entries.
Storage or property restore failsStop destructive actions, preserve all data and read the console. Gather sanitized errors and a consistent backup; do not delete the prisoner to hide the problem.
  1. Create a jail and at least one test cell; confirm signs and optional double chest are unique.
  2. Jail a non-OP test user for a short sentence and inspect /jail status and /jail check.
  3. Test blocked commands, both hands, block/item interactions, boundary crossing and respawn.
  4. Test normal release with disposable inventory, armor, custom metadata and configured game-mode/position restoration.
  5. Test offline pending jailing/release and a clean stopped-server restart with a backup.
  6. If enabled, test item/money bail, stick thresholds and voting using the exact permissions intended for players and staff.
Back to top ↑

Maintenance & support

Updates, community support & credits

To update the plugin, back up the full JailReloaded folder, active database and relevant world/chest data; stop the server, replace the JAR with the compatible release, and start again. Check console startup, storage, jail/cell counts and a test sentence. Do not hot-swap with plugin unloaders or assume /jail reload loads new Java code.

Jail-Reloaded downloadsCommunity Project Support — projects without a dedicated forum

On the ImagineCraft Plugins Discord, use Community Project Support → 🛠️︱support for Jail-Reloaded. Read documentation/known issues, use the latest available version, search existing posts and include plugin version, server software/Minecraft version, expected versus actual behavior, reproduction steps and sanitized logs. Support and compatibility updates are provided as time allows.

Original Jail plugin and package architecture: graywolf336 and the original contributors. Maintained fork: Rismr1 / ImagineCraft Plugins. The source’s bundled configuration identifies the preserved GNU GPL v2 license; do not apply an unrelated proprietary plugin license to this fork. This guide documents the fork’s 1.0.0 behavior, not every feature described in historical third-party Jail guides.

Back to top ↑