
TFS AntiVPN / AntiBOT v1.0r
The AntiVPN that works offlinely, detects residential VPNs, works on all platforms.
[~] Feature Introduction
State-of-the-art methodology
TFS AntiVPN uses state-of-the-art AI technology with Graph Neural Networks (GNN) and Mixture-of-Experts (MoE) for unparalleled network probing capabilities.
Unmatched Query Performance
Designed for high-speed environments, TFS AntiVPN effortlessly handles millions of queries per second (MQPS) with an impressive 4 microseconds per query processing time on a single thread.
Lightning-fast latency
With an offline database model, TFS AntiVPN ensures that latency is kept to a minimum, making it the perfect choice for latency-sensitive environments.
Accuracy you can rely on
83% detection of residential proxies
98% detection of open proxies
And here's the kicker: many undetected proxies are simply unavailable, meaning real-world accuracy is even higher than reported.
Blocks hackers and bots!
Unmatched cross-platform compatibility
TFS AntiVPN integrates seamlessly with all major server platforms, including Bukkit, Spigot, Paper, Folia, Bungee, and Velocity.
No hidden costs - only premium protection
Unlike others, TFS AntiVPN has no hidden tiers or fees. The regular plan gives you full offline access to our world-class database. The only restriction is transparent - you can't access the raw risk level - just a simple Boolean result based on your threshold setting.
Free API - use it beyond Minecraft
Need an AntiVPN library for your own solution? TFS AntiVPN's API is free and available even without server software. Whether you're running a game server or building an application, TFS AntiVPN has you covered.
[~] Commands & Permissions
/avpn help : Show help
/avpn reload : Reload the configuration
/avpn trust : Trust an IP address
/avpn untrust : Untrust an IP address
avpn.command : Use the command.
[~] Screenshots
[~] Config
# TFS Anti-VPN Configuration File
# --------------------------------- | Filtering rules | ---------------------------------
# Filter out the connections with a risk score higher than the threshold
# Typically, this value ranges from 0.0 to (no theoretical upper limit)
# The typical risk scores
# A real user: 0.2~0.8
# A "bypassing proxy" user: 1.0~5.0
# A typical VPN user: 5.0~20.0
# A typical open proxy user: 10.0~50.0
threshold: 1.0
# If we should allow a connection if we can't determine the risk score
# This is usually because:
# 1) The IP address is recently registered
# 2) The IP address is recently been assigned to a new owner
allow_unknown: false
# If we should allow a connection from a IPv6 addresses
# We are working really hard to support IPv6, but it's still not available yet :/
allow_ipv6: false
# ------------------------------------ | Languages | ------------------------------------
kick_message: "Connection lost"
[~] API & How to verify the accuracy
Pick a proxy list or just use the open proxy list here
Change residental.txt to whatever you've saved the list to.
package iprisk;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Scanner;
public class Play {
public static void main(String[] args) throws Exception {
File f = new File("AntiVPN.jar");
URLClassLoader classLoader = new URLClassLoader(new URL[]{f.toURI().toURL()});
Class<?> clazz = classLoader.loadClass("the.flare.star.ap.neutral.IpInfo");
Method m = clazz.getMethod("shouldAllow", String.class, double.class, boolean.class);
int hits = 0;
int misses = 0;
Scanner sc = new Scanner(new File("residental.txt"));
while (sc.hasNextLine()) {
String[] parts = sc.nextLine().split("//");
String ip = parts[parts.length - 1];
parts = ip.split(":");
ip = parts[0];
boolean shouldAllow = m.invoke(null, ip, 1, false).equals(true);
if (shouldAllow) {
misses++;
} else {
hits++;
}
}
sc.close();
double hitRate = (double) hits / (hits + misses);
System.out.println("Hit rate: " + String.format("%.2f", hitRate * 100) + "%");
long start = System.currentTimeMillis();
for (int i = 0; i < 1000000; i++) {
m.invoke(null, "1.1.1.1", 1, false);
}
long end = System.currentTimeMillis();
System.out.println("Time: " + ((end - start) / 1000.0) + "us per query");
}
}
[~] About Subscription
The file you download will always work—we guarantee there’s no intentional expiration.
Over time, due to IP reallocation and network changes, the file may become less accurate as new proxies emerge and old ones shift.
To maintain peak accuracy, we recommend renewing your subscription to access the latest version of the database.
Unlike other services, we don’t follow a rigid update schedule. Instead, we release updates only when the accuracy drops below our standards—ensuring you get meaningful improvements, not just unnecessary updates.
There’s no auto-updater—you’ll need to check for new updates manually.
[~] Contact
Discord