bzfs

bzfs(6)                             BZFlag                             bzfs(6)



NAME
       bzfs - BZFlag game server

SYNOPSIS
       bzfs [-a linear angular] [-adminlagannounce milliseconds] [-admsg
       message] [-advertise groupname[,groupname]...]  [-autoTeam] [-b]
       [-badwords badwordfile] [-ban ip[,ip]...]  [-banfile filename] [-c]
       [-cache worldCacheURL] [-cacheout filename] [-conf configfile] [-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]
       [-jitterdrop warn-count] [-jitterwarn milliseconds] [-lagannounce
       milliseconds] [-lagdrop warn-count] [-lagwarn milliseconds]
       [-masterBanURL URL] [-maxidle seconds] [-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] [-packetlossdrop warn-count] [-packetlosswarn percent] [-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] [-trackplayhistory] [-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.

       -adminlagannounce milliseconds
                      Announce players that lag more than milliseconds to
                      admins.

       -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 private server (no
                      one will see the server, but global logins can be used).
                      The default, if -advertise 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 players 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 -filterChat 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 specification 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 provided.  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 -filterChat 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.

       -jitterdrop warn-count
                      Kicks players after warn-count jitter warnings.

       -jitterwarn milliseconds
                      Send warnings to players that jitter more than
                      milliseconds.

       -lagannounce milliseconds
                      Announce players that lag more than milliseconds in
                      public.

       -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.

       -packetlossdrop warn-count
                      Kicks players after warn-count packetloss warnings.

       -packetlosswarn percent
                      Send warnings to players that have more more than
                      percent loss.

       -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 administration.

       -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 accessible 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 -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.  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 modified
                      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 command. 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 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.

       -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 players 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 message 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 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.

              -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 disadvantage 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 orientation 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 randomly 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 created 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.


       /jitterwarn [time]
              Change the maximum allowed jitter time. Example:
              /jitterwarn 50


       /jitterdrop [count]
              Change the number of jitter warnings given before a player is kicked. Example:
              /jitterdrop 3


       /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


       /modcount [seconds]
              Change the time on the clock by the specified number of seconds. Example:
              /modcount +320


       /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)


       /packetlosswarn [time]
              Change the maximum allowed packetloss. Example:
              /packetloss 1


       /packetlossdrop [count]
              Change the number of packetloss warnings given before a player is kicked. Example:
              /packetloss 3


       /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 setting 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  ACTIONMESSAGE, 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 defining 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 automatically 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



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



bzfs-2.0.16                       2010-04-09                           bzfs(6)