1BZFS(6) BZFlag BZFS(6)
2
3
4
6 bzfs - BZFlag game server
7
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
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
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 ad‐
55 mins.
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 de‐
117 fault, the free-for-all style is used.
118
119 -d Increase debugging level. If more -d is given, more de‐
120 bugging 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 ap‐
124 plies 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 ex‐
147 cept 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 chase,
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 de‐
264 fault port. Use -help to print the default port, or use
265 -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 re‐
276 mote 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 re‐
300 quest 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 de‐
314 scription. By default, a server will respond to broad‐
315 cast queries, allowing clients to find servers running
316 on the standard port on the local subnet. The -public‐
317 title option causes the server to register itself with a
318 list server, which clients can query to get a list of
319 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 in‐
325 ternet 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 ar‐
336 gument 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-chase 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 /re‐
382 port command to this program or shell command. See -re‐
383 portfile.
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. Re‐
388 quired flags given by the +f option are not included in
389 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 re‐
393 strict 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 re‐
506 set the server when a game is over (because of a score or time limit).
507
508 The following game styles are recommended starting points.
509
510 -c [-b] Basic capture-the-flag game. It teaches teamwork
511 and dogfighting skills.
512
513 -s -t Free-for-all with superflags and teleporters.
514 Teaches players how to use superflags and tele‐
515 porters for maximum effect. You may want to al‐
516 low players to drop bad flags with any of -sa,
517 -st, and -sw.
518
519 Notice that the maximum number of shots for these styles is one. Hav‐
520 ing low shot counts can greatly increase general playability and learn‐
521 ing speed. However, this is not always true of every game style or
522 game world, and a skilled player will learn to deal with a variety of
523 shot counts. Single shot games have additional disadvantage in WAN
524 games where lag/jitter can cause unfair advantage. Single shot, non-
525 Jump games will teach valuable lessons in dodging, however, and are ex‐
526 cellent starting points for the beginner.
527
528 Networking
529 Communication between the server and clients (i.e. between bzfs and
530 bzflag) during a game is via TCP and UDP. Use the -help option to get
531 the server's default port. If there's a firewall between the server
532 and client, the firewall must accept connections from the client to
533 this port and forward them to the server.
534
535 Clients can search for servers by sending broadcast UDP packets. But
536 they must be on the same local area network for this to work. Clients
537 can also find servers advertised using -publictitle by querying list
538 servers.
539
540 Game information is relayed through the server. Some communication be‐
541 tween clients, such as position and orientation information, is nor‐
542 mally sent via UDP packets. Other data, like flag grab and kill mes‐
543 sages, are sent to the server via TCP. The server then turns around and
544 broadcasts these packets to all players. Since being in a game implies
545 connection to the server, all players are guaranteed to get all mes‐
546 sages sent via TCP. But the UDP packets may be discarded. If other
547 players can see your tank in the game but it never appears to move and
548 shots go through it, chances are high that your UDP connection is not
549 working.
550
551 Worlds
552 BZFlag worlds come in two varieties, randomly generated ones, and human
553 designed ones. By default, bzfs uses randomly generated world unless
554 you specify the -world command line or configuration file option. The
555 world file specified by the -world option is a text based file that
556 contains a list of world objects. This file can be created using pro‐
557 grams found on github, or can be hand edited. See the bzw(5) manual
558 page for more details.
559
560
561
563 /clientquery [callsign]
564 Retrieve client version info from all users, or just CALLSIGN if
565 given. Example:
566 /clientquery MrApathyCream
567 MrApathyCream: Version: BZFlag 1.11.6-20040729-gnu-linux-SDL
568
569
570 /date, /time
571 Responds with the current server local time. /date and /time are exactly the same. Example:
572 Tuesday September 08 06:45:54 2004
573
574
575 /flaghistory
576 Lists what flags players have grabbed in the past. Example:
577 MrApathyCream: (<-) (->) (O) (CB) (M) (B) (JM) (WA)
578 Gerbol: (L) (GM) (L) (GM) (CL) (ST) (GM) (L)
579 captain_macgyver: (SB) (SW)
580
581
582 /idlestats
583 Displays the idle time in seconds for each player. A player is idle when
584 he is dead and has not respawned yet. Example:
585 MrApathyCream: 0s
586 Gerbol: 80s
587 captain_macgyver: 13s
588
589
590 /lagstats
591 Lists network delays, jitter and number of lost resp. out of order packets by player. Example:
592 MrApathyCream 335 +- 10ms
593 Gerbol 210 +- 3ms
594 captain_macgyver 155 +- 0ms 12% lost/ooo
595
596
597 /me action
598
599 This command displays an "action" that is conveyed to another player. It allows
600 for a little more expressivity in the game. For example: "/me is hunting wabbits"
601 turns into a message like "TimRiker is hunting wabbits" that gets displayed
602 differently to other players.
603
604
605 /msg "callsign" message
606
607 This command allows a player to send a message to another player. Similar to using
608 the "," and "." message keys in the game and then selecting your recipient, this
609 will send some message to particular player. The quotes are optional.
610
611
612 /part [message]
613 Leave the server with a goodbye message (similar to IRC's /part)
614 /part Gotta go! bye everyone!
615
616
617 /password password
618 Attempt to gain administrator status Example:
619 /password supersecretpassword
620 You are now an administrator!
621
622
623 /poll {{ban | kick} callsign | vote {yes | no} | veto}
624 Interact and make requests of the bzflag voting system via the /poll command.
625 The ban and kick subcommands request a vote to respectively ban or kick some
626 player. The playername is expected as the next argument. The vote and veto
627 commands behave identical to the /vote and /veto command counterparts,
628 expecting the same arguments in following. By default, you must be registered
629 to request or vote on a poll, and an admin to veto.
630
631
632 /quit [message]
633 Quit the game with a goodbye message (similar to IRC's /quit)
634 /quit Gotta go! bye everyone!
635
636
637 /report message
638 Write a message to the server administrator. Example:
639 /report I like this map!
640
641
642 /uptime
643 Prints server's current running time in days, hours, mins and secs.
644
645
646 /vote {yes | no}
647 If there is a poll active, this command will place a vote in favor or in
648 opposition to the poll. Multiple languages are supported as a vote argument
649 in addition to "yes" and "no". By default, you must be registered to vote on
650 a poll.
651
652
653
655
656
657 /ban {ip | ipList | #slot | "Player Name" | playerName} duration reason
658
659 Ban players using the specified IPs for certain length of time
660 from using this server. <duration> can be:
661 'short' or 'default' for the default ban time
662 'forever' or 'max' for infinite bans
663 a time in the format <weeks>W<days>D<hours>H<minutes>M
664 just a number of minutes
665
666 Examples:
667 /ban 35.23.43.66 2 cheating
668 bans player with specific ip for 2 minutes
669 /ban 35.23.*.*,47.23.17.* 0 Cheaters
670 bans all ips in this range forever
671 /ban 36.37.2.8 2h30m "ShootMe" was abusing players
672 bans specific ip for 2.5 hours with given reason
673 /ban #5 60m Rejoining
674 bans player using slot 5 for 60 minutes with given reason
675 /ban "Tanker" max cheating
676 bans the player Tanker forever because cheating
677
678 Note: Slots numbers are only displayed in admins clients.
679 Duration and reason are required.
680
681
682 /banlist
683 List all of the IPs currently banned from this server. Example:
684 /banlist
685 IP Ban List
686 ------------
687 35.23.43.66 (2 minutes) banned by Tankmaster
688 reason: Cheaters
689 47.23.17.* banned by Tankslave
690
691
692 /checkip ip
693 Check whether the IP is banned and print the corresponding rule. This does not
694 cover hostbans. Example:
695 /checkip 35.23.43.66
696 35.23.43.66 is banned:
697 35.23.43.66 banned by Tankmaster
698 reason: Cheaters
699
700
701 /countdown [seconds]
702 Starts the countdown sequence for a timed game. The countdown
703 sequence length can optionally be specified in seconds. Examples:
704 /countdown
705 /countdown 3
706
707
708 /flag reset {all|unused|team|FlagId}
709 Repositions flags. If unused is specified, flags carried
710 by tanks are not affected. Using the team option only
711 resets team flags, whereas specifying a flag id (such as GM) only
712 repositions flags of this type. If noteam is specified,
713 team flags will not be reset. Examples:
714 /flag reset unused noteam
715 /flag reset G
716
717
718 /flag show
719 Shows all flags with information. Example:
720 0: p:-1 r:1 g:1 1:V s:1 p:159.1x43.2x0.0
721 1: p:2 r:1 g:1 1:SW s:1 p:209.1x143.2x10.0
722 2: p:-1 r:1 g:3 1:L s:1 p:-29.1x301.2x0.0
723
724
725 /flag up
726 Removes all flags from the game
727
728
729 /gameover
730 Ends the current game
731
732
733 /handicap
734 Shows the handicap boost percentage for every player
735
736
737 /hostban hostpattern duration reason
738 Ban players using the specified hostnames for a certain length of time from using this server.
739 Example:
740 /hostban *.foo.com 2 cheating
741 bans all players from foo.com for 2 minutes
742
743
744 /hostbanlist
745 List all of the host patterns currently banned from this server.
746
747
748 /jitterwarn [time]
749 Change the maximum allowed jitter time. Example:
750 /jitterwarn 50
751
752
753 /jitterdrop [count]
754 Change the number of jitter warnings given before a player is kicked. Example:
755 /jitterdrop 3
756
757
758 /kick {"Player Name" | playerName | #slot} reason
759 Kick a player off the server. Example:
760 /kick Gerbol
761 You were kicked off the server by MrApathyCream
762
763 /kick #1 Team killing
764 Kick the player using slot 1 because Team Killing
765
766 Note: Slots numbers are only displayed in admins clients.
767 A reason is required
768
769
770 /kill {"Player Name" | playerName | #slot} [reason]
771 Kill a player just like when shooting. Example:
772 /kill Gerbol
773 kill the player named Gerbol
774
775 /kill #4 teamkilling
776 Kill the player using slot 4 because teamkilling
777
778
779 /lagwarn [time]
780 Change the maximum allowed lag time. Example:
781 /lagwarn 300
782
783
784 /lagdrop [count]
785 Change the number of lag warnings given before a player is kicked. Example:
786 /lagdrop 3
787
788
789 /modcount [seconds]
790 Change the time on the clock by the specified number of seconds. Example:
791 /modcount +320
792
793
794 /mute {#slot | callsign}
795 Allows a server admin to remove the ability for a player to communicate with
796 other players. Once muted the player may only talk to admins on the server.
797 This command removes the TALK permission that is enabled by default for all
798 players. (disabling TALK by default would let you run a "silent" server)
799
800
801 /packetlosswarn [time]
802 Change the maximum allowed packetloss. Example:
803 /packetloss 1
804
805
806 /packetlossdrop [count]
807 Change the number of packetloss warnings given before a player is kicked. Example:
808 /packetloss 3
809
810
811 /playerlist
812 List player names and IP addresses. Example:
813 /playerlist
814 [0]MrApathyCream: 35.23.65.44:4808 udp id
815 [1]Gerbol: 130.123.1.55:4909 udp id
816 [2]captain_macgyver: 15.32.122.51:3201 udp id
817
818
819 /record file filename
820 Start recording directly to a file
821
822
823 /record list
824 List all files in the recordings directory
825
826
827 /record rate seconds
828 Set the time between game state updates stored in the recording. This will affect
829 the granularity of the 'skips' you can do while replaying a file. It will also
830 make the recording files bigger if it is set to a faster update rate.
831
832
833 /record save filename [seconds]
834 Save the recording buffer into a file. If seconds is specified, then only save
835 that many previous seconds into the file.
836
837
838 /record size megabytes
839 Set the size of the recording memory buffer
840
841
842 /record start
843 Start recording into the memory buffer
844
845
846 /record stats
847 Display the statistics for the current recording (file or buffered)
848
849
850 /record stop
851 Stop recording into the memory buffer
852
853
854 /replay list
855 List all files in the recordings directory
856
857
858 /replay load {filename | #index}
859 Load the specified recording file by name, or by index
860 (same indices as produced by the 'replay list' command)
861
862
863 /replay loop
864 Start looping the recording. This will oftentimes require that all players connected
865 to the server rejoin (to reload the map, etc...)
866
867
868 /replay play
869 Start playing the recording. This will oftentimes require that all players connected
870 to the server rejoin (to reload the map, etc...)
871
872
873 /replay skip [{+ | -} seconds]
874 If seconds is specified, then skip that amount of time in the recording.
875 Otherwise, skip forwards until there is activity.
876
877
878 /replay stats
879 Show the current replay status (filename, position, etc...)
880
881
882
883 /say message
884 Generate a public message sent by the server. Example:
885 /say This is a servermessage
886
887
888 /sendhelp {"Player name" | playerName | #slot} help page
889 Send the specified help page to a user
890 /sendhelp register "Foo"
891 Send the the help page 'register' to the player Foo
892
893
894 /shutdownserver
895 Stop serving BZFlag on this server
896
897
898 /superkill
899 Kick all players off the server
900
901
902 /unmute {#slot | callsign}
903 Allows a server admin to restore the TALK permission to a previously muted
904 player.
905
906
907 /veto If there is a poll active, this will cancel the poll. By default, you must be
908 an admin to veto a poll.
909
910
911 /viewreports
912 View the server's report file.
913
914
915
916
918 Generally, you start with empty files for the user and password data‐
919 bases. These are maintained by the server, and modifiable through
920 server commands. Users in turn belong to groups. Groups are generally
921 customized to perhaps allow administrative control to trusted users.
922
923 There are both local and global groups, i.e. groups that are available
924 across the entire BZFlag network. In setting up a server, you may want
925 to specify global groups that will allow already well known and trusted
926 users to police your server and help maintain control against cheaters
927 and abuse.
928
929 The server will automatically create three groups: EVERYONE, VERIFIED,
930 and LOCAL.ADMIN. EVERYONE has ACTIONMESSAGE, ADMINMESSAGESEND,
931 CLIENTQUERY, DATE, FLAGHISTORY, IDLESTATS, LAGSTATS, PRIVATEMESSAGE,
932 SHOWMOTTO, SPAWN and TALK by default. VERIFIED has LISTPLUGINS, POLL,
933 POLLKICK, POLLBAN, POLLKICK, POLLSET, POLLFLAGRESET, REPORT and VOTE.
934 The LOCAL.ADMIN group has almost every permission possible (similar to
935 granting admin powers via /password).
936
937 Once the server is running, users can register their callsigns and ad‐
938 mins can set their group memberships. Users can use any command that
939 their permissions allow. Every user, registered or not, is part of the
940 EVERYONE group. When a user identifies, they become part of the VERI‐
941 FIED group.
942
943 In addition, there are global groups available that persist net‐
944 work-wide. Users that register their callsigns on the BZFlag website
945 at https://forums.bzflag.org/ have the ability to globally authenticate
946 by providing a password from within the client. When they authenti‐
947 cate, bzfs will ask the list server if they belong to any of the groups
948 listed in your group database file that are not prefixed with "LOCAL.".
949 If they are a member of a group in question, then they are granted the
950 permissions you specify for that group.
951
952 A group database file is set up to contain the specific local and
953 global groups you care to have on your server in addition to default
954 groups and exactly which permissions are granted by each. These files
955 are laid out with one line per group, using the following format:
956
957 GROUP_NAME: [*Group] [ +| -| !]perm1 [ +| -| !]perm2 ... permN
958
959
960 *Group: inherit permissions from existing group "Group"
961
962 +perm: add perm to this group
963
964 -perm: remove perm from this group
965
966 !perm: forbid perm for this group. makes perm inaccessible whether it's
967 granted from another group or not
968
969 If no operator is given with a permission it is handled like +perm. A
970 group line for a previously existing group adds to already granted per‐
971 missions. That way you can spread a group's definition over several
972 lines:
973
974 GROUP_NAME: +perm1 +perm2
975 GROUP_NAME: +perm3 +perm4 -perm5
976
977 Group names cannot have spaces, quotes, or other special characters in
978 them. This would be a sample line defining a "cop" group:
979
980 COPS: +KICK +SHORTBAN +BANLIST
981
982 Now a group USERADMIN with all permissions granted to COPS plus some
983 additional could look like this:
984
985 USERADMIN: *COPS +BAN +UNBAN
986
987 Probably you want to define customized permissions for the default
988 group "VERIFIED" instead of those automatically assigned by the server:
989
990 VERIFIED: -ALL +perm1 +perm2 ...
991
992 Or you want to disable the /poll command entirely?
993
994 EVERYONE: !POLL
995
996 To distinguish between a group that is local and one that is global,
997 use the "LOCAL." prefix as part of the group name, e.g.:
998
999 LOCAL.OPERATOR: BANLIST
1000
1001
1002 The available permissions are as follows:
1003
1004
1005 ACTIONMESSAGE /me
1006 ADMINMESSAGERECEIVE player receives messages sent to admin channel
1007 ADMINMESSAGESEND player may send messages on the admin channel
1008 ALL all permissions available
1009 ANTIBAN player is immune to /ban
1010 ANTIKICK player is immune to /kick
1011 ANTIKILL player is immune to /kill
1012 ANTIPOLL player is immune to /poll
1013 ANTIPOLLBAN player is immune to /poll ban
1014 ANTIPOLLKICK player is immune to /poll kick
1015 ANTIPOLLKILL player is immune to /poll kill
1016 BAN /ban /hostban
1017 BANLIST /banlist /hostbanlist
1018 CLIENTQUERY /clientquery
1019 COUNTDOWN /countdown
1020 ENDGAME /gameover
1021 FLAGHISTORY /flaghistory
1022 FLAGMASTER /flag
1023 FLAGMOD /flag reset /flag show /flag history
1024 HIDEADMIN player doesn't show the @ sign
1025 IDLESTATS /idlestats
1026 INFO not implemented
1027 JITTERWARN /jitterwarn /jitterdrop
1028 KICK /kick
1029 LAGSTATS /lagstats
1030 LAGWARN /lagwarn /lagdrop
1031 LISTPERMS not implemented
1032 LISTPLUGINS /listplugins
1033 MASTERBAN /masterban
1034 MODCOUNT /modcount
1035 MUTE /mute
1036 PACKETLOSSWARN /packetlosswarn /packetlossdrop
1037 PLAYERLIST /playerlist
1038 PLUGINS /listplugins /loadplugin /unloadplugin
1039 POLL /poll
1040 POLLBAN /poll ban
1041 POLLFLAGRESET /poll flagreset
1042 POLLKICK /poll kick
1043 POLLSET /poll set
1044 PRIVATEMESSAGE /msg
1045 RECORD /record
1046 REJOIN allows instant rejoin, regardless of _rejoinTime
1047 REMOVEPERMS /removegroup
1048 REPLAY /replay
1049 REPORT /report
1050 REQUIREIDENTIFY user must use global registration
1051 SAY /say
1052 SENDHELP /sendhelp
1053 SETALL use of all set/remove commands
1054 SETPERMS /setgroup
1055 SETPASSWORD not implemented
1056 SETVAR /set /reset
1057 SHORTBAN /ban (with a limited duration)
1058 SHOWADMIN player shows an @ regardless of having 'shortban'
1059 perm
1060 SHOWMOTTO player is allowed to display their motto on the
1061 scoreboard
1062 SHOWOTHERS /showgroup /showperms (on others)
1063 SHUTDOWNSERVER /shutdownserver
1064 SPAWN join game as a player. observers don't need this
1065 flag.
1066 SUPERKILL /superkill
1067 TALK allows all players to send messages
1068 UNBAN /unban /hostunban
1069 UNMUTE /unmute
1070 VETO /veto
1071 VOTE /vote
1072
1073
1074 /grouplist
1075 Lists the available user groups
1076
1077
1078 /groupperms
1079 Lists the permissions for each group
1080
1081
1082 /masterban {flush | reload}
1083 Forces the server to flush any bans from the master server. If
1084 reload is specified instead of flush, also reloads bans from the
1085 the internet. Local bans are unaffected. This command requires
1086 the UNBAN permission.
1087
1088
1089 /reload
1090 Reloads the user, group, and password files (for synchronization
1091 between multiple servers on the same machine)
1092
1093
1094 /removegroup callsign group
1095 Remove a user from a group
1096
1097
1098 /setgroup callsign group
1099 Add a user to a group
1100
1101
1102 /showgroup callsign
1103 Lists the groups that a registered user is a member of
1104
1105
1106
1108 bzflag(6), bzadmin(6), bzw(5)
1109
1110
1111
1112BZFlag 2.4.22 2022-02-10 BZFS(6)