This is what you need to know to run a server

bzfs - BZFlag game server
bzfs [-a velocity rotation] [-admsg message] [-b] [-ban address[,...]] [-c] [-cr] [+f {good|flag-id}]
[-f {bad|flag-id}] [-fb] [-g] [-h] [-help] [-i interface] [-j] [-lagdrop warn-count]
[-lagwarn time/ms] [-maxidle time/s] [-mo observer-count] [-mp {count|[rogue-count],[red-count],
[green-count],[blue-count],[purple-count]}] [-mps {max-score}] [-ms shots] [-mts {max-score}]
[-noudp] [-p port] [-passwd password] [-pr port] [-public description] [-publicaddr address[:port]]
[-publiclist url] [-q] [+r] [-r] [-requireudp] [+s flag-count] [-s flag-count] [-sa]
[-srvmsg message] [-st time] [-sw count] [-synctime] [-t] [-time time-limit] [-tk]
[-tkkr percent] [-ttl ttl] [-version] [-world world-file]
Bzfs is the server for BZFlag, and it must be running to play.
It can be run on any system on the network (including a player's
system or one without graphics). Terminating the server terminates the game in progress. 

Each Option explained:

-a velocity rotation 
Enables inertia and sets the maximum linear and angular accelerations.
The units are somewhat arbitrary so you'll have to experiment to find suitable values.
The values must be non-negative and higher values yield greater inertia.
-admsg message 
Define a message which will be broadcast to all players every 15 minutes.
-b WHEN -c is supplied, this option randomly rotates the buildings.

Prohibits connections from the listed addresses. Trailing 255 bytes are treated as mask bytes.
Enables the capture-the-flag style game. By default, the free-for-all style is used.
Enables the capture-the-flag style game with random map. By default, the free-for-all
style is used. 

+f {good|flag-id} 
Forces the existence of the given flag. If specified multiple times for the same flag-id,
then that many flags will appear. The good argument is equivalent to specifying +f once for
each kind of good flag. 

-f {bad|flag-id} 
Disallows random flags of the given type. Required flags given by the +f option
are still provided. The bad argument is equivalent to specifying -f once for each
kind of bad flag.
Allow flags on box buildings.
Quit after serving one game.
Buildings are given random heights.
Shows a help page and lists all the valid flag id's.
-i interface 
Server will listen for and respond to ``pings'' (sent via multicast) on the given interface.
The server uses the first multicast enabled interface by default. Clients use this to
find active servers on the network. This is also the TCP/UDP/IP address the server
will listen on. 

Allows jumping.
-lagdrop warn-count 
Kicks players after warn-count lag warnings.
-lagwarn time/ms 
Send warnings to players that lag more than time.
-maxidle time/s 
Kick players that did not play longer than time seconds.
Pausing players are not kicked. If a player uttered a word recently,
he will be kicked after thrice the given time.
-mo observer-count 
Sets the maximum number of observers; defaults to 3
-mp {count|[rogue],[red],[green],[blue],[purple]} 
Sets the maximum number of players, total or per team. A single value sets the total
number of players allowed. Five comma separated values set the maximum for each team.
If a count is left blank then no limit is set for that team, except for the limit
on the total number of players. Boths forms may be provided. 

-mps max-score 
Sets a maximum score for individual players. The first player to reach this score
is declared the winner and the game is over.
-ms shots 
Allows up to shots simultaneous shots for each player. This is 1 by default.
-mts max-score 
Sets a maximum score for teams. The first team to reach this score is declared
the winner and the game is over.
Do not use a parallel UDP channel for player communication.
-p port 
Listen for game connections on port instead of the default port.
Use -help to print the default port.
-passwd password 
Specify a server administrator password for use in remote
administration such as /kick messages.
-pr port 
Listen for reconnects on port. The current bzflag protocol is a little braindead
in that it requires clients to reconnect to another port after having registered
on the main port. Both this and the main port must be open for incoming TCP connections.
-public description 
Advertise this server on the internet with the given description. By default,
a server will respond to broadcast or multicast queries, allowing clients to
find servers on the local subnet or accessible through multicast routers. However,
this doesn't allow clients to find servers not accessible via multicast.
The -public option causes the server to register itself with a bzfls server,
which clients can query to get a list of bzfs servers.
-publicaddr address[:port] 
Advertise this server with the given address and port.
Only has an effect when used with -public. Normally a server advertises itself at
the local address and port. Some servers are not accessible from the internet at
this address (for example servers behind a firewall using bzfrelay).
Use this option to specify the address and/or port that internet users should use
to access this server.
-publiclist url 
Advertise this server on the bzfls servers listed at url. Only has an effect
when used with -public. A built-in url is used by default. The BZFlag clients
use the same built-in url so, by default, clients will see public servers automatically.
See bzfls for a description of the format of url.
If specified, the server will not listen for nor respond to ``pings''. BZFlag
sends out these pings to give the user a list of available servers. This effectively
makes the server private, especially if the -p option is also used.
Makes most shots ricochet. Super bullets, shock waves, and guided missiles do not.
Allows rogues to join the game. By default, no rogue players are allowed.
Require clients to use parallel UDP. If players fire before opening a UDP channel,
kick them off the server.

+s num-flags 
The server will have an extra num-flags random super flags available at all times.
The -f option can be used to restrict which types of flags will be added.
Required flags given by the +f option are not included in the num-flags total.
-s num-flags 
The server will have up to num-flags random super flags available at any time.
The -f option can be used to restrict which types of flags will be added.
Required flags given by the +f option are not included in the num-flags total.
Antidote flags are provided for players with bad flags.
-srvmsg message 
Define a server welcome message.
-st time 
Bad flags are automatically dropped after time seconds.
-sw count 
Bad flags are automatically dropped after count wins. Capturing a team flag does
not count as a win.
Forces all clients to use the same time of day. The current time is determined by
the server's clock. This disables the + and - keys on the clients.
Adds teleporters to the game.
-time time-limit 
Sets a time limit on the game to time-limit. The game will be stopped
time-limit seconds after the first player connects.
Changes the default behaviour where a player dies when he kills a teammate.
When using this option, he will just get a -1 score penalty for the kill but stay alive.
-tkkr percent 
Kicks players whose team killing to normal kill ratio is greater than percent [1-100].
A start up grace period is given to players.
-ttl time-to-live 
Sets the maximum number of hops a ``ping'' reply will take.
This effectively limits the range of the server in the network.
Clients more than time-to-live hops away will not receive
notification of the server's existence.
Prints the version number of the executable.
-world world-file 
Reads a specific world layout for the game map.


High Speed (V) Boosts top speed by 50%. Quick Turn (A) Boosts turn rate by 50%. Oscillation Overthruster (OO) Let's the tank go through buildings. You cannot back up in or into a building, nor can you shoot while inside. Rapid Fire (F) Increases shot speed and decreases range and reload delay. Machine Gun (MG) Increases shot speed and dramatically decreases range and reload delay. Guided Missile (GM) Shots guide themselves when locked on. The missile can be retargeted at any time during its flight (with the right mouse button). This allows the player some control over the missile's steering. Laser (L) Shoots a laser, with effectively infinite speed and range. Just point and shoot. The binoculars are handy for lining up distant targets. The downside (you knew it was coming) is that the reload time is doubled. Ricochet (R) Shots reflect off walls. It is exceptionally easy to kill yourself with this flag. Super Bullet (SB) Shots can go through buildings (possibly destroying a tank with the oscillation overthruster flag) and can also destroy (phantom) zoned tanks. Stealth (ST) Tank becomes invisible on radar but is still visible out-the-window. Cloaking (CL) Tank becomes invisible out-the-window but is still visible on radar. Invisible Bullet (IB) Shots are invisible on radar (except your own). They are visible out-the-window. Sort of stealth for shots. Tiny (T) Tank becomes much smaller and harder to hit. Narrow (N) Tank becomes paper thin. It's very hard (but not impossible) to hit a narrow tank from the front or back. However, the tank is as long as usual so hitting it from the side has normal difficulty. Shield (SH) Getting shot while in possession of this flag simply drops the flag (instead of destroying the tank). Since the flag may not disappear you may want to wait around for it to fall to the ground so you can grab it again, but, be warned, the shield flag flies for an extra long time (longer than the normal reload time). Steamroller (SR) Tank can destroy other tanks by driving over them (but you must get quite close). Shock Wave (SW) Tank doesn't fire shells. Instead it sends out a shock wave in all directions. Any tank caught in the wave is destroyed (including tanks on or in buildings). Phantom Zone (PZ) Driving through a teleporter phantom zones the tank. A zoned tank cannot shoot, but can drive through buildings and cannot be destroyed except by a Super Bullet or a Shock Wave (or if the team's flag is captured). Genocide (G) Destroying any tank on a team destroys every player on that team. Jumping (JP) Allows the tank to jump. You cannot steer while in the air. Identify (ID) Displays the identity of the closest flag in the vicinity. Masquerade (MQ) You tank looks like a teammate when viewed out of the window. Bullets, radar and targeting reveal your true identity. Burrow {BU} You tank burrows into the ground up to your muzzle, making you impervious to normal shots, as they sail above you. However your tank controls are sluggish, and anyone, no matter what flag they have, can crush you like. Seer (SE) See Stealthed, Cloaked and Masqueraded tanks as normal. Thief (TH) Tank is small and fast, when you shoot an opponent, he is not killed, but instead, you steal his flag. Useless (US) It's useless! A brief description of each bad superflag with the flag's code in parentheses: Colorblindness (CB) Prevents tank from seeing any team information about other tanks. You have to be careful to avoid shooting teammates. Obesity (O) The tank becomes very large and easy to hit. It's so big that it can't fit through teleporters. Left Turn Only (<-) Prevents the tank from turning right. Right Turn Only (->) Prevents the tank from turning left. Momentum (M) Gives the tank a lot of inertia. Blindness (B) Blanks the out-the-window view. The radar still works. It is effectively impossible to detect any tank with Stealth; shooting a Stealth with Blindness is the stuff legends are made of. Jamming (JM) Disables the radar but you can still see. Wide Angle (WA) Gives the tank a fish eye lens that's rather disorienting.

NEW NEW NEW NEW NEW NEW 1.10.2 bzflag server commands

-conf configfilename Specifies the name of a configuration file to be used to set all of the bzfs options, rather than setting them on the command line. -badwords badwordfile Specify a file that contains bad words that will be used when either -filterCallsigns or -filterChat is enabled. -autoTeam Automatically assign players to teams when they connect so that there are an equal number of players on all available teams. Players are placed on teams that have the fewest players, otherrwise they will be placed on the weakest team. Weakest team is the team with the lowest combined kill ratio. -filterCallsigns Turn on the filtering of callsigns. Callsigns are compared against bad words provided via -badwords. -filterChat Turn on the filtering of chat messages. Messages have words provided via a -badwords file are replaced with !@#$%^&* characters. -filterSimple By default, all filtering is aggressive, matching much more than what is strictly listed in a -badwords file for convenience. Providing this option will make the -filterCallsigns and -filterChat comparisons exact match only. -groupdb file Load groups from file this file will allow you to make certain USERS have certain commands such as your admin people, or a limited admin...etc... -helpmsg file name Create a help message accessible by /help name, which prints the contents of file. Restricted to 10 lines per help message -i interface Server will listen for and respond to ``pings'' (sent via multicast) on the given interface. The server uses the first multicast enabled interface by default. Clients use this to find active servers on the network. This is also the TCP/UDP/IP address the server will listen on. -passdb file Load passwords from file this is used i believe for the new register a callsign update-able on the fly file reportfile filename Write messages to the server admin written using the /report command to this file. If neither -reportfile or -reportpipe is used the /report command will be disabled. -reportpipe command Pipe messages to the server admin written using the /report command to this program or shell command. See -reportfile -printscore Write score to stdout whenever it changes -rabbit Enables the rabbit-hunt style game. By default, the free-for-all style is used. -speedtol factor Override the default speed auto kick factor. The factor should not be less then 1.0. The factor is a multiplier. -userdb file Load group associations from file SEE -groupdb? -vetoTime seconds Length of time in which a vote can be vetoed -votePercentage percentage The percentage of yes votes needed in order for the vote to be successful -votesRequired num The number of voters needed to hold a vote -voteTime seconds The length of time the players are able to vote -worldsize world-size changes the size for random maps


Notes The server uses nearly zero CPU time when nobody is playing, and even during a game the server uses very little CPU, so it's not a burden on the system to leave one running and it won't interfere with a player using the same system (except on Windows 95, which really sucks at multitasking). The server will continue to run until terminated. If a game is in progress when the server goes down, all players will be kicked off and the game will be aborted without warning. The server resets itself when all players have quit. All players must quit to reset the server when a game is over (because of a score or time limit). The following game styles are recommended starting points if your new to running a server. -c [-b] Basic capture-the-flag game. It teaches teamwork and dogfighting skills. -r -s -t Free-for-all with superflags and teleporters. Rogues are allowed. Teaches players how to use superflags and teleporters for maximum effect. You may want to allow players to drop bad flags with any of -sa, -st, and -sw. Notice that the maximum number of shots for these styles is one. Having only one shot greatly increases playability and learning speed. Multiple shots decrease the required skill level and make it virtually impossible for even a skilled player to avoid getting shot for any length of time. More experienced players will still dominate the game, but beginners will have an easier time making kills. Networking Communication between the server and clients (i.e. between bzfs and bzflag) during a game is via TCP. Use the -help option to get the server's default port. If there's a firewall between the server and client, the firewall must accept connections from the client to this port and forward them to the server. See bzfrelay for a BZFlag firewall relay. Clients can search for servers by sending and receiving multicast UDP packets. For a client to discover a server, there must be a multicast route between them with fewer hops than the default TTL (time-to-live) which is 8 or whatever the TTL was set to using the -ttl option to bzflag. However, a client can still connect to a server beyond the multicast TTL. Clients can also find servers advertised using -public by querying bzfls servers. Game information is relayed through the server. Some communication between clients, such as position and orientation information, is normally sent via UDP packets. Other data, like flag grab and kill messages, are sent to the server via TCP. The setver then turns around and broadcasts these packets to all players. Since being in a game implies connection to the server, all players are guaranteed to get all messages sent via TCP. But the multicast UDP packets may be discarded. If other players can see your tank in the game but it never appears to move and shots go through it, chances are high that your UDP connection is not working. Try using TCP only on servers that allow it.