| 
				   | 
				
| Line 1: | 
Line 1: | 
 | BZFS is the BZFlag server. To be lazy, the man page is located at [http://my.bzflag.org/bzfman.cgi?bzfs.6.in]  |  | BZFS is name of the the [[[BZFlag]] server application. It is a command line application that can ether be run manually or started from within the game. The server supports a large list of [[BZFS Command Line Options|command line options]] that can be used.  | 
 | 
  |  | 
  | 
 | The man page is pasted below for your convenience (it is in need of heavy wiki formatting).
  |  | [[Category:Server]]  | 
 | == Man Page ==
  |  | 
 | SYNOPSIS
  |  | 
 |    |  | 
 |        bzfs  [-a linear angular] [-admsg message] [-advertise GROUPNAME,GROUP-
  |  | 
 |        NAME,...]  [-autoTeam] [-b]  [-badwords	badwordfile]  [-ban  ip{,ip}*]
  |  | 
 |        [-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] [-filterSim-
  |  | 
 |        ple] [-g] [-groupdb file] [-h] [-handicap] [-help] [-helpmsg file name]
  |  | 
 |        [-i interface] [-j] [-lagdrop warn-count] [-lagwarn time/ms]  [-master-
  |  | 
 |        BanURL	       URL/s]	       [-maxidle	  time/s]	  [-mp
  |  | 
 |        {count|[rogue-count],[red-count],[green-count],[blue-count],[pur-
  |  | 
 |        ple-count],[observer-count]}]  [-mps  {max-score}]  [-ms  shots]  [-mts
  |  | 
 |        {max-score}] [-noMasterBanlist] [-p port] [-passdb file] [-passwd pass-
  |  | 
 |        word] [-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  experi-
  |  | 
 | 		      ment  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 accel-
  |  | 
 | 		      eration 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 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 spec-
  |  | 
 | 		      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 provid-
  |  | 
 | 		      ing  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 inte-
  |  | 
 | 		      ger  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
  |  | 
 | 		      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.
  |  | 
 |    |  | 
 |        -lagdrop warn-count
  |  | 
 | 		      Kicks players after warn-count lag warnings.
  |  | 
 |    |  | 
 |        -lagwarn time/ms
  |  | 
 | 		      Send warnings to players that lag more than time.
  |  | 
 | 		      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 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
  |  | 
 | 		      description.  By	default,  a  server  will  respond  to
  |  | 
 | 		      broadcast queries, allowing clients to find servers run-
  |  | 
 | 		      ning 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  algo-
  |  | 
 | 		      rithm  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  rab-
  |  | 
 | 		      bit  without  regard  to score.  (The score algorithm is
  |  | 
 | 		      the original behavior.)
  |  | 
 |    |  | 
 |        -recbuf size   Start with the recording buffer active, with the	speci-
  |  | 
 | 		      fied size (in megabytes).
  |  | 
 |    |  | 
 |        -recbufonly    Disable recording straight to files
  |  | 
 |    |  | 
 | 		      -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.
  |  | 
 |    |  | 
 | 		      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 mul-
  |  | 
 |        titasking).  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.
  |  | 
 |    |  | 
 |        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 nor-
  |  | 
 |        mally sent via UDP packets.  Other data, like flag grab and  kill  mes-
  |  | 
 |        sages, 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 mes-
  |  | 
 |        sages 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.
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | GENERAL SERVER COMMANDS
  |  | 
 |    |  | 
 |        /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
  |  | 
 |    |  | 
 |    |  | 
 |        /idlestats
  |  | 
 | 	      Displays the idle time in seconds for each player. A player is idle when
  |  | 
 | 	      he is dead and has not respawned yet.
  |  | 
 |    |  | 
 | 	      MrApathyCream: 0s
  |  | 
 | 	      Gerbol: 80s
  |  | 
 | 	      captain_macgyver: 13s
  |  | 
 |    |  | 
 |    |  | 
 |        /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)
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 |        /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
  |  | 
 |    |  | 
 |    |  | 
 |        /report {message}
  |  | 
 | 	      Write a message to the server administrator. Example:
  |  | 
 | 	      /report I like this map!
  |  | 
 |    |  | 
 |    |  | 
 |        /part {message}
  |  | 
 | 	      Leave the server with a goodbye message (similar to IRC's /part)
  |  | 
 | 	      /part Gotta go! bye everyone!
  |  | 
 |    |  | 
 |    |  | 
 |        /quit {message}
  |  | 
 | 	      Quit the game with a goodbye message (similar to IRC's /quit)
  |  | 
 | 	      /quit Gotta go! bye everyone!
  |  | 
 |    |  | 
 |    |  | 
 |        /me
  |  | 
 | 	      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 some player some 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.
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | SERVER ADMINISTRATIVE COMMANDS
  |  | 
 |    |  | 
 |    |  | 
 |        /viewreports
  |  | 
 | 	      View the server's report file.
  |  | 
 |    |  | 
 |    |  | 
 |        /record list
  |  | 
 | 	      List all files in the recordings directory
  |  | 
 |    |  | 
 |        /record start
  |  | 
 | 	      Start recording into the memory buffer
  |  | 
 |    |  | 
 |        /record stop
  |  | 
 |    |  | 
 |        /record file <filename>
  |  | 
 | 	      Start recording directly to a file
  |  | 
 |    |  | 
 |        /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.
  |  | 
 |    |  | 
 |    |  | 
 |        /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 play
  |  | 
 | 	      Start playing the recording. This will oftentimes  require  that
  |  | 
 | 	      all  players connected to the server rejoin  (to reload the map,
  |  | 
 | 	      etc...)
  |  | 
 |    |  | 
 |        /replay loop
  |  | 
 | 	      Start looping 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,  posi-
  |  | 
 | 	      tion, etc...)
  |  | 
 |    |  | 
 |    |  | 
 |        /shutdownserver
  |  | 
 | 	      Stop serving BZFlag on this server
  |  | 
 |    |  | 
 |        /superkill
  |  | 
 | 	      Kick all players off the server
  |  | 
 |    |  | 
 |        /gameover
  |  | 
 | 	      Ends the current game
  |  | 
 |    |  | 
 |        /flag reset {unused}
  |  | 
 | 	      Repositions  flags.  If  unused  is  specified, flags carried by
  |  | 
 | 	      tanks are not affected.
  |  | 
 |    |  | 
 |        /flag up
  |  | 
 | 	      Removes all flags from the game
  |  | 
 |    |  | 
 |        /flag show
  |  | 
 | 	      Shows all flags with information. Example:
  |  | 
 | 	      0: p:-1 r:1 g:1 1:V s:1 p:159.1x43.2x0.0
  |  | 
 | 	      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
  |  | 
 |    |  | 
 |    |  | 
 |        /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
  |  | 
 |    |  | 
 |    |  | 
 |        /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
  |  | 
 | 	      ------------
  |  | 
 |    |  | 
 |    |  | 
 |        /hostbanlist
  |  | 
 | 	      List all of the host patterns currently banned from this server.
  |  | 
 |    |  | 
 |        /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
  |  | 
 |    |  | 
 | 	      /send register "Foo"
  |  | 
 | 	      Send the the help page 'register' to the player Foo
  |  | 
 |    |  | 
 |    |  | 
 |        /countdown [seconds]
  |  | 
 | 	      Starts the countdown sequence for a timed game.  The countdown
  |  | 
 | 	      sequence length can optionally be specified in seconds.  Examples:
  |  | 
 |    |  | 
 | 	      /countdown
  |  | 
 | 	      /countdown 3
  |  | 
 |    |  | 
 |    |  | 
 |        /lagwarn
  |  | 
 |    |  | 
 | 	      Dynamic change the maximum allowed lag time. Example:
  |  | 
 |    |  | 
 | 	      /lagwarn 300
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | USER MANAGEMENT
  |  | 
 |    |  | 
 |        Generally, you start with empty files for the user and  password  data-
  |  | 
 |        bases.	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).
  |  | 
 |    |  | 
 |    |  | 
 |        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 per-
  |  | 
 |        missions.  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:
  |  | 
 |        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	regis-
  |  | 
 |        tered 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
  |  | 
 |    |  | 
 |    |  | 
 |        /register {password}
  |  | 
 |    |  | 
 | 	      Register your current callsign to the specified password.  Pass-
  |  | 
 | 	      words  must  be at least 3 characters long, and the callsign may
  |  | 
 | 	      not contain quotes or other non-alphanumeric/space characters
  |  | 
 |    |  | 
 |    |  | 
 |        /identify {password}
  |  | 
 |    |  | 
 | 	      Log in to a registered callsign
  |  | 
 |    |  | 
 |    |  | 
 |        /setpass {password}
  |  | 
 |    |  | 
 | 	      Changes your password
  |  | 
 |    |  | 
 |    |  | 
 |        /ghost {callsign} {password}
  |  | 
 |    |  | 
 |    |  | 
 | 	      Lists the groups that a registered user is a member of
  |  | 
 |    |  | 
 |    |  | 
 |        /setgroup {callsign} {group}
  |  | 
 |    |  | 
 | 	      Add a user to a group
  |  | 
 |    |  | 
 |    |  | 
 |        /removegroup {callsign} {group}
  |  | 
 |    |  | 
 | 	      Remove a user from a group
  |  | 
 |    |  | 
 |    |  | 
 |        /reload
  |  | 
 |    |  | 
 | 	      Reloads the user, group, and password files (for synchronization
  |  | 
 | 	      between multiple servers on the same machine)
  |  | 
 |    |  | 
 |    |  | 
 |        /deregister [callsign]
  |  | 
 |    |  | 
 | 	      With  an argument, it deregisters another user's callsign. With-
  |  | 
 | 	      out, it removes your own registration.
  |  | 
 |    |  | 
 |    |  | 
 |        /poll ban|kick|vote|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 and vote on a poll.
  |  | 
 |    |  | 
 |    |  | 
 |        /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 sup-
  |  | 
 | 	      ported as a vote argument in addition to	"yes"  and  "no".   By
  |  | 
 | 	      default, you must be registered to vote on a poll.
  |  | 
 |    |  | 
 |    |  | 
 |        /veto	If  there  is  a  poll	active, this will cancel the poll.  By
  |  | 
 | 	      default, you must be an admin to veto a poll.
  |  | 
 |    |  | 
 |    |  | 
 |        /masterban flush|reload
  |  | 
 |    |  | 
 | 	      Forces the server to flush any bans from the master  server.  If
  |  | 
 |    |  | 
 | 	      Allows a server admin to restore the TALK permission to a previ-
  |  | 
 | 	      ously muted player.  usage: /unmute <#slot> | <playername>
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | 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 pro-
  |  | 
 |        grams found on sourceforge.net through cvs, or can be hand edited.  See
  |  | 
 |        the bzw(5) manual page for more details.
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | SEE ALSO
  |  | 
 |    |  | 
 |        bzflag(6), bzadmin(6), bzw(5)
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | bzfs-2.0.4			  2006-04-17			       bzfs(6)
  |  |