Kalkan
Kalkan blocks bot attacks, VPNs and Tor at your Velocity proxy, with country rules, monitor mode and attack mode. No captcha, no check screen, no API key.
Kalkan is an anti-VPN and anti-bot plugin for Velocity. It looks at where every login comes from and kicks the ones that come from where bots live, datacenters and clouds, VPNs and Tor, before they reach your login plugin or your lobby. Players on home and mobile connections join exactly as before.
- Runs on
- Velocity
- Minecraft
- 1.7 → 26.3
- Java
- 21+
There is no captcha, no check screen and no reconnect: Kalkan asks the player nothing. Every check is answered from a data file held in memory on your proxy, in about 0.3 µs, so there is no API key to buy, no daily quota and no rate limit.
What it does
- Checks every login at the proxy: in Velocity’s pre-login step, before the backend server, your login plugin or the lobby sees the player.
- Tells connection types apart: home and mobile lines, VPN servers, datacenters and clouds, Tor exits and Cloudflare WARP.
- Gives your countries their own switches: block VPNs from abroad but allow them at home, for example. Out of the box, VPN, hosting and Tor are blocked from other countries and nothing is blocked from your own.
- Country rules: close the server to whole countries, or let in only the countries you list.
- Watches before it blocks: monitor mode records who it would kick and lets everyone in, until you switch to block mode.
- Attack mode: when a bot flood arrives, it blocks the flood’s connection types for 15 minutes, even in monitor mode.
- Regulars keep their VPN: a player who joined on 3 different days in the last 60 from a home or mobile line may also come in through a VPN.
- One menu:
/kalkanopens a clickable dialog on Minecraft 1.21.6+ (with packetevents) and the same menu in chat on older clients. - Reports and logs: a 24-hour report, a daily decision log, staff alerts in chat and an hourly Discord summary.
Where it sits
Player → Velocity → Kalkan (pre-login) → your login plugin → lobby
answered from memory, no outside request
A login, step by step
| Step | Check | If it matches |
|---|---|---|
| 1 | Country rule: is the country blocked, or outside your only list? | Kicked (in monitor mode: recorded). Only the allow list gets past. |
| 2 | Connection type: VPN, hosting, Tor or WARP, with that region’s switch on? | Kicked (in monitor mode: recorded), unless the player is on the allow list or a trusted regular. |
| 3 | Everything else | Joins. |
The whole order, with every exception: How it decides.
The data
Team Atlantis builds, hosts and updates the data file (kalkan.db): VPN server lists, datacenter and cloud networks, Tor exits, WARP, and the country and network of every address. Kalkan downloads it in the background with your license key and keeps the last good copy on disk, so a join never waits for the network.
Next: Installation.