1BZFS(6)                             BZFlag                             BZFS(6)
2
3
4

NAME

6       bzfs - BZFlag game server
7

SYNOPSIS

9       bzfs  [-a linear angular] [-adminlagannounce milliseconds] [-admsg mes‐
10       sage] [-advertise groupname[,groupname]...]   [-autoTeam]  [-b]  [-bad‐
11       words  badwordfile] [-ban ip[,ip]...]  [-banfile filename] [-c] [-cache
12       worldCacheURL]  [-cacheout  filename]  [-conf  configfile]  [-cr]  [-d]
13       [-density   num]   [-disableBots]   [+f   {good  |  bad  |  team  |   |
14       flag-id}[{count}]] [-f {good | bad | flag-id}] [-fb] [-filterCallsigns]
15       [-filterChat]  [-filterSimple]  [-g]  [-gndtex  texture-name] [-groupdb
16       file] [-h] [-handicap] [-help] [-helpmsg file name] [-i interface] [-j]
17       [-jitterdrop  warn-count] [-jitterwarn milliseconds] [-lagannounce mil‐
18       liseconds] [-lagdrop warn-count] [-lagwarn  milliseconds]  [-loadplugin
19       name[,options]]  [-masterBanURL  URL] [-maxidle seconds] [-mp {count  |
20       [rogue-count],  [red-count],  [green-count],   [blue-count],   [purple-
21       count],   [observer-count]}]   [-mps   max-score]   [-ms  shots]  [-mts
22       max-score] [-noMasterBanlist]  [-noradar]  [-noTeamKills]  [-offa]  [-p
23       port]  [-packetlossdrop  warn-count] [-packetlosswarn percent] [-passwd
24       password]  [-pidfile  filename]  [-poll  variable=value]  [-printscore]
25       [-publictitle  description]  [-publicaddr  address[:port]] [-publiclist
26       url] [-publickey key] [-q] [+r] [-rabbit [score  |  killer  |  random]]
27       [-recbuf size] [-recbufonly] [-recdir directory] [-replay] [-reportfile
28       filename] [-reportpipe command] [+s flag-count] [-s  flag-count]  [-sa]
29       [-sb] [-set name value] [-setforced name value] [-sl id num] [-spamtime
30       time] [-spamwarn warnLimit] [-speedtol factor] [-srvmsg  message]  [-st
31       time]   [-sw   count]   [-synclocation]  [-synctime]  [-t]  [-tftimeout
32       time-limit] [-time  {time-limit  |  ending-time}]  [-timemanual]  [-tk]
33       [-tkannounce]  [-tkkr  percent]  [-ts  [micros]] [-UPnP] [-userdb file]
34       [-vars file] [-version] [-world world-file] [-worldsize world size]
35
36

DESCRIPTION

38       Bzfs is the server for BZFlag, and it must be running to play.  It  can
39       be run on any system on the network (including a player's system or one
40       without graphics).  Terminating  the  server  terminates  the  game  in
41       progress.
42
43

OPTIONS

45       -a linear angular
46                      Sets  the maximum linear and angular accelerations.  The
47                      units are somewhat arbitrary so you'll have  to  experi‐
48                      ment  to  find suitable values. Positive values will set
49                      limits to the acceleration and lower they  are,  greater
50                      is  the inertia.  Zero or negative values disable accel‐
51                      eration limits.
52
53       -adminlagannounce milliseconds
54                      Announce players that  lag  more  than  milliseconds  to
55                      admins.
56
57       -admsg message Define  a message which will be broadcast to all players
58                      every 15 minutes.  This  option  can  be  used  multiple
59                      times to define a multiline message.
60
61       -advertise groupname,groupname,...
62                      Allows  control of who can see this server on the server
63                      list.  Use: -advertise NONE to make a private server (no
64                      one will see the server, but global logins can be used).
65                      The default, if -advertise is not specified, is to allow
66                      everyone to see the server.  Otherwise, your server will
67                      only be listed to members of the groups which you  spec‐
68                      ify, eg: -advertise JOE,BOB.
69
70       -autoTeam      Automatically  assign players to teams when they connect
71                      so that there are an equal  number  of  players  on  all
72                      available  teams.  Players are placed on teams that have
73                      the fewest players; otherwise they will be placed on the
74                      weakest  team.  Weakest team is the team with the lowest
75                      combined kill ratio.
76
77       -b             When -c is supplied, this option  randomly  rotates  the
78                      buildings.
79
80       -badwords badwordfile
81                      Specify a file that contains bad words that will be used
82                      when either -filterCallsigns or -filterChat is enabled.
83
84       -ban ip[,ip]...
85                      Prohibits connections  from  the  listed  IP  addresses.
86                      Trailing 255 bytes are treated as mask bytes.
87
88       -banfile filename
89                      Specifies  the  name of a file where bzfs will store the
90                      banlist. It will load the banlist from this file when it
91                      starts  (if the file exists), and write the banlist back
92                      to the file when someone gets banned  or  unbanned.   If
93                      this option isn't given the banlist will not be saved.
94
95       -c             Enables the capture-the-flag style game. By default this
96                      allocates one team flag per team.  This can be  modified
97                      see +f team. By default, the free-for-all style is used.
98
99       -cache worldCacheURL
100                      Specifies  the  URL  for the world cache file. This is a
101                      binary file that clients will attempt to download before
102                      getting the world from the bzfs server.
103
104       -cacheout filename
105                      Save  the  currently specified world into a binary cache
106                      file and exit.
107
108       -conf configfilename
109                      Specifies the name of a configuration file to be used to
110                      set all of the bzfs options, rather than setting them on
111                      the command line.
112
113       -cr            Enables the capture-the-flag style game with random map.
114                      You can optionally specify a building density by provid‐
115                      ing a number (default is 5).  One team flag per team  is
116                      provided,  but  more  can  be  added  thru  +f team.  By
117                      default, the free-for-all style is used.
118
119       -d             Increase debugging level. If  more  -d  is  given,  more
120                      debugging info is obtained.
121
122       -density num   Specify density for buildings, i.e. the higher the inte‐
123                      ger number,  the  more  buildings  you  will  get.  This
124                      applies to automatically generated maps only.
125
126       -disableBots   Disallow  clients from using the ROGER autopilot or from
127                      using robots.
128
129       +f {good | bad | teamflag-id}[{count}]
130                      Forces the existence of the given  flag.   If  specified
131                      multiple  times  for  the  same  flag-id, then that many
132                      flags will appear.  The good argument is  equivalent  to
133                      specifying +f once for each kind of good flag. Same goes
134                      for the bad argument.  The team  argument  adds  a  team
135                      flag  to each team, assuming that the game style is cap‐
136                      ture the flag. The optional {count} parameter allows the
137                      specification  of  multiple flags of the same type. Note
138                      that the curly braces are required.
139
140       -f {good | bad | flag-id}
141                      Disallows random flags  of  the  given  type.   Required
142                      flags  given  by  the +f option are still provided.  The
143                      bad argument is equivalent to  specifying  -f  once  for
144                      each  kind  of  bad  flag.   Same goes for good, but you
145                      probably do not want to do that.
146                      An example of running a  server  with  40  to  50  flags
147                      except genocide would be "+s 40 -s 50 -f G".  Similarly,
148                      "+f good{40} +f bad{10} -f G{40}" would give you exactly
149                      40 good flags except genocide and 10 of each bad flag.
150
151       -fb            Allow flags on box buildings.
152
153       -filterCallsigns
154                      Turn  on  the  filtering of callsigns and mottos.  Call‐
155                      signs and mottos are compared against bad words provided
156                      via -badwords.
157
158       -filterChat    Turn  on  the filtering of chat messages.  Messages that
159                      contain words listed via a -badwords file  are  replaced
160                      with !@#$%^&* characters.
161
162       -filterSimple  By  default,  all filtering is aggressive, matching much
163                      more than what is strictly listed in  a  -badwords  file
164                      for  convenience.   Providing  this option will make the
165                      -filterCallsigns and -filterChat comparisons exact match
166                      only.
167
168       -g             Quit after serving one game.
169
170       -gndtex texture-name
171                      Specify the name of the ground texture.
172
173       -groupdb file  Load groups from file
174
175       -h             Buildings are given random heights.
176
177       -handicap      Players  are  given  a handicap advantage based on their
178                      ability in relation to the  other  players.  Handicapped
179                      players  will  have faster tanks and shots. The handicap
180                      is determined by the player's score in relation to other
181                      players.
182
183       -help          Shows a help page and lists all the valid flag id's.
184
185       -helpmsg file name
186                      Provide  a message accessible by /help name, which sends
187                      no more than the first 50 lines of file to the player.
188
189       -i interface   Server will listen for and respond  to  ``pings''  (sent
190                      via broadcast) on the given interface.  Clients use this
191                      to find active servers  on  the  network.  This  is  the
192                      TCP/UDP/IP address the server will listen on.
193
194       -j             Allows jumping.
195
196       -jitterdrop warn-count
197                      Kicks players after warn-count jitter warnings.
198
199       -jitterwarn milliseconds
200                      Send warnings to players that jitter more than millisec‐
201                      onds.
202
203       -lagannounce milliseconds
204                      Announce players that lag more than milliseconds in pub‐
205                      lic.
206
207       -lagdrop warn-count
208                      Kicks players after warn-count lag warnings.
209
210       -lagwarn milliseconds
211                      Send  warnings  to  players that lag more than millisec‐
212                      onds.
213
214       -loadplugin name[,options]
215                      Load the specified plugin. name can either be  the  name
216                      of  the  plugin,  or a path to its library file. Option‐
217                      ally, you can provide any options the plugin requires.
218
219       -masterBanURL URL
220                      Specify alternate URLs for the master  ban  file  to  be
221                      pulled  from.   This  argument  may be provided multiple
222                      times.
223
224       -maxidle seconds
225                      Kick players that did  not  play  longer  than  seconds.
226                      Pausing  players  are  not kicked. If a player uttered a
227                      word recently, he will be kicked after thrice the  given
228                      time.
229
230       -mp {count | [rogue],[red],[green],[blue],[purple],[observer]}
231                      Sets  the  maximum number of players, total or per team.
232                      A single value sets the total number of players allowed.
233                      Five  comma  separated  values  set the maximum for each
234                      team.  If a count is left blank then no limit is set for
235                      that  team,  except for the limit on the total number of
236                      players.  Both forms may be provided.  For rabbit  hunt,
237                      the  "rogue" value sets the total number of non-observer
238                      player, and all other values must be zero.
239
240       -mps max-score Sets a maximum score for individual players.  The  first
241                      player  to  reach  this score is declared the winner and
242                      the game is over.
243
244       -ms shots      Allows up to shots simultaneous shots for  each  player.
245                      This is 1 by default.
246
247       -mts max-score Sets a maximum score for teams.  The first team to reach
248                      this score is declared the winner and the game is over.
249
250       -noMasterBanlist
251                      Server will not attempt to load the master ban list from
252                      the internet.
253
254       -noradar       Disable the use of the radar.
255
256       -noTeamKills   Players  on  the  same  team  are immune to each other's
257                      shots. Rogue is excepted.
258
259       -offa          Enables the Open-Free-for-All  style  game.  This  is  a
260                      teamless  mode,  similar  to  the  classic deathmatch in
261                      other games.
262
263       -p port        Listen for game  connections  on  port  instead  of  the
264                      default  port.   Use -help to print the default port, or
265                      use -d debug printing.
266
267       -packetlossdrop warn-count
268                      Kicks players after warn-count packetloss warnings.
269
270       -packetlosswarn percent
271                      Send warnings to players that have more more  than  per‐
272                      cent loss.
273
274       -passwd password
275                      Specify  a  server  administrator  password  for  use in
276                      remote administration such as /kick, /ban,  /mute,  etc.
277                      messages.
278
279       -pidfile filename
280                      Specify  a  file where the server will write its process
281                      ID so it may be used for remote administration.
282
283       -poll variable=value
284                      Configure several aspects of the in-game polling system
285
286                      banTime
287                             default number of minutes player should be banned
288                             (unspecified, the  default is 300)
289
290                      vetoTime
291                             max  seconds  authorized  user  has to abort poll
292                             (default is 20)
293
294                      votePercentage
295                             percentage of players required to affirm  a  poll
296                             (unspecified, the default is 50.1%)
297
298                      voteRepeatTime
299                             minimum  seconds  required  before  a  player may
300                             request another vote (default is 300)
301
302                      votesRequired
303                             minimum number of additional  votes  required  to
304                             make a vote valid (default is 2)
305
306                      voteTime
307                             maximum  amount  of  time  player has to vote, in
308                             seconds (default is 60)
309
310       -printscore    Write score to stdout whenever it changes
311
312       -publictitle description
313                      Advertise this server on the  internet  with  the  given
314                      description.   By  default,  a  server  will  respond to
315                      broadcast queries, allowing clients to find servers run‐
316                      ning  on  the  standard  port  on the local subnet.  The
317                      -publictitle option causes the server to register itself
318                      with  a  list  server,  which clients can query to get a
319                      list of bzfs servers.
320
321       -publicaddr address[:port]
322                      Advertise this server with the given address  and  port.
323                      Normally a server advertises itself at the local address
324                      and port.  Some servers  are  not  accessible  from  the
325                      internet  at  this address (for example servers behind a
326                      firewall using Network Address Translation).   Use  this
327                      option  to specify the address and/or port that internet
328                      users should use to access this server.
329
330       -publiclist url
331                      Advertise this server on the list servers listed at url.
332                      Only  has  an  effect when used with -publictitle and/or
333                      -publicaddr.  A built-in url is used  by  default.   The
334                      BZFlag clients use the same built-in url so, by default,
335                      clients will see  public  servers  automatically.   This
336                      argument  may  be provided multiple times to publicize a
337                      server to multiple list servers.
338
339       -publickey key Advertise this server on the list  server(s)  using  the
340                      specified  key.  Only has an effect when used with -pub‐
341                      lictitle and/or -publicaddr.
342
343       -q             If specified, the server will not listen for nor respond
344                      to  ``pings''.  BZFlag sends out these pings to give the
345                      user a list  of  available  servers.   This  effectively
346                      makes the server private, especially if the -p option is
347                      also used.
348
349       +r             Makes most shots ricochet.  Super bullets, shock  waves,
350                      and guided missiles do not.
351
352       -rabbit [score | killer | random]
353                      Enables  the  rabbit-hunt  style  game.  By default, the
354                      free-for-all style is used.  You must specify the  algo‐
355                      rithm  used  to pick a new rabbit when the old one dies.
356                      The score algorithm uses a  modified  wins/(wins+losses)
357                      score  and  picks  the  top scoring player to be the new
358                      rabbit.  The killer algorithm specifies  a  reverse  tag
359                      game  where  whomever  kills  the rabbit becomes the new
360                      rabbit.  The random algorithm randomly picks a new  rab‐
361                      bit  without  regard  to score.  (The score algorithm is
362                      the original behavior.)
363
364       -recbuf size   Start with the recording buffer active, with the  speci‐
365                      fied size (in megabytes).
366
367       -recbufonly    Disable recording straight to files
368
369       -recdir directory
370                      Specify the directory for record and replay files.
371
372       -replay        Start the server in replay mode.
373
374       -reportfile filename
375                      Write  messages  to  the  server admin written using the
376                      /report command to this file. If neither -reportfile  or
377                      -reportpipe  is  used  the  /report command will be dis‐
378                      abled.
379
380       -reportpipe command
381                      Pipe messages to the  server  admin  written  using  the
382                      /report  command  to  this program or shell command. See
383                      -reportfile.
384
385       +s num-flags   The server will have an  extra  num-flags  random  super
386                      flags available at all times.  The -f option can be used
387                      to  restrict  which  types  of  flags  will  be   added.
388                      Required  flags  given by the +f option are not included
389                      in the num-flags total.
390
391       -s num-flags   The server will have up to num-flags random super  flags
392                      available  at  any  time.   The -f option can be used to
393                      restrict which types of flags will be  added.   Required
394                      flags  given  by  the  +f option are not included in the
395                      num-flags total.
396
397       -sa            Antidote flags are provided for players with bad flags.
398
399       -sb            Allow spawns on box buildings.
400
401       -set name value
402                      Set BZDB variable name to value.
403
404       -setforced name value
405                      Set BZDB variable name to value, even  if  the  variable
406                      does not exist.
407
408       -sl id num     Restrict flag id to num shots.
409
410       -spamtime time Minimum  time  between  player  chat  messages  that are
411                      alike.
412
413       -spamwarn warnLimit
414                      Number of warnings a player/spammer gets, who   violates
415                      -spamtime.
416
417       -speedtol factor
418                      Override  the default speed auto kick factor. The factor
419                      should not be less then 1.0. The factor is a multiplier.
420
421       -srvmsg message
422                      Define a server welcome message. This option can be used
423                      multiple times to define a multiline message.
424
425       -st time       Bad flags are automatically dropped after time seconds.
426
427       -sw count      Bad  flags  are  automatically dropped after count wins.
428                      Capturing a team flag does not count as a win.
429
430       -synclocation  Forces all clients to use the same  location  (longitude
431                      and latitude).
432
433       -synctime      Forces  all  clients  to  use the same time of day.  The
434                      current time is determined by the server's clock.   This
435                      disables the + and - keys on the clients.
436
437       -t             Adds teleporters to the game.
438
439       -tftimeout time-limit
440                      If  the  last player in a team leaves while someone else
441                      is carrying the team flag, the team flag will not  reset
442                      until  it  is captured, or until the player drops it and
443                      it is left alone for some time.  This  option  specifies
444                      the number of seconds that the flag should be left alone
445                      before it is reset. The default value is 30.
446
447       -time {time-limit | ending-time}
448                      Sets a time limit on the game to time-limit  or  ending-
449                      time.  The game will be stopped time-limit seconds after
450                      the first player connects, or at ending-time,  whichever
451                      is  given.  The  ending-time should be given in hh:mm:ss
452                      format, but does not need minute and  second  arguments.
453                      If only hour is given, it must end in ':'. Each unspeci‐
454                      fied argument is set to 0.
455
456       -timemanual    When using -time, the  countdown  will  start  when  the
457                      first  player joins. With -timemanual, the countdown has
458                      to be started manually  using  the  /countdown  command.
459                      This is useful for matches.
460
461       -tk            Changes the default behavior where a player dies when he
462                      kills a teammate.  When using this option, he will  just
463                      get a -1 score penalty for the kill but not be killed in
464                      game.
465
466       -tkannounce    Announce teamkills to the admin channel.
467
468       -tkkr percent  Kicks players whose team killing to normal kill ratio is
469                      greater than percent [1-100]. A start up grace period is
470                      given to players.
471
472       -ts [micros]   Include timestamp information in DEBUG output  —  useful
473                      for  logging.  If micros is specified, microseconds will
474                      be added to the timestamp.
475
476       -UPnP          If enabled during build, bzfs try  to  communicate  with
477                      the  Gateway to set Port Forwarding and to supply infor‐
478                      mation not specified with -i (local interface) and -pub‐
479                      licaddr
480
481       -userdb file   Load group associations from file
482
483       -vars file     Loads  values for game configurable variables from file.
484                      Entries are one per  line  in  the  form:  set  variable
485                      value. For a list of variables that are configurable, in
486                      the BZFlag client, send a message with /set as the text.
487
488       -version       Prints the version number of the executable.
489
490       -world world-file
491                      Reads a specific BZFlag .bzw world layout file  for  the
492                      game map.
493
494       -worldsize world-size
495                      Changes the size for random maps
496
497   Notes
498       The  server  uses nearly zero CPU time when nobody is playing, and even
499       during a game the server uses very little CPU, so it's not a burden  on
500       the  system  to  leave one running and it won't interfere with a player
501       using the same system (except on Windows 95, which really sucks at mul‐
502       titasking).   The  server  will continue to run until terminated.  If a
503       game is in progress when the server goes  down,  all  players  will  be
504       kicked  off  and  the game will be aborted without warning.  The server
505       resets itself when all players have quit.  All  players  must  quit  to
506       reset  the  server  when  a  game  is  over (because of a score or time
507       limit).
508
509       The following game styles are recommended starting points.
510
511              -c [-b]        Basic capture-the-flag game.  It teaches teamwork
512                             and dogfighting skills.
513
514              -s -t          Free-for-all  with  superflags  and  teleporters.
515                             Teaches players how to use superflags  and  tele‐
516                             porters  for  maximum  effect.   You  may want to
517                             allow players to drop bad flags with any of  -sa,
518                             -st, and -sw.
519
520       Notice  that the maximum number of shots for these styles is one.  Hav‐
521       ing low shot counts can greatly increase general playability and learn‐
522       ing  speed.   However,  this  is not always true of every game style or
523       game world, and a skilled player will learn to deal with a  variety  of
524       shot  counts.   Single  shot  games have additional disadvantage in WAN
525       games where lag/jitter can cause unfair advantage.  Single  shot,  non-
526       Jump  games  will  teach  valuable lessons in dodging, however, and are
527       excellent starting points for the beginner.
528
529   Networking
530       Communication between the server and clients  (i.e.  between  bzfs  and
531       bzflag)  during a game is via TCP and UDP.  Use the -help option to get
532       the server's default port.  If there's a firewall  between  the  server
533       and  client,  the  firewall  must accept connections from the client to
534       this port and forward them to the server.
535
536       Clients can search for servers by sending broadcast UDP  packets.   But
537       they  must be on the same local area network for this to work.  Clients
538       can also find servers advertised using -publictitle  by  querying  list
539       servers.
540
541       Game  information  is  relayed  through  the server. Some communication
542       between clients, such as position and orientation information, is  nor‐
543       mally  sent  via UDP packets.  Other data, like flag grab and kill mes‐
544       sages, are sent to the server via TCP. The server then turns around and
545       broadcasts these packets  to all players. Since being in a game implies
546       connection to the server, all players are guaranteed to  get  all  mes‐
547       sages  sent  via  TCP.  But the UDP packets may be discarded.  If other
548       players can see your tank in the game but it never appears to move  and
549       shots  go  through it, chances are high that your UDP connection is not
550       working.
551
552   Worlds
553       BZFlag worlds come in two varieties, randomly generated ones, and human
554       designed  ones.  By  default, bzfs uses randomly generated world unless
555       you specify the -world command line or configuration file  option.  The
556       world  file  specified  by  the -world option is a text based file that
557       contains a list of world objects. This file can be created  using  pro‐
558       grams  found  on  github, or can be hand edited.  See the bzw(5) manual
559       page for more details.
560
561
562

GENERAL SERVER COMMANDS

564       /clientquery [callsign]
565              Retrieve client version info from all users, or just CALLSIGN if
566              given. Example:
567              /clientquery MrApathyCream
568              MrApathyCream: Version: BZFlag 1.11.6-20040729-gnu-linux-SDL
569
570
571       /date, /time
572              Responds with the current server local time. /date and /time are exactly the same. Example:
573              Tuesday September 08 06:45:54 2004
574
575
576       /flaghistory
577              Lists what flags players have grabbed in the past. Example:
578              MrApathyCream: (<-) (->) (O) (CB) (M) (B) (JM) (WA)
579              Gerbol: (L) (GM) (L) (GM) (CL) (ST) (GM) (L)
580              captain_macgyver: (SB) (SW)
581
582
583       /idlestats
584              Displays the idle time in seconds for each player. A player is idle when
585              he is dead and has not respawned yet. Example:
586              MrApathyCream: 0s
587              Gerbol: 80s
588              captain_macgyver: 13s
589
590
591       /lagstats
592              Lists network delays, jitter and number of lost resp. out of order packets by player. Example:
593              MrApathyCream 335 +- 10ms
594              Gerbol 210 +- 3ms
595              captain_macgyver 155 +- 0ms  12% lost/ooo
596
597
598       /me action
599
600              This command displays an "action" that is conveyed to another player.  It allows
601              for a little more expressivity in the game.  For example: "/me is hunting wabbits"
602              turns into a message like "TimRiker is hunting wabbits" that gets displayed
603              differently to other players.
604
605
606       /msg "callsign" message
607
608              This command allows a player to send a message to another player.  Similar to using
609              the "," and "." message keys in the game and then selecting your recipient, this
610              will send some message to particular player.  The quotes are optional.
611
612
613       /part [message]
614              Leave the server with a goodbye message (similar to IRC's /part)
615              /part Gotta go! bye everyone!
616
617
618       /password password
619              Attempt to gain administrator status Example:
620              /password supersecretpassword
621              You are now an administrator!
622
623
624       /poll {{ban | kick} callsign | vote {yes | no} | veto}
625              Interact and make requests of the bzflag voting system via the /poll command.
626              The ban and kick subcommands request a vote to respectively ban or kick some
627              player.  The playername is expected as the next argument.  The vote and veto
628              commands behave identical to the /vote and /veto command counterparts,
629              expecting the same arguments in following.  By default, you must be registered
630              to request or vote on a poll, and an admin to veto.
631
632
633       /quit [message]
634              Quit the game with a goodbye message (similar to IRC's /quit)
635              /quit Gotta go! bye everyone!
636
637
638       /report message
639              Write a message to the server administrator. Example:
640              /report I like this map!
641
642
643       /uptime
644              Prints server's current running time in days, hours, mins and secs.
645
646
647       /vote {yes | no}
648              If there is a poll active, this command will place a vote in favor or in
649              opposition to the poll.  Multiple languages are supported as a vote argument
650              in addition to "yes" and "no".  By default, you must be registered to vote on
651              a poll.
652
653
654

SERVER ADMINISTRATIVE COMMANDS

656
657
658       /ban {ip | ipList | #slot | "Player Name" | playerName} duration reason
659
660              Ban  players  using the specified IPs for certain length of time
661              from using this server.  <duration> can be:
662                  'short' or 'default' for the default ban time
663                  'forever' or 'max' for infinite bans
664                  a time in the format <weeks>W<days>D<hours>H<minutes>M
665                  just a number of minutes
666
667              Examples:
668              /ban 35.23.43.66 2 cheating
669              bans player with specific ip for 2 minutes
670              /ban 35.23.*.*,47.23.17.* 0 Cheaters
671              bans all ips in this range forever
672              /ban 36.37.2.8 2h30m "ShootMe" was abusing players
673              bans specific ip for 2.5 hours with given reason
674              /ban #5 60m Rejoining
675              bans player using slot 5 for 60 minutes with given reason
676              /ban "Tanker" max cheating
677              bans the player Tanker forever because cheating
678
679              Note: Slots numbers are only displayed in admins clients.
680              Duration and reason are required.
681
682
683       /banlist
684              List all of the IPs currently banned from this server. Example:
685              /banlist
686              IP Ban List
687              ------------
688              35.23.43.66 (2 minutes) banned by Tankmaster
689                  reason: Cheaters
690              47.23.17.* banned by Tankslave
691
692
693       /checkip ip
694              Check whether the IP is banned and print the corresponding rule. This does not
695              cover hostbans. Example:
696              /checkip 35.23.43.66
697              35.23.43.66 is banned:
698              35.23.43.66 banned by Tankmaster
699                  reason: Cheaters
700
701
702       /countdown [seconds]
703              Starts the countdown sequence for a timed game.  The countdown
704              sequence length can optionally be specified in seconds.  Examples:
705              /countdown
706              /countdown 3
707
708
709       /flag reset {all|unused|team|FlagId}
710              Repositions flags. If unused is specified, flags carried
711              by tanks are not affected. Using the team option only
712              resets team flags, whereas specifying a flag id (such as GM) only
713              repositions flags of this type. If noteam is specified,
714              team flags will not be reset. Examples:
715              /flag reset unused noteam
716              /flag reset G
717
718
719       /flag show
720              Shows all flags with information. Example:
721              0: p:-1 r:1 g:1 1:V s:1 p:159.1x43.2x0.0
722              1: p:2 r:1 g:1 1:SW s:1 p:209.1x143.2x10.0
723              2: p:-1 r:1 g:3 1:L s:1 p:-29.1x301.2x0.0
724
725
726       /flag up
727              Removes all flags from the game
728
729
730       /gameover
731              Ends the current game
732
733
734       /handicap
735              Shows the handicap boost percentage for every player
736
737
738       /hostban hostpattern duration reason
739              Ban players using the specified hostnames for a certain length of time from using this server.
740              Example:
741              /hostban *.foo.com 2 cheating
742              bans all players from foo.com for 2 minutes
743
744
745       /hostbanlist
746              List all of the host patterns currently banned from this server.
747
748
749       /jitterwarn [time]
750              Change the maximum allowed jitter time. Example:
751              /jitterwarn 50
752
753
754       /jitterdrop [count]
755              Change the number of jitter warnings given before a player is kicked. Example:
756              /jitterdrop 3
757
758
759       /kick {"Player Name" | playerName | #slot} reason
760              Kick a player off the server. Example:
761              /kick Gerbol
762              You were kicked off the server by MrApathyCream
763
764              /kick #1 Team killing
765              Kick the player using slot 1 because Team Killing
766
767              Note: Slots numbers are only displayed in admins clients.
768              A reason is required
769
770
771       /kill {"Player Name" | playerName | #slot} [reason]
772              Kill a player just like when shooting. Example:
773              /kill Gerbol
774              kill the player named Gerbol
775
776              /kill #4 teamkilling
777              Kill the player using slot 4 because teamkilling
778
779
780       /lagwarn [time]
781              Change the maximum allowed lag time. Example:
782              /lagwarn 300
783
784
785       /lagdrop [count]
786              Change the number of lag warnings given before a player is kicked. Example:
787              /lagdrop 3
788
789
790       /modcount [seconds]
791              Change the time on the clock by the specified number of seconds. Example:
792              /modcount +320
793
794
795       /mute {#slot | callsign}
796              Allows a server admin to remove the ability for a player to communicate with
797              other players. Once muted the player may only talk to admins on the server.
798              This command removes the TALK permission that is enabled by default for all
799              players. (disabling TALK by default would let you run a "silent" server)
800
801
802       /packetlosswarn [time]
803              Change the maximum allowed packetloss. Example:
804              /packetloss 1
805
806
807       /packetlossdrop [count]
808              Change the number of packetloss warnings given before a player is kicked. Example:
809              /packetloss 3
810
811
812       /playerlist
813              List player names and IP addresses. Example:
814              /playerlist
815              [0]MrApathyCream: 35.23.65.44:4808 udp id
816              [1]Gerbol: 130.123.1.55:4909 udp id
817              [2]captain_macgyver: 15.32.122.51:3201 udp id
818
819
820       /record file filename
821              Start recording directly to a file
822
823
824       /record list
825              List all files in the recordings directory
826
827
828       /record rate seconds
829              Set the time between game state updates stored in the recording. This will affect
830              the granularity of the 'skips' you can do while replaying a file. It will also
831              make the recording files bigger if it is set to a faster update rate.
832
833
834       /record save filename [seconds]
835              Save the recording buffer into a file. If seconds is specified, then only save
836              that many previous seconds into the file.
837
838
839       /record size megabytes
840              Set the size of the recording memory buffer
841
842
843       /record start
844              Start recording into the memory buffer
845
846
847       /record stats
848              Display the statistics for the current recording (file or buffered)
849
850
851       /record stop
852              Stop recording into the memory buffer
853
854
855       /replay list
856              List all files in the recordings directory
857
858
859       /replay load {filename | #index}
860              Load the specified recording file by name, or by index
861              (same indices as produced by the 'replay list' command)
862
863
864       /replay loop
865              Start looping the recording. This will oftentimes require that all players connected
866              to the server rejoin  (to reload the map, etc...)
867
868
869       /replay play
870              Start playing the recording. This will oftentimes require that all players connected
871              to the server rejoin  (to reload the map, etc...)
872
873
874       /replay skip [{+ | -} seconds]
875              If seconds is specified, then skip that amount of time in the recording.
876              Otherwise, skip forwards until there is activity.
877
878
879       /replay stats
880              Show the current replay status (filename, position, etc...)
881
882
883
884       /say message
885              Generate a public message sent by the server. Example:
886              /say This is a servermessage
887
888
889       /sendhelp {"Player name" | playerName | #slot} help page
890              Send the specified help page to a user
891              /sendhelp register "Foo"
892              Send the the help page 'register' to the player Foo
893
894
895       /shutdownserver
896              Stop serving BZFlag on this server
897
898
899       /superkill
900              Kick all players off the server
901
902
903       /unmute {#slot | callsign}
904              Allows a server admin to restore the TALK permission to a previously muted
905              player.
906
907
908       /veto  If there is a poll active, this will cancel the poll.  By default, you must be
909              an admin to veto a poll.
910
911
912       /viewreports
913              View the server's report file.
914
915
916
917

USER MANAGEMENT

919       Generally, you start with empty files for the user and  password  data‐
920       bases.   These  are  maintained  by  the server, and modifiable through
921       server commands.  Users in turn belong to groups.  Groups are generally
922       customized to perhaps allow administrative control to trusted users.
923
924       There  are both local and global groups, i.e. groups that are available
925       across the entire BZFlag network.  In setting up a server, you may want
926       to specify global groups that will allow already well known and trusted
927       users to police your server and help maintain control against  cheaters
928       and abuse.
929
930       The  server will automatically create three groups: EVERYONE, VERIFIED,
931       and  LOCAL.ADMIN.   EVERYONE   has   ACTIONMESSAGE,   ADMINMESSAGESEND,
932       CLIENTQUERY,  DATE,  FLAGHISTORY,  IDLESTATS, LAGSTATS, PRIVATEMESSAGE,
933       SHOWMOTTO, SPAWN and TALK by default. VERIFIED has  LISTPLUGINS,  POLL,
934       POLLKICK,  POLLBAN,  POLLKICK, POLLSET, POLLFLAGRESET, REPORT and VOTE.
935       The LOCAL.ADMIN group has almost every permission possible (similar  to
936       granting admin powers via /password).
937
938       Once  the  server  is  running,  users can register their callsigns and
939       admins can set their group memberships. Users can use any command  that
940       their  permissions allow. Every user, registered or not, is part of the
941       EVERYONE group. When a user identifies, they become part of  the  VERI‐
942       FIED group.
943
944       In  addition,  there  are  global  groups  available  that persist net‐
945       work-wide.  Users that register their callsigns on the  BZFlag  website
946       at https://forums.bzflag.org/ have the ability to globally authenticate
947       by providing a password from within the client.   When  they  authenti‐
948       cate, bzfs will ask the list server if they belong to any of the groups
949       listed in your group database file that are not prefixed with "LOCAL.".
950       If  they are a member of a group in question, then they are granted the
951       permissions you specify for that group.
952
953       A group database file is set up  to  contain  the  specific  local  and
954       global  groups  you  care to have on your server in addition to default
955       groups and exactly which permissions are granted by each.  These  files
956       are laid out with one line per group, using the following format:
957
958       GROUP_NAME: [*Group] [ +| -| !]perm1 [ +| -| !]perm2 ... permN
959
960
961       *Group: inherit permissions from existing group "Group"
962
963       +perm: add perm to this group
964
965       -perm: remove perm from this group
966
967       !perm: forbid perm for this group. makes perm inaccessible whether it's
968       granted from another group or not
969
970       If no operator is given with a permission it is handled like  +perm.  A
971       group line for a previously existing group adds to already granted per‐
972       missions. That way you can spread a  group's  definition  over  several
973       lines:
974
975       GROUP_NAME: +perm1 +perm2
976       GROUP_NAME: +perm3 +perm4 -perm5
977
978       Group  names cannot have spaces, quotes, or other special characters in
979       them.  This would be a sample line defining a "cop" group:
980
981       COPS: +KICK +SHORTBAN +BANLIST
982
983       Now a group USERADMIN with all permissions granted to  COPS  plus  some
984       additional could look like this:
985
986       USERADMIN: *COPS +BAN +UNBAN
987
988       Probably  you  want  to  define  customized permissions for the default
989       group "VERIFIED" instead of those automatically assigned by the server:
990
991       VERIFIED: -ALL +perm1 +perm2 ...
992
993       Or you want to disable the /poll command entirely?
994
995       EVERYONE: !POLL
996
997       To distinguish between a group that is local and one  that  is  global,
998       use the "LOCAL." prefix as part of the group name, e.g.:
999
1000       LOCAL.OPERATOR: BANLIST
1001
1002
1003       The available permissions are as follows:
1004
1005
1006       ACTIONMESSAGE       /me
1007       ADMINMESSAGERECEIVE player receives messages sent to admin channel
1008       ADMINMESSAGESEND    player may send messages on the admin channel
1009       ALL                 all permissions available
1010       ANTIBAN             player is immune to /ban
1011       ANTIKICK            player is immune to /kick
1012       ANTIKILL            player is immune to /kill
1013       ANTIPOLL            player is immune to /poll
1014       ANTIPOLLBAN         player is immune to /poll ban
1015       ANTIPOLLKICK        player is immune to /poll kick
1016       ANTIPOLLKILL        player is immune to /poll kill
1017       BAN                 /ban /hostban
1018       BANLIST             /banlist /hostbanlist
1019       CLIENTQUERY         /clientquery
1020       COUNTDOWN           /countdown
1021       ENDGAME             /gameover
1022       FLAGHISTORY         /flaghistory
1023       FLAGMASTER          /flag
1024       FLAGMOD             /flag reset /flag show /flag history
1025       HIDEADMIN           player doesn't show the @ sign
1026       IDLESTATS           /idlestats
1027       INFO                not implemented
1028       JITTERWARN          /jitterwarn /jitterdrop
1029       KICK                /kick
1030       LAGSTATS            /lagstats
1031       LAGWARN             /lagwarn /lagdrop
1032       LISTPERMS           not implemented
1033       LISTPLUGINS         /listplugins
1034       MASTERBAN           /masterban
1035       MODCOUNT            /modcount
1036       MUTE                /mute
1037       PACKETLOSSWARN      /packetlosswarn /packetlossdrop
1038       PLAYERLIST          /playerlist
1039       PLUGINS             /listplugins /loadplugin /unloadplugin
1040       POLL                /poll
1041       POLLBAN             /poll ban
1042       POLLFLAGRESET       /poll flagreset
1043       POLLKICK            /poll kick
1044       POLLSET             /poll set
1045       PRIVATEMESSAGE      /msg
1046       RECORD              /record
1047       REJOIN              allows instant rejoin, regardless of _rejoinTime
1048       REMOVEPERMS         /removegroup
1049       REPLAY              /replay
1050       REPORT              /report
1051       REQUIREIDENTIFY     user must use global registration
1052       SAY                 /say
1053       SENDHELP            /sendhelp
1054       SETALL              use of all set/remove commands
1055       SETPERMS            /setgroup
1056       SETPASSWORD         not implemented
1057       SETVAR              /set /reset
1058       SHORTBAN            /ban (with a limited duration)
1059       SHOWADMIN           player  shows  an @ regardless of having 'shortban'
1060       perm
1061       SHOWMOTTO           player is allowed to display  their  motto  on  the
1062       scoreboard
1063       SHOWOTHERS          /showgroup /showperms (on others)
1064       SHUTDOWNSERVER      /shutdownserver
1065       SPAWN               join  game  as  a player. observers don't need this
1066       flag.
1067       SUPERKILL           /superkill
1068       TALK                allows all players to send messages
1069       UNBAN               /unban /hostunban
1070       UNMUTE              /unmute
1071       VETO                /veto
1072       VOTE                /vote
1073
1074
1075       /grouplist
1076              Lists the available user groups
1077
1078
1079       /groupperms
1080              Lists the permissions for each group
1081
1082
1083       /masterban {flush | reload}
1084              Forces the server to flush any bans from the master  server.  If
1085              reload is specified instead of flush, also reloads bans from the
1086              the internet. Local bans are unaffected.  This command  requires
1087              the UNBAN permission.
1088
1089
1090       /reload
1091              Reloads the user, group, and password files (for synchronization
1092              between multiple servers on the same machine)
1093
1094
1095       /removegroup callsign group
1096              Remove a user from a group
1097
1098
1099       /setgroup callsign group
1100              Add a user to a group
1101
1102
1103       /showgroup callsign
1104              Lists the groups that a registered user is a member of
1105
1106
1107

SEE ALSO

1109       bzflag(6), bzadmin(6), bzw(5)
1110
1111
1112
1113BZFlag 2.4.18                     2020-01-28                           BZFS(6)
Impressum