Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BZFS(6)				    BZFlag			       BZFS(6)

NAME
       bzfs - BZFlag game server

SYNOPSIS
       bzfs  [-a linear	angular] [-adminlagannounce milliseconds] [-admsg mes-
       sage] [-advertise groupname[,groupname]...]   [-autoTeam]  [-b]	[-bad-
       words  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]  [-gndtex  texture-name]  [-groupdb
       file] [-h] [-handicap] [-help] [-helpmsg	file name] [-i interface] [-j]
       [-jitterdrop  warn-count] [-jitterwarn milliseconds] [-lagannounce mil-
       liseconds] [-lagdrop warn-count]	[-lagwarn  milliseconds]  [-loadplugin
       name[,options]]	[-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]  [-noradar]  [-noTeamKills]  [-offa]  [-p
       port]  [-packetlossdrop	warn-count] [-packetlosswarn percent] [-passwd
       password]  [-pidfile  filename]	[-poll	variable=value]	 [-printscore]
       [-publictitle  description]  [-publicaddr  address[:port]] [-publiclist
       url] [-publickey	key] [-q] [+r] [-rabbit	[score	|  killer  |  random]]
       [-recbuf	size] [-recbufonly] [-recdir directory]	[-replay] [-reportfile
       filename]  [-reportpipe	command] [+s flag-count] [-s flag-count] [-sa]
       [-sb] [-set name	value] [-setforced name	value] [-sl id num] [-spamtime
       time] [-spamwarn	warnLimit] [-speedtol factor] [-srvmsg	message]  [-st
       time]   [-sw   count]   [-synclocation]	[-synctime]  [-t]  [-tftimeout
       time-limit] [-time  {time-limit	|  ending-time}]  [-timemanual]	 [-tk]
       [-tkannounce]  [-tkkr  percent]	[-ts  [micros]]	[-UPnP]	[-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.

       -adminlagannounce milliseconds
		      Announce	players	that lag more than milliseconds	to ad-
		      mins.

       -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-
		      ify, 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 provid-
		      ing a number (default is 5).  One	team flag per team  is
		      provided,	 but  more  can	be added thru +f team.	By de-
		      fault, the free-for-all style is used.

       -d	      Increase debugging level.	If more	-d is given, more  de-
		      bugging info is obtained.

       -density	num   Specify density for buildings, i.e. the higher the inte-
		      ger  number,  the	 more buildings	you will get. This ap-
		      plies 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 cap-
		      ture 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 ex-
		      cept genocide would be "+s 40 -s 50 -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	mottos.	 Call-
		      signs and	mottos 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.

       -gndtex texture-name
		      Specify the name of the ground texture.

       -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
		      Provide a	message	accessible by /help name, which	 sends
		      no more than the first 50	lines of file to the player.

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

       -lagannounce milliseconds
		      Announce players that lag	more than milliseconds in pub-
		      lic.

       -lagdrop	warn-count
		      Kicks players after warn-count lag warnings.

       -lagwarn	milliseconds
		      Send  warnings  to  players that lag more	than millisec-
		      onds.

       -loadplugin name[,options]
		      Load the specified plugin. name can either be  the  name
		      of  the  plugin,	or a path to its library file. Option-
		      ally, you	can provide any	options	the plugin requires.

       -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.  For rabbit	chase,
		      the "rogue" value	sets the total number of  non-observer
		      player, and all other values must	be zero.

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

       -noradar	      Disable the use of the radar.

       -noTeamKills   Players on the same team	are  immune  to	 each  other's
		      shots. Rogue is excepted.

       -offa	      Enables  the  Open-Free-for-All  style  game.  This is a
		      teamless mode, similar  to  the  classic	deathmatch  in
		      other games.

       -p port	      Listen  for  game	connections on port instead of the de-
		      fault 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  per-
		      cent loss.

       -passwd password
		      Specify  a  server administrator password	for use	in re-
		      mote 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  re-
			     quest 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

       -publictitle description
		      Advertise	this server on the internet with the given de-
		      scription.   By default, a server	will respond to	broad-
		      cast queries, allowing clients to	find  servers  running
		      on  the standard port on the local subnet.  The -public-
		      title 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.
		      Normally a server	advertises itself at the local address
		      and port.	 Some servers are not accessible from the  in-
		      ternet  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  -publictitle	and/or
		      -publicaddr.   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 ar-
		      gument may be provided multiple  times  to  publicize  a
		      server to	multiple list servers.

       -publickey key Advertise	 this  server  on the list server(s) using the
		      specified	key.  Only has an effect when used with	 -pub-
		      lictitle and/or -publicaddr.

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

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

       -reportpipe command
		      Pipe messages to the server admin	written	using the /re-
		      port  command to this program or shell command. See -re-
		      portfile.

       +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.  Re-
		      quired 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 re-
		      strict 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.

       -setforced name value
		      Set BZDB variable	name to	value, even  if	 the  variable
		      does not exist.

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

       -synclocation  Forces  all  clients to use the same location (longitude
		      and latitude).

       -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 | ending-time}
		      Sets a time limit	on the game to time-limit  or  ending-
		      time.  The game will be stopped time-limit seconds after
		      the first	player connects, or at ending-time,  whichever
		      is  given.  The  ending-time should be given in hh:mm:ss
		      format, but does not need	minute and  second  arguments.
		      If only hour is given, it	must end in ':'. Each unspeci-
		      fied argument is set to 0.

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

       -tkannounce    Announce teamkills to the	admin channel.

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

       -ts [micros]   Include  timestamp information in	DEBUG output --	useful
		      for logging.  If micros is specified, microseconds  will
		      be added to the timestamp.

       -UPnP	      If  enabled  during  build, bzfs try to communicate with
		      the Gateway to set Port Forwarding and to	supply	infor-
		      mation not specified with	-i (local interface) and -pub-
		      licaddr

       -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 re-
       set 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 tele-
			     porters for maximum effect.  You may want to  al-
			     low  players  to  drop bad	flags with any of -sa,
			     -st, and -sw.

       Notice that the maximum number of shots for these styles	is one.	  Hav-
       ing low shot counts can greatly increase	general	playability and	learn-
       ing  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 ex-
       cellent 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 -publictitle by querying list
       servers.

       Game information	is relayed through the server. Some communication  be-
       tween  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.

   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	 github, 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 {all|unused|team|FlagId}
	      Repositions flags. If unused is specified, flags carried
	      by tanks are not affected. Using the team	option only
	      resets team flags, whereas specifying a flag id (such as GM) only
	      repositions flags	of this	type. If noteam	is specified,
	      team flags will not be reset. Examples:
	      /flag reset unused noteam
	      /flag reset G

       /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

       /handicap
	      Shows the	handicap boost percentage for every player

       /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 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,
       CLIENTQUERY,  DATE,  FLAGHISTORY,  IDLESTATS, LAGSTATS, PRIVATEMESSAGE,
       SHOWMOTTO, SPAWN	and TALK by default. VERIFIED has  LISTPLUGINS,	 POLL,
       POLLKICK,  POLLBAN,  POLLKICK, POLLSET, POLLFLAGRESET, REPORT 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 ad-
       mins 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	 VERI-
       FIED group.

       In  addition,  there  are  global  groups  available  that persist net-
       work-wide.  Users that register their callsigns on the  BZFlag  website
       at https://forums.bzflag.org/ have the ability to globally authenticate
       by  providing  a	 password from within the client.  When	they authenti-
       cate, 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: inherit 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 inaccessible 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 assigned	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
       ANTIBAN		   player is immune to /ban
       ANTIKICK		   player is immune to /kick
       ANTIKILL		   player is immune to /kill
       ANTIPOLL		   player is immune to /poll
       ANTIPOLLBAN	   player is immune to /poll ban
       ANTIPOLLKICK	   player is immune to /poll kick
       ANTIPOLLKILL	   player is immune to /poll kill
       BAN		   /ban	/hostban
       BANLIST		   /banlist /hostbanlist
       CLIENTQUERY	   /clientquery
       COUNTDOWN	   /countdown
       ENDGAME		   /gameover
       FLAGHISTORY	   /flaghistory
       FLAGMASTER	   /flag
       FLAGMOD		   /flag reset /flag show /flag	history
       HIDEADMIN	   player doesn't show the @ sign
       IDLESTATS	   /idlestats
       INFO		   not implemented
       JITTERWARN	   /jitterwarn /jitterdrop
       KICK		   /kick
       LAGSTATS		   /lagstats
       LAGWARN		   /lagwarn /lagdrop
       LISTPERMS	   not implemented
       LISTPLUGINS	   /listplugins
       MASTERBAN	   /masterban
       MODCOUNT		   /modcount
       MUTE		   /mute
       PACKETLOSSWARN	   /packetlosswarn /packetlossdrop
       PLAYERLIST	   /playerlist
       PLUGINS		   /listplugins	/loadplugin /unloadplugin
       POLL		   /poll
       POLLBAN		   /poll ban
       POLLFLAGRESET	   /poll flagreset
       POLLKICK		   /poll kick
       POLLSET		   /poll set
       PRIVATEMESSAGE	   /msg
       RECORD		   /record
       REJOIN		   allows instant rejoin, regardless of	_rejoinTime
       REMOVEPERMS	   /removegroup
       REPLAY		   /replay
       REPORT		   /report
       REQUIREIDENTIFY	   user	must use global	registration
       SAY		   /say
       SENDHELP		   /sendhelp
       SETALL		   use of all set/remove commands
       SETPERMS		   /setgroup
       SETPASSWORD	   not implemented
       SETVAR		   /set	/reset
       SHORTBAN		   /ban	(with a	limited	duration)
       SHOWADMIN	   player shows	an @ regardless	of  having  'shortban'
       perm
       SHOWMOTTO	   player  is  allowed	to  display their motto	on the
       scoreboard
       SHOWOTHERS	   /showgroup /showperms (on others)
       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

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

       /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

       /showgroup callsign
	      Lists the	groups that a registered user is a member of

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

BZFlag 2.4.26			  2026-02-26			       BZFS(6)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bzfs&sektion=6&manpath=FreeBSD+Ports+15.0.quarterly>

home | help