ServerAdministration

From The Battle for Wesnoth Wiki
Revision as of 13:38, 29 June 2007 by Soliton (talk | contribs) (Future extensions: We've got an ignore list now)

Overview

The Wesnoth server, wesnothd provides a simple interface for administering the server from within the game itself.

To issue an administrative command to the server, you must be connected to the server using Wesnoth, and in the lobby. Any text you type into the chat box that begins with '/query ' will be considered an administrative command instead of a normal chat message. It will not be relayed to other users, but instead treated as a command by the server.

Most commands are not accessible to normal users. They are only accessible once you have authenticated yourself to the server as an administrator. The way to authenticate yourself as an administrator is to use the command,

/query <password>

where <password> is the administrative password to the server. The administrative password is specified as the passwd attribute in wesnothd.cfg. By convention, it will generally start with 'admin ' followed by the actual password, so the usual syntax to authenticate yourself is,

/query admin <passwd>

Naturally the password for a server should be kept a secret. One danger is that if you forget to type '/query ' at the start of a command you may accidentally type the password in a chat message, and let all users on the server know it. If you do this, then notify an administrator who has access to the box as soon as possible, so they can reset the password in wesnothd.cfg. We may provide features to prevent this kind of accident in future versions.

A message from the server should tell you that you have successfully authenticated yourself as an administrator. The server will recognize you as an administrator until the next time you log out of the server.

Available commands

/query metrics (available to non-administrators): this command will show a simple metrics report of how the server has been performing

/query status: this command will show you a list of users connected to the server, with IP addresses, and how long they have been connected. Note that IP addresses of users are not available to non-administrators, and should be treated as confidential. Bans are always done by IP address, and so if you need to ban someone, running /query status to find their ip address is the first step.

/query kick <nick>: this command will disconnect the user with the given nick from the server

/query ban <ip-address>: this command will make the server refuse connections from the given ip address. A range of ip addresses can be specified by using wildcards ('*' and '?'), making it possible to easily ban entire subnets. (Obviously this is very powerful, so should be used carefully).

/query ban <nick>: this command will make the server refuse connections from the ip address used by the given nick. This is usually more convenient than having to work out the user's ip address and type it in

/query ban: running 'ban' without any parameters will show a list of currently banned ip addresses

/query kban <nick>: this command is equivalent to 'kick <nick>' 'ban <nick>' -- i.e. bans the user's ip address and disconnects them all in one go. The most common way to ban someone from the server.

/query unban <ip-address>: this command will remove the specified ip address from the ban list

/query motd <message>: this command sets the message of the day that appears as the first message users get when they log on to the server.

note: Avoid using it without an argument as that currently crashes the server.

/query msg <message>: this command will relay the message 'message' to all users on the server, even if they are in a game. The message will appear to come from 'server', so you should write your name as part of the message if it is necessary to show who it comes from.

Future extensions

The current administrative interface is fairly primitive. We plan to provide some further extensions in the future, such as,

/query mute <nick>: makes it so that any messages sent by the user with the given nick will not be received by any other user on the server unless they share an IP address with 'nick'. Any games created by 'nick' will likewise not be seen by other users. 'nick' may observe games but will not appear in the observer list, and players of the game will not see any messages they type.