6:bzfs

From Linux Man Pages

Jump to: navigation, search
      bzfs - BZFlag game server
      

Contents

SYNOPSIS

      bzfs [-a linear angular] [-admsg message] [-advertise groupname[,groupname]...]  [-autoTeam] [-b] [-badwords bad-
      wordfile] [-ban ip[,ip]...]  [-banfile filename] [-c] [-cache worldCacheURL] [-cacheout filename] [-conf  config-
      file]  [-cr]  [-d]  [-density  num] [-disableBots] [+f {good|bad|team||flag-id}[{count}]] [-f {good|bad|flag-id}]
      [-fb] [-filterCallsigns] [-filterChat] [-filterSimple] [-g] [-groupdb file] [-h]  [-handicap]  [-help]  [-helpmsg
      file  name]  [-i interface] [-j] [-lagdrop warn-count] [-lagwarn milliseconds] [-masterBanURL URL] [-maxidle sec-
      onds]  [-mp  {count|[rogue-count],[red-count],[green-count],[blue-count],[purple-count],[observer-count]}]  [-mps
      max-score]  [-ms shots] [-mts max-score] [-noMasterBanlist] [-p port] [-passdb file] [-passwd password] [-pidfile
      filename] [-poll variable=value] [-printscore] [-public description]  [-publicaddr  address[:port]]  [-publiclist
      url]  [-q]  [+r]  [-rabbit  [score|killer|random]]  [-recbuf  size]  [-recbufonly]  [-recdir directory] [-replay]
      [-reportfile filename] [-reportpipe command] [-requireudp] [+s flag-count] [-s flag-count] [-sa] [-sb] [-set name
      value]  [-sl  id num] [-spamtime time] [-spamwarn warnLimit] [-speedtol factor] [-srvmsg message] [-st time] [-sw
      count] [-synctime] [-t] [-tftimeout time-limit] [-time time-limit] [-timemanual] [-tk] [-tkkr  percent]  [-track-
      playhistory] [-ts [micros]] [-userdb file] [-vars file] [-version] [-world world-file] [-worldsize world size]

DESCRIPTION

      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.

OPTIONS

      -a linear angular
                     Sets the maximum linear and angular accelerations.  The units are  somewhat  arbitrary  so  you'll
                     have  to  experiment  to find suitable values. Positive values will set limits to the acceleration
                     and lower they are, greater is the inertia.  Zero or negative values disable acceleration  limits.
 
      -admsg message Define a message which will be broadcast to all players every 15 minutes.  This option can be used
                     multiple times to define a multiline message.
 
      -advertise groupname,groupname,...
                     Allows control of who can see this server on the server list.  Use: -advertise NONE to make a pri-
                     vate  server  (no one will see the server, but global logins can be used). The default, if -adver-
                     tise is not specified, is to allow everyone to see the server.  Otherwise, your server  will  only
                     be listed to members of the groups which you specify, eg: -advertise JOE,BOB.
 
      -autoTeam      Automatically assign players to teams when they connect so that there are an equal number of play-
                     ers on all available teams.  Players are placed on teams that have the fewest  players;  otherwise
                     they  will  be placed on the weakest team.  Weakest team is the team with the lowest combined kill
                     ratio.
 
      -b             When -c is supplied, this option randomly rotates the buildings.
 
      -badwords badwordfile
                     Specify a file that contains bad words that will be used when either -filterCallsigns or  -filter-
                     Chat is enabled.
 
      -ban ip[,ip]...
                     Prohibits  connections from the listed IP addresses. Trailing 255 bytes are treated as mask bytes.
 
      -banfile filename
                     Specifies the name of a file where bzfs will store the banlist. It will load the banlist from this
                     file when it starts (if the file exists), and write the banlist back to the file when someone gets
                     banned or unbanned.  If this option isn't given the banlist will not be saved.
 
      -c             Enables the capture-the-flag style game. By default this allocates one team flag per  team.   This
                     can be modified see +f team. By default, the free-for-all style is used.
 
      -cache worldCacheURL
                     Specifies  the  URL  for  the world cache file. This is a binary file that clients will attempt to
                     download before getting the world from the bzfs server.
 
      -cacheout filename
                     Save the currently specified world into a binary cache file and exit.
 
      -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.
 
      -cr            Enables  the  capture-the-flag  style game with random map.  You can optionally specify a building
                     density by providing a number (default is 5).  One team flag per team is provided, but more can be
                     added thru +f team.  By default, the free-for-all style is used.
 
      -d             Increase debugging level. If more -d is given, more debugging info is obtained.
 
      -density num   Specify  density  for  buildings,  i.e. the higher the integer number, the more buildings you will
                     get. This applies to automatically generated maps only.
 
      -disableBots   Disallow clients from using the ROGER autopilot or from using robots.
 
      +f {good|bad|teamflag-id}[{count}]
                     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. Same goes for the bad argument.  The team argument adds a team flag  to  each  team,
                     assuming that the game style is capture the flag. The optional {count} parameter allows the speci-
                     fication of multiple flags of the same type. Note that the curly braces are required.
 
      -f {good|bad|flag-id}
                     Disallows random flags of the given type.  Required flags given by the +f option  are  still  pro-
                     vided.  The bad argument is equivalent to specifying -f once for each kind of bad flag.  Same goes
                     for good, but you probably do not want to do that.
 
      An example of running a server with 40 to 50 flags except genocide would
                     be "+s40 -s50 -f G".  Similarly, "+f good{40} +f bad{10} -f G{40}" would give you exactly 40  good
                     flags except genocide and 10 of each bad flag.
 
      -fb            Allow flags on box buildings.
 
      -filterCallsigns
                     Turn  on  the  filtering  of  callsigns and email addresses.  Callsigns and addresses are compared
                     against bad words provided via -badwords.
 
      -filterChat    Turn on the filtering of chat messages.  Messages that contain words listed 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 -filter-
                     Chat comparisons exact match only.
 
      -g             Quit after serving one game.
 
      -groupdb file  Load groups from file
 
      -h             Buildings are given random heights.
 
      -handicap      Players  are  given  a handicap advantage based on their ability in relation to the other players.
                     Handicapped players will have faster tanks and shots. The handicap is determined by  the  player's
                     score in relation to other players.
 
      -help          Shows a help page and lists all the valid flag id's.
 
      -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  broadcast)  on  the  given  interface.
                     Clients  use this to find active servers on the network. This is the TCP/UDP/IP address the server
                     will listen on.
 
      -j             Allows jumping.
 
      -lagdrop warn-count
                     Kicks players after warn-count lag warnings.
 
      -lagwarn milliseconds
                     Send warnings to players that lag more than milliseconds.
 
      -masterBanURL URL
                     Specify alternate URLs for the master ban file to be pulled from.  This argument may  be  provided
                     multiple times.
 
      -maxidle seconds
                     Kick  players  that  did not play longer than seconds. Pausing players are not kicked. If a player
                     uttered a word recently, he will be kicked after thrice the given time.
 
      -mp {count|[rogue],[red],[green],[blue],[purple],[observer]}
                     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.
                     Both 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.
 
      -noMasterBanlist
                     Server will not attempt to load the master ban list from the internet.
 
      -p port        Listen  for  game connections on port instead of the default port.  Use -help to print the default
                     port, or use -d debug printing.
 
      -passdb file   Load passwords from file
 
      -passwd password
                     Specify a server administrator password for use in remote  administration  such  as  /kick,  /ban,
                     /mute, etc  messages.
 
      -pidfile filename
                     Specify a file where the server will write its process ID so it may be used for remote administra-
                     tion.
 
      -poll variable=value
                     Configure several aspects of the in-game polling system
 
                     banTime
                            default number of minutes player should be banned (unspecified, the  default is 300)
 
                     vetoTime
                            max seconds authorized user has to abort poll (default is 20)
 
                     votePercentage
                            percentage of players required to affirm a poll (unspecified, the default is 50.1%)
 
                     voteRepeatTime
                            minimum seconds required before a player may request another vote (default is 300)
 
                     votesRequired
                            minimum number of additional votes required to make a vote valid (default is 2)
 
                     voteTime
                            maximum amount of time player has to vote, in seconds (default is 60)
 
      -printscore    Write score to stdout whenever it changes
 
      -public description
                     Advertise this server on the internet with the given  description.   By  default,  a  server  will
                     respond to broadcast queries, allowing clients to find servers running on the standard port on the
                     local subnet.  The -public option causes the server to register itself with a list  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  accessi-
                     ble from the internet at this address (for example servers behind a firewall using Network Address
                     Translation).  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 list servers listed at url.  Only has an effect when used with -pub-
                     lic.  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.  This argument may be provided multiple
                     times to publicize a server to multiple list servers.
 
      -q             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.
 
      +r             Makes most shots ricochet.  Super bullets, shock waves, and guided missiles do not.
 
      -rabbit [score|killer|random]
                     Enables the rabbit-hunt style game.  By default, the free-for-all style is used.  You must specify
                     the  algorithm  used to pick a new rabbit when the old one dies.  The score algorithm uses a modi-
                     fied wins/(wins+losses) score and picks the top scoring player to be the new rabbit.   The  killer
                     algorithm  specifies  a  reverse  tag game where whomever kills the rabbit becomes the new rabbit.
                     The random algorithm randomly picks a new rabbit without regard to score.  (The score algorithm is
                     the original behavior.)
 
      -recbuf size   Start with the recording buffer active, with the specified size (in megabytes).
 
      -recbufonly    Disable recording straight to files
 
      -recdir directory
                     Specify the directory for record and replay files.
 
      -replay        Start the server in replay mode.
 
      -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  com-
                     mand. See -reportfile.
 
      -requireudp    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.
 
      -sa            Antidote flags are provided for players with bad flags.
 
      -sb            Allow spawns on box buildings.
 
      -set name value
                     Set BZDB variable name to value
 
      -sl id num     Restrict flag id to num shots.
 
      -spamtime time Minimum time between player chat messages that are alike.
 
      -spamwarn warnLimit
                     Number of warnings a player/spammer gets, who  violates -spamtime.
 
      -speedtol factor
                     Override the default speed auto kick factor. The factor should not be less then 1.0. The factor is
                     a multiplier.
 
      -srvmsg message
                     Define a server welcome message. This option can be used multiple times to define a multiline mes-
                     sage.
 
      -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.
 
      -synctime      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.
 
      -t             Adds teleporters to the game.
 
      -tftimeout time-limit
                     If the last player in a team leaves while someone else is carrying the team flag,  the  team  flag
                     will  not  reset  until it is captured, or until the player drops it and it is left alone for some
                     time. This option specifies the number of seconds that the flag should be left alone before it  is
                     reset. The default value is 30.
 
      -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.
 
      -timemanual    When using -time, the countdown will start when the first  player  joins.  With  -timemanual,  the
                     countdown has to be started manually using the /countdown command. This is useful for matches.
 
      -tk            Changes  the  default  behavior  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 not be killed in game.
 
      -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.
 
      -trackplayhistory
                     Has the server track players with good runs of kills and anounces them.  Also anounces those play-
                     ers that stop the runs of good players.
 
      -ts [micros]   Include timestamp information in DEBUG output - useful  for  logging.   If  micros  is  specified,
                     microseconds will be added to the timestamp.
 
      -userdb file   Load group associations from file
 
      -vars file     Loads  values for game configurable variables from file. Entries are one per line in the form: set
                     variable value. For a list of variables that are configurable, in the BZFlag client, send  a  mes-
                     sage with /set as the text.
 
      -version       Prints the version number of the executable.
 
      -world world-file
                     Reads a specific BZFlag .bzw world layout file for the game map.
 
      -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 termi-
      nated.  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.
 
             -c [-b]        Basic capture-the-flag game.  It teaches teamwork and dogfighting skills.
 
             -s -t          Free-for-all with superflags and teleporters.  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 low shot  counts  can  greatly  increase
      general  playability and learning speed.  However, this is not always true of every game style or game world, and
      a skilled player will learn to deal with a variety of shot counts.  Single shot games have  additional  disadvan-
      tage  in  WAN games where lag/jitter can cause unfair advantage.  Single shot, non-Jump games will teach valuable
      lessons in dodging, however, and are excellent starting points for the beginner.

Networking

      Communication between the server and clients (i.e. between bzfs and bzflag) during a game is  via  TCP  and  UDP.
      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.
 
      Clients can search for servers by sending broadcast UDP packets.  But they must be on the same local area network
      for this to work.  Clients can also find servers advertised using -public by querying list servers.
 
      Game information is relayed through the server. Some communication between clients, such as position and orienta-
      tion information, is normally sent via UDP packets.  Other data, like flag grab and kill messages,  are  sent  to
      the  server  via TCP. The server 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  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.

Worlds

      BZFlag worlds come in two varieties, randomly generated ones, and human designed ones. By default, bzfs uses ran-
      domly  generated  world  unless  you specify the -world command line or configuration file option. The world file
      specified by the -world option is a text based file that contains a list of world objects. This file can be  cre-
      ated  using programs found on sourceforge.net through cvs, or can be hand edited.  See the bzw(5) manual page for
      more details.


GENERAL SERVER COMMANDS

      /clientquery [callsign]
             Retrieve client version info from all users, or just CALLSIGN if given. Example:
             /clientquery MrApathyCream
             MrApathyCream: Version: BZFlag 1.11.6-20040729-gnu-linux-SDL
 
      /date, /time
             Responds with the current server local time. /date and /time are exactly the same. Example:
             Tuesday September 08 06:45:54 2004
 
      /flaghistory
             Lists what flags players have grabbed in the past. Example:
             MrApathyCream: (<-) (->) (O) (CB) (M) (B) (JM) (WA)
             Gerbol: (L) (GM) (L) (GM) (CL) (ST) (GM) (L)
             captain_macgyver: (SB) (SW)
 
      /idlestats
             Displays the idle time in seconds for each player. A player is idle when
             he is dead and has not respawned yet. Example:
             MrApathyCream: 0s
             Gerbol: 80s
             captain_macgyver: 13s
 
      /lagstats
             Lists network delays, jitter and number of lost resp. out of order packets by player. Example:
             MrApathyCream 335 +- 10ms
             Gerbol 210 +- 3ms
             captain_macgyver 155 +- 0ms  12% lost/ooo
 
      /me action
 
             This command displays an "action" that is conveyed to another player.  It allows
             for a little more expressivity in the game.  For example: "/me is hunting wabbits"
             turns into a message like "TimRiker is hunting wabbits" that gets displayed
             differently to other players.
 
      /msg "callsign" message
 
             This command allows a player to send a message to another player.  Similar to using
             the "," and "." message keys in the game and then selecting your recipient, this
             will send some message to particular player.  The quotes are optional.
 
      /part [message]
             Leave the server with a goodbye message (similar to IRC's /part)
             /part Gotta go! bye everyone!
 
      /password password
             Attempt to gain administrator status Example:
             /password supersecretpassword
             You are now an administrator!
 
      /poll {{ban|kick} callsign|vote {yes|no}|veto}
             Interact and make requests of the bzflag voting system via the /poll command.
             The ban and kick subcommands request a vote to respectively ban or kick some
             player.  The playername is expected as the next argument.  The vote and veto
             commands behave identical to the /vote and /veto command counterparts,
             expecting the same arguments in following.  By default, you must be registered
             to request or vote on a poll, and an admin to veto.
 
      /quit [message]
             Quit the game with a goodbye message (similar to IRC's /quit)
             /quit Gotta go! bye everyone!
 
      /report message
             Write a message to the server administrator. Example:
             /report I like this map!
 
      /uptime
             Prints server's current running time in days, hours, mins and secs.
 
      /vote {yes|no}
             If there is a poll active, this command will place a vote in favor or in
             opposition to the poll.  Multiple languages are supported as a vote argument
             in addition to "yes" and "no".  By default, you must be registered to vote on
             a poll.


SERVER ADMINISTRATIVE COMMANDS

      /ban {ip|ipList|#slot|"Player Name"|playerName} duration reason
 
             Ban players using the specified IPs for certain length of time from using this server.  <duration> can be:
                 'short' or 'default' for the default ban time
                 'forever' or 'max' for infinite bans
                 a time in the format <weeks>W<days>D<hours>H<minutes>M
                 just a number of minutes
 
             Examples:
             /ban 35.23.43.66 2 cheating
             bans player with specific ip for 2 minutes
             /ban 35.23.*.*,47.23.17.* 0 Cheaters
             bans all ips in this range forever
             /ban 36.37.2.8 2h30m "ShootMe" was abusing players
             bans specific ip for 2.5 hours with given reason
             /ban #5 60m Rejoining
             bans player using slot 5 for 60 minutes with given reason
             /ban "Tanker" max cheating
             bans the player Tanker forever because cheating
 
             Note: Slots numbers are only displayed in admins clients.
             Duration and reason are required.
 
      /banlist
             List all of the IPs currently banned from this server. Example:
             /banlist
             IP Ban List
             ------------
             35.23.43.66 (2 minutes) banned by Tankmaster
                 reason: Cheaters
             47.23.17.* banned by Tankslave
 
      /checkip ip
             Check whether the IP is banned and print the corresponding rule. This does not
             cover hostbans. Example:
             /checkip 35.23.43.66
             35.23.43.66 is banned:
             35.23.43.66 banned by Tankmaster
                 reason: Cheaters
 
      /countdown [seconds]
             Starts the countdown sequence for a timed game.  The countdown
             sequence length can optionally be specified in seconds.  Examples:
             /countdown
             /countdown 3
 
      /flag reset [unused]
             Repositions flags. If unused is specified, flags carried by tanks are not affected.
 
      /flag show
             Shows all flags with information. Example:
             0: p:-1 r:1 g:1 1:V s:1 p:159.1x43.2x0.0
             1: p:2 r:1 g:1 1:SW s:1 p:209.1x143.2x10.0
             2: p:-1 r:1 g:3 1:L s:1 p:-29.1x301.2x0.0
 
      /flag up
             Removes all flags from the game
 
      /gameover
             Ends the current game
 
      /hostban hostpattern duration reason
             Ban players using the specified hostnames for a certain length of time from using this server.
             Example:
             /hostban *.foo.com 2 cheating
             bans all players from foo.com for 2 minutes
 
      /hostbanlist
             List all of the host patterns currently banned from this server.
 
      /kick {"Player Name"|playerName|#slot} reason
             Kick a player off the server. Example:
             /kick Gerbol
             You were kicked off the server by MrApathyCream
 
             /kick #1 Team killing
             Kick the player using slot 1 because Team Killing
 
             Note: Slots numbers are only displayed in admins clients.
             A reason is required
 
      /kill {"Player Name"|playerName|#slot} [reason]
             Kill a player just like when shooting. Example:
             /kill Gerbol
             kill the player named Gerbol
 
             /kill #4 teamkilling
             Kill the player using slot 4 because teamkilling
 
      /lagwarn [time]
             Change the maximum allowed lag time. Example:
             /lagwarn 300
 
      /lagdrop [count]
             Change the number of lag warnings given before a player is kicked. Example:
             /lagdrop 3
 
      /mute {#slot|callsign}
             Allows a server admin to remove the ability for a player to communicate with
             other players. Once muted the player may only talk to admins on the server.
             This command removes the TALK permission that is enabled by default for all
             players. (disabling TALK by default would let you run a "silent" server)
 
      /playerlist
             List player names and IP addresses. Example:
             /playerlist
             [0]MrApathyCream: 35.23.65.44:4808 udp id
             [1]Gerbol: 130.123.1.55:4909 udp id
             [2]captain_macgyver: 15.32.122.51:3201 udp id
 
      /record file filename
             Start recording directly to a file
 
      /record list
             List all files in the recordings directory
 
      /record rate seconds
             Set the time between game state updates stored in the recording. This will affect
             the granularity of the 'skips' you can do while replaying a file. It will also
             make the recording files bigger if it is set to a faster update rate.
 
      /record save filename [seconds]
             Save the recording buffer into a file. If seconds is specified, then only save
             that many previous seconds into the file.
 
      /record size megabytes
             Set the size of the recording memory buffer
 
      /record start
             Start recording into the memory buffer
 
      /record stats
             Display the statistics for the current recording (file or buffered)
 
      /record stop
             Stop recording into the memory buffer
 
      /replay list
             List all files in the recordings directory
 
      /replay load {filename|#index}
             Load the specified recording file by name, or by index
             (same indices as produced by the 'replay list' command)
 
      /replay loop
             Start looping the recording. This will oftentimes require that all players connected
             to the server rejoin  (to reload the map, etc...)
 
      /replay play
             Start playing the recording. This will oftentimes require that all players connected
             to the server rejoin  (to reload the map, etc...)
 
      /replay skip [{+|-} seconds]
             If seconds is specified, then skip that amount of time in the recording.
             Otherwise, skip forwards until there is activity.
 
      /replay stats
             Show the current replay status (filename, position, etc...)


      /say message
             Generate a public message sent by the server. Example:
             /say This is a servermessage
 
      /sendhelp {"Player name"|playerName|#slot} help page
             Send the specified help page to a user
             /sendhelp register "Foo"
             Send the the help page 'register' to the player Foo
 
      /shutdownserver
             Stop serving BZFlag on this server
 
      /superkill
             Kick all players off the server
 
      /unmute {#slot|callsign}
             Allows a server admin to restore the TALK permission to a previously muted
             player.
 
      /veto  If there is a poll active, this will cancel the poll.  By default, you must be
             an admin to veto a poll.
 
      /viewreports
             View the server's report file.


USER MANAGEMENT

      Generally,  you  start with empty files for the user and password databases.  These are maintained by the server,
      and modifiable through server commands.  Users in turn belong to groups.   Groups  are  generally  customized  to
      perhaps allow administrative control to trusted users.
 
      There are both local and global groups, i.e. groups that are available across the entire BZFlag network.  In set-
      ting up a server, you may want to specify global groups that will allow already well known and trusted  users  to
      police your server and help maintain control against cheaters and abuse.
 
      The  server  will automatically create three groups: EVERYONE, VERIFIED, and LOCAL.ADMIN.  EVERYONE  has  ACTION-
      MESSAGE, ADMINMESSAGESEND, DATE, FLAGHISTORY, IDLESTATS, LAGSTATS, PRIVATEMESSAGE and SPAWN by default.  VERIFIED
      has  POLL, POLLKICK, POLLBAN, POLLSET, POLLFLAGRESET, and VOTE. The LOCAL.ADMIN group has almost every permission
      possible (similar to granting admin powers via /password).
 
      Once the server is running, users can register their callsigns and admins can set their group memberships.  Users
      can  use  any command that their permissions allow. Every user, registered or not, is part of the EVERYONE group.
      When a user identifies, they become part of the VERIFIED group.
 
      In addition, there are global groups available that persist network-wide.  Users that register their callsigns on
      the  BZFlag website at http://my.BZFlag.org/bb/ have the ability to globally authenticate by providing a password
      from within the client.  When they authenticate, bzfs will ask the list server if  they  belong  to  any  of  the
      groups  listed  in your group database file that are not prefixed with "LOCAL.".  If they are a member of a group
      in question, then they are granted the permissions you specify for that group.
 
      A group database file is set up to contain the specific local and global groups you care to have on  your  server
      in  addition  to default groups and exactly which permissions are granted by each.  These files are laid out with
      one line per group, using the following format:
 
      GROUP_NAME: [*Group] [+|-|!]perm1 [+|-|!]perm2 ... permN
 
      *Group: inhert permissions from existing group "Group"
 
      +perm: add perm to this group
 
      -perm: remove perm from this group
 
      !perm: forbid perm for this group. makes perm inaccessable whether it's granted from another group or not
 
      If no operator is given with a permission it is handled like +perm. A group line for a previously existing  group
      adds to already granted permissions. That way you can spread a group's definition over several lines:
 
      GROUP_NAME: +perm1 +perm2
      GROUP_NAME: +perm3 +perm4 -perm5
 
      Group  names cannot have spaces, quotes, or other special characters in them.  This would be a sample line defin-
      ing a "cop" group:
 
      COPS: +KICK +SHORTBAN +BANLIST
 
      Now a group USERADMIN with all permissions granted to COPS plus some additional could look like this:
 
      USERADMIN: *COPS +BAN +UNBAN
 
      Probably you want to define customized permissions for the default group "VERIFIED" instead  of  those  automati-
      cally asigned by the server:
 
      VERIFIED: -ALL +perm1 +perm2 ...
 
      Or you want to disable the /poll command entirely?
 
      EVERYONE: !POLL
 
      To distinguish between a group that is local and one that is global, use the "LOCAL." prefix as part of the group
      name, e.g.:
 
      LOCAL.OPERATOR: BANLIST
 
      The available permissions are as follows:
 
      ACTIONMESSAGE       /me
      ADMINMESSAGERECEIVE player receives messages sent to admin channel
      ADMINMESSAGESEND    player may send messages on the admin channel
      ALL                 all permissions available
      BAN                 /ban /hostban
      BANLIST             /banlist /hostbanlist
      COUNTDOWN           /countdown
      ENDGAME             /endgame
      FLAGHISTORY         /flaghistory
      FLAGMOD             /flag
      IDLESTATS           /idlestats
      INFO                not implemented
      KICK                /kick
      LAGSTATS            /lagstats
      LAGWARN             /lagwarn
      LISTPERMS           not implemented
      MUTE                /mute
      PLAYERLIST          /playerlist
      POLL                /poll
      POLLBAN             /poll ban
      POLLFLAGRESET       /poll flagreset
      POLLKICK            /poll kick
      POLLSET             /poll set
      PRIVATEMESSAGE      /msg
      REJOIN              allows instant rejoin, regardless of _rejoinTime
      REMOVEPERMS         /removegroup
      REQUIREIDENTIFY     user must /identify when using this locally registered callsign
      SAY                 /say
      SETALL              use of all set/remove commands
      SETPERMS            /setgroup
      SETPASSWORD         not implemented
      SETVAR              /set /reset
      SHOWOTHERS          not implemented
      SHUTDOWNSERVER      /shutdownserver
      SPAWN               join game as a player. observers don't need this flag.
      SUPERKILL           /superkill
      TALK                allows all players to send messages
      UNBAN               /unban /hostunban
      UNMUTE              /unmute
      VETO                /veto
      VOTE                /vote
 
      /identify password
             Log in to a registered callsign
 
      /deregister [callsign]
             With an argument, it deregisters another user's callsign. Without, it removes your own registration.
 
      /ghost callsign password
             Kicks off an impersonating player or ghost
 
      /grouplist
             Lists the available user groups
 
      /groupperms
             Lists the permissions for each group
 
      /masterban {flush|reload}
             Forces the server to flush any bans from the master server. If reload is specified instead of flush,  also
             reloads bans from the the internet. Local bans are unaffected.  This command requires the UNBAN permision.
 
      /register password
             Register your current callsign to the specified password. Passwords must be at least  3  characters  long,
             and the callsign may not contain quotes or other non-alphanumeric/space characters
 
      /reload
             Reloads  the  user,  group,  and  password files (for synchronization between multiple servers on the same
             machine)
 
      /removegroup callsign group
             Remove a user from a group
 
      /setgroup callsign group
             Add a user to a group
 
      /setpass password
             Changes your password
 
      /showgroup callsign
             Lists the groups that a registered user is a member of


RELATED

      bzflag(6), bzadmin(6), bzw(5)

CATEGORY

Personal tools