LXVPN - Advanced Anti VPN | Velocity + Bungee | Bot & TOR Pr
1.0-BETALXVPN protects your Minecraft server from VPNs, proxies, TOR networks, and bots with fast and reliab
1.0-BETAlatest1.0-BETA Release Velocity Support, Better performanceJul 22, 2026 Changelog All notable changes to LXVPN. 1.0-BETA — 2026-07-22 A rewrite rather than an increment. The plugin was restructured so that one jar can serve both proxies without maintaining two copies of the logic, and the anti-VPN engine was replaced with the scoring model developed in LuminShield. LuminShield is a separate paid plugin of ours on BuiltByBit, not yet released. LXVPN stays free and stays anti-VPN only; the two share ideas, not a licence. This is a beta, and the label is accurate. It has been tested on Velocity. The BungeeCord side runs the same core and the same checks, but has not had a test pass yet. Run it on BungeeCord if you are willing to report what breaks; do not run it on a production BungeeCord network you cannot afford to have misbehave. Reports from either proxy are what turn this into 1.0. Read the migration section below before updating. The configuration format changed, and the old file will not carry over. Added · Velocity support. 0.3.3-APLHA was BungeeCord only. Both proxies are now supported from one jar, and both run identical checks because both call the same core — a fix on one is a fix on both, and neither can quietly fall behind. · Tiered scoring engine. Seven levels of reputation sources, each contributing points toward a threshold rather than deciding on its own. · Local ASN datacenter detection via GeoLite2-ASN, downloaded on first start. No API key, no rate limit, no outbound request while a player waits. · Local country filtering via GeoLite2-Country, in blacklist or whitelist mode. Replaces the old country list, which had no database behind it. · Per-account IP binding (/lxvpn iprestrict), with CIDR range support. · Virtual threads for all blocking I/O on Java 21 or newer, detected at runtime so Java 17 continues to work. · /lxvpn check <ip|player> — scores an address immediately, bypassing the cache, since the reason to run it is usually disagreeing with a cached verdict. · Discord webhook notifications, with the final octet of the address masked. · Tab completion on both proxies. · File logging to logs/lxvpn.log, with writes queued off the connection path. · Update checker that names both the running and the newest version. Changed · Package renamed from com.titanius.lxantivpn to com.titanius.lxvpn. · Version scheme. 0.3.3-APLHA (sic) is superseded by 1.0-BETA. The typo in the old tag is preserved here so it can still be found; it is not carried forward. · Configuration restructured — see the migration section below. · Permission node is now lxvpn.admin, was lxvpn.command. · Command aliases are now /lxvpn, /antivpn, /lxantivpn. The joke aliases (delusionalvpn, deluluvpn) are gone. · Blocking is now a score threshold, not any single source saying "proxy". Free reputation APIs disagree with each other constantly, and a plugin that blocks on one of them refuses real players every week. · Every source fails to zero. A provider being down, slow or rate limited reduces accuracy; it never blocks a login and never denies one. · Hard timeout on the verdict. A frozen connecting screen is a worse outcome than an unchecked VPN user. · Shaded dependencies are relocated. SnakeYAML, Jackson, MaxMind and org.json all move under com.titanius.lxvpn.libs. One jar loads next to arbitrary other plugins on two proxies, and an unrelocated SnakeYAML is the classic way to break a server that was working before this was installed. · JSON files are written atomically — to a temporary file, then moved. A crash mid-write previously left a truncated allow list, which locks every restricted account out on the next start. Removed · The bundled IP databases. ipdb4.json, protonvpn.json, anonymusprivacydatabase.json, ips.json and ip-blacklist.json are gone from the jar, and nothing looks for them any more. They were most of the download size and were frozen at build time: an address that changed hands stayed wrong until someone published a new release. The equivalent data now comes from lists fetched and refreshed at runtime. · Anti-bot settings. antibot: true no longer exists. That work lives in LuminShield, which grew out of this codebase; LXVPN is anti-VPN and nothing else. Two plugins on different schedules beats one plugin a network has to take whole. · connection-threshold. It was rate limiting, which is an anti-bot concern. Fixed · Login checks no longer run on a proxy thread. Both platform listeners hold the connection asynchronously — Velocity through EventTask.resumeWhenComplete, BungeeCord through login intents — so a slow provider costs one player's join time rather than the proxy's. · The BungeeCord intent is completed in a finally block. A missed completion leaves the player stuck on the connecting screen indefinitely. · List refreshes that return nothing no longer overwrite a good cached list. A mirror being briefly down previously disabled that check silently until the next refresh. · The score cache is bounded as well as time-expiring. A flood presenting tens of thousands of distinct addresses previously grew it without limit. · Malformed CIDR entries no longer throw. One typo excludes one entry instead of stopping startup. Security and privacy · Webhook notifications mask the last octet. A Discord channel is one screenshot away from being public, and a full address is personal data in most of Europe. · The GeoLite2 databases come from public redistributions. No MaxMind account or licence key is involved, because a setup step requiring registration with a third party is a setup step most people never finish. Known gaps in this beta · BungeeCord is untested, as noted above. · Nothing has been run against a real botnet flood. The load paths are designed for it — bounded caches, coalesced writes, suspendable outbound lookups — but designed for is not the same as measured under. · The update checker compares 1.0-BETA as 1.0, so a future 1.0 release will not be announced as newer. That is a known limitation of the version comparison, not an oversight in the release. Migrating from 0.3.3-APLHA Delete the old config.yml and let the plugin write a fresh one. The key names changed enough that editing in place is slower than starting over. Old key New key Note antivpn: true antivpn.enabled antibot: true — removed; use LuminShield tor: true — folded into check levels 1 and 2 antivpn_tor.checklevels antivpn.checklevels same numbering antivpn_tor.database_checks antivpn.database-checks now gates remote lists, not bundled files antivpn_tor.vpn-api-api-key antivpn.api-keys.vpnapi antivpn_tor.ipregistry-api-key antivpn.api-keys.ipregistry blocked-countries geo.countries + geo.enabled: true now needs a database, downloaded automatically bypass-list bypass CIDR ranges now accepted connection-threshold — removed players: /lxvpn iprestrict add moved to ip-restrictions.json, managed by command — antivpn.min-score new, and the setting most worth tuning blacklist.json carries over unchanged. Permissions need updating: lxvpn.command becomes lxvpn.admin. After updating · Start the proxy and watch for the ASN database download line. Until it appears, datacenter detection — the strongest signal here — is not running. · Run /lxvpn and check that the level summary matches what you expect. · Run /lxvpn check <your own ip> and confirm it comes back clean. If your own connection scores at or above the threshold, fix that before anything else. · Leave min-score at 2 for a week before deciding it is wrong. 0.3.3-APLHA The last release before 1.0-BETA. BungeeCord only. Bundled IP databases read from inside the jar. Blocking decided by individual sources rather than an aggregate score. Kept here for reference; not supported. 0.3.2-APLHA and earlier Bungee0.3.3-APLHAUpdate Log – Botnet Checks! 0.3.3-APLHAJul 6, 2025 You can now automatically check whether an IP is linked to known botnets! This helps improve security and makes it easier to spot suspicious connections. · Now open source!Please note: This feature is still in early development. Since I had to decompile the original source (long story... no backup ), there might be a few quirks or bugs here and there. If you run into any issues, let me know!
0.3.2-APLHA-indevUpdate Log – Custom Blacklist & IP Restrictions 0.3.2-APLHA-indevFeb 24, 2025 Custom Blacklist Added You can now block specific IPs by adding them to a custom blacklist! The blacklist is stored in JSON format, which may sometimes cause minor issues. Please note that after adding a new IP, a server restart or plugin reload is required for the changes to take effect. New Commands ➤ /lxvpn blacklist add|remove – Adds or removes an IP from the blacklist. ➤ /lxvpn addiprestrict – Binds an IP address to a specific player.Still in development! This feature is currently in the indev phase, so bugs may occur. If you find any issues, please report them to me! Since I lost the source code (I messed up really, really badly and had no backup), I had to decompile it. That's why it's still in indev, as there might be some issues caused by the decompiler.
0.3.1-BETALevel UpdateOct 18, 2024 Update: · Added +1 check level Comment: Probably the velocity update will come in 1.00.3-ALPHAEXTREME UPDATE 0.3-APLHA!!!Sep 8, 2024 I created in the plugin files a CREDITS.md its just for credits. And i added multiple features and new protections: · Added multiple database opportunitys · Added database_checks option in the configuration, set to true or false depending on whether you want to enable database checks. · Added new feature: checklevel there is 1-5 check levels. · Added more protection: you can found it in the CREDITS.md Levels: · = free APIs, and 1 TorExitNodeList Database (if database_checks is false, it does not affect this function.) · = Anti Tor(same here) with neblink + 2 Local Database check · = 4 massive database check, there is performance problems (if datanse_checks is false, it does affect this function.) · = 3 paid and free, demo APIs. And 1 Big database check · = EXTREME Database checks Files: CREDITS Code (Text): # CREDITS ## A Sincere Expression of Gratitude This project stands as a testament to the incredible resources and services that have made it possible. It is with deep respect and heartfelt gratitude that I acknowledge the invaluable contributions of the Application Programming Interfaces and online/offline databases listed below. Without their tireless efforts and dedication, the creation of this robust and powerful Anti VPN service would not have been achievable. It is an honor to recognize these platforms, which form the foundation of the security and reliability that this service offers. ## Honoring the APIs and Databases - [Proxycheck.io](https://proxycheck.io) - For providing an exceptional proxy detection service, ensuring the security and integrity of our platform. - [FreeIpAPI](https://freeipapi.com) - For delivering accurate IP geolocation and proxy detection services that are integral to our operation. - [Tor Project - Tor Exit Node List](https://check.torproject.org/torbulkexitlist) - For maintaining a comprehensive list of Tor exit nodes, playing a crucial role in our detection mechanisms. - [Bitwire IP Blocklist](https://github.com/bitwire-it/ipblocklist/tree/main) - For offering a reliable and up-to-date IP blocklist, critical for our defense against malicious activities. - [Stamparm's Ipsum](https://github.com/stamparm/ipsum/tree/master) - For curating an extensive blocklist of suspicious IP addresses, greatly enhancing our security measures. - [CINSSCORE CI-BadGuys](https://cinsscore.com/list/ci-badguys.txt) - For providing a detailed list of known bad IPs, which significantly contributes to our ability to prevent threats. - [Neblink Blocklist](https://www.neblink.net) / [Neblink Tor Exit Node Blocklist](https://www.neblink.net/blocklist/TorExitNodes.txt) - For maintaining critical blocklists, particularly those related to Tor exit nodes, and supporting our mission to secure networks. - [VPNAPI.io](https://vpnapi.io) - For offering a powerful VPN detection service that underpins our efforts to identify and block unauthorized access. - [IPInfo](https://ipinfo.io/) - For providing comprehensive IP intelligence, enabling us to make informed decisions regarding network security. - [IPRegistry](https://ipregistry.co) - For delivering detailed IP information and intelligence, essential for the success of our detection systems. ## In Closing To the developers, maintainers, and communities behind these indispensable resources: your work does not go unnoticed. Your commitment to excellence and innovation is what makes the internet a safer place for everyone. This Anti VPN service is as much a product of your efforts as it is ours, and we extend our deepest thanks to you. Your contributions are the backbone of this project, and for that, we are eternally grateful. Config Code (YAML): # config.yml #version of the config version : 04 #DO NOT TOUCH # Enable/disable features antivpn : true antibot : true tor : true antivpn_tor : # protection # recommended checklevels: 1, 2, 4 # not recommended checklevels: 3, 5 # 3&5 is a very slow checkmethod because it is reading 100.000+ line of IPs # if you want EXTREME protection use 3,5 but dont message me for performance problems. #explaination: #1 = free APIs, and 1 TorExitNodeList Database (if database_checks is false, it does not affect this function.) #2 = Anti Tor(same here) with neblink + 2 Local Database check #3 = 4 massive database check, there is performance problems (if datanse_checks is false, it does affect this function.) #4 = 3 paid and free, demo APIs. And 1 Big database check #5 = EXTREME Database checks #1-5 1=low 2=normal 3=mid 4=high 5=superhigh checklevels : # you might restart the entire server - 1 - 2 - 4 database_checks : false # Set to true or false depending on whether you want to enable database checks #Without this there is still an anti vpn service, but less effective vpn-api-api-key : "your_vpn_api_key" # https://vpnapi.io/dashboard ipregistry-api-key : "your_ipregistry_api_key" # https://ipregistry.co blocked-countries : - "CN" - "RU" bypass-list : #ips or player names - "127.0.0.1" - "player_name" connection-threshold : 5 #IPRestrict players: Herobrine : #player name ip : "203.0.113.45" #ip of the player0.3-BETA0.3-BETA is out!!!Sep 7, 2024 Update log: · Now there is 20 checks for vpns. · I added more protection and a feature to check if the configuration version is out of date or not. Please rate us and give a feedback.0.2.1-ALPHALXVPN UPDATE!!!Sep 6, 2024 Hey guys! Added Feature(s): · The plugin saves its log to the logs/ folder in the plugin folder. · And more protection!0.2-ALPHALXVPN 0.2-ALPHA RELEASE! FixesAug 19, 2024 Hi guys! With today's update I fixed some "bugs": · I fixed Performance and other minor bugs. · The onPostLogin method was very slow, now it's much faster! · And I added an Update Checker function to the plugin!0.1-ALPHAAug 18, 2024
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta