BasicPrison

A simple Prison Plugin. Admins can put players into a Prison. In the Prison, the Player cannot brake/place/interact with blocks and cannot use commands. You can have multiple cells with one player per cell.

22

Quick challenge

How far can you run before the mobs catch you?

BasicPrison

BasicPrison

A lightweight prison/jail plugin for Paper 1.21+ servers. Temporarily imprison players in designated cells with full restriction enforcement and automatic timed release.

Features

- Fully configurable messages — define as many named cells as you need with `/setprisoncell <id>` - Fully configurable messages — jail players with human-readable durations (`10s`, `5m`, `1h`, `2d`) - Fully configurable messages — prisoners are placed in the first available (unoccupied) cell - Fully configurable messages — jailed players cannot use commands, break/place blocks, or interact with anything - Fully configurable messages — a background task checks for expired sentences every few seconds and releases players automatically - Fully configurable messages — players whose sentence expires while offline are released upon rejoining - Fully configurable messages — jail data survives server restarts via `data.yml` - Fully configurable messages — all player-facing messages are customizable in `config.yml` with `&` color codes

Commands

| Command | Description | Permission | |---------|-------------|------------| | `/prison <player> <time>` | Jail a player for the specified duration | `basicprison.jail` | | `/setprisoncell <id>` | Create a cell at your current location | `basicprison.setcell` | | `/listprisoncells` | List all defined prison cells | `basicprison.listcells` | | `/deleteprisoncell <id>` | Delete a prison cell | `basicprison.deletecell` |

All permissions default to op.

Time Format

| Suffix | Unit | Example | |--------|------|---------| | `s` | Seconds | `30s` | | `m` | Minutes | `10m` | | `h` | Hours | `1h` | | `d` | Days | `2d` |

Configuration

config.yml

```yaml

Prison cells (set in-game with /setprisoncell <id>)

prison-cells: {}

How often (in ticks) the release checker runs. 60 ticks = 3 seconds.

release-check-interval-ticks: 60

All messages are customizable with & color codes

messages: jailed: "&cYou are imprisoned and cannot use commands!" sent-to-prison: "&cYou have been sent to prison for &e%time%&c!" released: "&aYour sentence has expired. You are free!"

... and more

```

data.yml

Automatically managed — stores prisoner UUIDs, original locations, assigned cell IDs, and sentence expiration timestamps. Do not edit manually while the server is running.

Quick Start

``` 1. /setprisoncell cell1 — stand where you want the cell, run the command 2. /setprisoncell cell2 — create additional cells as needed 3. /prison Steve 10m — jail Steve for 10 minutes 4. /listprisoncells — see all your cells 5. /deleteprisoncell cell2 — remove a cell ```

Requirements

- Java 1.21+ - Java 21+

ADS