Privacy policy
A plain account of what GeoRestrict needs, what it stores, and what remains under the server owner's control.
Effective 15 July 2026. Applies to GeoRestrict v2.0.0 and the public services maintained for it.
Who controls the data?
The Minecraft server owner chooses whether to install GeoRestrict, which rules to enforce, how long the plugin cache lasts, and whether Discord notifications are enabled. That operator is responsible for telling their community how connection data is used and for following the privacy rules that apply to their server. Demonz Development maintains the open-source plugin, the public Worker, the documentation site, and the protected fallback server.
Data the plugin processes
| Data | Why it is used | Where it may go |
|---|---|---|
| Connection IP address | Country, ASN and VPN/proxy checks | Local plugin cache; configured Worker; a configured provider on a Worker-cache miss; protected fallback server after provider failure |
| Country, ASN, AS/ISP name and network flags | Apply the operator's rules | Local plugin cache and Worker caches |
| Player name and decision details | Optional operator notifications | Only the operator's Discord webhook when that feature is enabled |
| Aggregate plugin metrics | Understand platform/version usage | bStats, when metrics are enabled by the platform configuration |
Lookup path and retention
- Plugin cache:
plugins/GeoRestrict/geo_cache.jsonstores successful lookup results. The default lifetime is 30 days and the operator can set it from 1 to 365 days. The cache has a configurable size cap. - Worker cache: successful public Worker responses are cached for up to 24 hours.
- Providers: a cache miss is sent to providers in the configured order. The live Worker uses IPinfo Lite first. Each provider processes requests under its own privacy terms.
- Fallback server: after the external providers fail, the Worker may send the IP to a protected server that reads DB-IP Lite Country and ASN files locally. The application does not write player IPs to its logs or call another lookup API for that request.
- Infrastructure logs: Cloudflare, the web host, network proxies, and hosting providers may create ordinary access, abuse-prevention, or security logs under their own policies even when the GeoRestrict application does not create a player log.
Discord, metrics and update checks
Discord notifications are optional. When enabled, the operator chooses the fields sent to their webhook. The default fields include player name, decision, masked IP, country, ASN, ISP and reason; discord.maskIp is on by default. Turning masking off sends the full address to Discord.
GeoRestrict uses ordinary aggregate bStats metrics with separate platform IDs. The plugin does not send player names or player IP addresses to bStats. Its update checker asks Modrinth for the latest project version and does not add player information to that request.
Removing data and changing the setup
An operator can clear local lookup data with /georestrict purgecache, disable Discord delivery by removing the webhook, or uninstall the plugin and delete plugins/GeoRestrict/. Worker cache entries expire automatically. A player who has a privacy question should contact the owner of the Minecraft server they joined, because that operator controls the plugin configuration and local cache.
Children and sensitive communities
Minecraft communities can include younger players. GeoRestrict is an administration tool, not a service intended to collect profiles from children. Server owners should use only the data they need, keep IP masking enabled, avoid unnecessary allowed-player notifications, and provide any notices or consent required in their region.
Sources, changes and contact
Primary country and ASN data is supplied by IPinfo Lite. Fallback Country and ASN data comes from DB-IP Lite under CC BY 4.0. Material policy changes will be recorded in the changelog and dated on this page.
For a privacy question, bug report, or concern, open a GitHub issue without including a player IP, or join the Demonz Development Discord. We want to hear when the plugin is unclear or gets something wrong.