Installation
The plugin jar supports server and proxy families. Separate candidate mod jars support Fabric, Forge and NeoForge dedicated servers. Pick the place where you want players checked.
1. Pick the right jar
The published plugin uses one jar, georestrict-2.0.2.jar. The same file works on:
- Bukkit 1.16+ (Spigot, Paper, Purpur, ...)
- Folia 1.20+ — detected at runtime, region-aware scheduler is used automatically
- BungeeCord, Waterfall
- Velocity 3.2.0+
The v2.0.1 jar was started successfully on current Paper, Purpur, Folia, BungeeCord, Waterfall and Velocity builds. The exact test versions are recorded in the GitHub README.
2. Install
Bukkit / Paper / Folia / Spigot
cd /path/to/server
cp georestrict-2.0.2.jar plugins/
./start.sh # or systemctl restart minecraft
BungeeCord / Waterfall
cd /path/to/proxy
cp georestrict-2.0.2.jar plugins/
./start.sh
Velocity
cd /path/to/velocity
cp georestrict-2.0.2.jar plugins/
./start.sh
Pumpkin native candidate
Pumpkin uses a separate Rust/WASI plugin with its rule engine inside the server. It supports native Java and Bedrock login events and does not need Java or a companion admission service.
rustup target add wasm32-wasip2
cargo build --locked --release --target wasm32-wasip2 --manifest-path adapters/pumpkin/Cargo.toml
# Copy adapters/pumpkin/target/wasm32-wasip2/release/georestrict_pumpkin.wasm into Pumpkin's plugins folder.
Approve its own-folder file access and outbound HTTP permissions in Pumpkin. Configure plugins/data/georestrict/config.yml; local blocking is disabled by default. Commands include /gr info, /gr reload, /gr check <ip> and /gr cache clear. Native Bedrock players use the same Bedrock bypass settings. Read the release evidence for the exact tested server version.
Fabric / Forge / NeoForge candidate mods
The unreleased v2.1.0 source includes dedicated-server mods targeting Minecraft 1.20 through 26.3. Build them from the repository with Maven and JDK 17 or newer:
mvn -f mods/pom.xml package
# Select the jar matching your dedicated server's loader:
cp mods/fabric/target/georestrict-fabric-2.1.0.jar /path/to/server/mods/
# Forge: mods/forge/target/georestrict-forge-2.1.0.jar
# NeoForge: mods/neoforge/target/georestrict-neoforge-2.1.0.jar
Restart the server. Clients do not need GeoRestrict, and Fabric API is not required. The configuration is created at config/georestrict/config.yml. Commands use Minecraft's native administrator permissions. Minecraft 1.20–1.20.4 needs Java 17, 1.20.5–1.21.11 needs Java 21, and 26.x needs Java 25.
These candidate jars are not published on Modrinth yet. Keep local blocking disabled on a backend that sees only its proxy's address until trusted player-IP forwarding is configured.
3. Verify the install
On startup you should see this in the console:
[GeoRestrict] GeoRestrict v2.1.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
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
Remove the jar and restart. Plugin configuration and cache are under plugins/GeoRestrict/ (or plugins/georestrict/ on Velocity); mod configuration and cache are under config/georestrict/. Remove that component's directory if you also want to discard its settings.