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||flag-id}[{count}]]
14 [-f {good|bad|flag-id}] [-fb] [-filterCallsigns] [-filterChat] [-fil‐
15 terSimple] [-g] [-groupdb file] [-h] [-handicap] [-help] [-helpmsg file
16 name] [-i interface] [-j] [-jitterdrop warn-count] [-jitterwarn mil‐
17 liseconds] [-lagannounce milliseconds] [-lagdrop warn-count] [-lagwarn
18 milliseconds] [-masterBanURL URL] [-maxidle seconds] [-mp
19 {count|[rogue-count],[red-count],[green-count],[blue-count],[pur‐
20 ple-count],[observer-count]}] [-mps max-score] [-ms shots] [-mts
21 max-score] [-noMasterBanlist] [-p port] [-packetlossdrop warn-count]
22 [-packetlosswarn percent] [-passdb file] [-passwd password] [-pidfile
23 filename] [-poll variable=value] [-printscore] [-public description]
24 [-publicaddr address[:port]] [-publiclist url] [-q] [+r] [-rabbit
25 [score|killer|random]] [-recbuf size] [-recbufonly] [-recdir directory]
26 [-replay] [-reportfile filename] [-reportpipe command] [-requireudp]
27 [+s flag-count] [-s flag-count] [-sa] [-sb] [-set name value] [-sl id
28 num] [-spamtime time] [-spamwarn warnLimit] [-speedtol factor] [-srvmsg
29 message] [-st time] [-sw count] [-synctime] [-t] [-tftimeout
30 time-limit] [-time time-limit] [-timemanual] [-tk] [-tkkr percent]
31 [-trackplayhistory] [-ts [micros]] [-userdb file] [-vars file] [-ver‐
32 sion] [-world world-file] [-worldsize world size]
33
34
36 Bzfs is the server for BZFlag, and it must be running to play. It can
37 be run on any system on the network (including a player's system or one
38 without graphics). Terminating the server terminates the game in
39 progress.
40
41
43 -a linear angular
44 Sets the maximum linear and angular accelerations. The
45 units are somewhat arbitrary so you'll have to experi‐
46 ment to find suitable values. Positive values will set
47 limits to the acceleration and lower they are, greater
48 is the inertia. Zero or negative values disable accel‐
49 eration limits.
50
51 -adminlagannounce milliseconds
52 Announce players that lag more than milliseconds to
53 admins.
54
55 -admsg message Define a message which will be broadcast to all players
56 every 15 minutes. This option can be used multiple
57 times to define a multiline message.
58
59 -advertise groupname,groupname,...
60 Allows control of who can see this server on the server
61 list. Use: -advertise NONE to make a private server (no
62 one will see the server, but global logins can be used).
63 The default, if -advertise is not specified, is to allow
64 everyone to see the server. Otherwise, your server will
65 only be listed to members of the groups which you spec‐
66 ify, eg: -advertise JOE,BOB.
67
68 -autoTeam Automatically assign players to teams when they connect
69 so that there are an equal number of players on all
70 available teams. Players are placed on teams that have
71 the fewest players; otherwise they will be placed on the
72 weakest team. Weakest team is the team with the lowest
73 combined kill ratio.
74
75 -b When -c is supplied, this option randomly rotates the
76 buildings.
77
78 -badwords badwordfile
79 Specify a file that contains bad words that will be used
80 when either -filterCallsigns or -filterChat is enabled.
81
82 -ban ip[,ip]...
83 Prohibits connections from the listed IP addresses.
84 Trailing 255 bytes are treated as mask bytes.
85
86 -banfile filename
87 Specifies the name of a file where bzfs will store the
88 banlist. It will load the banlist from this file when it
89 starts (if the file exists), and write the banlist back
90 to the file when someone gets banned or unbanned. If
91 this option isn't given the banlist will not be saved.
92
93 -c Enables the capture-the-flag style game. By default this
94 allocates one team flag per team. This can be modified
95 see +f team. By default, the free-for-all style is used.
96
97 -cache worldCacheURL
98 Specifies the URL for the world cache file. This is a
99 binary file that clients will attempt to download before
100 getting the world from the bzfs server.
101
102 -cacheout filename
103 Save the currently specified world into a binary cache
104 file and exit.
105
106 -conf configfilename
107 Specifies the name of a configuration file to be used to
108 set all of the bzfs options, rather than setting them on
109 the command line.
110
111 -cr Enables the capture-the-flag style game with random map.
112 You can optionally specify a building density by provid‐
113 ing a number (default is 5). One team flag per team is
114 provided, but more can be added thru +f team. By
115 default, the free-for-all style is used.
116
117 -d Increase debugging level. If more -d is given, more
118 debugging info is obtained.
119
120 -density num Specify density for buildings, i.e. the higher the inte‐
121 ger number, the more buildings you will get. This
122 applies to automatically generated maps only.
123
124 -disableBots Disallow clients from using the ROGER autopilot or from
125 using robots.
126
127 +f {good|bad|teamflag-id}[{count}]
128 Forces the existence of the given flag. If specified
129 multiple times for the same flag-id, then that many
130 flags will appear. The good argument is equivalent to
131 specifying +f once for each kind of good flag. Same goes
132 for the bad argument. The team argument adds a team
133 flag to each team, assuming that the game style is cap‐
134 ture the flag. The optional {count} parameter allows the
135 specification of multiple flags of the same type. Note
136 that the curly braces are required.
137
138 -f {good|bad|flag-id}
139 Disallows random flags of the given type. Required
140 flags given by the +f option are still provided. The
141 bad argument is equivalent to specifying -f once for
142 each kind of bad flag. Same goes for good, but you
143 probably do not want to do that.
144
145 An example of running a server with 40 to 50 flags except genocide
146 would
147 be "+s40 -s50 -f G". Similarly, "+f good{40} +f bad{10}
148 -f G{40}" would give you exactly 40 good flags except
149 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 email addresses.
155 Callsigns and addresses are compared against bad words
156 provided 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 -groupdb file Load groups from file
171
172 -h Buildings are given random heights.
173
174 -handicap Players are given a handicap advantage based on their
175 ability in relation to the other players. Handicapped
176 players will have faster tanks and shots. The handicap
177 is determined by the player's score in relation to other
178 players.
179
180 -help Shows a help page and lists all the valid flag id's.
181
182 -helpmsg file name
183 Create a help message accessible by /help name, which
184 prints the contents of file. Restricted to 10 lines per
185 help message.
186
187 -i interface Server will listen for and respond to ``pings'' (sent
188 via broadcast) on the given interface. Clients use this
189 to find active servers on the network. This is the
190 TCP/UDP/IP address the server will listen on.
191
192 -j Allows jumping.
193
194 -jitterdrop warn-count
195 Kicks players after warn-count jitter warnings.
196
197 -jitterwarn milliseconds
198 Send warnings to players that jitter more than millisec‐
199 onds.
200
201 -lagannounce milliseconds
202 Announce players that lag more than milliseconds in pub‐
203 lic.
204
205 -lagdrop warn-count
206 Kicks players after warn-count lag warnings.
207
208 -lagwarn milliseconds
209 Send warnings to players that lag more than millisec‐
210 onds.
211
212 -masterBanURL URL
213 Specify alternate URLs for the master ban file to be
214 pulled from. This argument may be provided multiple
215 times.
216
217 -maxidle seconds
218 Kick players that did not play longer than seconds.
219 Pausing players are not kicked. If a player uttered a
220 word recently, he will be kicked after thrice the given
221 time.
222
223 -mp {count|[rogue],[red],[green],[blue],[purple],[observer]}
224 Sets the maximum number of players, total or per team.
225 A single value sets the total number of players allowed.
226 Five comma separated values set the maximum for each
227 team. If a count is left blank then no limit is set for
228 that team, except for the limit on the total number of
229 players. Both forms may be provided.
230
231 -mps max-score Sets a maximum score for individual players. The first
232 player to reach this score is declared the winner and
233 the game is over.
234
235 -ms shots Allows up to shots simultaneous shots for each player.
236 This is 1 by default.
237
238 -mts max-score Sets a maximum score for teams. The first team to reach
239 this score is declared the winner and the game is over.
240
241 -noMasterBanlist
242 Server will not attempt to load the master ban list from
243 the internet.
244
245 -p port Listen for game connections on port instead of the
246 default port. Use -help to print the default port, or
247 use -d debug printing.
248
249 -packetlossdrop warn-count
250 Kicks players after warn-count packetloss warnings.
251
252 -packetlosswarn percent
253 Send warnings to players that have more more than per‐
254 cent loss.
255
256 -passdb file Load passwords from file
257
258 -passwd password
259 Specify a server administrator password for use in
260 remote administration such as /kick, /ban, /mute, etc
261 messages.
262
263 -pidfile filename
264 Specify a file where the server will write its process
265 ID so it may be used for remote administration.
266
267 -poll variable=value
268 Configure several aspects of the in-game polling system
269
270 banTime
271 default number of minutes player should be banned
272 (unspecified, the default is 300)
273
274 vetoTime
275 max seconds authorized user has to abort poll
276 (default is 20)
277
278 votePercentage
279 percentage of players required to affirm a poll
280 (unspecified, the default is 50.1%)
281
282 voteRepeatTime
283 minimum seconds required before a player may
284 request another vote (default is 300)
285
286 votesRequired
287 minimum number of additional votes required to
288 make a vote valid (default is 2)
289
290 voteTime
291 maximum amount of time player has to vote, in
292 seconds (default is 60)
293
294 -printscore Write score to stdout whenever it changes
295
296 -public description
297 Advertise this server on the internet with the given
298 description. By default, a server will respond to
299 broadcast queries, allowing clients to find servers run‐
300 ning on the standard port on the local subnet. The
301 -public option causes the server to register itself with
302 a list server, which clients can query to get a list of
303 bzfs servers.
304
305 -publicaddr address[:port]
306 Advertise this server with the given address and port.
307 Only has an effect when used with -public. Normally a
308 server advertises itself at the local address and port.
309 Some servers are not accessible from the internet at
310 this address (for example servers behind a firewall
311 using Network Address Translation). Use this option to
312 specify the address and/or port that internet users
313 should use to access this server.
314
315 -publiclist url
316 Advertise this server on the list servers listed at url.
317 Only has an effect when used with -public. A built-in
318 url is used by default. The BZFlag clients use the same
319 built-in url so, by default, clients will see public
320 servers automatically. This argument may be provided
321 multiple times to publicize a server to multiple list
322 servers.
323
324 -q If specified, the server will not listen for nor respond
325 to ``pings''. BZFlag sends out these pings to give the
326 user a list of available servers. This effectively
327 makes the server private, especially if the -p option is
328 also used.
329
330 +r Makes most shots ricochet. Super bullets, shock waves,
331 and guided missiles do not.
332
333 -rabbit [score|killer|random]
334 Enables the rabbit-hunt style game. By default, the
335 free-for-all style is used. You must specify the algo‐
336 rithm used to pick a new rabbit when the old one dies.
337 The score algorithm uses a modified wins/(wins+losses)
338 score and picks the top scoring player to be the new
339 rabbit. The killer algorithm specifies a reverse tag
340 game where whomever kills the rabbit becomes the new
341 rabbit. The random algorithm randomly picks a new rab‐
342 bit without regard to score. (The score algorithm is
343 the original behavior.)
344
345 -recbuf size Start with the recording buffer active, with the speci‐
346 fied size (in megabytes).
347
348 -recbufonly Disable recording straight to files
349
350 -recdir directory
351 Specify the directory for record and replay files.
352
353 -replay Start the server in replay mode.
354
355 -reportfile filename
356 Write messages to the server admin written using the
357 /report command to this file. If neither -reportfile or
358 -reportpipe is used the /report command will be dis‐
359 abled.
360
361 -reportpipe command
362 Pipe messages to the server admin written using the
363 /report command to this program or shell command. See
364 -reportfile.
365
366 -requireudp Require clients to use parallel UDP. If players fire
367 before opening a UDP channel, kick them off the server.
368
369 +s num-flags The server will have an extra num-flags random super
370 flags available at all times. The -f option can be used
371 to restrict which types of flags will be added.
372 Required flags given by the +f option are not included
373 in the num-flags total.
374
375 -s num-flags The server will have up to num-flags random super flags
376 available at any time. The -f option can be used to
377 restrict which types of flags will be added. Required
378 flags given by the +f option are not included in the
379 num-flags total.
380
381 -sa Antidote flags are provided for players with bad flags.
382
383 -sb Allow spawns on box buildings.
384
385 -set name value
386 Set BZDB variable name to value
387
388 -sl id num Restrict flag id to num shots.
389
390 -spamtime time Minimum time between player chat messages that are
391 alike.
392
393 -spamwarn warnLimit
394 Number of warnings a player/spammer gets, who violates
395 -spamtime.
396
397 -speedtol factor
398 Override the default speed auto kick factor. The factor
399 should not be less then 1.0. The factor is a multiplier.
400
401 -srvmsg message
402 Define a server welcome message. This option can be used
403 multiple times to define a multiline message.
404
405 -st time Bad flags are automatically dropped after time seconds.
406
407 -sw count Bad flags are automatically dropped after count wins.
408 Capturing a team flag does not count as a win.
409
410 -synctime Forces all clients to use the same time of day. The
411 current time is determined by the server's clock. This
412 disables the + and - keys on the clients.
413
414 -t Adds teleporters to the game.
415
416 -tftimeout time-limit
417 If the last player in a team leaves while someone else
418 is carrying the team flag, the team flag will not reset
419 until it is captured, or until the player drops it and
420 it is left alone for some time. This option specifies
421 the number of seconds that the flag should be left alone
422 before it is reset. The default value is 30.
423
424 -time time-limit
425 Sets a time limit on the game to time-limit. The game
426 will be stopped time-limit seconds after the first
427 player connects.
428
429 -timemanual When using -time, the countdown will start when the
430 first player joins. With -timemanual, the countdown has
431 to be started manually using the /countdown command.
432 This is useful for matches.
433
434 -tk Changes the default behavior where a player dies when he
435 kills a teammate. When using this option, he will just
436 get a -1 score penalty for the kill but not be killed in
437 game.
438
439 -tkkr percent Kicks players whose team killing to normal kill ratio is
440 greater than percent [1-100]. A start up grace period is
441 given to players.
442
443 -trackplayhistory
444 Has the server track players with good runs of kills and
445 anounces them. Also anounces those players that stop
446 the runs of good players.
447
448 -ts [micros] Include timestamp information in DEBUG output - useful
449 for logging. If micros is specified, microseconds will
450 be added to the timestamp.
451
452 -userdb file Load group associations from file
453
454 -vars file Loads values for game configurable variables from file.
455 Entries are one per line in the form: set variable
456 value. For a list of variables that are configurable, in
457 the BZFlag client, send a message with /set as the text.
458
459 -version Prints the version number of the executable.
460
461 -world world-file
462 Reads a specific BZFlag .bzw world layout file for the
463 game map.
464
465 -worldsize world-size
466 Changes the size for random maps
467
468 Notes
469 The server uses nearly zero CPU time when nobody is playing, and even
470 during a game the server uses very little CPU, so it's not a burden on
471 the system to leave one running and it won't interfere with a player
472 using the same system (except on Windows 95, which really sucks at mul‐
473 titasking). The server will continue to run until terminated. If a
474 game is in progress when the server goes down, all players will be
475 kicked off and the game will be aborted without warning. The server
476 resets itself when all players have quit. All players must quit to
477 reset the server when a game is over (because of a score or time
478 limit).
479
480 The following game styles are recommended starting points.
481
482 -c [-b] Basic capture-the-flag game. It teaches teamwork
483 and dogfighting skills.
484
485 -s -t Free-for-all with superflags and teleporters.
486 Teaches players how to use superflags and tele‐
487 porters for maximum effect. You may want to
488 allow players to drop bad flags with any of -sa,
489 -st, and -sw.
490
491 Notice that the maximum number of shots for these styles is one. Hav‐
492 ing low shot counts can greatly increase general playability and learn‐
493 ing speed. However, this is not always true of every game style or
494 game world, and a skilled player will learn to deal with a variety of
495 shot counts. Single shot games have additional disadvantage in WAN
496 games where lag/jitter can cause unfair advantage. Single shot, non-
497 Jump games will teach valuable lessons in dodging, however, and are
498 excellent starting points for the beginner.
499
500 Networking
501 Communication between the server and clients (i.e. between bzfs and
502 bzflag) during a game is via TCP and UDP. Use the -help option to get
503 the server's default port. If there's a firewall between the server
504 and client, the firewall must accept connections from the client to
505 this port and forward them to the server.
506
507 Clients can search for servers by sending broadcast UDP packets. But
508 they must be on the same local area network for this to work. Clients
509 can also find servers advertised using -public by querying list
510 servers.
511
512 Game information is relayed through the server. Some communication
513 between clients, such as position and orientation information, is nor‐
514 mally sent via UDP packets. Other data, like flag grab and kill mes‐
515 sages, are sent to the server via TCP. The server then turns around and
516 broadcasts these packets to all players. Since being in a game implies
517 connection to the server, all players are guaranteed to get all mes‐
518 sages sent via TCP. But the UDP packets may be discarded. If other
519 players can see your tank in the game but it never appears to move and
520 shots go through it, chances are high that your UDP connection is not
521 working.
522
523 Worlds
524 BZFlag worlds come in two varieties, randomly generated ones, and human
525 designed ones. By default, bzfs uses randomly generated world unless
526 you specify the -world command line or configuration file option. The
527 world file specified by the -world option is a text based file that
528 contains a list of world objects. This file can be created using pro‐
529 grams found on sourceforge.net through cvs, or can be hand edited. See
530 the bzw(5) manual page for more details.
531
532
533
535 /clientquery [callsign]
536 Retrieve client version info from all users, or just CALLSIGN if
537 given. Example:
538 /clientquery MrApathyCream
539 MrApathyCream: Version: BZFlag 1.11.6-20040729-gnu-linux-SDL
540
541
542 /date, /time
543 Responds with the current server local time. /date and /time are exactly the same. Example:
544 Tuesday September 08 06:45:54 2004
545
546
547 /flaghistory
548 Lists what flags players have grabbed in the past. Example:
549 MrApathyCream: (<-) (->) (O) (CB) (M) (B) (JM) (WA)
550 Gerbol: (L) (GM) (L) (GM) (CL) (ST) (GM) (L)
551 captain_macgyver: (SB) (SW)
552
553
554 /idlestats
555 Displays the idle time in seconds for each player. A player is idle when
556 he is dead and has not respawned yet. Example:
557 MrApathyCream: 0s
558 Gerbol: 80s
559 captain_macgyver: 13s
560
561
562 /lagstats
563 Lists network delays, jitter and number of lost resp. out of order packets by player. Example:
564 MrApathyCream 335 +- 10ms
565 Gerbol 210 +- 3ms
566 captain_macgyver 155 +- 0ms 12% lost/ooo
567
568
569 /me action
570
571 This command displays an "action" that is conveyed to another player. It allows
572 for a little more expressivity in the game. For example: "/me is hunting wabbits"
573 turns into a message like "TimRiker is hunting wabbits" that gets displayed
574 differently to other players.
575
576
577 /msg "callsign" message
578
579 This command allows a player to send a message to another player. Similar to using
580 the "," and "." message keys in the game and then selecting your recipient, this
581 will send some message to particular player. The quotes are optional.
582
583
584 /part [message]
585 Leave the server with a goodbye message (similar to IRC's /part)
586 /part Gotta go! bye everyone!
587
588
589 /password password
590 Attempt to gain administrator status Example:
591 /password supersecretpassword
592 You are now an administrator!
593
594
595 /poll {{ban|kick} callsign|vote {yes|no}|veto}
596 Interact and make requests of the bzflag voting system via the /poll command.
597 The ban and kick subcommands request a vote to respectively ban or kick some
598 player. The playername is expected as the next argument. The vote and veto
599 commands behave identical to the /vote and /veto command counterparts,
600 expecting the same arguments in following. By default, you must be registered
601 to request or vote on a poll, and an admin to veto.
602
603
604 /quit [message]
605 Quit the game with a goodbye message (similar to IRC's /quit)
606 /quit Gotta go! bye everyone!
607
608
609 /report message
610 Write a message to the server administrator. Example:
611 /report I like this map!
612
613
614 /uptime
615 Prints server's current running time in days, hours, mins and secs.
616
617
618 /vote {yes|no}
619 If there is a poll active, this command will place a vote in favor or in
620 opposition to the poll. Multiple languages are supported as a vote argument
621 in addition to "yes" and "no". By default, you must be registered to vote on
622 a poll.
623
624
625
627
628
629 /ban {ip|ipList|#slot|"Player Name"|playerName} duration reason
630
631 Ban players using the specified IPs for certain length of time
632 from using this server. <duration> can be:
633 'short' or 'default' for the default ban time
634 'forever' or 'max' for infinite bans
635 a time in the format <weeks>W<days>D<hours>H<minutes>M
636 just a number of minutes
637
638 Examples:
639 /ban 35.23.43.66 2 cheating
640 bans player with specific ip for 2 minutes
641 /ban 35.23.*.*,47.23.17.* 0 Cheaters
642 bans all ips in this range forever
643 /ban 36.37.2.8 2h30m "ShootMe" was abusing players
644 bans specific ip for 2.5 hours with given reason
645 /ban #5 60m Rejoining
646 bans player using slot 5 for 60 minutes with given reason
647 /ban "Tanker" max cheating
648 bans the player Tanker forever because cheating
649
650 Note: Slots numbers are only displayed in admins clients.
651 Duration and reason are required.
652
653
654 /banlist
655 List all of the IPs currently banned from this server. Example:
656 /banlist
657 IP Ban List
658 ------------
659 35.23.43.66 (2 minutes) banned by Tankmaster
660 reason: Cheaters
661 47.23.17.* banned by Tankslave
662
663
664 /checkip ip
665 Check whether the IP is banned and print the corresponding rule. This does not
666 cover hostbans. Example:
667 /checkip 35.23.43.66
668 35.23.43.66 is banned:
669 35.23.43.66 banned by Tankmaster
670 reason: Cheaters
671
672
673 /countdown [seconds]
674 Starts the countdown sequence for a timed game. The countdown
675 sequence length can optionally be specified in seconds. Examples:
676 /countdown
677 /countdown 3
678
679
680 /flag reset [unused]
681 Repositions flags. If unused is specified, flags carried by tanks are not affected.
682
683
684 /flag show
685 Shows all flags with information. Example:
686 0: p:-1 r:1 g:1 1:V s:1 p:159.1x43.2x0.0
687 1: p:2 r:1 g:1 1:SW s:1 p:209.1x143.2x10.0
688 2: p:-1 r:1 g:3 1:L s:1 p:-29.1x301.2x0.0
689
690
691 /flag up
692 Removes all flags from the game
693
694
695 /gameover
696 Ends the current game
697
698
699 /hostban hostpattern duration reason
700 Ban players using the specified hostnames for a certain length of time from using this server.
701 Example:
702 /hostban *.foo.com 2 cheating
703 bans all players from foo.com for 2 minutes
704
705
706 /hostbanlist
707 List all of the host patterns currently banned from this server.
708
709
710 /jitterwarn [time]
711 Change the maximum allowed jitter time. Example:
712 /jitterwarn 50
713
714
715 /jitterdrop [count]
716 Change the number of jitter warnings given before a player is kicked. Example:
717 /jitterdrop 3
718
719
720 /kick {"Player Name"|playerName|#slot} reason
721 Kick a player off the server. Example:
722 /kick Gerbol
723 You were kicked off the server by MrApathyCream
724
725 /kick #1 Team killing
726 Kick the player using slot 1 because Team Killing
727
728 Note: Slots numbers are only displayed in admins clients.
729 A reason is required
730
731
732 /kill {"Player Name"|playerName|#slot} [reason]
733 Kill a player just like when shooting. Example:
734 /kill Gerbol
735 kill the player named Gerbol
736
737 /kill #4 teamkilling
738 Kill the player using slot 4 because teamkilling
739
740
741 /lagwarn [time]
742 Change the maximum allowed lag time. Example:
743 /lagwarn 300
744
745
746 /lagdrop [count]
747 Change the number of lag warnings given before a player is kicked. Example:
748 /lagdrop 3
749
750
751 /modcount [seconds]
752 Change the time on the clock by the specified number of seconds. Example:
753 /modcount +320
754
755
756 /mute {#slot|callsign}
757 Allows a server admin to remove the ability for a player to communicate with
758 other players. Once muted the player may only talk to admins on the server.
759 This command removes the TALK permission that is enabled by default for all
760 players. (disabling TALK by default would let you run a "silent" server)
761
762
763 /packetlosswarn [time]
764 Change the maximum allowed packetloss. Example:
765 /packetloss 1
766
767
768 /packetlossdrop [count]
769 Change the number of packetloss warnings given before a player is kicked. Example:
770 /packetloss 3
771
772
773 /playerlist
774 List player names and IP addresses. Example:
775 /playerlist
776 [0]MrApathyCream: 35.23.65.44:4808 udp id
777 [1]Gerbol: 130.123.1.55:4909 udp id
778 [2]captain_macgyver: 15.32.122.51:3201 udp id
779
780
781 /record file filename
782 Start recording directly to a file
783
784
785 /record list
786 List all files in the recordings directory
787
788
789 /record rate seconds
790 Set the time between game state updates stored in the recording. This will affect
791 the granularity of the 'skips' you can do while replaying a file. It will also
792 make the recording files bigger if it is set to a faster update rate.
793
794
795 /record save filename [seconds]
796 Save the recording buffer into a file. If seconds is specified, then only save
797 that many previous seconds into the file.
798
799
800 /record size megabytes
801 Set the size of the recording memory buffer
802
803
804 /record start
805 Start recording into the memory buffer
806
807
808 /record stats
809 Display the statistics for the current recording (file or buffered)
810
811
812 /record stop
813 Stop recording into the memory buffer
814
815
816 /replay list
817 List all files in the recordings directory
818
819
820 /replay load {filename|#index}
821 Load the specified recording file by name, or by index
822 (same indices as produced by the 'replay list' command)
823
824
825 /replay loop
826 Start looping the recording. This will oftentimes require that all players connected
827 to the server rejoin (to reload the map, etc...)
828
829
830 /replay play
831 Start playing the recording. This will oftentimes require that all players connected
832 to the server rejoin (to reload the map, etc...)
833
834
835 /replay skip [{+|-} seconds]
836 If seconds is specified, then skip that amount of time in the recording.
837 Otherwise, skip forwards until there is activity.
838
839
840 /replay stats
841 Show the current replay status (filename, position, etc...)
842
843
844
845 /say message
846 Generate a public message sent by the server. Example:
847 /say This is a servermessage
848
849
850 /sendhelp {"Player name"|playerName|#slot} help page
851 Send the specified help page to a user
852 /sendhelp register "Foo"
853 Send the the help page 'register' to the player Foo
854
855
856 /shutdownserver
857 Stop serving BZFlag on this server
858
859
860 /superkill
861 Kick all players off the server
862
863
864 /unmute {#slot|callsign}
865 Allows a server admin to restore the TALK permission to a previously muted
866 player.
867
868
869 /veto If there is a poll active, this will cancel the poll. By default, you must be
870 an admin to veto a poll.
871
872
873 /viewreports
874 View the server's report file.
875
876
877
878
880 Generally, you start with empty files for the user and password data‐
881 bases. These are maintained by the server, and modifiable through
882 server commands. Users in turn belong to groups. Groups are generally
883 customized to perhaps allow administrative control to trusted users.
884
885 There are both local and global groups, i.e. groups that are available
886 across the entire BZFlag network. In setting up a server, you may want
887 to specify global groups that will allow already well known and trusted
888 users to police your server and help maintain control against cheaters
889 and abuse.
890
891 The server will automatically create three groups: EVERYONE, VERIFIED,
892 and LOCAL.ADMIN. EVERYONE has ACTIONMESSAGE, ADMINMESSAGESEND, DATE,
893 FLAGHISTORY, IDLESTATS, LAGSTATS, PRIVATEMESSAGE and SPAWN by default.
894 VERIFIED has POLL, POLLKICK, POLLBAN, POLLSET, POLLFLAGRESET, and VOTE.
895 The LOCAL.ADMIN group has almost every permission possible (similar to
896 granting admin powers via /password).
897
898 Once the server is running, users can register their callsigns and
899 admins can set their group memberships. Users can use any command that
900 their permissions allow. Every user, registered or not, is part of the
901 EVERYONE group. When a user identifies, they become part of the VERI‐
902 FIED group.
903
904 In addition, there are global groups available that persist net‐
905 work-wide. Users that register their callsigns on the BZFlag website
906 at http://my.BZFlag.org/bb/ have the ability to globally authenticate
907 by providing a password from within the client. When they authenti‐
908 cate, bzfs will ask the list server if they belong to any of the groups
909 listed in your group database file that are not prefixed with "LOCAL.".
910 If they are a member of a group in question, then they are granted the
911 permissions you specify for that group.
912
913 A group database file is set up to contain the specific local and
914 global groups you care to have on your server in addition to default
915 groups and exactly which permissions are granted by each. These files
916 are laid out with one line per group, using the following format:
917
918 GROUP_NAME: [*Group] [+|-|!]perm1 [+|-|!]perm2 ... permN
919
920
921 *Group: inhert permissions from existing group "Group"
922
923 +perm: add perm to this group
924
925 -perm: remove perm from this group
926
927 !perm: forbid perm for this group. makes perm inaccessable whether it's
928 granted from another group or not
929
930 If no operator is given with a permission it is handled like +perm. A
931 group line for a previously existing group adds to already granted per‐
932 missions. That way you can spread a group's definition over several
933 lines:
934
935 GROUP_NAME: +perm1 +perm2
936 GROUP_NAME: +perm3 +perm4 -perm5
937
938 Group names cannot have spaces, quotes, or other special characters in
939 them. This would be a sample line defining a "cop" group:
940
941 COPS: +KICK +SHORTBAN +BANLIST
942
943 Now a group USERADMIN with all permissions granted to COPS plus some
944 additional could look like this:
945
946 USERADMIN: *COPS +BAN +UNBAN
947
948 Probably you want to define customized permissions for the default
949 group "VERIFIED" instead of those automatically asigned by the server:
950
951 VERIFIED: -ALL +perm1 +perm2 ...
952
953 Or you want to disable the /poll command entirely?
954
955 EVERYONE: !POLL
956
957 To distinguish between a group that is local and one that is global,
958 use the "LOCAL." prefix as part of the group name, e.g.:
959
960 LOCAL.OPERATOR: BANLIST
961
962
963 The available permissions are as follows:
964
965
966 ACTIONMESSAGE /me
967 ADMINMESSAGERECEIVE player receives messages sent to admin channel
968 ADMINMESSAGESEND player may send messages on the admin channel
969 ALL all permissions available
970 BAN /ban /hostban
971 BANLIST /banlist /hostbanlist
972 COUNTDOWN /countdown
973 ENDGAME /endgame
974 FLAGHISTORY /flaghistory
975 FLAGMOD /flag
976 IDLESTATS /idlestats
977 INFO not implemented
978 KICK /kick
979 LAGSTATS /lagstats
980 LAGWARN /lagwarn
981 LISTPERMS not implemented
982 MUTE /mute
983 PLAYERLIST /playerlist
984 POLL /poll
985 POLLBAN /poll ban
986 POLLFLAGRESET /poll flagreset
987 POLLKICK /poll kick
988 POLLSET /poll set
989 PRIVATEMESSAGE /msg
990 REJOIN allows instant rejoin, regardless of _rejoinTime
991 REMOVEPERMS /removegroup
992 REQUIREIDENTIFY user must /identify when using this locally regis‐
993 tered callsign
994 SAY /say
995 SETALL use of all set/remove commands
996 SETPERMS /setgroup
997 SETPASSWORD not implemented
998 SETVAR /set /reset
999 SHOWOTHERS not implemented
1000 SHUTDOWNSERVER /shutdownserver
1001 SPAWN join game as a player. observers don't need this
1002 flag.
1003 SUPERKILL /superkill
1004 TALK allows all players to send messages
1005 UNBAN /unban /hostunban
1006 UNMUTE /unmute
1007 VETO /veto
1008 VOTE /vote
1009
1010
1011 /identify password
1012 Log in to a registered callsign
1013
1014
1015 /deregister [callsign]
1016 With an argument, it deregisters another user's callsign. With‐
1017 out, it removes your own registration.
1018
1019
1020 /ghost callsign password
1021 Kicks off an impersonating player or ghost
1022
1023
1024 /grouplist
1025 Lists the available user groups
1026
1027
1028 /groupperms
1029 Lists the permissions for each group
1030
1031
1032 /masterban {flush|reload}
1033 Forces the server to flush any bans from the master server. If
1034 reload is specified instead of flush, also reloads bans from the
1035 the internet. Local bans are unaffected. This command requires
1036 the UNBAN permision.
1037
1038
1039 /register password
1040 Register your current callsign to the specified password. Pass‐
1041 words must be at least 3 characters long, and the callsign may
1042 not contain quotes or other non-alphanumeric/space characters
1043
1044
1045 /reload
1046 Reloads the user, group, and password files (for synchronization
1047 between multiple servers on the same machine)
1048
1049
1050 /removegroup callsign group
1051 Remove a user from a group
1052
1053
1054 /setgroup callsign group
1055 Add a user to a group
1056
1057
1058 /setpass password
1059 Changes your password
1060
1061
1062 /showgroup callsign
1063 Lists the groups that a registered user is a member of
1064
1065
1066
1068 bzflag(6), bzadmin(6), bzw(5)
1069
1070
1071
1072bzfs-2.0.10 2007-12-20 bzfs(6)