ModsJava
WaruiAntiVPN
Java mod listed for Minecraft 1.13–1.20. Downloads from the MC Java Mods app on Android.
⬇ Download on SpigotDescription
WaruiAntiVPN is a lightweight, highly configurable Spigot plugin designed to block players connecting through VPNs, proxies, data centers, Tor exit nodes, and other anonymizers. Ships with a rich set of built‑in detection services, and lets you easily add your own IP‑checking APIs.
Features
How to Add Custom Sources
WaruiAntiVPN is a lightweight, highly configurable Spigot plugin designed to block players connecting through VPNs, proxies, data centers, Tor exit nodes, and other anonymizers. Ships with a rich set of built‑in detection services, and lets you easily add your own IP‑checking APIs.
Features
- Multiple Detection Services: Out‑of‑the‑box support for ProxyCheck, IPAPI, Blackbox, Funkemunky, IPQuery, IPRisk, MITL, Negativity, SkyDB, RayZS, and more.
- Custom Sources: Define your own HTTP‑based services to check any IP using JSON or HTML models.
- Bypass & Blacklist: Whitelist specific IPs and blacklist unwanted ones.
- Customizable Messages: Fully configurable kick/deny messages with color codes.
- Extensible: Add or disable services, tweak parameters (risk score, days seen, tags) in your config.
Code (YAML):
bypass-ips
:
- "45.66.55.21"
blacklist-ips :
- "10.0.0.5"
- "203.0.113.42"
messages:
vpn-detected :
- "&cVPN или прокси запрещены."
blacklisted-detected :
- "&cВаш IP в чёрном списке."
services:
proxycheck:
enabled : false
api-key : "your-proxycheck-api-key"
vpn : true
asn : true
risk : true
port : true
seen : true
days : 7
tag : "WaruiAntiVPN"
ipapi:
enabled : true
proxy-field : true
hosting-field : true
ip2:
enabled : false
model : "JSON"
key : ""
url : "https://api.2ip.io/{IP}?token={KEY}"
values:
fields :
- "asn.hosting"
type : boolean
antivpn-io:
enabled : false
model : "JSON"
headers:
Authorization : "Bearer KEY"
url : "https://connection.antivpn.io/api/check?ip={IP}"
values:
fields :
- "VPN"
type : boolean
antivpn-net:
enabled : false
model : "JSON"
key : ""
url : "https://antivpn.net/api/v1/lookup?ip={IP}&key={KEY}&format=-json"
values:
fields :
- "is_proxy"
type : boolean
banproxy:
enabled : false
model : "JSON"
key : ""
url : "https://banproxy.com/api/{IP}/{KEY}"
values:
fields :
- "proxy"
- "hosting"
type : boolean
blackbox:
enabled : true
model : "HTML"
url : "https://blackbox.ipinfo.app/lookup/{IP}"
values:
fields : { } # не используются
type : "Y" # сравниваем ответ body == "Y"
freeipapi:
enabled : true
model : "JSON"
headers : [ ] # можно указать Authorization: Bearer KEY
url : "https://freeipapi.com/api/json/{IP}"
values:
fields :
- "isProxy"
type : boolean
funkemunky:
enabled : true
model : "JSON"
url : "https://funkemunky.cc/vpn?ip={IP}"
key : ""
values:
fields :
- "proxy"
- "data_center"
- "vpn"
type : boolean
getipintel:
enabled : false
model : "JSON"
key : "" # укажи здесь свой email, иначе блокировка
url : "https://check.getipintel.net/check.php?ip={IP}&contact={KEY}&flags=m&format=json"
values:
fields :
- "result"
type : boolean
greip:
enabled : false
model : "JSON"
headers:
Authorization : "Bearer KEY"
url : "https://greipapi.com/lookup/ip/threats?ip={IP}"
values:
fields :
- "data.threats.isProxy"
- "data.threats.isRelay"
- "data.threats.isTor"
- "data.threats.isHosting"
type : boolean
ip2location:
enabled : false
model : "JSON"
key : ""
url : "https://api.ip2location.io/?ip={IP}&format=json{KEY}"
values:
fields :
- "is_proxy"
- "proxy.is_vpn"
- "proxy.is_tor"
- "proxy.is_public_proxy"
- "proxy.is_web_proxy"
- "proxy.is_web_crawler"
- "proxy.is_residential_proxy"
- "proxy.is_botnet"
- "proxy.is_spammer"
- "proxy.is_scanner"
- "proxy.is_consumer_privacy_network"
- "proxy.is_enterprise_private_network"
- "proxy.is_data_center"
type : boolean
ipapi_is:
enabled : false
model : "JSON"
key : ""
url : "https://api.ipapi.is/?q={IP}&key={KEY}"
values:
fields :
- "is_datacenter"
- "is_tor"
- "is_proxy"
- "is_vpn"
- "is_abuser"
- "is_bogon"
type : boolean
ipdetective:
enabled : false
model : "JSON"
headers:
x-api-key : "KEY"
url : "https://api.ipdetective.io/ip/{IP}?info=true"
values:
fields :
- "type"
type :
- "vpn"
- "datacenter"
- "bot"
- "proxy"
ipgeolocation:
enabled : false
model : "JSON"
key : ""
url : "https://api.ipgeolocation.io/ipgeo?apiKey={KEY}&ip={IP}"
values:
fields :
- "security.is_tor"
- "security.is_proxy"
- "security.is_cloud_provider"
- "security.is_known_attacker"
- "security.is_anonymous"
type : boolean
iphub:
enabled : false
model : "JSON"
headers:
X-Key : "KEY"
url : "https://v2.api.iphub.info/ip/{IP}"
values:
fields :
- "block"
type : boolean
iphunter:
enabled : false
model : "JSON"
headers:
X-Key : "KEY"
url : "https://www.iphunter.info:8082/v1/ip/{IP}"
values:
fields :
- "data.block"
type : boolean
ipqualityscore:
enabled : false
model : "JSON"
key : ""
url : "https://ipqualityscore.com/api/json/ip/{KEY}/{IP}?strictness=0&allow_public_access_points=true"
values:
fields :
- "proxy"
- "vpn"
- "tor"
- "bot_status"
- "recent_abuse"
type : boolean
ipquery:
enabled : true
model : "JSON"
url : "https://api.ipquery.io/{IP}?format=json"
values:
fields :
- "risk.is_vpn"
- "risk.is_tor"
- "risk.is_datacenter"
- "risk.is_proxy"
type : boolean
iprisk:
enabled : true
model : "JSON"
url : "https://api.iprisk.info/v1/{IP}"
values:
fields :
- "vpn"
- "data_center"
- "open_proxy"
type : boolean
ipstack:
enabled : false
model : "JSON"
key : ""
url : "https://api.ipstack.com/{IP}?access_key={KEY}&security=1"
values:
fields :
- "security.is_proxy"
- "security.is_crawler"
- "security.is_tor"
- "security.hosting_facility"
type : boolean
mitl:
enabled : true
model : "JSON"
url : "https://antivpn.mitl.it/api/v1/checkip?ip={IP}"
values:
fields :
- "isVPN"
type : boolean
negativity:
enabled : true #медленный отклик (примерно 1200 мс)
model : "JSON"
url : "https://api.negativity.fr/ip/{IP}"
values:
fields :
- "proxy"
- "vpn"
type : boolean
protectcord:
enabled : false
model : "JSON"
key : ""
url : "https://api.protectcord.com/checkip/{IP}?key={KEY}"
values:
fields :
- "is_bogon"
- "is_crawler"
- "is_datacenter"
- "is_tor"
- "is_proxy"
- "is_vpn"
- "is_abuser"
type : boolean
proxycheck_alt:
enabled : false
model : "JSON"
key : ""
url : "https://proxycheck.io/v2/{IP}?vpn=3&key={KEY}"
values:
fields :
- "%IP%.proxy"
- "%IP%.vpn"
type : "yes"
proxyradar:
enabled : false
model : "JSON"
key : ""
url : "https://proxyradar.io/v1/check?key={KEY}&ip={IP}&format=json"
values:
fields :
- "proxy"
type : boolean
rayzs:
enabled : true
model : "HTML"
url : "https://www.rayzs.de/provpn/api/proxy.php/?a={IP}"
values:
fields : { } # не используются
type : boolean # кик по любому не-null/не-"false"
skydb:
enabled : true #медленный отклик (примерно 1500 мс)
model : "JSON"
url : "http://ipcheck.skydb.de/getinfo?ip={IP}"
values:
fields :
- "Hosting"
- "Proxy"
- "VPN"
- "TOR"
type : boolean
vpnapi:
enabled : false
model : "JSON"
key : "" # оставь пустым, если без ключа (100 запросов бесплатно)
url : "https://vpnapi.io/api/{IP}?key={KEY}"
values:
fields :
- "security.vpn"
- "security.proxy"
- "security.tor"
- "security.relay"
type : boolean
vpnapi_xyz:
enabled : false
model : "JSON"
key : ""
url : "https://vpn-api.xyz/detector?key={KEY%}&host={IP}"
values:
fields :
- "is_proxy"
type : boolean
vpnblocker:
enabled : false
model : "JSON"
headers:
X-API-KEY : "KEY"
url : "https://api.vpnblocker.net/v2/json/{IP}"
values:
fields :
- "host-ip"
type : boolean
zowi:
enabled : false #криво работает
model : "JSON"
url : "https://central.zowi.gay/check/{IP}"
values:
fields :
- "malicious"
type : boolean
- "45.66.55.21"
blacklist-ips :
- "10.0.0.5"
- "203.0.113.42"
messages:
vpn-detected :
- "&cVPN или прокси запрещены."
blacklisted-detected :
- "&cВаш IP в чёрном списке."
services:
proxycheck:
enabled : false
api-key : "your-proxycheck-api-key"
vpn : true
asn : true
risk : true
port : true
seen : true
days : 7
tag : "WaruiAntiVPN"
ipapi:
enabled : true
proxy-field : true
hosting-field : true
ip2:
enabled : false
model : "JSON"
key : ""
url : "https://api.2ip.io/{IP}?token={KEY}"
values:
fields :
- "asn.hosting"
type : boolean
antivpn-io:
enabled : false
model : "JSON"
headers:
Authorization : "Bearer KEY"
url : "https://connection.antivpn.io/api/check?ip={IP}"
values:
fields :
- "VPN"
type : boolean
antivpn-net:
enabled : false
model : "JSON"
key : ""
url : "https://antivpn.net/api/v1/lookup?ip={IP}&key={KEY}&format=-json"
values:
fields :
- "is_proxy"
type : boolean
banproxy:
enabled : false
model : "JSON"
key : ""
url : "https://banproxy.com/api/{IP}/{KEY}"
values:
fields :
- "proxy"
- "hosting"
type : boolean
blackbox:
enabled : true
model : "HTML"
url : "https://blackbox.ipinfo.app/lookup/{IP}"
values:
fields : { } # не используются
type : "Y" # сравниваем ответ body == "Y"
freeipapi:
enabled : true
model : "JSON"
headers : [ ] # можно указать Authorization: Bearer KEY
url : "https://freeipapi.com/api/json/{IP}"
values:
fields :
- "isProxy"
type : boolean
funkemunky:
enabled : true
model : "JSON"
url : "https://funkemunky.cc/vpn?ip={IP}"
key : ""
values:
fields :
- "proxy"
- "data_center"
- "vpn"
type : boolean
getipintel:
enabled : false
model : "JSON"
key : "" # укажи здесь свой email, иначе блокировка
url : "https://check.getipintel.net/check.php?ip={IP}&contact={KEY}&flags=m&format=json"
values:
fields :
- "result"
type : boolean
greip:
enabled : false
model : "JSON"
headers:
Authorization : "Bearer KEY"
url : "https://greipapi.com/lookup/ip/threats?ip={IP}"
values:
fields :
- "data.threats.isProxy"
- "data.threats.isRelay"
- "data.threats.isTor"
- "data.threats.isHosting"
type : boolean
ip2location:
enabled : false
model : "JSON"
key : ""
url : "https://api.ip2location.io/?ip={IP}&format=json{KEY}"
values:
fields :
- "is_proxy"
- "proxy.is_vpn"
- "proxy.is_tor"
- "proxy.is_public_proxy"
- "proxy.is_web_proxy"
- "proxy.is_web_crawler"
- "proxy.is_residential_proxy"
- "proxy.is_botnet"
- "proxy.is_spammer"
- "proxy.is_scanner"
- "proxy.is_consumer_privacy_network"
- "proxy.is_enterprise_private_network"
- "proxy.is_data_center"
type : boolean
ipapi_is:
enabled : false
model : "JSON"
key : ""
url : "https://api.ipapi.is/?q={IP}&key={KEY}"
values:
fields :
- "is_datacenter"
- "is_tor"
- "is_proxy"
- "is_vpn"
- "is_abuser"
- "is_bogon"
type : boolean
ipdetective:
enabled : false
model : "JSON"
headers:
x-api-key : "KEY"
url : "https://api.ipdetective.io/ip/{IP}?info=true"
values:
fields :
- "type"
type :
- "vpn"
- "datacenter"
- "bot"
- "proxy"
ipgeolocation:
enabled : false
model : "JSON"
key : ""
url : "https://api.ipgeolocation.io/ipgeo?apiKey={KEY}&ip={IP}"
values:
fields :
- "security.is_tor"
- "security.is_proxy"
- "security.is_cloud_provider"
- "security.is_known_attacker"
- "security.is_anonymous"
type : boolean
iphub:
enabled : false
model : "JSON"
headers:
X-Key : "KEY"
url : "https://v2.api.iphub.info/ip/{IP}"
values:
fields :
- "block"
type : boolean
iphunter:
enabled : false
model : "JSON"
headers:
X-Key : "KEY"
url : "https://www.iphunter.info:8082/v1/ip/{IP}"
values:
fields :
- "data.block"
type : boolean
ipqualityscore:
enabled : false
model : "JSON"
key : ""
url : "https://ipqualityscore.com/api/json/ip/{KEY}/{IP}?strictness=0&allow_public_access_points=true"
values:
fields :
- "proxy"
- "vpn"
- "tor"
- "bot_status"
- "recent_abuse"
type : boolean
ipquery:
enabled : true
model : "JSON"
url : "https://api.ipquery.io/{IP}?format=json"
values:
fields :
- "risk.is_vpn"
- "risk.is_tor"
- "risk.is_datacenter"
- "risk.is_proxy"
type : boolean
iprisk:
enabled : true
model : "JSON"
url : "https://api.iprisk.info/v1/{IP}"
values:
fields :
- "vpn"
- "data_center"
- "open_proxy"
type : boolean
ipstack:
enabled : false
model : "JSON"
key : ""
url : "https://api.ipstack.com/{IP}?access_key={KEY}&security=1"
values:
fields :
- "security.is_proxy"
- "security.is_crawler"
- "security.is_tor"
- "security.hosting_facility"
type : boolean
mitl:
enabled : true
model : "JSON"
url : "https://antivpn.mitl.it/api/v1/checkip?ip={IP}"
values:
fields :
- "isVPN"
type : boolean
negativity:
enabled : true #медленный отклик (примерно 1200 мс)
model : "JSON"
url : "https://api.negativity.fr/ip/{IP}"
values:
fields :
- "proxy"
- "vpn"
type : boolean
protectcord:
enabled : false
model : "JSON"
key : ""
url : "https://api.protectcord.com/checkip/{IP}?key={KEY}"
values:
fields :
- "is_bogon"
- "is_crawler"
- "is_datacenter"
- "is_tor"
- "is_proxy"
- "is_vpn"
- "is_abuser"
type : boolean
proxycheck_alt:
enabled : false
model : "JSON"
key : ""
url : "https://proxycheck.io/v2/{IP}?vpn=3&key={KEY}"
values:
fields :
- "%IP%.proxy"
- "%IP%.vpn"
type : "yes"
proxyradar:
enabled : false
model : "JSON"
key : ""
url : "https://proxyradar.io/v1/check?key={KEY}&ip={IP}&format=json"
values:
fields :
- "proxy"
type : boolean
rayzs:
enabled : true
model : "HTML"
url : "https://www.rayzs.de/provpn/api/proxy.php/?a={IP}"
values:
fields : { } # не используются
type : boolean # кик по любому не-null/не-"false"
skydb:
enabled : true #медленный отклик (примерно 1500 мс)
model : "JSON"
url : "http://ipcheck.skydb.de/getinfo?ip={IP}"
values:
fields :
- "Hosting"
- "Proxy"
- "VPN"
- "TOR"
type : boolean
vpnapi:
enabled : false
model : "JSON"
key : "" # оставь пустым, если без ключа (100 запросов бесплатно)
url : "https://vpnapi.io/api/{IP}?key={KEY}"
values:
fields :
- "security.vpn"
- "security.proxy"
- "security.tor"
- "security.relay"
type : boolean
vpnapi_xyz:
enabled : false
model : "JSON"
key : ""
url : "https://vpn-api.xyz/detector?key={KEY%}&host={IP}"
values:
fields :
- "is_proxy"
type : boolean
vpnblocker:
enabled : false
model : "JSON"
headers:
X-API-KEY : "KEY"
url : "https://api.vpnblocker.net/v2/json/{IP}"
values:
fields :
- "host-ip"
type : boolean
zowi:
enabled : false #криво работает
model : "JSON"
url : "https://central.zowi.gay/check/{IP}"
values:
fields :
- "malicious"
type : boolean
- Copy one of the existing service blocks in services:.
- Rename the block (e.g. mycustom).
- Configure:
- enabled: true
- model: "JSON" or "HTML"
- url: Use {IP} placeholder for the player’s IP.
- Optional headers or api-key / key fields.
- Under values:, list the JSON fields to inspect, and set type: boolean (or "Y" for HTML).
- enabled: true
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.13, 1.14, 1.15
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
WaruiAntiVPN is a free Minecraft Java mod. Compatible with Minecraft 1.13, 1.14, 1.15, 1.16 and newer. Downloaded 23 times (via Spigot). Download it and open it directly in the game.