FAQ
Things people actually ask in support.
Three things matter:
- The plugin sees the HTTP error or timeout (your
connectionTimeoutMsdefault is 3s). - The plugin does not contact a geolocation provider directly. The configured Worker owns the lookup routes.
- If the Worker request still fails, the plugin runs the lookup failure policy. With
blockOnLookupFailure: true(the default) the player is blocked withkickMessageLookupFailure. Set it tofalseif you want the join allowed during an outage.
Fresh cached entries continue to work during the outage because the cache is local to the server.
The player's IP is sent to the configured Worker only when the plugin's local entry is missing or stale. It may then be processed by the services listed in the Privacy Policy. GeoRestrict does not operate a central player dashboard or player analytics service.
Yes. Set asnMode: BLOCKLIST and add the ASNs to asns. To find the ASN for a specific ISP, look up an IP from that ISP on a site like bgp.he.net — the AS number is right there in the result. Put it in as AS12345 (prefix optional).
Look at the actual ISP names that are getting flagged. If you see something like "Hetzner Online GmbH" being blocked because a player happens to be on a hosted Hetzner server at home (rare, but it happens), trim vpnKeywords. The default list is conservative — it only flags well-known VPN/hosting providers — but the threshold depends on your player base.
You can also disable VPN detection entirely with vpnCheckEnabled: false.
Yes, on Velocity 3.2.0 or later. The plugin uses the async login event continuation API. If you're on an older Velocity, upgrade — the API it needs was added in 3.2.0.
Detected at startup. The plugin uses the global region scheduler for the config watcher and the async scheduler for everything else. There's nothing Folia-specific in the rule evaluator — it's just thread-safe maps and concurrent lookups.
It doesn't, usually. Writes are debounced to one every 5 seconds. A burst of cache writes coalesces into a single disk write. On shutdown, one final synchronous save happens.
If the file is changing more often than every five seconds during steady traffic, check whether another tool is touching config.yml and repeatedly triggering reloads, then compare the timestamps with the plugin log.
Yes! GeoRestrict includes a public Developer API (GeoRestrictAPI). Third-party plugins or custom proxy routers can call GeoRestrictAPI.getCountryCode(ip), GeoRestrictAPI.isVpn(ip), GeoRestrictAPI.getAsn(ip), or GeoRestrictAPI.lookup(ip) to perform raw geolocation queries and route players to nearby proxy servers without kicking them or evaluating restriction rules.
Yes, but provider changes belong to the Worker, not the plugin config. Read the advanced infrastructure reference before changing that path.