This wiki was in read-only mode for many years, but can now be edited again. A lot of information will need to be updated.

BZFS: Difference between revisions

From BZFlagWiki
Jump to navigation Jump to search
TD-Linux (talk | contribs)
Super lazy me.
 
m typo fixes
 
(24 intermediate revisions by 12 users not shown)
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]
''This is an article specifically about the BZFS program. For general information on creating a BZFlag server, see [[Creating a server]].''


The man page is pasted below for your convenience (it is in need of heavy wiki formatting).
BZFS is name of the [[BZFlag]] server application. It is a command line application that can either 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. All BZFlag games are hosted on BZFS servers, there is no 'single player' game that is run with only a client.
== Man Page ==
SYNOPSIS


      bzfs  [-a linear angular] [-admsg message] [-advertise GROUPNAME,GROUP-
==Public Vs. Private Servers==
      NAME,...] [-autoTeam] [-b]  [-badwords badwordfile]  [-ban  ip{,ip}*]
BZFS can be run in ether a public or private mode. Public servers are listed with the central [[List Server]] system and can take advantage of the [[Global Registration]] system for user management. Private servers will only be visible on the LAN they are started on. The in-game server menu can only start private servers.
      [-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]


==Command line options and Config files==
BZFS uses [[BZFS Command Line Options|command line options]] to set the various modes and options for a game. These options can be specified from the command line prompt of the host OS or inside a plain text configuration file. The path (relative or absolute) to the config file is specified with the '''-conf''' option.


See the [[Sample_conf|sample configuration]] for some examples of command line options. However, it is recommended that you create a configuration file from scratch, and test it every few lines. This will help in the case of configuration errors as you will have only modified a few lines that introduced the error.


==World Files==
BZFS can read in [[BZW]] formatted map files and use them to define the 3D world the game is played in.


DESCRIPTION
==Plug-ins and the BZFS API==
BZFS can be extended by the use of server side [[Plug-ins]]. These [[Plug-ins]] are runtime loaded DLLs/SO files that use the [[BZFS API]] to modify and automate various game logic and settings.


      Bzfs is the server for BZFlag, and it must be running to play.  It  can
==See also==
      be run on any system on the network (including a player's system or one
* [[BZFS Command Line Options]]
      without graphics).  Terminating the  server  terminates  the  game  in
* [[BZFS API]]
      progress.
* [[Plug-ins]]
* [[Sample conf|Sample Config File]]


 
[[Category:Server]]
 
 
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)

Latest revision as of 07:20, 2 November 2025

This is an article specifically about the BZFS program. For general information on creating a BZFlag server, see Creating a server.

BZFS is name of the BZFlag server application. It is a command line application that can either be run manually or started from within the game. The server supports a large list of command line options that can be used. All BZFlag games are hosted on BZFS servers, there is no 'single player' game that is run with only a client.

Public Vs. Private Servers

BZFS can be run in ether a public or private mode. Public servers are listed with the central List Server system and can take advantage of the Global Registration system for user management. Private servers will only be visible on the LAN they are started on. The in-game server menu can only start private servers.

Command line options and Config files

BZFS uses command line options to set the various modes and options for a game. These options can be specified from the command line prompt of the host OS or inside a plain text configuration file. The path (relative or absolute) to the config file is specified with the -conf option.

See the sample configuration for some examples of command line options. However, it is recommended that you create a configuration file from scratch, and test it every few lines. This will help in the case of configuration errors as you will have only modified a few lines that introduced the error.

World Files

BZFS can read in BZW formatted map files and use them to define the 3D world the game is played in.

Plug-ins and the BZFS API

BZFS can be extended by the use of server side Plug-ins. These Plug-ins are runtime loaded DLLs/SO files that use the BZFS API to modify and automate various game logic and settings.

See also