Hey everyone!
I wanted to present Geomate, an application that lets you control which game servers you connect to based on their location. The basic idea is simple - you draw circles on a map to define where you want to allow connections, and Geomate handles the rest.
What Does It Do?
- Draw regions on a map to control where your games connect to
- Create separate filters for different games
- Automatically learns and tracks game server IPs while you play
- Whitelist important servers that need to stay accessible
- Has a web interface built into LuCI
How Does It Work?
- Dynamic Learning: Monitors your game connections and collects server IP addresses
- Geolocation: Queries online API to get geographical coordinates of collected IPs
- Note: IP geolocation is not always 100% accurate
- While IP addresses can change locations, gaming servers typically (at least in my experience) maintain stable IPs
- This makes the approach particularly effective for gaming applications
- Filtering Rules: Applies rules based on your defined map regions
- Whitelisting: Allows essential servers regardless of location
- Strict Mode: Controls how untracked connections are handled
Current Status
So far, it's been extensively tested with Call of Duty (MW3, BO6, Warzone) and @choppyc has done some initial testing with Fortnite.
Requirements
- OpenWrt 23.05 or newer
- About 5MB free space (CoD needs around 5MB for its IP lists)
- A router with decent resources (750MHz CPU recommended)
- Basic packages: curl, jq, lua, luci-lua-runtime
Installation
Geomate is designed for easy installation and can be set up with just a few commands. For detailed installation instructions, please refer to the readme.
Important Notes
- Keep "Strict Mode" disabled initially while Geomate learns your game servers
- Some games might need specific servers whitelisted (for matchmaking etc.)
IMPORTANT: Before asking questions, please thoroughly read the README! Most common questions and issues are already addressed there in detail.
Let me know what you think! I'm happy to answer any questions and looking forward to your feedback.
Special thanks to @choppyc for extensive testing and invaluable feedback throughout the development process.
Cod Server Locations: