Table of Contents

New mod? Read this

:!: Parts of this article have been split off to Beginner’s guide to UrT and DSWP features.

This is an expansion of AimMe’s original post on the forum three years ago. Some things have changed, many things have been added, and some things he didn’t talk about. There’s a good chance that most mods and admins regardless of their experience, not to mention lowly level 1 players, would find something useful here. (Just a quick reminder: you’re not expected to understand everything.)

Most of what’s discussed here holds true for the DSWP TDM server; not all of these tools are usable with / have versions for our BOMB, JUMP & TS servers. In case you come here from somewhere else, your home server probably has B3 and Echelon, most likely XLRStats, but the command levels and available commands are different, the ideas about responsibilities, powers and “good” gameplay are different, and most of the software and API environment is not available (doesn’t mean it can’t be made available, we’re friendly people here and pretty much every piece of DSWP code should be open source. You can always ask; the stuff on our GIT definitely is.)

Daily job as a deity

We are gods: whether minor deities or Creators, doesn’t matter, we shape the world for our subjects. The most important part of admining a server is not being a dick.

Ruling over an empty world kinda sucks, you know.

Using B3 commands

:?: If you have questions about what commands to input where, see Chat and Console in the beginner’s guide. If you absolutely have to input a B3 command so that nobody would see it, use /tell <your slot number> <command> (PM to yourself) — it will appear exactly the same as other chat to you (except for the [brackets] around your name), but only yourself and B3 will see this.

All commands start with ! (with no space before the command itself); for commands that give output, you can use the @ prefix which makes the output public (!nextmap tells the nextmap only to yourself, @nextmap to everyone).

To punish or help a player, you’d use <command> <name or number> <duration for some commands> <reason for some commands>, as in !tb unmiezi 1h egregious lack of miezitude, which would ban the player named unmiezi for one hour, logging “egregious lack of miezitude” as the reason (reasons for kicks and bans are also shown to the affected players after they’re forcibly disconnected, and logged in Echelon). Regardless of command, you can use just a part of the player’s name (unm or ezi would do in this case); if two or more players match, B3 will ignore the command and tell you their names and slot numbers.

There are several ways using names can fail.

Say we have a player called .45cal, slot number 7. !k 45 tk B3 considers a slot number, and kicks the player number 45 instead (if such exists) — as long as the part of the name you’re using starts with at least one and at most two digits, it will be misinterpreted as slot number. You’d have to use cal or 7 to get rid of this player.

Additionally, any namepart must be at least two characters, ensuring you’ll have to always use the slot number to get rid of people calling themselves . or z. (This doesn’t cause any real problems, B3 simply gives you an error message.)

The most useful commands are:

You can warn without giving a reason (in which case the warning will be “behave yourself”), but other penalties do require one. You want to use these abbreviations (expanded by B3 into full warning) for the most common reasons:

There’s an automatically updated B3 command listing for each server that includes short usage explanation and minimum level required. Note that occasionally things change and command levels on different servers go out of sync; this is unintended and reports are welcome.

Remember not to over-police; if there's nothing disrupting the gameplay, just enjoy yourself, it gives better results than attempting to make everything perfect.

Banning

If in doubt, don’t. Don’t kick either. Take a demo and post it; others can have a look and reach a decision. Banning is not a race, it’s possible to do it later, whether the cheater is in-game or not.

After the semi-recent change the previously admin-only (level 60 and above) !b command is now accessible to mods (level 40), but instead of a month, it only bans for three days. !tb allows you to specify any duration up to 7 days.

Thanks to the Autotopic plugin for B3, every ban equal to or longer than 3 days creates a thread in the Lamas corner; this thread is posted under your name and behaves exactly the same as if you posted it, which among other things means you can simply delete the occasional double posts. You have to attach the demo of the cheater to this thread so that admins could watch it and decide whether to extend the ban. The poll at the top of each such thread was initially supposed to auto-extend bans if enough people voted yes, but extending has not been working from the very beginning and will probably remain so.

Note that although Autotopic inserts links to cheater’s XLRStats and Echelon pages, you still should do !id while recording the demo; it helps to unambiguously identify the cheater (occasionally there can be some doubt whether the demo shows the right player / whether the banned player is the same you recorded), and, well, sometimes Autotopic just falls flat on its face and has to be restarted. In which case you have to post everything manually, like in ye olden times.

In case the cheater/teamkiller happens to disconnect or get kicked, you can still ban them using their B3 ID — you did !id them, right? (Even if you didn’t, you can still use !lookup or find their B3 ID on their Echelon page.) The relevant part is the usually six-figure number starting with @ — you just do !b @123456 and that’s it. (Other commands work too, within reasonable limits, of course — slapping someone not connected wouldn’t make a whole lot of sense, but doing !follow for a suspicious player is a useful trick.) Be careful and always double-check the @ID: mods cannot undo bans and have to ask admins to do so.

Balancing teams

“Winning” or “losing” has no real meaning on this (fun-oriented) server; we talk about “balanced” and “unbalanced” teams instead. Balanced teams ideally mean that most of the action occurs in the middle part of the map, with minimal spawnkilling possible, and the team scores are approximately equal (say, 150:120 is still pretty balanced). Balancing is kind of an art, depending on the map (on campy maps, balance is less of an issue since most people stay on their side), skill of the players, aggressiveness of the players, etc. Generally speaking, if the scores aren’t too far apart, if you’re not running into teammates near the opposing spawn or being constantly under attack in/at your own spawn, balance is best left alone. In case you’re skilled enough, just changing to the opposing team can do wonders.2)

After adding team balancer to the Poweradminurt plugin, the tolerance for the count-based balancing command !teams was relaxed (you now need more than three-people difference for this to have any effect), and the new magic word is !bal that balances the teams based on the players’ current XLRStats skill. Beware: this command can be highly annoying, in some cases changing more than half the players at once (including mods and admins who are immune to !teams). Use !bal only when teams are badly unbalanced, otherwise rely on !force and !change.

Hints or tips

Commonly called “Pirat hints” after the inventor and most active user of these, they are useful tips bound to keys and utilizing the !! (aka !say) command, allowing you to use colors and help people even while you sit in spec. Example:

bind x "say !!^2HINT^7: Press '^2Q^7' or '^2A^7' to ^2bandage yourself^7 or ^2heal others^7."

(It’s “Q or A” due to AZERTY-using players who are rather common here. 3) Note that say in this example is not a B3 command but an UrT command, forcing the following string being interpreted as chat, not a command string. (Yeah, kinda confusing.) Since the strings must be surrounded by double quotes ("), you have to use single quotes (') in the tips. If typed directly into chat, double quotes show up as spaces; use duplicated single quotes ('') to fake double quotes.

Numbers prefixed with caret are Quake color codes, useful for highlighting important parts of the string (see the beginner’s guide for details.

Tips used by Pirat:

"say !!^2HINT^7: Press '^2Q^7' or '^2A^7' to ^2bandage yourself^7 or ^2heal others^7."
"say !!^2HINT^7: ^2Change weapons^7 with keys '^21^7' (^1KNIFE^7) to '^25^7' (or '6' in bomb mode) or ^2mouse wheel^7."
"say !!^2HINT^7: Press key '^2N^7' to ^2change weapon mode^7."
"say !!^2HINT^7: Press '^2CTRL^7' to ^2open/close doors^7 and defuse bomb."
"say !!^2HINT^7: Cheating? Take demo (F12), say '!admin <name> is cheating', then visit dswp.de/postdemo"
"say !!^2HINT^7: ^1When we think camping is killing the fun, we stop it.^7" // explaining why campers are warned and kicked, rather than relying on might and right alone
"say !!^2HINT^7: Say '^2!fa^7' to ^2forgive all^7 who attacked you, or they might get kicked."
"say !!^2HINT^7: Say '^2!fp^7' to ^2forgive someone^7 who just attacked you, or they might be kicked."
"say !!^2HINT^7: Press '^2E^7' to ^2SPRINT^7 (i.e. run faster)."
"say !!^2HINT^7: Press ^2F5^7 to ^2call a medic^7, so your team can locate you."
"say !!^2HINT^7: To ^2kill yourself^7, hit ^2Shift-ESC^7, then type: ^2/kill^7" // when someone complains that he’s stuck and asks others to kill him
"say !!^2HINT^7: ^1Spam votes will be vetoed, and the spammer will be kicked!^7"
"say !!^2HINT^7: For ^2hats, shades etc.^7, ^1google^7 for: ^2urbanterror funstuff^7"
"say !!HINT: We usually !veto a '/callvote cyclemap', because it often leads to cyclemap spam."
"say !!HINT: Please kill each other politely, thanks. :-)"
"say !bigtext ^3***^5 No spawnkilling, please! ^3***"
"say !bigtext ^3***^5 No camping (on this map), please! ^3***"

The most useful and commonly-used tips deal with bandaging (press Q) and forgiving (!fp or !fa). Another useful tip to keep ready is one explaining that smoke grenades and HK69 are forbidden here (when you see someone repeatedly joining the game and immediately going back to spec, they’re obviously not seeing or understanding the PM by B3). Mix and match as you see fit.

You can use more tips than you have free keys for binding them: simply define the tips as variables

set tipq "say !!^2HINT^7: Press '^2Q^7' or '^2A^7' to ^2bandage yourself^7 or ^2heal others^7."

and activate them with via the console: vstr tipq. For example, you could have English tips bound to keys, and additionally define the same tips for different languages (tipqde, tipqfr).

Note that depending on the length of your current nick, long lines get chopped into shorter lines in different places and this may mess up the colors (nothing terrible, just some of the highlighted words can lose their color) or introduce unwanted hyphens (especially bad in URLs).

What’s behind the scenes

B3

Big Brother Bot is not actually part of Urban Terror; it’s a multi-platform bot usable on most Quake 3–derived games (including the bane of UrT suggestions forum, Call of Duty series). B3 is first and foremost an rcon mediator, giving selected people access to selected server commands. This means that even the highest-level B3 admins are still equal to the lowliest of peons in the eyes of the game server itself (notably, even though B3 won’t warn or kick you for teamkilling, if you exceed the TK limit set in server config file, the server will kick you nonetheless). B3 is constantly reading the games.log of the server and reacting appropriately whenever it sees an event (warning for a teamkill, immediate kick whenever a banned GUID tries to connect, etc). B3 is also maintaining two databases: GUID-based penalty database (UrT itself only allows IP-based bans, logs no kicks and issues no warnings), also accessible via the web interface called Echelon; and XLRStats database for players’ kills, deaths and other assorted stuff.

XLRStats

XLRStats is the statistics plugin for B3, working in real time; usually the servers that have bot also have stats enabled. Most of the names you see on the main DSWP site are links to stats pages (JRandomNoob’s page hereby offered as an example). While its main function is displaying one’s e-penis in all its glory, XLRStats also provides quick assessment of a player’s nature: suspiciously high ratio? lots of teamkills? horribly noobish? has a tendency to join every hour or so and get kicked within minutes? Additionally, the main page for XLRStats (http://www.dswp.de/old/xlr_stats.php without any parameters) lists top 50s by various parameters, and most importantly, allows you to search players by name. It’s better than Echelon name search, allowing you to search only last-used names (default) or also include aliases (previously-used names).

Echelon

Although there are red Echelon links in the main menu (you did notice them, being a new mod and all, right?), you’ll mostly use Echelon via players’ XLRStats pages. On top of each such page is a link saying “echelon page of this player” — this link both logs you into Echelon and directs you at the relevant stats. Note that your Echelon password, included in the link’s address, is not the same as your forum password. It’s advised to middle-click this link (or right-click and choose “Open in new tab”) — otherwise the Echelon page opens in a new window with inactive address bar.

Players’ GUID and IP are links, clicking on them searches for other occurrences of them. GUID search is useless for our purposes — there’s exactly one match, the same player whose page you are on. IP search is much more interesting: if the player has changed their GUID (whether accidentally or deliberately), their IP might be same or similar, allowing you to find a cheater’s previous identities and possible bans. Here’s where the address bar comes handy — by deleting the last one or several octets (digit groups separated by dots) you can widen the search range and catch all those people with dynamic IPs.

Useful pages on DSWP

Statusxml

(Usable without being logged in; works in Firefox, Safari, Opera, Chrome and pretty much everything other than Internet Explorer) This is a Javascript-using web page, also accessible via the DSWP bar under the Game monitor button, that shows real-time status of the server (players in their teams, their scores, map being played and time remaining). Player names are links that display a popup with basic data about them; Playerstats at the bottom of the popup gives you their XLRStats page.

Recent bans

(Link also displayed in the main menu) Choose admin bans, B3 bans (mostly TK kicks), or both. Names are links that give you the delinquent0r’s (or, if you’re interested, the execut0r’s) XLRStats page.

Chatlog

(Usable without being logged in) The Echelon chatlog shows you the last 500 lines generated by the players (from newer to older; radio messages, B3 warnings, spams & bigtexts are not shown). In its basic form, it makes for a useful tool for keeping an eye on the server (chat being somewhat more expressive than the scores of players…).

In case you want to read chat from a specific date, you can add parameters to the URLtimestamp takes a value expressed as Unix epoch (a converter is available online), and rows allows you to display more lines than the default (the whole chat generated in a day is most commonly between 2000 and 3000 lines — note that excessive amount of lines may take a long-ish time to load). You can use timestamp without rows (in which case 50 lines are displayed), but not vice versa. The chatlog displays timestamps in CET (Central European Time, DSWP native time, and also the timezone most of the players visiting the server live in), which is UTC/GMT +1 hour — remember this when using the converter. The Unix timestamp used in the URLs matches the topmost (newest) line of the chatlog.

Example URL from the moment of writing this:

http://www.dswp.de/echelon/chatlog.php?timestamp=1335987797&rows=1000

Such links are also attached to each penalty registered in Echelon for easy reference (the date is a link). If aimlessbot is on #dswp, it can convert dates into chatlog links with the !chatlog command.

More as a toy we also have chatlog search; this doesn’t allow you to see any real chat though, just counts the occurrences of a given string (you can use % as a wildcard: !slap % 25 shows you who’s slapped people to death the most). Who’s the “cunt” leader? (Knew it.)

Why it’s not working?

!trans in CuntBot/aimlessbot and !translast in B3 (also the autotranslation in Mitsubishi’s UrT build) stopped working when Google killed off their free translation API in December 2011. Currently there’s no replacement; use their web page for translating.

!teams tolerance was relaxed; use !bal instead.

1) No, you can’t lock people into spec, you evil bastard:-P
2) Anecdotal example from DSWP TDM of score not being an absolute indicator of balance: Uptown, teams with equal amount of players, the blue rooftop being under constant attack although red had only half the score of blue. In this case, the teams were unbalanced playstyle wise: mostly aggressive rushers in red, mostly campers in blue.
3) PS : Sur Windows, Urban Terror associe pour les binds les touches du clavier anglo-saxon (qwerty). Donc par exemple lorsque vous voulez associer la touche A à un bind, vous devez écrire bind q "ut_radio 5 5", Q étant à la place de A dans le clavier qwerty. (Des binds radio évolués)