WAB is the Wolfenstein Admin Bot, a perl-based auto attendant for Return to Caste Wolfenstein servers. At this time it is only known to work on Linux (although it may well work on Windows with perl installed; let me know if you try it). WAB's focus is on getting rid of Team Killers, fast, although it also gives you name and IP banning, and nick/IP protection, and allows you to change the length of time on a round. WAB works by a combination of tailing your server's log files and using RCON commands. Its anti-TK logic is much more sophisticated than simply looking at scores, and will kick most intentional TKers in two to three TKs.
WAB is the Wolfenstein Administration Bot. Documentation is light right now, but I wanted to get this out into the community ASAP in an attempt to clean things up a little. Updates should be frequent for the next little bit (this is written October 14, 2001). Check for them at: http://www.baz.com/quark/software/wab/ See INSTALL for installation instructions. Read wolf.cfg for basic configuration file instructions. See UPGRADING for upgrading instructions. OVERVIEW The philosophy behind WAB is to, as much as possible, automate the administration of a Return to Castle Wolfenstein server. The three main areas WAB is designed to perform actions are: 1) Overall Server Administration. As much as possible, WAB should keep the server running smoothly on its own. In cases where this is not possible, it should make tools available to help human administrators do their job as easily as possible. 2) Minimize Annoying Players. This is useful for all severs, Friendly-Fire or not. 3) Eliminate Intentional Team-Killing. Obviously, if you have "friendly fire" off, this doesn't do very much. The documention below is broken into these sections, so that you may better undestand what the point of a specific feature is. This document is intended (for now) to be an overview of the capabilities; to learn exactly how a feature is used, please see the wab.cfg file distributed with WAB. Below, when a mention is made of, for example, "[server]:kill_server", that means the variable "kill_server" in the section "server" in your wab.cfg file. OVERALL SERVER ADMINISTRATION WAB has several features to help make your server run more smoothly. The most useful (and most experiemental) is the kill server functionality: Kill Server Functionality Wolfenstein for Linux has a bug that, about once every three days, it stops responding and will print "Server not running" to any command given on the console. If [server]:kill_server is set to a nonzero value, WAB will attempt to detect this and kill the server if it happens. NB: This is EXPERIMENTAL. As this only happens once every three days, it is difficult for me to figure out exactly why it may not work (or notice if I've broken it). If you wish to try this feature, please run wab with the -D (debug) flag, and, if you have success, let me know. If you have a failure (i.e., WAB killing your server over and over gain), please email me the debug file (preferably cut down to the relevant part). As of 0.91f, I have tested this extensively on a SIMULATED server, but haven't yet seen it in the wild, again. So, I feel reasonably confident about it, but it's still not fully tested. I recommend turning it on, and expect it to be on by default in the next release. Message of the Day The [server]:motd variable allows you to specify a message of the day that will be spammed - er - BROADCAST to your users periodically. You can let them know of rules, where your server home page is, etc. Logging WAB logs things more clearly than the server logs, and includes IP information, so you can much more easily see where people come from and what they do. Nick Protection/Logins Using the [user] section, you may specify users by a combination of IP and nickname. Nicks can be protected (so that those not connecting from the correct IP are kicked automatically), and other offenses from them can be ignored. Finally, there is an "admin" flag which, if set, allows that user to say "kick <user>" or "clientkick <clientID>". If there is a collision in the case of the "kick" command, a summary of client IDs that match the kick will be provided, allowing you to use the clientkick command to kick the offender. As with all name functionality, colors are ignored by WAB; ^1N^2A^3M^4E is the same as NAME. Finally, you should have one [user] block for each user, not multiple names under one block. Also note that, beginning with 0.91f, "kick <user>" does not take a regexp. MINIMIZE ANNOYING PLAYERS Annoying players are those who have ridiculously bad scores (taking up slots better used by good players), and annoying names. WAB can kick these players, and, in extreme cases, ban them: Bad Scores The [server]:min_score variable sets a minimum bar. Players with a score lower than this value will be kicked, assuming [server]:enforce_score is one. Annoying Names Simply add any keywords you wish to filter on to the [server]:illegal_names variable. Finally! A server free of third-grade-level potty humor names! As with all name functionality, colors are ignored by WAB; ^1N^2A^3M^4E is the same as NAME. Banning by Name You can effectively ban by name if you create a [user] section with that person's name in the [user]:name field, and set [user]:protect_nick to 1, and do not set any IPs that the user is allowed to login from. As with all name functionality, colors are ignored by WAB; ^1N^2A^3M^4E is the same as NAME. Banning by IP Finally, if you just never want to see someone again, add his IP to an [ip] section, one section per IP you wish to ban. ELIMINATE INTENTIONAL TEAM-KILLING In addition to the score items under the "Annoying Players" section, WAB can further help combat TKs. WAB watches what happens in a match and tries to make decisions based upon what is happening. Players who TK are given "points"; when a player has more than [anti_tk]:max_tk_score points (by default, 99), he gets kicked and banned for [anti_tk]:tk_ban seconds (by default, 300, or five minutes). The scoring varies depending on consecutive kills, the weapon used, and so on. The goal with this system is to use both how TKs act and how their legimiate teammates react to try to make decisions about TKs. There are three basic types of TK recognized by WAB: Simple Team Killing This is, quite simply, one person killing another on a given team. Points are assessed depending on the weapon used; the default point values given in the configuration file are designed such that weapons that it is easy to accidentally kill with (the Panzerfaust, for example) get fewer points than those it is difficult to accidentally kill with (the sniper rifle, for example). The same basic point values are used to assess the other types, as well. Revenge Killing If someone kills you, and then you kill them, this isn't considered a TK. It's considered a "revenge killing" and actually gives the VICTIM points. The logic behind this is, if I kill you, and you come back and kill me, it's probably because you feel I was doing it on purpose. Vigilante Killing If you're standing around and see someone TK a teammate, and your reaction is to kill the TKer yourself, that is considered a major indictment of the TKer - you get no points, and the TK gets a lot. Finally, in one of WAB's coolest features, if users who have the admin flag set revenge kill or vigilante kill, the victim gets enough points to kick him. In plain English - if you're an admin, and you see someone kill a teammate, intentionally - just go kill him, and he'll be kicked! Similarly, if you get intentionally TKed, when you respawn, just go kill the guy, and he'll be kicked. CONTROLLING WAB If you make a change to your configuration file and want WAB to see it, simply send WAB the "HUP" signal ("killall -HUP wab" under Linux). If you think there is a problem and you'd like to send me WAB's internal state, do a "killall -USR1 wab", and it will create a file called "wab_debug.log" in the directory it was run from, and BUGS: WAB may not work with Wolf Stats, since Wolf Stats rotates the log out from under WAB (which is pretty durn rude if you ask me; how would it like it if WAB rotated them out from under it?). If WAB periodically just stops working, this is probably why. For now, you can give WAB a HUP signal to restart it. I hope to have a workaround in for this Real Soon Now; see Bug 2 (http://littleboy.tqchallenge.org/pgzilla/show_bug.cgi?id=2) if you'd like more status or to help with this bug. See: http://littleboy.tqchallenge.org/pgzilla/buglist.cgi?&cmdtype=runnamed&namedcmd=0.92%20Bugs for up-to-date bug information, and to add bugs.
There are no comments yet. Be the first!