JoinRestrictor is a lightweight Paper plugin that restricts server access by requiring players to hold a specific permission node before they can join. Players without the required permission are immediately kicked with a fully customizable message. No databases, no complex setup — just drop it in and configure.
Features:
Use Cases:
Commands:
Permissions:
Requirements:
Features:
- Permission-gated join control — only players with the configured permission node can connect
- Fully customizable kick message with color code support (&c, &l, etc.)
- Configurable required permission node — use any node that fits your server's permission structure
- Optional logging of denied join attempts to console
- Hot reload via /joinrestrictor reload — no restart required to apply config changes
- Zero database footprint — purely event-driven, no stored data
Use Cases:
- Whitelist alternative using your existing permission plugin (LuckPerms, etc.)
- Staff-only or admin-only test servers
- VIP or donor-exclusive access control
- Maintenance mode — lock out regular players while keeping staff access
- Overflow routing — pair with a proxy to allow permission-based exceptions on full servers
Commands:
- /joinrestrictor reload — Reloads the plugin configuration (requires joinrestrictor.reload)
Permissions:
- joinrestrictor.reload — Allows reloading the config in-game
- (Configurable) — The permission node required to join the server
Requirements:
- Paper 1.17+
- Java 16+
- A permissions plugin (LuckPerms recommended)
