BZExcess

Is there such a thing as too much BZFlag?

BZTips #3 – Commands for admins – Part 1

by blast on 2009-04-10, no comments

The various server commands and client commands/options that BZFlag offers can be a huge benefit to server administrators and cops if used to their full potential.

This BZTips session will cover how to use some of the server side commands for typical server administration. I will not be covering all of the server commands, just the ones that are typically used by an admin or a cop. A typically server owner will have additional commands that an admin or cop will not have access to.

Commands are entered as chat, so you would first bring up the chat option by pressing ‘n’ on your keyboard.

/clientquery

This command will output the build string from every user’s client. This includes the version, build date, and operating system. I’m just covering this command briefly because some admins/cops think that by checking the version and/or build date of the client, you can determine if someone is using a cheat client. This assumption is horribly incorrect, especially for people on Linux. Even on Windows, there are people who build their own client simply to run the latest development code in order to find any bugs or to run code where bugs have been fixed. A real cheater could just fake the clientquery response anyway, so this is NOT a way to find if someone is cheating. Please do not rely on it.

/viewreports

Some players will leave reports on the server. Some of these reports may require the server owner’s help in tracking down a problem, but there are times when an admin/cop can handle an issue. By using the /viewreports command, you can view all the reports that have been left on the server.

NOTE: The server owner will have to be the one to manually clear out old reports. There is no integrated mechanism to clear them out, so it needs direct file-system access.

/flag

By itself, this command won’t do anything. The flag command has several sub-commands you can call. I think that “reset” and “take” are the main ones that are useful for a typical situation, so I will cover those two sub-commands.

/flag reset

The “reset” sub-command itself won’t do anything either. The flag reset command requires that you specific what flags you want to be reset. When a flag is reset, it will respawn in a new area. This is typically done to balance out the flags after a long period of play, or to bring back a team flag after a flag runner has carried it partially to the other team.

/flag reset all

This would reset every single flag on the map, even if a player is holding it. It also resets team flags.

/flag reset unused

This would reset all flags that are not being held by players. From what I recall, this includes team flags.

/flag reset team

This would reset only team flags.

/flag reset G*

This would reset only the Green Flag. You can use B* for Blue, R* for Red, and P* for Purple. This can also be used to reset more than just team flags, such as if you wanted to reset all Genocide flags. You can view the list of flag abbreviations at the flag list wiki page.

/flag take

The flag take command will allow you to make a player drop their flag. This can be used if a player has taken their own team flag outside of their base, but not gone very far. It will drop the flag where they currently are. If it’s a non-team flag, there is a chance that it will respawn somewhere else. The other use of this would be to take away a SW or a SR from a tank that is shooting or driving near teammates. It’s definately nicer than /kill’ing them, though it does require a bit more typing. Here’s an example. If you run this:

/flag take blast

You would see:

[SERVER->] Argooon took flag L/70 from blast

The player you took the flag from doesn’t see a message about who made them drop it.

/playerlist

The playerlist command will provide the slot number, callsign, IP address, and hostname of every user on the server. You can use this information for bans. Here is an example of the output:

[SERVER->] [1]Argooon : 206.222.24.18 (porteighty.org)

In this instance, 1 is the slot number, “Argooon” is the player’s name, 206.222.24.18 is the IP address, and porteighty.org is the hostname.

NOTE: Although you can use the slot number to issue kicks and bans, I recommend NOT using this because it’s too easy to kick/ban the wrong person.

/mute and /unmute

The mute and unmute commands can be used as a step before a kick or ban is necessary. If someone is using profanity, you can mute them instead of kicking them. When a player is muted, they can only send chat messages to the admin channel. This is a good way to prevent someone from talking for a short period of time so you can speak to them and ask them to stop. You can unmute someone with the unmute command. To use the mute or unmute command, provide the username or player slot of who you want to mute after the command. For example, using the following command:

/mute Argooon

would show this to the admin:

[SERVER->] player id #1 "Argooon" is now muted.

and this to Argooon:

[SERVER->] You have been muted by blast.

It would also show similar messages when you unmute someone.

/kick

The kick command will remove a specific player from the server. You typically use this after a verbal warning, as this will definitely get their attention. You can provide a player callsign, followed by a kick reason. If their name has any spaces, you need to put their name in double quotes. Here is two examples of how to kick someone, the first without spaces in the name, and the second example with spaces:

/kick Argooon Please stop killing your teammates.

/kick “You got owned” Profanity is not allowed on this server.

Well, that’s all for this section of the BZTip. I will be posting how to use the various ban commands in part 2 next week! (Yes, there is enough of them that I can make an entire blog post just for them – 11 commands)