Documentation • Free community project
Jail-Reloaded Wiki
Complete Jail-Reloaded 1.0.0 guide: jail and cell creation, commands and flags, protections, property storage, signs and tags, jail pay, sticks, votes, languages, permissions and full configuration.
One Free edition. Based on the uploaded 1.0.0 source and bundled defaults. Existing server configuration may differ; back up before changing it.
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.
| Requirement | Details |
|---|---|
| Server | Spigot, Paper or Purpur; the published 1.0.0 release lists Minecraft 1.19–26.3. Use a compatible build of every optional dependency. |
| Java | The release lists Java 17+. Your Minecraft server may require a newer Java runtime; follow its requirement. |
| Storage | SQLite by default; MySQL or flatfile are alternatives. This is not a cross-server prison synchronization system. |
| Vault and an economy provider | Optional, needed for money-based jail payments when jailpay.item is air. Item-based payments do not need Vault. |
| WorldEdit / Multiverse-Core | Listed as soft dependencies, not requirements for the documented brick-wand creation workflow. No implemented WorldEdit creation command was found in this source. |
| Edition | One Free edition; no Premium license is required. |
Getting started
Installation & first run
- 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.
- 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.
- Start the server. The Bukkit plugin identity is JailReloaded; its data folder is plugins/JailReloaded/. Check the console for successful storage initialization.
- 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.
- Choose storage and language, grant narrowly scoped staff permissions, then run /jail reload after editing valid YAML.
- Build and register a jail before attempting to jail anyone. Add cells if you want individual arrival points, signs or property chests.
- 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.
| Path | Purpose |
|---|---|
| config.yml | Behavior, storage, restrictions, displays, payments, sticks and voting. |
| locales/<code>.yml | Server-wide language messages and localized command grammar. |
| jail3.sqlite | Default SQLite database; back up its companion WAL/SHM files consistently or make a backup while the server is stopped. |
| data.yml / records.yml | Jail/prisoner data and historical records when storage.type is flatfile. |
| External MySQL tables | Used instead of local jail storage when storage.type is mysql; back up the external database too. |
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.
/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 AlexJails & 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.
/jail create rivenmoor- 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.
- Right-click the first corner block. Select the whole 3D volume, not just two points on the floor.
- Right-click the diagonally opposite corner, including the full jail height.
- 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.
- Stand at a safe release position OUTSIDE the cuboid and right-click again. An inside release point is rejected; move outside and retry.
- 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.
Jails & cells
Create cells, signs & property chests
/jail createcell rivenmoor cell_a- Use jail.command.jailcreatecells in game after the parent jail exists. The first optional cell name defaults to cell_n<count+1> if omitted.
- Stand at the cell’s arrival point inside the parent jail, then right-click with the supplied brick wand.
- 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.
- 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.
- 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.
- 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 / option | Behavior |
|---|---|
| jailing.jail.automaticCell: true | If 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_a | Choose that specific existing, empty cell. A missing or occupied cell is rejected. |
| -a | Request any empty cell explicitly; fails if no empty cell is available. This is a boolean flag, not a cell name. |
| No cell assignment | Possible when automatic cell selection is disabled or the jail has no cells; the common jail arrival point and serialized property storage are used. |
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.
jailing:
during:
cellsign:
- '&6%player%'
- '&f%prettytime%'
- '@locale:sign.reason'
- '&7%reason%'| Tag | Substitution |
|---|---|
| %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.reason | Localized sign label for the reason line, rather than a named prisoner variable. |
/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.
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.
| Flag | Long forms declared in the parser | Meaning |
|---|---|---|
| -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, --length | Override sentence duration. Examples: 30s, 15m, 2h, 1d. |
| -i | --forever, --eternity, --infinite | Indefinite sentence; overrides the parsed time. No true/false argument. |
| -j <jail> | --jail, --prison | Choose an existing jail with its world loaded. |
| -c <cell> | --cell | Choose an existing empty cell in that jail. |
| -a | --anycell | Choose any empty cell. No value follows this flag. |
| -m | --muted, --canttalk | Start muted. automaticMute: true also mutes the prisoner even if -m is omitted. |
| -r <reason...> | --reason | Sentence reason; put this last, followed by the reason’s words. |
| -f | --force | Allow a player who has never joined before for this jailing. Does not bypass staff immunity, unavailable worlds, or the offline-jailing switch. |
/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 joinAn 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.
Commands & administration
Durations, offline time & release
| Input | Meaning |
|---|---|
| 30s / 30seconds | Thirty seconds. |
| 5m / 5minutes / 5min | Five minutes. |
| 2h / 2hours | Two hours. |
| 1d / 1day | One day. |
| 30 | Thirty minutes, not seconds. |
| 0 | Exactly 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.
/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.
Commands & administration
Transfers, inspections & moderation
/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.
Commands & administration
Clearing prisoners & deleting jails
| Command | Effect / safeguards |
|---|---|
| /jail clear rivenmoor | Request normal release of that jail’s prisoners. |
| /jail clear | Targets all jails. Avoid omitting the name unless that is intentional. |
| /jail clear -f rivenmoor | Request forced clearing; additionally requires jail.command.jailclearforce. clearforce is an accepted subcommand form too. |
| /jail deletecell rivenmoor cell_a | Delete one cell only after it is empty. |
| /jail deletecells rivenmoor | Delete eligible empty cells; occupied cells are not silently discarded. |
| /jail delete rivenmoor | Delete an empty jail; release or transfer prisoners first. |
| /jail confirm | Confirm 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.
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 usage | Permission / context | Purpose & aliases |
|---|---|---|
/jail [name] (-t time) (-j JailName) (-c CellName) (-a AnyCell) (-m Muted) (-r A reason for jailing) | jail.command.jailConsole 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.jailcheckConsole or player, subject to target/context rules | Inspect a prisoner’s reason, jailer and remaining time. Accepted English tokens: |
/jail clear (-f) (jail) | jail.command.jailclearConsole 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: |
/jail confirm | Pending-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: |
/jail create [name] | jail.command.jailcreateIn-game player required | Start the interactive brick-wand jail-region setup. Accepted English tokens: |
/jail createcell [jail] (cellname) | jail.command.jailcreatecellsIn-game player required | Create cells inside an existing jail. Cell name is optional; creation repeats until /jail stop. Accepted English tokens: |
/jail delete [jail] | jail.command.jaildeleteConsole or player, subject to target/context rules | Request deletion of an empty jail; release or transfer prisoners first. Accepted English tokens: |
/jail deletecell [jail] [cell] | jail.command.jaildeletecellConsole or player, subject to target/context rules | Request deletion of one empty cell; confirm before deletion. Accepted English tokens: |
/jail deletecells [jail] | jail.command.jaildeletecellsConsole or player, subject to target/context rules | Request deletion of empty cells in a jail; occupied cells cannot simply be deleted. Accepted English tokens: |
/jail help [players|admin] [page] | jail.command.jailhelpConsole 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: |
/jail list (jail) | jail.command.jaillistConsole or player, subject to target/context rules | List jails, prisoner counts and unloaded-world status. Accepted English tokens: |
/jail listcells [jail] | jail.command.jaillistcellsConsole or player, subject to target/context rules | List cells in a named jail. Accepted English tokens: |
/jail mute [name] | jail.command.jailmuteConsole or player, subject to target/context rules | Toggle one prisoner’s chat mute. Accepted English tokens: |
/jail pay (amount) (name) | jail.usercmd.jailpayIn-game player required | Show your bill, pay toward your own sentence, or pay for another prisoner when you are not jailed. Accepted English tokens: |
/jail record [name] (display) | jail.command.jailrecordConsole or player, subject to target/context rules | Show the number of historical entries; append display to list them. Accepted English tokens: |
/jail reload | jail.command.jailreloadConsole or player, subject to target/context rules | Validate and reload settings, locales, timers, displays, sticks, payments and voting. Accepted English tokens: |
/jail signs [clean|refresh|update|verify] [jail] (cell)... | jail.command.jailsignsConsole or player, subject to target/context rules | Verify, clean or refresh registered cell signs, optionally only named cells. Accepted English tokens: |
/jail status | jail.usercmd.jailstatusIn-game player required | Show your own reason, jailer and remaining sentence. Accepted English tokens: |
/jail stick | jail.usercmd.jailstickIn-game player required | Toggle your own jail-stick usage; material-specific permission is also required. Accepted English tokens: |
/jail stop | jail.command.jailstopIn-game player required | Stop your current jail/cell creation session; does not delete completed cells. Accepted English tokens: |
/jail telein [jail] (name) | jail.command.jailteleinConsole 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: |
/jail teleout [jail] (name) | jail.command.jailteleoutConsole 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: |
/jail time [add|remove|set|show] [name] <time> | jail.command.jailtimeConsole or player, subject to target/context rules | Add, remove or set sentence time; show does not take a duration. Accepted English tokens: |
/jail transfer [-p player] (-j jail) (-c cell) | jail.command.jailtransferConsole 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: |
/jail transferall [current] [target] | jail.command.jailtransferallConsole 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: |
/jail version | jail.command.jailversionConsole or player, subject to target/context rules | Show the installed plugin version. Accepted English tokens: |
/jail vote [player] (yes|no) | jail.usercmd.jailvoteIn-game player required | Start a vote or vote yes/no in an existing vote. Accepted English tokens: |
Separate top-level commands
| Source usage | Permission / context | Purpose & aliases |
|---|---|---|
/handcuff [player] | jail.command.handcuffConsole or player, subject to target/context rules | Toggle handcuffs on an online, non-jailed player unless immune. |
/togglejaildebug | jail.command.toggledebugConsole or player, subject to target/context rules | Staff diagnostics: toggle additional console diagnostics; keep disabled during normal operation. |
/unhandcuff [player] | jail.command.handcuffConsole or player, subject to target/context rules | Remove an online player’s handcuffs. |
/unjail [player] | jail.command.unjailConsole or player, subject to target/context rules | Normal release; offline prisoners finish release when they next join. |
/unjailforce [player] | jail.command.unjailforceConsole or player, subject to target/context rules | Recovery-only forced release. Offline records can be removed without restoring player property. |
Prisoner behavior
Block, command & interaction rules
| Configuration under jailing.during | Bundled behavior |
|---|---|
| blockBreakProtection / blockBreakWhiteList | Breaking is blocked except listed block materials. Defaults list wheat, carrot and potato; use exact block material names supported by your server when customizing. |
| blockPlaceProtection / blockPlaceWhiteList | Placement is protected. A placement whitelist alone does not bypass a blocked held-item interaction. Adventure mode can independently prevent building. |
| commandProtection / commandWhitelist | Commands not whitelisted are blocked. Prefix matches respect a space boundary; /ping does not whitelist /pinganything. Include the leading /. |
| preventInteractionBlocks | Right-click block blacklist; the bundled list contains * and therefore blocks every block material, not only the old doors listed before it. |
| preventInteractionItems | Right-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. |
| cropTramplingProtection | Prevents jailed players trampling farmland inside a jail. |
| jails.endermenProtection / jails.explosionProtection | Separate world-region protections against enderman block changes and explosion block damage. |
| jail.modifyjail permission | Allows 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.
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.
Prisoner behavior
Containment versus escape mode
| Setting | Result |
|---|---|
| jailing.during.moveProtection: true | Leaving 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: false | The 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.
jailing:
during:
moveProtection: false
movePenalty: 0
openChest: truePrisoner 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.
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,0The 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.
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.
jailing:
during:
maxAFKTime: 0
foodControl:
enabled: false
min: 10
max: 20Optional 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.
/jail pay
/jail pay 15
/jail pay 30 Alex| Rule | Behavior |
|---|---|
| Timed bill | ceil(remaining milliseconds / 60000) × pricePerMinute. At 1.5 per minute, 59 seconds costs 1.5 and 10m01s costs 16.5. |
| Partial payment | floor(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 payment | If 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 sentence | Uses priceInfinite as one flat bill; a partial amount does not shorten an indefinite sentence. |
| Item payments | Use 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 price | pricePerMinute: 0 disables timed payments; priceInfinite: 0 disables indefinite payments. It does not mean a free release. |
jailpay:
enabled: true
item: diamond
pricePerMinute: 1
priceInfinite: 64Optional 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.
material,duration,jail,reason,maximumVictimHealth
jailstick:
enabled: true
sticks:
- 'stick,30m,rivenmoor,Prison arrest,-1'
- 'blaze_rod,15m,rivenmoor,@locale:jailstick.fun,6'| Field | Meaning |
|---|---|
| material | One valid item material; each material can have only one stick definition. |
| duration | Sentence duration such as 30m. |
| jail | Existing jail name. Empty uses the manager’s fallback registered jail; explicitly name it for reliable behavior. |
| reason | Literal text or supported @locale: key. Do not put commas inside the reason; the parser splits on commas. |
| maximumVictimHealth | Hit 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.
Optional systems
Temporary handcuffs
/handcuff Alex
/unhandcuff AlexBoth 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.
Optional systems
Player votes to jail
/jail vote Alex
/jail vote Alex yes
/jail vote Alex noVoting 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.
jailvote:
enabled: true
voteTimer: 60s
minimumYes: 5
reason: '@locale'
time: 5mSetup & configuration
Editing YAML & reloading safely
- Back up plugins/JailReloaded and the active database before edits. Save configuration as UTF-8 with spaces, never tabs.
- Merge examples into the existing tree. Do not add a second top-level jailing key or replace an entire file with a small snippet.
- Use actual YAML booleans and numbers; quote strings with punctuation, color codes and * wildcards. Preserve misspelled historical keys exactly.
- Run /jail reload and check both the command response and console. It saves active data and validates the candidate configuration before replacing working settings.
- 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.
- 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.
Setup & configuration
Storage engines, migration & backups
| Value | Data location / requirement |
|---|---|
| sqlite | Default; plugins/JailReloaded/jail3.sqlite. storage.mysql.prefix also determines SQLite table names. |
| flatfile | plugins/JailReloaded/data.yml for active jail data and records.yml for history. Use flatfile, not YAML, as the setting value. |
| mysql | External database; configure host, port, username, password, database and prefix. Create the database first and give the plugin account only the access it needs. |
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.
- Test any storage change on a cloned server and backed-up database first.
- Take a consistent backup of the old data, configuration, locale files and physical property chest/world data.
- 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.
- Review migration feedback and confirm jail count, cells, prisoners, saved property, pending offline operations and history access before allowing normal use.
- 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.
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
# ============================================================================
# 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 path | Bundled default | Source explanation |
|---|---|---|
system.version | 3 | Internal configuration schema. Leave unchanged. |
system.debug | false | true adds diagnostic console messages; normally leave false. |
system.language | en | 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. |
system.useBukkitTimer | true | true 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 path | Bundled default | Source explanation |
|---|---|---|
storage.type | sqlite | flatfile = data.yml/records.yml; sqlite = jail3.sqlite; mysql = external database. |
storage.mysql.host | localhost | Database host, e.g. localhost or a private database hostname. |
storage.mysql.port | 3306 | Database TCP port; normally 3306. |
storage.mysql.username | root | Database account with permission to create/read/update/delete plugin tables. |
storage.mysql.password | password | Account password. Keep quotes if it contains YAML punctuation. |
storage.mysql.database | jailDatabase | Existing database name; create this database before selecting mysql storage. |
storage.mysql.prefix | j3_ | Table prefix: letters/digits/underscores. Avoid changing after setup. |
jailing.during — every default and its explanation
| Configuration path | Bundled default | Source explanation |
|---|---|---|
jailing.during.blockBreakPenalty | 0 | Extra sentence for prohibited breaking. 0 blocks without adding time. |
jailing.during.blockBreakProtection | true | true 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.blockPlacePenalty | 0 | Extra sentence for prohibited placement; 0, 30s, 5m, 1h, etc. |
jailing.during.blockPlaceProtection | true | true 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.commandPenalty | 0 | Extra sentence for a blocked command. 0 leaves the restriction active. |
jailing.during.commandProtection | true | true 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.countDownTimeWhileOffline | false | true counts established sentences offline; false pauses them. An offline jailing stays pending until the first join completes jailing. |
jailing.during.cropTramplingPenalty | 0 | Extra sentence for trampling farmland; 0 adds no time. |
jailing.during.cropTramplingProtection | true | true prevents prisoners trampling farmland inside a defined jail. |
jailing.during.foodControl.enabled | true | true applies the min/max bounds below. |
jailing.during.foodControl.max | 20 | Highest allowed food level (0-20); keep at least min. |
jailing.during.foodControl.min | 10 | Lowest allowed food level (0-20); keep at most max. |
jailing.during.ignoreSleeping | true | true excludes prisoners from the number of sleepers required to skip night. |
jailing.during.maxAFKTime | 10m | Inactivity duration before a prisoner is kicked. 0 disables AFK kicking. |
jailing.during.movePenalty | 0 | Extra sentence for attempting to leave the cuboid; 0 adds no time. |
jailing.during.moveProtection | true | true returns escape attempts to the jail/cell arrival point. false allows escape, reclaiming assigned chest contents, and removing jail gear. |
jailing.during.openChest | 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. |
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.preventInteractionBlocksPenalty | 0 | Extra 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.preventInteractionItemsPenalty | 0 | Extra sentence for blocked item use. 0 adds no time. |
jailing.during.recieveMessages | true | true lets prisoners receive normal chat. Preserve this historical spelling. |
jailing.during.scoreboard.enabled | true | true displays the jail sidebar while imprisoned. |
jailing.during.scoreboard.title | @locale | Sidebar heading; @locale uses the selected language. Custom text supports & colors. |
jailing.during.scoreboard.time | @locale | Remaining-minutes label; @locale uses the selected language. Custom text supports & colors. |
jailing.jail — every default and its explanation
| Configuration path | Bundled default | Source explanation |
|---|---|---|
jailing.jail.allowJailingNeverPlayedBeforePlayers | false | true allows jailing names that have not joined before; -f can force one jailing. |
jailing.jail.allowJaillingOfflinePlayers | true | true allows offline jailings, completed at the next join. Keep this key spelling. |
jailing.jail.automaticCell | true | true picks an empty cell automatically when no cell was specified. |
jailing.jail.automaticMute | true | true mutes chat on jailing; /jail mute toggles it afterward. |
jailing.jail.broadcastJailing | false | true broadcasts jailings to players with jail.see.broadcast. |
jailing.jail.clothing.enabled | true | 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. |
jailing.jail.clothing.helmet | leather_helmet~175,105,33 | Material, optionally ~red,green,blue (each 0-255) for leather armor only. |
jailing.jail.clothing.chest | leather_chestplate~175,105,33 | Chestplate material; same color format as helmet. |
jailing.jail.clothing.legs | leather_leggings~175,105,33 | Leggings material; same color format as helmet. |
jailing.jail.clothing.boots | leather_boots~175,105,33 | Boots material; same color format as helmet. |
jailing.jail.commands | [] | Console commands after jailing, WITHOUT /. [] runs nothing. Placeholders: %p%, %player%, %uuid%, %reason%. |
jailing.jail.default.jail | nearest | nearest selects the nearest jail; alternatively specify a jail name. |
jailing.jail.default.time | 30m | Default sentence duration. -1 means forever; otherwise use a positive duration. |
jailing.jail.gameMode | adventure | Prisoner 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.store | true | true stores inventory in the assigned double chest or serialized prisoner data. false disables storage/restoration. Test with spare items before changing. |
jailing.jail.log.console | true | true 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.profile | true | true records jailing history for /jail record. |
jailing.release — every default and its explanation
| Configuration path | Bundled default | Source explanation |
|---|---|---|
jailing.release.backToPreviousPosition | false | true 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.restorePreviousGameMode | false | true saves/restores the original game mode; false keeps the current mode. |
jailing.release.teleport | true | true uses the release point unless returning to a saved position succeeded. |
jails — every default and its explanation
| Configuration path | Bundled default | Source explanation |
|---|---|---|
jails.endermenProtection | true | true prevents endermen moving blocks inside defined jail regions. |
jails.explosionProtection | true | true prevents explosions damaging jail-region blocks. |
jailpay — every default and its explanation
| Configuration path | Bundled default | Source explanation |
|---|---|---|
jailpay.enabled | true | true enables /jail pay when a payment method is available. |
jailpay.item | air | air = Vault currency; another material (e.g. diamond) = physical item payments. |
jailpay.pricePerMinute | 1.5 | 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. |
jailpay.priceInfinite | 10000 | Flat cost for an infinite sentence. 0 disables payment for infinite sentences. |
jailstick — every default and its explanation
| Configuration path | Bundled default | Source explanation |
|---|---|---|
jailstick.enabled | true | true 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 path | Bundled default | Source explanation |
|---|---|---|
jailvote.enabled | true | true enables voting; command and vote-start permissions still apply. |
jailvote.voteTimer | 60s | Positive duration before the votes are counted, e.g. 60s. |
jailvote.minimumYes | 5 | Minimum yes votes. Successful votes also need more yes than no votes. |
jailvote.reason | @locale | Reason recorded for a successful vote. @locale uses the selected language. |
jailvote.time | 5m | Sentence imposed after a successful vote. |
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.
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.
/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 token | Localized token |
|---|---|
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 |
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.
/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 token | Localized token |
|---|---|
help | ohje |
status | tila |
pay | maksa |
vote | äänestä |
stick | keppi |
create | luo |
createcell | luoselli |
stop | lopeta |
list | lista |
listcells | sellit |
check | tarkista |
time | aika |
mute | mykistä |
transfer | siirrä |
transferall | siirräkaikki |
telein | sisään |
teleout | ulos |
record | historia |
signs | kyltit |
clear | tyhjennä |
deletecell | poistaselli |
deletecells | poistasellit |
delete | poista |
confirm | vahvista |
reload | lataa |
version | versio |
players | pelaajat |
admin | ylläpito |
add | lisää |
remove | vähennä |
set | aseta |
show | näytä |
clean | siivoa |
refresh | päivitä |
update | kirjoitauudelleen |
verify | tarkasta |
yes | kyllä |
no | ei |
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.
/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 token | Localized token |
|---|---|
help | hilfe |
status | status |
pay | zahlen |
vote | abstimmen |
stick | stab |
create | erstellen |
createcell | zelle-erstellen |
stop | stoppen |
list | liste |
listcells | zellen |
check | prüfen |
time | zeit |
mute | stumm |
transfer | verlegen |
transferall | alle-verlegen |
telein | hinein |
teleout | hinaus |
record | akte |
signs | schilder |
clear | leeren |
deletecell | zelle-löschen |
deletecells | zellen-löschen |
delete | löschen |
confirm | bestätigen |
reload | neuladen |
version | version |
players | spieler |
admin | admin |
add | hinzufügen |
remove | entfernen |
set | setzen |
show | anzeigen |
clean | bereinigen |
refresh | auffrischen |
update | aktualisieren |
verify | überprüfen |
yes | ja |
no | nein |
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.
/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 token | Localized token |
|---|---|
help | ayuda |
status | estado |
pay | pagar |
vote | votar |
stick | vara |
create | crear |
createcell | crearcelda |
stop | parar |
list | lista |
listcells | celdas |
check | consultar |
time | tiempo |
mute | silenciar |
transfer | trasladar |
transferall | trasladartodos |
telein | entrar |
teleout | salir |
record | historial |
signs | carteles |
clear | vaciar |
deletecell | borrarcelda |
deletecells | borrarceldas |
delete | borrar |
confirm | confirmar |
reload | recargar |
version | versión |
players | jugadores |
admin | admin |
add | añadir |
remove | quitar |
set | establecer |
show | mostrar |
clean | limpiar |
refresh | refrescar |
update | actualizar |
verify | verificar |
yes | sí |
no | no |
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.
/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 token | Localized token |
|---|---|
help | aide |
status | statut |
pay | payer |
vote | voter |
stick | bâton |
create | créer |
createcell | créercellule |
stop | arrêter |
list | liste |
listcells | cellules |
check | vérifier |
time | durée |
mute | muet |
transfer | transférer |
transferall | transférertous |
telein | entrer |
teleout | sortir |
record | casier |
signs | panneaux |
clear | vider |
deletecell | supprimercellule |
deletecells | supprimercellules |
delete | supprimer |
confirm | confirmer |
reload | recharger |
version | version |
players | joueurs |
admin | admin |
add | ajouter |
remove | retirer |
set | définir |
show | afficher |
clean | nettoyer |
refresh | rafraîchir |
update | actualiser |
verify | contrôler |
yes | oui |
no | non |
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.
/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 token | Localized token |
|---|---|
help | aiuto |
status | stato |
pay | paga |
vote | vota |
stick | bastone |
create | crea |
createcell | creacella |
stop | ferma |
list | lista |
listcells | celle |
check | controlla |
time | tempo |
mute | silenzia |
transfer | trasferisci |
transferall | trasferiscitutti |
telein | entra |
teleout | esci |
record | precedenti |
signs | cartelli |
clear | svuota |
deletecell | eliminacella |
deletecells | eliminacelle |
delete | elimina |
confirm | conferma |
reload | ricarica |
version | versione |
players | giocatori |
admin | admin |
add | aggiungi |
remove | rimuovi |
set | imposta |
show | mostra |
clean | pulisci |
refresh | aggiorna |
update | riscrivi |
verify | verifica |
yes | sì |
no | no |
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.
/jail ヘルプ プレイヤー 1
/jail 状態
/jail 作成 rivenmoor
/jail 独房作成 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 表示 Alex
/unjail Alex| English token | Localized 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 | 反対 |
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.
/jail 도움말 플레이어 1
/jail 상태
/jail 생성 rivenmoor
/jail 감방생성 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 형기 표시 Alex
/unjail Alex| English token | Localized 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 | 반대 |
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.
/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 token | Localized token |
|---|---|
help | hulp |
status | status |
pay | betaal |
vote | stem |
stick | stok |
create | maak |
createcell | maakcel |
stop | stop |
list | lijst |
listcells | cellen |
check | controleer |
time | tijd |
mute | demp |
transfer | verplaats |
transferall | verplaatsallen |
telein | binnen |
teleout | buiten |
record | dossier |
signs | borden |
clear | leeg |
deletecell | verwijdercel |
deletecells | verwijdercellen |
delete | verwijder |
confirm | bevestig |
reload | herlaad |
version | versie |
players | spelers |
admin | beheer |
add | voegtoe |
remove | verminder |
set | stel-in |
show | toon |
clean | schoon |
refresh | ververs |
update | werkbij |
verify | controleer |
yes | ja |
no | nee |
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.
/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 token | Localized token |
|---|---|
help | pomoc |
status | status |
pay | zapłać |
vote | głosuj |
stick | pałka |
create | utwórz |
createcell | utwórzcelę |
stop | stop |
list | lista |
listcells | cele |
check | sprawdź |
time | czas |
mute | wycisz |
transfer | przenieś |
transferall | przenieśwszystkich |
telein | wejdź |
teleout | wyjdź |
record | historia |
signs | tabliczki |
clear | opróżnij |
deletecell | usuńcelę |
deletecells | usuńcele |
delete | usuń |
confirm | potwierdź |
reload | przeładuj |
version | wersja |
players | gracze |
admin | admin |
add | dodaj |
remove | odejmij |
set | ustaw |
show | pokaż |
clean | wyczyść |
refresh | odśwież |
update | aktualizuj |
verify | zweryfikuj |
yes | tak |
no | nie |
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.
/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 token | Localized token |
|---|---|
help | ajuda |
status | estado |
pay | pagar |
vote | votar |
stick | bastão |
create | criar |
createcell | criarCela |
stop | parar |
list | lista |
listcells | celas |
check | consultar |
time | tempo |
mute | silenciar |
transfer | transferir |
transferall | transferirtodos |
telein | entrar |
teleout | sair |
record | histórico |
signs | placas |
clear | esvaziar |
deletecell | apagarCela |
deletecells | apagarCelas |
delete | apagar |
confirm | confirmar |
reload | recarregar |
version | versão |
players | jogadores |
admin | admin |
add | adicionar |
remove | remover |
set | definir |
show | mostrar |
clean | limpar |
refresh | renovar |
update | atualizar |
verify | verificar |
yes | sim |
no | não |
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.
/jail помощь игроки 1
/jail статус
/jail создать rivenmoor
/jail создатькамеру rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail срок показать Alex
/unjail Alex| English token | Localized 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 | нет |
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.
/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 token | Localized token |
|---|---|
help | hjälp |
status | status |
pay | betala |
vote | rösta |
stick | stav |
create | skapa |
createcell | skapacell |
stop | avbryt |
list | lista |
listcells | celler |
check | kontrollera |
time | tid |
mute | tysta |
transfer | flytta |
transferall | flyttaalla |
telein | in |
teleout | ut |
record | historik |
signs | skyltar |
clear | töm |
deletecell | tabortcell |
deletecells | tabortceller |
delete | tabort |
confirm | bekräfta |
reload | laddaom |
version | version |
players | spelare |
admin | admin |
add | läggtill |
remove | minska |
set | ange |
show | visa |
clean | rensa |
refresh | uppdatera |
update | skrivom |
verify | granska |
yes | ja |
no | nej |
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.
/jail довідка гравці 1
/jail статус
/jail створити rivenmoor
/jail створитикамеру rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail строк показати Alex
/unjail Alex| English token | Localized 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 | ні |
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.
/jail 帮助 玩家 1
/jail 状态
/jail 创建 rivenmoor
/jail 创建牢房 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 显示 Alex
/unjail Alex| English token | Localized 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 | 反对 |
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.
/jail 說明 玩家 1
/jail 狀態
/jail 建立 rivenmoor
/jail 建立牢房 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 顯示 Alex
/unjail Alex| English token | Localized 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 | 反對 |
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.
/jail 說明 玩家 1
/jail 狀態
/jail 建立 rivenmoor
/jail 建立牢房 rivenmoor cell_a
/jail Alex -j rivenmoor -t 5m -r Staff test
/jail 刑期 顯示 Alex
/unjail Alex| English token | Localized 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 | 反對 |
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
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.
| Role | Suggested explicit permissions |
|---|---|
| Ordinary player | jail.command.jailhelp, jail.usercmd.jailstatus and jail.usercmd.jailpay are bundled default-true nodes. Keep voting/sticks limited to your policy. |
| Moderation staff | jail.command.jail, jail.command.unjail, jail.command.jailcheck, jail.command.jailtime, jail.command.jailmute; add record/transfer only when needed. |
| Prison builder | jail.command.jailcreate, jail.command.jailcreatecells, jail.command.jailstop, jail.command.jaillist, jail.command.jaillistcells, jail.command.jailsigns and jail.modifyjail. |
| Recovery administrator | Explicitly 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
| Node | Default | Description / explicit children |
|---|---|---|
jail.* | Not explicitly set (Bukkit default: op) | See the corresponding command and caveat tables.
|
jail.command.* | Not explicitly set (Bukkit default: op) | access to all admin commands
|
jail.usercmd.* | Not explicitly set (Bukkit default: op) | access to all user commands
|
jail.command.jail | op | See the corresponding command and caveat tables. |
jail.command.jailcreate | op | See the corresponding command and caveat tables. |
jail.command.jailcreatecells | op | See the corresponding command and caveat tables. |
jail.command.jaildelete | op | See the corresponding command and caveat tables. |
jail.command.jaildeletecell | op | See the corresponding command and caveat tables. |
jail.command.jaildeletecells | op | See the corresponding command and caveat tables. |
jail.command.jailhelp | true | See the corresponding command and caveat tables. |
jail.command.unjail | op | See the corresponding command and caveat tables. |
jail.command.jailtransfer | op | See the corresponding command and caveat tables. |
jail.command.jailtransferall | op | See the corresponding command and caveat tables. |
jail.command.jailcheck | op | See the corresponding command and caveat tables. |
jail.command.jailtelein | op | See the corresponding command and caveat tables. |
jail.command.jailteleout | op | See the corresponding command and caveat tables. |
jail.command.jaillist | op | See the corresponding command and caveat tables. |
jail.command.jaillistcells | op | See the corresponding command and caveat tables. |
jail.command.unjailforce | op | See the corresponding command and caveat tables. |
jail.command.jailclear | op | See the corresponding command and caveat tables. |
jail.command.jailclearforce | op | See the corresponding command and caveat tables. |
jail.command.jailmute | op | See the corresponding command and caveat tables. |
jail.command.jailsigns | op | See the corresponding command and caveat tables. |
jail.command.jailstop | op | See the corresponding command and caveat tables. |
jail.command.jailset | op | See the corresponding command and caveat tables. |
jail.command.jailcreatewe | op | See the corresponding command and caveat tables. |
jail.command.jailreload | op | See the corresponding command and caveat tables. |
jail.command.jailrecord | op | See the corresponding command and caveat tables. |
jail.command.handcuff | op | See the corresponding command and caveat tables. |
jail.usercmd.jailvote.player | op | See the corresponding command and caveat tables. |
jail.usercmd.jailvote.immune | op | See the corresponding command and caveat tables. |
jail.usercmd.jailstatus | true | See the corresponding command and caveat tables. |
jail.usercmd.jailpay | true | See the corresponding command and caveat tables. |
jail.usercmd.jailstick | true | See the corresponding command and caveat tables. |
jail.modifyjail | op | See the corresponding command and caveat tables. |
jail.usejailstick.stick | op | change stick for another jailstick item |
jail.canbestickjailed | true | See the corresponding command and caveat tables. |
jail.openchest | op | See the corresponding command and caveat tables. |
jail.cantbejailed | op | See the corresponding command and caveat tables. |
jail.command.toggledebug | op | See the corresponding command and caveat tables. |
jail.command.jailtime | op | See the corresponding command and caveat tables. |
jail.command.jailversion | op | See the corresponding command and caveat tables. |
jail.usercmd.jailvote | op | See the corresponding command and caveat tables. |
jail.vote.start | op | See the corresponding command and caveat tables. |
jail.see.broadcast | true | See the corresponding command and caveat tables. |
| Node | Actual behavior in this source |
|---|---|
| jail.cantbejailed | Checked for normal online jailing, jail sticks and vote initiation; default OP. |
| jail.cantbehandcuffed | Checked 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.usejailstick280 | Legacy umbrella child, not a replacement for jail.usejailstick.stick. |
| jail.canbestickjailed | Declared legacy node; not consulted in the current stick handler. |
| jail.openchest | Declared legacy node; not a bypass for the current assigned-property chest access checks. |
| jail.usercmd.jailvote.player / jail.usercmd.jailvote.immune | Declared legacy nodes; current vote logic uses jail.usercmd.jailvote, jail.vote.start and jail.cantbejailed. |
| jail.command.jailset / jail.command.jailcreatewe | Declared legacy nodes without a registered corresponding command implementation. |
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.
| Context | Supported 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. |
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.
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.
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.
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.
| Method | Purpose |
|---|---|
| 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. |
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
JailPluginReloadedEventOfflinePrisonerJailedEventPrePrisonerJailedByJailStickEventPrePrisonerJailedEventPrePrisonerReleasedEventPrePrisonerTransferredEventPrisonerDeathEventPrisonerJailedEventPrisonerReleasedEventPrisonerTimeChangeEventPrisonerTransferredEventMaintenance & support
Troubleshooting & verification checklist
| Symptom | What to check |
|---|---|
| No jails / creation does not advance | Create 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 jailed | Check 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 block | The default * interaction lists are strict; review both block and held-item blacklists, game mode and block permissions. |
| Prisoner cannot use a permitted command | Check commandWhitelist as well as permission; add English aliases/namespaced forms explicitly. Handcuffs have their own command restriction. |
| Cannot open or take items from cell chest | Verify 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 stuck | Initial 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 unavailable | Vault plus an economy provider are needed for item: air. Verify enabled, positive price, command access and actual runtime readiness after reload. |
| Jail stick does nothing | Create a jail, reload, toggle /jail stick, grant material-specific permission, check main hand/health threshold/target immunity and cancelled damage events. |
| Vote fails | Check permission to start, enabled manager, destination jail, target still online, enough yes votes and yes > no. |
| Signs or language not updating | Keep valid tokens, use the correct locale code, reload, and run signs verify/refresh. Check the console for rejected locale entries. |
| Storage or property restore fails | Stop 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. |
- Create a jail and at least one test cell; confirm signs and optional double chest are unique.
- Jail a non-OP test user for a short sentence and inspect /jail status and /jail check.
- Test blocked commands, both hands, block/item interactions, boundary crossing and respawn.
- Test normal release with disposable inventory, armor, custom metadata and configured game-mode/position restoration.
- Test offline pending jailing/release and a clean stopped-server restart with a backup.
- If enabled, test item/money bail, stick thresholds and voting using the exact permissions intended for players and staff.
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 forumOn 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.