1. Pick the right jar

There's only one jar, georestrict-2.0.0.jar. The same file works on:

Java versions belong to both the plugin and the platform. GeoRestrict targets Java 17 bytecode, but modern server releases may require a newer runtime. The final release smoke used Java 25 because Velocity 4.0.0 is compiled for Java 25. Always follow the Java requirement published by your server or proxy.

The final v2.0.0 jar was started successfully on current Paper, Purpur, Folia, BungeeCord, Waterfall and Velocity builds. The exact test versions are recorded in the GitHub README.

Where you install it matters. On a proxied network, the proxy is usually the cleanest place because it sees the original address and can stop the connection before a backend is chosen. Standalone servers can install it directly. A backend behind a proxy only works when IP forwarding is configured correctly.

2. Install

Bukkit / Paper / Folia / Spigot

shell
cd /path/to/server
cp georestrict-2.0.0.jar plugins/
./start.sh   # or systemctl restart minecraft

BungeeCord / Waterfall

shell
cd /path/to/proxy
cp georestrict-2.0.0.jar plugins/
./start.sh

Velocity

shell
cd /path/to/velocity
cp georestrict-2.0.0.jar plugins/
./start.sh

3. Verify the install

On startup you should see this in the console:

console
[GeoRestrict] GeoRestrict v2.0.0 starting...
[GeoRestrict] GeoRestrict enabled.
[GeoRestrict] Demonz Development believes listening to its users comes before anything else.
[GeoRestrict] Found a bug, have a report, or want to share feedback? Join our Discord:
[GeoRestrict] https://discord.com/invite/GYsTt96ypf - we would genuinely love to hear from you.

And a config file at plugins/GeoRestrict/config.yml (Bukkit) or plugins/GeoRestrict/config.yml (Bungee/Velocity).

4. Advanced infrastructure

The generated Worker settings already work. Do not edit them unless you understand the full lookup path and intend to operate the replacement yourself.

Most server owners can stop here. If you need your own Worker, providers or independent fallback server, use the advanced infrastructure reference in the GitHub README. It is the single source for ports, secrets, deployment and security details.

Updating

Replace the jar and restart. Missing config keys are merged with documented defaults while your existing values are kept. configVersion tracks the file schema, not the plugin release.

Uninstalling

Delete the jar, delete plugins/GeoRestrict/, restart. Nothing is written outside that directory.