HypeAntiProxy Banner

Advanced Protection
for Your Minecraft Server

Block VPN & Proxy users instantly, track alt accounts per IP and get real-time alerts when banned players reconnect — all with zero server lag.

🚀 Get Started 📖 Learn More
Paper 1.21.4 ☕ Java 21 ⚡ Zero Lag 🆓 Free APIs ✔ No API Key
0API Providers
0IP Cache Entries
0Java Classes
0Main Thread Lag

What it does

Powerful Features

Everything you need to keep your server safe from proxy users and alt accounts.

🛡

VPN & Proxy Detection

Automatically checks every connecting player's IP against two free APIs. Blocks VPN, proxy, TOR exit nodes and datacenter IPs before they reach your server.

ip-api.com + proxycheck.io

Two-Level Cache System

L1 in-memory LRU cache (2 000 entries) backed by L2 SQLite persistent cache. Once an IP is checked, it is never queried again until the TTL expires (default 24h).

RAM + SQLite
👥

Alt-Account Tracker

Records every IP ↔ account mapping. Alerts staff when multiple accounts join from the same IP. Configurable maximum accounts per IP with optional auto-kick.

Per-IP Tracking
🔔

Ban History Alerts

Cross-references the IP of every joining player with accounts currently on the ban list. Sends immediate in-game alerts with sound to all online admins.

Real-time Alerts
🔑

No API Key Required

Uses only free, public API endpoints. ip-api.com allows 45 req/min, proxycheck.io allows 1000/day – more than enough for any server size.

100% Free
🗄

SQLite + HikariCP

All data is stored locally in a SQLite database with WAL journal mode for concurrent access. HikariCP connection pool prevents bottlenecks on large servers.

HikariCP Pool
🌐

IP Whitelist

Whitelist specific IPs or CIDR ranges so staff members using VPNs are never blocked. Managed in-game with hot-reload — no restart needed.

In-game Management
🔧

Fully Configurable

Every message, alert, kick screen, sound, TTL, API toggle, and limit is configurable in config.yml and messages.yml. Live reload with /hypeap reload.

messages.yml

Architecture

How It Works

Every player login goes through a secure, asynchronous pipeline — the main thread is never touched.

1

Player Connects

AsyncPreLoginEvent fires on Netty thread

2

IP Guards

Local? Whitelisted? OP? Skip API call

3

Cache Lookup

L1 RAM → L2 SQLite (with TTL)

4

API Check

ip-api.com → proxycheck.io fallback

5

Decision

Block or allow + store result in cache

6

Alerts

Admin notifications on main thread

Live Admin Alert Preview

§8[§c⚠ VPN§8] §eSteve §7joined via VPN/Proxy §8(§7198.51.100.42 §8| §cVPN/Proxy§8)
§8[§c⚠ BAN§8] §eNotch §7was previously banned as §cNotch_Alt
§8[§e⚠ ALT§8] §eAlex §7shares IP with §c2 §7other account(s): §fSteve, Herobrine
§8[§a✔ INFO§8] §7198.51.100.1 is clean. ISP: Comcast, Country: US

Command Reference

Commands

All commands use the /hypeap root. Aliases: /hap, /antiproxy

/hypeap helpShow all available commands and usagehypeap.admin
/hypeap reloadHot-reload config.yml and messages.yml without restarthypeap.admin
/hypeap statsShow plugin statistics (checks, blocks, cache size, tracked accounts)hypeap.admin
/hypeap check <ip|player>Manually check an IP address or online player's IP against the APIhypeap.admin
/hypeap alts <player>List all known alt accounts for a player (online or offline)hypeap.admin
/hypeap info <player>Show IP, UUID, proxy status, ISP and country for an online playerhypeap.admin
/hypeap whitelist listList all whitelisted IP addresseshypeap.admin
/hypeap whitelist add <ip>Add an IP to the whitelist (auto-saved to config.yml)hypeap.admin
/hypeap whitelist remove <ip>Remove an IP from the whitelisthypeap.admin

Permissions

Permission NodeDescriptionDefault
hypeap.adminFull access to all commands and featuresOP
hypeap.notifyReceive in-game VPN/alt/ban alerts with soundOP
hypeap.bypassBypass the VPN/proxy check on joinfalse

Changelog

Plugin Versions

Download the latest version or check the changelog for older releases.

v1.0.0
LATEST

Initial Release — HypeAntiProxy 1.0.0

  • VPN/Proxy detection via ip-api.com (primary) + proxycheck.io (fallback)
  • Two-level cache: in-memory LRU + SQLite persistent with configurable TTL
  • Alt-account tracking — records every IP ↔ UUID ↔ username mapping
  • Ban-history detection using Bukkit's native ban API
  • Real-time in-game admin alerts with configurable sound
  • Full /hypeap command suite with tab-completion
  • IP whitelist managed in-game with instant hot-save
  • SQLite + HikariCP, zero blocking on main thread
  • Fully async login pipeline via AsyncPlayerPreLoginEvent
📅 2025 ☕ Java 21 📦 Paper 1.21.4 👤 xXantares_peek ⬇ Download

Configuration

Config Reference

Key configuration options explained. All values can be changed and reloaded live.

⚙ API Settings

api.timeout-ms5000 (ms)
api.ip-api.enabledtrue
api.proxycheck.enabledtrue

🛡 VPN Check

vpn-check.enabledtrue
vpn-check.block-hostingfalse
vpn-check.block-tortrue

👥 Alt Accounts

alt-accounts.enabledtrue
alt-accounts.max-per-ip3
alt-accounts.kick-on-exceedfalse
alt-accounts.alert-adminstrue

🔔 Ban History

ban-history.enabledtrue
ban-history.alert-adminstrue

💾 Cache

cache.duration-minutes1440 (24h)

🔔 Notifications

notifications.soundORB_PICKUP
notifications.permission-basedtrue

Help

Frequently Asked Questions

Answers to the most common questions about HypeAntiProxy.

Does this slow down my server when players join? +
No. All API calls and database operations run on async threads. The Minecraft main thread is never blocked. The two-level cache ensures that repeat IPs (same players rejoining) never trigger an API call at all.
What happens if the API is down or rate-limited? +
If ip-api.com fails or times out, HypeAntiProxy automatically tries proxycheck.io as a fallback. If both fail, the result is marked as "unchecked" and the player is allowed to join — we never wrongly block players due to API failures.
My staff use VPNs. How do I stop them from getting blocked? +
OP players are automatically bypassed. For non-OP staff, either whitelist their IP in-game with /hypeap whitelist add <ip>, or grant them the hypeap.bypass permission node. Whitelisted IPs are never sent to any external API.
Where is player data stored? Is it sent anywhere? +
Player data (IP mappings, usernames, UUIDs) is stored locally in a SQLite file at plugins/HypeAntiProxy/data.db. Only the bare IP address is sent to the external check APIs — no usernames, UUIDs or other data is ever transmitted.
Can I use this with BungeeCord / Velocity? +
HypeAntiProxy is designed for Paper backend servers. Install it on each Paper backend node. For Velocity/Bungee networks, install it only on the Paper instances where players actually connect, not on the proxy itself.
How do I completely reset the database? +
Stop the server, delete plugins/HypeAntiProxy/data.db, then restart. A fresh database will be created automatically. Note: this also clears the persistent IP cache, so all IPs will be re-checked on next join.