I have written different tools in order to easily moderate zCatch servers.
Discord Moderation Tools
In order to easily moderate multiple zCatch servers from Discord, I have created the Moderation Tools. These tools allow for each zCatch server’s chat logs, vote logs, and some more to be visible in a dedicated channel of a Discord server. There are two access levels, the moderators and the single administrator, where moderators have access to a limited predefined (manually in a config file) number of server commmands. This tool allows to read the server chat as well as react to is via rcon (remote console) commands. Moderators can only execute predefined commands, the administrator can execute any command. Votes can be forced or aborted by reacting to Discord emotes that become visible when someone starts a vote. It is also possible to keep track of players with their IPs, especially in cases where they do stuff like flaming, bapassing bans and so on. It’s also possible to request a list of IPs that that player has been playing with for the past week, if needed for banning purposes.
VPN Detection for Teeworlds/zCatch
Is a tool that can be used to permanently ban IPs across multiple Teeworlds servers as well as a VPN detection. The initial purpose was to use some openly and freely accessible VPN detection APIs in order to check joining players against those. The IPs are then cached for an extended period of time in a redis database before being checked again. This initial purpose has been extended with the functionality to manually add IP ranges from VPN lists that can be found on github. Redis being an in memory database has its limits, but might suffice for a few million IPs. A basic reason for each ban as well as the ban time can be adjusted in the settings. Manually added IPs and IP ranges can have a custom ban reason. It’s also possible to remove and whitelist specific IPs forever if they are false positives.
Teeworlds Server Status Bot for Discord
This bot can be used as a Teeworlds Server Browser substitute that checks a list of Teeworlds servers for online players. In order not to flood those servers periodically, the approach of this too is to only request information from known and registered servers as well as not to periodically request and cache the data, but request the data just in time, meaning, after a Discord users executes the command.