Tags
Creators
Details
1.1
Compatibility
Changes
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:
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)
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:Xo8veV7F:luXIckHH"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Xo8veV7F:luXIckHH"
}

