All versions
1.0.0
Release
v1.0.0 - Release4 months ago 15
Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
Platforms
Bukkit
BungeeCord
Folia
Paper
Purpur
Spigot
Velocity
Waterfall
Changes
Initial Release
Features
- Caching: Caches IP data to lower your API usage.
- UUID Whitelist: Whitelist players so that they can join with a VPN even while VPN blocking is enabled.
- Multiple API Providers: Supports IP-API.com, VPNAPI.io, and ProxyCheck.io.
- Queueing & Rate Limiting: Queues lookup tasks with a configurable delay to prevent API rate-limit lockouts.
- Player Sweeps: Run
/vpnkick on kickto manually check and disconnect online players using a VPN. - Custom Kick Messages: Configurable kick messages for when a player is kicked due to VPN usage.
Installation
- Download VPNGuard and put it in your server or proxy's
pluginsfolder. - Start the server or proxy.
- (Optional) If you want to use ProxyCheck.io or VPNAPI.io, add your API key(s) to the config.
- (Optional) Enable automatic VPN blocking by executing
/vpnkick onin-game orvpnkick onin the console.
Commands & Permissions
| Command | Description | Permission |
|---|---|---|
/vpnkick [on|off] |
Toggle connection checking on or off. | vpnguard.vpnkick |
/vpnkick status |
View checking status and active blocking settings. | vpnguard.vpnkick |
/vpnkick [on] kick |
Check all currently online players and kick VPN users. | vpnguard.vpnkick |
/vpncheck <player/IP> |
Look up an IP or player's VPN status. | vpnguard.vpncheck |
/vpnwhitelist add <player/IP> |
Whitelist a player or IP. | vpnguard.vpnwhitelist |
/vpnwhitelist remove <player/IP> |
Remove a player or IP from the whitelist. | vpnguard.vpnwhitelist |
/vpnwhitelist list |
Show all whitelisted players and IPs. | vpnguard.vpnwhitelist |
/vpnwhitelist reload |
Reload the config. | vpnguard.vpnwhitelist |
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:66gUDSAJ:qfxWUI76"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:66gUDSAJ:qfxWUI76"
}

