OriginGate checks where each player connects from on Bukkit/Spigot/Paper, BungeeCord, and Velocity. It can kick players who use a VPN or proxy, or who connect from a country you do not allow. Checks finish before world admission or the first backend connection.
- IP data from proxycheck.io, IPHub, ip-api.com, IPinfo, or a local MaxMind GeoLite2 file. You choose which, and can combine them.
- Lookups are saved (SQLite, or MySQL/MariaDB), so each IP is looked up at most once every 30 days by default.
- Every rule is optional and has its own bypass permissions.
- Dry-run mode shows what would happen without kicking anyone.
| Platform | Requirement | JAR |
|---|---|---|
| Bukkit / Spigot / Paper | Minecraft 1.7.2 or newer, Java 8 or newer (also meet your server's Java requirement) | OriginGate-Bukkit-<version>.jar |
| BungeeCord | 1.21-R0.4 API or newer with asynchronous PostLoginEvent, Java 11 or newer |
OriginGate-BungeeCord-<version>.jar |
| Velocity | 3.4.0 or newer, Java 21 or newer | OriginGate-Velocity-<version>.jar |
See compatibility for tested builds and the reconnect requirement on old offline-mode CraftBukkit.
A proxycheck.io API key is optional. Without one, proxycheck.io allows 100 lookups per day; a free account raises that to 1,000.
- Download the JAR for your platform from releases and put it in its
pluginsfolder. - Start the server or proxy. OriginGate creates
config.ymlandmessages.ymlinplugins/OriginGate(Bukkit/BungeeCord) orplugins/origingate(Velocity). - In
config.yml, add your API keys and turn on the rules you want. Start withdry-run: true. - Run
origingate reloadin the console.
Read the docs on the web at kaizenmc.id/software/origingate, or here on GitHub:
- Overview
- Installation
- Rollout checklist
- Configuration
- Messages
- Lookup providers
- How it works
- Commands and permissions
- Storage and privacy
- Compatibility
- Changelog
Working on OriginGate itself? See contributing.
GPL-3.0-only. See LICENSE and THIRD_PARTY_NOTICES.md.
