bzflag

package: bzflag

title: bzflag(6)

summary: a tank battle game

text:
# bzflag(6)

## NAME
BZFlag - a tank battle game

## SYNOPSIS
bzflag [-badwords filterfile] [-config filename] [-configdir directoryname] [-d | -debug] [-date mm/dd/yyyy] [-dir | -directory directory] [-e | -echo] [-ea | -echoAnsi] [-h | -help | --help] [-latitude latitude] [-list list-server-url] [-locale locale] [-longitude longitude] [-m | -mute] [-motd URL] [-multisample] [-nolist] [-nomotd] [-notime] [-solo number-of-robots] [-team {automatic | red | green | blue | purple | rogue}] [-time hh:mm:ss] [-v | -version | --version] [-view {normal | stereo | stacked | three | anaglyph}] [-window widthxheight[{+|-}x{+|-}y]] [-zbuffer {on | off}] [[callsign[:password]@]server[:port]]

## DESCRIPTION
BZFlag is a 3D multi-player tank battle game that allows users to play against each other in a networked environment. There are five teams: red, green, blue, purple and rogue (rogue tanks are black). Destroying a player on another team scores a win, while being destroyed or destroying a teammate scores a loss. Rogues have no teammates (not even other rogues), so they cannot shoot teammates and they do not have a team score.

There are three main styles of play: capture-the-flag, free-for-all, and rabbit-chase. In capture-the-flag, each team (except rogues) has a team base and each team with at least one player has a team flag. The object is to capture an enemy team's flag by bringing it to your team's base. This destroys every player on the captured team, subtracts one from that team's score, and adds one to your team's score. In free-for-all, there are no team flags or team bases. The object is simply to get as high a score as possible. In rabbit-chase, the lead player is chosen as the target for all other players. When the rabbit (target) is destroyed, the live player with the next highest score becomes the rabbit. The object is to remain the rabbit for as long as possible. The rabbit is marked as a white tank.

### Joining a Game
To get quickly started, select the "Join Game" menu in the BZFlag client using the arrow keys on your keyboard. Choose the "Select a Server" link and pick one of the servers near the top of the menu. This should take you back to the "Join Game" menu where you should then provide a callsign. Select the "Connect". Within a few seconds you should be on that server ready to play.

BZFlag includes a global registration system that allows players to register a callsign that defines them uniquely on the BZFlag network. Some servers require registration for all users, some require it to obtain administrative abilities. If you attempt to use a callsign that is already registered, you may be denied access to a server. See https://forums.bzflag.org/ for details regarding callsign registration and to check on available names. Once registered, you will be able to provide your password in the "Join Game" menu and have it used for authentication. You are encouraged to register your callsign.

There are generally public BZFlag servers running around the clock all around the world, available over the Internet. Similarly, private servers can be set up for running local network games. See the bzfs manual page (bzfs.6) for details on starting a new server, public or private.

### Options
-badwords filterFile

Specify a file containing bad words to be replaced with !@#$%^&* characters when they appear in chat.

-d or -debug

Adds some diagnostic output. Can be specified multiple times to increase verbosity.

-dir or -directory directory

Looks for data files in directory first. This defaults to a directory named data in the current directory. If not found there, the game looks for data files in the current directory, then in the default installation location /usr/share/games/bzflag.

-config

Specify the configuration file to load. The name is relative to the default configuration directory. This is usually only used by developers.

-configdir

Specify the configuration directory to use. This will be the default config directory used by this instance of the game. This is really only needed if you can not use the default directory.

-date mm/dd/yyyy

Specifies the date for positioning celestial objects. This option is available only when bzflag is compiled with debugging enabled.

-e, -echo

Copies all message window output to the shell on *nux and OSX, to stdout.txt on windows

-ea, -echoAnsi

Copies all message window output like -echo preserving the ANSI color coding on *nix, same as -echo on windows.

-h, -help, --help

Prints a concise list of the bzflag command line options.

-latitude latitude

Uses latitude when computing celestial object positions.

-list url

Look for list servers using url. A built-in url is used by default (the same url is the default for bzfs). If url is default then the url is reset to the built-in url (the url is remembered across invocations of bzflag). list servers keep a list of bzfs servers accessible from the internet and are queried when using the Find Server menu.

-locale locale

Set the locale used to display messages, menus, hud alerts, etc.

-longitude longitude

Uses longitude when computing celestial object positions.

-m, -mute

Disables sound.

-motd URL

Specify an alternate URL for the message of the day displayed when bzflag starts. https://www.bzflag.org/motd.php is the default. See -nomotd.

-multisample

Uses a multisample buffer for rendering. If multisampling isn't available then the application will terminate.

-nolist

Disables list server querying. See -list.

-nomotd

Disables queries for the message of the day when bzflag starts.

-notime

Removes a previously set fixed time for celestial object positions. See -time.

-solo number-of-robots

When you join a game, you'll also cause number-of-robots robots to join too. This is an experimental option and the robots are extremely stupid players. Robots are added to teams at random.

-team team-name

Chooses the player's team. If there are no team positions available and the team-name is set to be automatic, the player will try to join as an observer.

-time hh:mm:ss

Specifies the local time used for positioning celestial objects, which will remain fixed rather than move through the sky as the day advances. Use -notime to undo this setting.

-v, -version, --version

Prints the version number of the executable.

-view {normal | stereo | stacked | three | anaglyph}

Chooses one of the possible display options. Normal will render a single view to the entire screen. Stereo will try to allocate a stereo (in-a-window) capable buffer and then draw a single view in stereo. Your system must support stereo-in-a-window buffers. Three will render the front view to the upper right quadrant of the display, a left view to the lower left quadrant, and a right view to the lower right quadrant. This is intended for systems capable of driving multiple monitors from various areas of the display surface, yielding a wrap around view. stacked will render the two right eye view on the upper half of the display and the left eye on the lower half. anaglyph supports red-cyan stereo viewing glasses. Note that setting an unsupported view option will often lead to BZFlag not running successfully. To correct this, run with -view normal.

-window widthxheight

Runs the application in a window instead of full screen. Specify the width and height of the window after the option.

-zbuffer {on | off}

When off is chosen the game will not attempt to allocate a depth (z) buffer and will use a different rendering technique for hidden surface removal. Some systems may be capable of using a higher screen resolution if a depth buffer isn't allocated.

[callsign[:password]@]server[:port]

Specifies the callsign you want, and the host running the bzfs server. Multiple independent games can be run on a single network, or even on different ports on a single computer. Which server and port you choose decides which game you enter. The callsign and the port are optional. If you don't specify a port the standard server port will be used, and if you don't specify a callsign the callsign used for the previous game is used. If that cannot be found then bzflag will prompt for a callsign when joining a game.

### Controls
Tanks are controlled by moving the mouse within the large yellow box in the main view. When the mouse is inside the small yellow box, the tank is motionless. The large box is the limit of the tank's speed.

Shots are fired by pressing the R left mouse button . The type of shot fired depends on what flag the tank has. Normal shots last about 3.5 seconds. Reloading also takes 3.5 seconds for normal shots.

Pressing the R middle mouse button drops a flag. Nothing will happen if the tank has no flag or is not allowed to drop the flag for some reason (e.g. it's a bad flag). Flags are picked up by driving over them. A dropped flag gets tossed straight up; it falls to the ground in about 3 seconds.

Pressing the R right mouse button identifies the closest player centered in the view. If your tank has the guided missile super-flag, this will also lock the missile on target. However, the target must be carefully centered for the missile to lock.

When the server allows jumping or if the tank has the jumping flag, the R Tab key jumps. Tanks can jump onto buildings, however there is no way to shoot downward (or upward) with a regular shot. The guided missile and the shock wave are two ways of destroying a tank on or from a building.

The current radar range can be changed by pressing the R 1, R 2, or R 3 keys above the alphabetic keys for low, medium, and long range, respectively. The R f key toggles the flag help display, which describes the flag in the tank's possession. Displaying help does not pause the game.

The R Pause key pauses and resumes play. When paused, the tank cannot be destroyed nor can its shots destroy other players. The reload countdown is suspended and the radar and view are blanked when paused. A paused tank has a transparent black sphere surrounding it. Since a paused tank is invulnerable a player could cheat by pausing just before being destroyed, so there's a brief delay before the pause takes effect. This delay is long enough to make pausing effectively useless for cheating. Pressing R Pause before the pause takes effect cancels the pause request.

The R Delete key initiates a self destruct sequence. You will see a countdown that can be stopped by pressing R Delete once more. Otherwise, you tank will self destruct. This can be useful if your tank gets stuck and there is no other tank around to shoot you.

The list of players and scores is displayed when your tank is paused or dead. Pressing the R s key toggles the score display when alive and not paused.

The R b key toggles binoculars, which gives a close up view of distant objects. The R 9 key toggles Otto, the automatic pilot, on and off. R t key toggles the frame rate display and the R y key toggle the frame time display. The time of day can be changed with the R plus and R minus keys, which advance and reverse the time by 5 minutes, respectively. The time of day in the game is initialized to the system's clock. In addition, the latitude and longitude are used to calculate the positions of celestial objects.

The R Esc key shows the game menu. Use the R Enter and arrow keys to navigate the menu and the R Esc key to return to the previous menu or hide the main menu. The menus allow you to start a new server, join a game, leave a game and enter another, change the rendering options, change the display resolution, change the sound volume, remap the meanings of keys, browse online help, and quit the game.

The display resolution is not always available for changing. If it is, use the R t key to test a selected resolution; it will be loaded for a few seconds and then the previous resolution restored. Press the R Enter key to permanently select a new resolution. When you quit the game, the resolution is restored to what it was before the game started.

Options are recorded between game sessions in the .bzf/<version>/config.cfg file in the user's home directory. This file has a simple name/value pair format. This file is completely rewritten by the game after each session.

You can send typed messages to other players by pressing the R m or R n keys. The R m key will send a message to your teammates only. Rogue players cannot send these messages. The R n key will send a message to all the other players. After pressing the key, just type your message and press enter or Control-D. To cancel a message, you can enter a blank message or press Delete, Escape, or Control-C. Be careful with the Escape key; pressing Escape once will cancel the message, pressing it again will show the main menu. Backspace will delete the most recently typed character. The Tab key doesn't add a tab to the message but instead causes the tank to jump (as usual). You can also send a direct message to a single player by pressing the R , or R . keys. The R , key will send your message to your 'nemesis', i.e. the last player who killed you or was killed by you. The R . key will send a private message to another player. You can choose the recipient by using the left and right arrow keys. R o toggles the quick-admin interface. Use the arrow keys to select a command, and then fill in the necessary parameters

### Scoring
An individual's score is the difference between that player's wins and losses. A win is scored for each enemy tank destroyed. A loss is scored for each teammate destroyed and for each time the player is destroyed. The score sheet displays each player's score and the number of wins and losses.

A team's score is calculated differently depending on the game style. In the capture-the-flag style, the team score is the number of enemy flags captured minus the number of times the team's flag was captured. Capturing your own flag (by taking it onto an enemy base) counts as a loss. In the free-for-all style, the team score is sum of the wins of all the players on the team minus the sum of the losses of all the players on the team. In the rabbit-chase style, scoring is similar to free-for-all.

The score sheet also lists the number times you have destroyed or been destroyed by each other player under the Kills heading. This lets you compare your one-on-one performance against other players.

### Teleporters
The server can be configured to place teleporters in the game. A teleporter is a tall black transparent object that instantaneously moves any object (tanks and shots) passing through it to some other teleporter. The teleporter connections are fixed for the entire game. In the capture-the-flag style the connections are always the same. In the free-for-all style the connections are random and reversible (going back through where you come out puts you back where you started).

Each side of a teleporter teleports independently of the other side. However, it's possible for each side to go to the other. This is a through-teleporter and it's almost as if it weren't there. It's also possible for a side to teleport to itself. This is a reverse-teleporter. Shooting at a reverse teleporter is likely to be self-destructive. Shooting a laser at a reverse teleporter is invariably fatal.

### Radar
The radar is displayed on the left side of the control panel. It provides a satellite view of the game. Buildings and the outer wall are light blue. Team bases are outlined squares in the team colors. Teleporters are short yellow lines. Tanks are dots the in the tank's team color, except for rogues which are yellow. The size of a tank's dot is a rough indication of the tank's altitude: higher tanks have larger dots. Flags are small crosses. Team flags have the team color while super-flags are white. Shots are small white dots (except laser beams which are line segments and shock waves which are circles).

The tank always appears in the center of the radar and the radar display rotates with the tank so that forward is always up. There's a small tick mark indicating forward. The left and right extremes of the current view are represented by a yellow V whose tip is at the center of the radar. North is indicated by the letter N.

### Heads Up Display
The heads-up-display, or HUD, has several displays. First, there are two boxes in the center of the view. As explained above, these delimit the ranges for the mouse. These boxes are yellow when you have no flag. Otherwise they take the color of the flag you're holding (white for superflags).

Above the larger box is a heading tape showing your current heading. North is 0, east is 90, etc. If jumping is allowed, an altitude tape appears to the right of the larger box.

Small colored diamonds or arrows may appear on the heading tape. An arrow pointing left means that a particular flag is to your left, an arrow pointing right means that the flag is to your right, and a diamond indicates the heading to the flag by its position on the heading tape. In capture-the-flag mode a marker in your team's color is always present, showing you the direction to your team's flag. A yellow marker shows the way to the antidote flag (when you have a bad flag and antidote flags are enabled).

At the top of the HUD are several text readouts. At the very top on the left is your callsign and score, in your team's color. At the very top on the right is the name of the flag you're holding (or nothing if you have no flag). In the center at the top is your current status: ready, dead, sealed, zoned, or reloading. If you have a bad flag and shaking time is enabled and your status is ready, the status displays how much time is left before the bad flag is shaken. When reloading, the time until you're reloaded is displayed. A tank is sealed when it has the oscillation overthruster flag and any part of the tank is inside a building. A tank is zoned when it has the phantom zone flag and has passed through a teleporter. When there's a time limit on the game, the time left in the game is displayed to the left of the status.

### Flags
Team flags are supplied by the server in the capture-the-flag style game. While at least one player is on a team, that team's flag is in the game. When captured, the flag is returned to the team's base. If the flag is dropped in a Bad Place, it is moved to a safety position. Bad Places are: on top of a building or on an enemy team base. The flag can be dropped on a team base only by a player from a third team; for example, when a blue player drops the red flag on the green base.

A team flag is captured when a tank takes an enemy flag onto its base or when a tank takes its flag onto an enemy base (even if there's no one playing on that team). You must be on the ground to capture a flag.

The server can be configured to supply a fixed or random set of super-flags. These flags are white and come in many flavors. However, you cannot tell what a super-flag is until it's picked up. There are two broad categories of super-flags: good and bad. Good super-flags may be dropped and will remain for up to 4 possessions. Bad super-flags are sticky -- in general, they cannot be dropped. The server may provide a yellow antidote flag. Driving over it will release the bad flag. The server may also allow a timeout and/or a number of wins to shake the flag. Scoring the required number of wins, surviving the required amount of time or being destroyed will automatically drop the flag. Bad flags disappear after the first possession.

Here is a brief description of each good superflag with the flag's code in parentheses:

High Speed (V)

Boosts top speed by 50%.

Quick Turn (QT)

Boosts turn rate by 50%.

Agility (A)

Improves a tank's dodging capabilities.

Oscillation Overthruster (OO)

Let's the tank go through buildings. You cannot back up in or into a building, nor can you shoot while inside.

Rapid Fire (F)

Increases shot speed and decreases range and reload delay.

Machine Gun (MG)

Increases shot speed and dramatically decreases range and reload delay.

Guided Missile (GM)

Shots guide themselves when locked on. The missile can be retargeted at any time during its flight (with the right mouse button). This allows the player some control over the missile's steering.

Laser (L)

Shoots a laser, with effectively infinite speed and range. Just point and shoot. The binoculars are handy for lining up distant targets. The downside (you knew it was coming) is that the reload time is doubled.

Ricochet (R)

Shots reflect off walls. It is exceptionally easy to kill yourself with this flag.

Super Bullet (SB)

Shots can go through buildings (possibly destroying a tank with the oscillation overthruster flag) and can also destroy (phantom) zoned tanks.

Stealth (ST)

Tank becomes invisible on radar but is still visible out-the-window.

Cloaking (CL)

Tank becomes invisible out-the-window but is still visible on radar.

Invisible Bullet (IB)

Shots are invisible on radar (except your own). They are visible out-the-window. Sort of stealth for shots.

Tiny (T)

Tank becomes much smaller and harder to hit.

Narrow (N)

Tank becomes paper thin. It's very hard (but not impossible) to hit a narrow tank from the front or back. However, the tank is as long as usual so hitting it from the side has normal difficulty.

Shield (SH)

Getting shot while in possession of this flag simply drops the flag (instead of destroying the tank). Since the flag may not disappear you may want to wait around for it to fall to the ground so you can grab it again, but, be warned, the shield flag flies for an extra long time (longer than the normal reload time).

Steamroller (SR)

Tank can destroy other tanks by driving over them (but you must get quite close).

Shock Wave (SW)

Tank doesn't fire shells. Instead it sends out a shock wave in all directions. Any tank caught in the wave is destroyed (including tanks on or in buildings).

Phantom Zone (PZ)

Driving through a teleporter phantom zones the tank. A zoned tank cannot shoot, but can drive through buildings and cannot be destroyed except by a Super Bullet or a Shock Wave (or if the team's flag is captured).

Genocide (G)

Destroying any tank on a team destroys every player on that team.

Jumping (JP)

Allows the tank to jump. You cannot steer while in the air.

Identify (ID)

Displays the identity of the closest flag in the vicinity.

Masquerade (MQ)

You tank looks like a teammate when viewed out of the window. Bullets, radar and targeting reveal your true identity.

Burrow {BU}

You tank burrows into the ground up to your muzzle, making you impervious to normal shots, as they sail above you. However your tank controls are sluggish, and anyone, no matter what flag they have, can crush you like.

Seer (SE)

See Stealthed, Cloaked and Masqueraded tanks as normal, as well as Invisible Bullets.

Thief (TH)

Tank is small and fast, when you shoot an opponent, he is not killed, but instead, you steal his flag.

Useless (US)

It's useless!

Wings (WG)

Tank can drive around in the air, and may be able to jump multiple times. This can be useful when jumping or falling.

A brief description of each bad superflag with the flag's code in parentheses:

Colorblindness (CB)

Prevents tank from seeing any team information about other tanks. You have to be careful to avoid shooting teammates.

Obesity (O)

The tank becomes very large and easy to hit. It's so big that it can't fit through teleporters.

Left Turn Only (<-)

Prevents the tank from turning right.

Right Turn Only (->)

Prevents the tank from turning left.

Forward Only (FO)

Prevents the tank from going backwards.

Reverse Only (RO)

Prevents the tank from going forward.

Momentum (M)

Gives the tank a lot of inertia.

Blindness (B)

Blanks the out-the-window view. The radar still works. It is effectively impossible to detect any tank with Stealth; shooting a Stealth with Blindness is the stuff legends are made of.

Jamming (JM)

Disables the radar but you can still see.

Wide Angle (WA)

Gives the tank a fish eye lens that's rather disorienting.

No Jumping (NJ)

Tank is not allowed to jump.

Trigger Happy (TR)

Tank can't stop shooting. Watch out for that ricochet.

Reverse Controls (RC)

Tank driving controls are reversed from their usual behavior.

### Observing
If a server is full or if you just want to watch a battle without interfering in it, you can use the observer mode. To join a server as an observer, select R Observer as your tank's team. The maximum number of observers can be restricted by the server admin, so you might still not be able to join a full server.

When in observer mode, you can freely roam the world. Using the arrow keys you can rotate the camera in every direction. Holding shift and using the arrow keys moves the camera left, right, forward or back. Pressing the up or down arrow while holding the R ALT key will change the camera's altitude. The R F9 and R F10 keys change the camera's focal lengths, giving a zoom effect. The R F11 key will reset the zoom. Pressing R l lets you toggle the display of tank labels.

Repeatedly pressing R F8 cycles through different roaming modes: free, tracking, following, first person (driving with) and tracking team flag. In tracking mode, the camera will automatically look at a tank. You can cycle through available tanks with the R F6 and R F7 keys. In follow mode, the camera is positioned right behind the targeted tank, whereas you actually look from within the tank when using first person mode. The last mode, track team flag is only available in capture-the-flag games and will track the team flags. Again, use R F6 and R F7 to choose which flag to track. One special option that can be used with follow, tracking, and first person modes is that you can choose to do it with the winning tank. This is selected by cycling through the tanks until you see the winner option. In this mode, you will always be engaged with whoever has the best score (and is alive). The default is drive with winner mode.

## User Commands
The following commands can be executed by sending a message to all and using these strings as the message

/bind key press action

Bind a key press to an action. press can be up, down or both

/cmds

Show a list of all client and server commands

/debug [level]

Show or set the debug level to level

/diff

List all BZDB server variables that are not set to the default value

/dumpvars

Dump a list of all local variables and their values to the standard output

/forceradar

Force the radar to be displayed (only works for observers)

/highlight pattern

Highlight all messages containing pattern on the console

/localset variable [value]

Read a local variable or set it to value

/quit

Exit the game

/retexture

Reload the textures of the game

/roampos {reset|send|angle|x y z [theta [phi [zoom]]]}

Manipulate the observer camera (only useful in Roaming and Tracking modes). Without arguments, it shows a usage message and the current camera location. reset resets the camera's location to the center of the map and send sends information about the camera to the server. angle moves the camera outside the map at a certain angle, looking towards its center. x, y and z are used to set the camera's location, theta defines the camera's horizontal angle, phi defines its vertical angle and zoom sets the camera's zoom level. All angles are defined in degrees.

/savemsgs [-s] [-t]

Save all messages to a file in your config directory. If -s is provided, coloring data are stripped. If -t is provided, timestamps are added to the messages.

/saveworld [-g] [-m] [-o] filename

Save the current world to filename. Specify -g to prevent the creation of groups, -m to save some primitives as meshes and -o to create a WaveFront OBJ file instead of a BZW one.

/silence playerName

Do not display any message coming from player with playerName name

/unsilence playerName

Reshow messages coming from player with playerName name

## FILES
~/.bzf/<version>/config.cfg

Stores options between game sessions.

## SEE ALSO
bzadmin(6), bzfs(6), bzw(5)


bzadmin

package: bzflag-admin

title: bzadmin(6)

summary: a text based client for BZFlag

text:
# bzadmin(6)

## NAME
bzadmin - a text based client for BZFlag

## SYNOPSIS
bzadmin [-help] [-hide msgtype[,msgtype]...] [-show msgtype[,msgtype]...] [-ui {curses | stdboth | stdin | stdout}] callsign[:password]@hostname[:port] [command] [command] ...

## DESCRIPTION
bzadmin is a textbased client for the game BZFlag. It can't be used for playing, but it can be used to see when players join and leave the game, to see the chat messages, and to send messages and commands to the server, as well as see several other vital game messages.

When you start bzadmin without any command line options other than callsign and hostname a simple curses-based user interface will be started (unless you built bzadmin without curses support). This interface is divided into three rectangles; the output window (which covers almost all of the terminal), the target window, and the input window.

The output window is where messages from the server will be shown.

The target window shows the name of the player that will receive your next message, or 'all' if it will be a public message. You can change target by using the left and right arrow keys.

The input window is where you type your messages. It also supports tab completion of commands and callsigns. You can clear the input window with the key combination Ctrl-U, and you can generate a /kick command for the current target with the F5 key (if the current target is a player). You can also generate a ban command for the current target with the F6 key, but this only works if you are an admin and the server has sent you that players IP address (as a response to a /playerlist command).

The curses user interface also has a simple menu system where you can edit the server variables (if you are an admin) and see a player list. If you are an admin you can also see the IP addresses in the player list, if you have sent a /playerlist command. The menu shows up when you hit the F2 key. It only covers the upper half of the screen, so you can still see what's going on in the game. You can navigate through the menu with the up and down arrow keys, and use the enter key to select submenus and other menu items. If you hit F2 again the command prompt will regain keyboard focus, but the menu will still be visible. If you hit F2 a third time the menu will go away.

### Options
-help

Show a simple help text.

-hide msgtype[,msgtype]...

Tell bzadmin not to show these message types. The available message types are chat, join, kill, leave, pause, ping, rabbit, spawn, time, and over. By default chat, join, kill, leave, pause, and rabbit are shown. You can also change this while bzadmin is running with the commands /show <msgtype> and /hide <msgtype>, and from the curses menu.

-show msgtype[,msgtype]...

Tell bzadmin to show these message types. See -hide for a list of available message types. If a message type is listed both in -show and -hide it will not be shown.

-ui {curses | stdboth | stdin | stdout}

Select the user interface that you want. The curses interface is the default, and it is described above.

The stdin interface reads user commands from the standard in stream and sends them to the server. All server output is ignored.

The stdout interface prints all server output to the standard out stream. All user input is ignored.

The stdboth interface is a combination of stdin and stdout - it prints server output to the standard out stream, and reads user commands from the standard in stream.

callsign[:password]@hostname[:port]

Specifies the callsign that you want your client to use, and the hostname where the BZFlag server is. The port number is optional, and the default value is 5154.

command

You can specify messages and commands to send to the server on the command line. BZAdmin will continue running after sending the specified commands.

### Examples
bzadmin admin@localhost:5154

Join the game on localhost, port 5154, using the callsign 'admin'.

bzadmin admin@localhost '/passwd secretpass' '/ban 192.168.0.2'

Connect to the server at localhost and ban the IP 192.168.0.2.

bzadmin -ui stdout spy@bzserver.xy | grep magicword

Connect to bzserver.xy and print all server messages that contain 'magicword'.

## SEE ALSO
bzfs(6), bzflag(6), bzw(5)


bzfs

package: bzflag-server

title: bzfs(6)

summary: BZFlag game server

text:
# bzfs(6)

## NAME
bzfs - BZFlag game server

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

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

## OPTIONS
-a linear angular

Sets the maximum linear and angular accelerations. The units are somewhat arbitrary so you'll have to experiment to find suitable values. Positive values will set limits to the acceleration and lower they are, greater is the inertia. Zero or negative values disable acceleration limits.

-adminlagannounce milliseconds

Announce players that lag more than milliseconds to admins.

-admsg message

Define a message which will be broadcast to all players every 15 minutes. This option can be used multiple times to define a multiline message.

-advertise groupname,groupname,...

Allows control of who can see this server on the server list. Use: -advertise NONE to make a private server (no one will see the server, but global logins can be used). The default, if -advertise is not specified, is to allow everyone to see the server. Otherwise, your server will only be listed to members of the groups which you specify, eg: -advertise JOE,BOB.

-autoTeam

Automatically assign players to teams when they connect so that there are an equal number of players on all available teams. Players are placed on teams that have the fewest players; otherwise they will be placed on the weakest team. Weakest team is the team with the lowest combined kill ratio.

-b

When -c is supplied, this option randomly rotates the buildings.

-badwords badwordfile

Specify a file that contains bad words that will be used when either -filterCallsigns or -filterChat is enabled.

-ban ip[,ip]...

Prohibits connections from the listed IP addresses. Trailing 255 bytes are treated as mask bytes.

-banfile filename

Specifies the name of a file where bzfs will store the banlist. It will load the banlist from this file when it starts (if the file exists), and write the banlist back to the file when someone gets banned or unbanned. If this option isn't given the banlist will not be saved.

-c

Enables the capture-the-flag style game. By default this allocates one team flag per team. This can be modified see +f team. By default, the free-for-all style is used.

-cache worldCacheURL

Specifies the URL for the world cache file. This is a binary file that clients will attempt to download before getting the world from the bzfs server.

-cacheout filename

Save the currently specified world into a binary cache file and exit.

-conf configfilename

Specifies the name of a configuration file to be used to set all of the bzfs options, rather than setting them on the command line.

-cr

Enables the capture-the-flag style game with random map. You can optionally specify a building density by providing a number (default is 5). One team flag per team is provided, but more can be added thru +f team. By default, the free-for-all style is used.

-d

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

-density num

Specify density for buildings, i.e. the higher the integer number, the more buildings you will get. This applies to automatically generated maps only.

-disableBots

Disallow clients from using the ROGER autopilot or from using robots.

+f {good | bad | teamflag-id}[{count}]

Forces the existence of the given flag. If specified multiple times for the same flag-id, then that many flags will appear. The good argument is equivalent to specifying +f once for each kind of good flag. Same goes for the bad argument. The team argument adds a team flag to each team, assuming that the game style is capture the flag. The optional {count} parameter allows the specification of multiple flags of the same type. Note that the curly braces are required.

-f {good | bad | flag-id}

Disallows random flags of the given type. Required flags given by the +f option are still provided. The bad argument is equivalent to specifying -f once for each kind of bad flag. Same goes for good, but you probably do not want to do that.

An example of running a server with 40 to 50 flags except genocide would be "+s 40 -s 50 -f G". Similarly, "+f good{40} +f bad{10} -f G{40}" would give you exactly 40 good flags except genocide and 10 of each bad flag.

-fb

Allow flags on box buildings.

-filterCallsigns

Turn on the filtering of callsigns and mottos. Callsigns and mottos are compared against bad words provided via -badwords.

-filterChat

Turn on the filtering of chat messages. Messages that contain words listed via a -badwords file are replaced with !@#$%^&* characters.

-filterSimple

By default, all filtering is aggressive, matching much more than what is strictly listed in a -badwords file for convenience. Providing this option will make the -filterCallsigns and -filterChat comparisons exact match only.

-g

Quit after serving one game.

-gndtex texture-name

Specify the name of the ground texture.

-groupdb file

Load groups from file

-h

Buildings are given random heights.

-handicap

Players are given a handicap advantage based on their ability in relation to the other players. Handicapped players will have faster tanks and shots. The handicap is determined by the player's score in relation to other players.

-help

Shows a help page and lists all the valid flag id's.

-helpmsg file name

Provide a message accessible by /help name, which sends no more than the first 50 lines of file to the player.

-i interface

Server will listen for and respond to ``pings'' (sent via broadcast) on the given interface. Clients use this to find active servers on the network. This is the TCP/UDP/IP address the server will listen on.

-j

Allows jumping.

-jitterdrop warn-count

Kicks players after warn-count jitter warnings.

-jitterwarn milliseconds

Send warnings to players that jitter more than milliseconds.

-lagannounce milliseconds

Announce players that lag more than milliseconds in public.

-lagdrop warn-count

Kicks players after warn-count lag warnings.

-lagwarn milliseconds

Send warnings to players that lag more than milliseconds.

-loadplugin name[,options]

Load the specified plugin. name can either be the name of the plugin, or a path to its library file. Optionally, you can provide any options the plugin requires.

-masterBanURL URL

Specify alternate URLs for the master ban file to be pulled from. This argument may be provided multiple times.

-maxidle seconds

Kick players that did not play longer than seconds. Pausing players are not kicked. If a player uttered a word recently, he will be kicked after thrice the given time.

-mp {count | [rogue],[red],[green],[blue],[purple],[observer]}

Sets the maximum number of players, total or per team. A single value sets the total number of players allowed. Five comma separated values set the maximum for each team. If a count is left blank then no limit is set for that team, except for the limit on the total number of players. Both forms may be provided. For rabbit chase, the "rogue" value sets the total number of non-observer player, and all other values must be zero.

-mps max-score

Sets a maximum score for individual players. The first player to reach this score is declared the winner and the game is over.

-ms shots

Allows up to shots simultaneous shots for each player. This is 1 by default.

-mts max-score

Sets a maximum score for teams. The first team to reach this score is declared the winner and the game is over.

-noMasterBanlist

Server will not attempt to load the master ban list from the internet.

-noradar

Disable the use of the radar.

-noTeamKills

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

-offa

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

-p port

Listen for game connections on port instead of the default port. Use -help to print the default port, or use -d debug printing.

-packetlossdrop warn-count

Kicks players after warn-count packetloss warnings.

-packetlosswarn percent

Send warnings to players that have more more than percent loss.

-passwd password

Specify a server administrator password for use in remote administration such as /kick, /ban, /mute, etc. messages.

-pidfile filename

Specify a file where the server will write its process ID so it may be used for remote administration.

-poll variable=value

Configure several aspects of the in-game polling system

banTime

default number of minutes player should be banned (unspecified, the default is 300)

vetoTime

max seconds authorized user has to abort poll (default is 20)

votePercentage

percentage of players required to affirm a poll (unspecified, the default is 50.1%)

voteRepeatTime

minimum seconds required before a player may request another vote (default is 300)

votesRequired

minimum number of additional votes required to make a vote valid (default is 2)

voteTime

maximum amount of time player has to vote, in seconds (default is 60)

-printscore

Write score to stdout whenever it changes

-publictitle description

Advertise this server on the internet with the given description. By default, a server will respond to broadcast queries, allowing clients to find servers running on the standard port on the local subnet. The -publictitle option causes the server to register itself with a list server, which clients can query to get a list of bzfs servers.

-publicaddr address[:port]

Advertise this server with the given address and port. Normally a server advertises itself at the local address and port. Some servers are not accessible from the internet at this address (for example servers behind a firewall using Network Address Translation). Use this option to specify the address and/or port that internet users should use to access this server.

-publiclist url

Advertise this server on the list servers listed at url. Only has an effect when used with -publictitle and/or -publicaddr. A built-in url is used by default. The BZFlag clients use the same built-in url so, by default, clients will see public servers automatically. This argument may be provided multiple times to publicize a server to multiple list servers.

-publickey key

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

-q

If specified, the server will not listen for nor respond to ``pings''. BZFlag sends out these pings to give the user a list of available servers. This effectively makes the server private, especially if the -p option is also used.

+r

Makes most shots ricochet. Super bullets, shock waves, and guided missiles do not.

-rabbit [score | killer | random]

Enables the rabbit-chase style game. By default, the free-for-all style is used. You must specify the algorithm used to pick a new rabbit when the old one dies. The score algorithm uses a modified wins/(wins+losses) score and picks the top scoring player to be the new rabbit. The killer algorithm specifies a reverse tag game where whomever kills the rabbit becomes the new rabbit. The random algorithm randomly picks a new rabbit without regard to score. (The score algorithm is the original behavior.)

-recbuf size

Start with the recording buffer active, with the specified size (in megabytes).

-recbufonly

Disable recording straight to files

-recdir directory

Specify the directory for record and replay files.

-replay

Start the server in replay mode.

-reportfile filename

Write messages to the server admin written using the /report command to this file. If neither -reportfile or -reportpipe is used the /report command will be disabled.

-reportpipe command

Pipe messages to the server admin written using the /report command to this program or shell command. See -reportfile.

+s num-flags

The server will have an extra num-flags random super flags available at all times. The -f option can be used to restrict which types of flags will be added. Required flags given by the +f option are not included in the num-flags total.

-s num-flags

The server will have up to num-flags random super flags available at any time. The -f option can be used to restrict which types of flags will be added. Required flags given by the +f option are not included in the num-flags total.

-sa

Antidote flags are provided for players with bad flags.

-sb

Allow spawns on box buildings.

-set name value

Set BZDB variable name to value.

-setforced name value

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

-sl id num

Restrict flag id to num shots.

-spamtime time

Minimum time between player chat messages that are alike.

-spamwarn warnLimit

Number of warnings a player/spammer gets, who violates -spamtime.

-speedtol factor

Override the default speed auto kick factor. The factor should not be less then 1.0. The factor is a multiplier.

-srvmsg message

Define a server welcome message. This option can be used multiple times to define a multiline message.

-st time

Bad flags are automatically dropped after time seconds.

-sw count

Bad flags are automatically dropped after count wins. Capturing a team flag does not count as a win.

-synclocation

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

-synctime

Forces all clients to use the same time of day. The current time is determined by the server's clock. This disables the + and - keys on the clients.

-t

Adds teleporters to the game.

-tftimeout time-limit

If the last player in a team leaves while someone else is carrying the team flag, the team flag will not reset until it is captured, or until the player drops it and it is left alone for some time. This option specifies the number of seconds that the flag should be left alone before it is reset. The default value is 30.

-time {time-limit | ending-time}

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

-timemanual

When using -time, the countdown will start when the first player joins. With -timemanual, the countdown has to be started manually using the /countdown command. This is useful for matches.

-tk

Changes the default behavior where a player dies when he kills a teammate. When using this option, he will just get a -1 score penalty for the kill but not be killed in game.

-tkannounce

Announce teamkills to the admin channel.

-tkkr percent

Kicks players whose team killing to normal kill ratio is greater than percent [1-100]. A start up grace period is given to players.

-ts [micros]

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

-UPnP

If enabled during build, bzfs try to communicate with the Gateway to set Port Forwarding and to supply information not specified with -i (local interface) and -publicaddr

-userdb file

Load group associations from file

-vars file

Loads values for game configurable variables from file. Entries are one per line in the form: set variable value. For a list of variables that are configurable, in the BZFlag client, send a message with /set as the text.

-version

Prints the version number of the executable.

-world world-file

Reads a specific BZFlag .bzw world layout file for the game map.

-worldsize world-size

Changes the size for random maps

### Notes
The server uses nearly zero CPU time when nobody is playing, and even during a game the server uses very little CPU, so it's not a burden on the system to leave one running and it won't interfere with a player using the same system (except on Windows 95, which really sucks at multitasking). The server will continue to run until terminated. If a game is in progress when the server goes down, all players will be kicked off and the game will be aborted without warning. The server resets itself when all players have quit. All players must quit to reset the server when a game is over (because of a score or time limit).

The following game styles are recommended starting points.

-c [-b]

Basic capture-the-flag game. It teaches teamwork and dogfighting skills.

-s -t

Free-for-all with superflags and teleporters. Teaches players how to use superflags and teleporters for maximum effect. You may want to allow players to drop bad flags with any of -sa, -st, and -sw.

Notice that the maximum number of shots for these styles is one. Having low shot counts can greatly increase general playability and learning speed. However, this is not always true of every game style or game world, and a skilled player will learn to deal with a variety of shot counts. Single shot games have additional disadvantage in WAN games where lag/jitter can cause unfair advantage. Single shot, non-Jump games will teach valuable lessons in dodging, however, and are excellent starting points for the beginner.

### Networking
Communication between the server and clients (i.e. between bzfs and bzflag) during a game is via TCP and UDP. Use the -help option to get the server's default port. If there's a firewall between the server and client, the firewall must accept connections from the client to this port and forward them to the server.

Clients can search for servers by sending broadcast UDP packets. But they must be on the same local area network for this to work. Clients can also find servers advertised using -publictitle by querying list servers.

Game information is relayed through the server. Some communication between clients, such as position and orientation information, is normally sent via UDP packets. Other data, like flag grab and kill messages, are sent to the server via TCP. The server then turns around and broadcasts these packets to all players. Since being in a game implies connection to the server, all players are guaranteed to get all messages sent via TCP. But the UDP packets may be discarded. If other players can see your tank in the game but it never appears to move and shots go through it, chances are high that your UDP connection is not working.

### Worlds
BZFlag worlds come in two varieties, randomly generated ones, and human designed ones. By default, bzfs uses randomly generated world unless you specify the -world command line or configuration file option. The world file specified by the -world option is a text based file that contains a list of world objects. This file can be created using programs found on github, or can be hand edited. See the bzw(5) manual page for more details.

## GENERAL SERVER COMMANDS
/clientquery [callsign]

Retrieve client version info from all users, or just CALLSIGN if given. Example:

```
/clientquery MrApathyCream
MrApathyCream: Version: BZFlag 1.11.6-20040729-gnu-linux-SDL

```

/date, /time

```
Responds with the current server local time. /date and /time are exactly the same. Example:

Tuesday September 08 06:45:54 2004

```

/flaghistory

```
Lists what flags players have grabbed in the past. Example:

MrApathyCream: (<-) (->) (O) (CB) (M) (B) (JM) (WA)
Gerbol: (L) (GM) (L) (GM) (CL) (ST) (GM) (L)
captain_macgyver: (SB) (SW)

```

/idlestats

```
Displays the idle time in seconds for each player. A player is idle when
he is dead and has not respawned yet. Example:

MrApathyCream: 0s
Gerbol: 80s
captain_macgyver: 13s

```

/lagstats

```
Lists network delays, jitter and number of lost resp. out of order packets by player. Example:

MrApathyCream 335 +- 10ms
Gerbol 210 +- 3ms
captain_macgyver 155 +- 0ms  12% lost/ooo

```

/me action

```
This command displays an "action" that is conveyed to another player.  It allows
for a little more expressivity in the game.  For example: "/me is hunting wabbits"
turns into a message like "TimRiker is hunting wabbits" that gets displayed
differently to other players.

```

/msg "callsign" message

```
This command allows a player to send a message to another player.  Similar to using
the "," and "." message keys in the game and then selecting your recipient, this
will send some message to particular player.  The quotes are optional.

```

/part [message]

```
Leave the server with a goodbye message (similar to IRC's /part)

/part Gotta go! bye everyone!

```

/password password

```
Attempt to gain administrator status Example:

/password supersecretpassword
You are now an administrator!

```

/poll {{ban | kick} callsign | vote {yes | no} | veto}

```
Interact and make requests of the bzflag voting system via the /poll command.
The ban and kick subcommands request a vote to respectively ban or kick some
player.  The playername is expected as the next argument.  The vote and veto
commands behave identical to the /vote and /veto command counterparts,
expecting the same arguments in following.  By default, you must be registered
to request or vote on a poll, and an admin to veto.

```

/quit [message]

```
Quit the game with a goodbye message (similar to IRC's /quit)

/quit Gotta go! bye everyone!

```

/report message

```
Write a message to the server administrator. Example:

/report I like this map!

```

/uptime

```
Prints server's current running time in days, hours, mins and secs.

```

/vote {yes | no}

```
If there is a poll active, this command will place a vote in favor or in
opposition to the poll.  Multiple languages are supported as a vote argument
in addition to "yes" and "no".  By default, you must be registered to vote on
a poll.

```

## SERVER ADMINISTRATIVE COMMANDS
/ban {ip | ipList | #slot | "Player Name" | playerName} duration reason

Ban players using the specified IPs for certain length of time from using this server. <duration> can be:

'short' or 'default' for the default ban time

'forever' or 'max' for infinite bans

a time in the format <weeks>W<days>D<hours>H<minutes>M

just a number of minutes

Examples:

```
/ban 35.23.43.66 2 cheating
bans player with specific ip for 2 minutes
/ban 35.23.*.*,47.23.17.* 0 Cheaters
bans all ips in this range forever
/ban 36.37.2.8 2h30m "ShootMe" was abusing players
bans specific ip for 2.5 hours with given reason
/ban #5 60m Rejoining
bans player using slot 5 for 60 minutes with given reason
/ban "Tanker" max cheating
bans the player Tanker forever because cheating
Note: Slots numbers are only displayed in admins clients.
Duration and reason are required.

```

/banlist

```
List all of the IPs currently banned from this server. Example:

/banlist
IP Ban List
------------
35.23.43.66 (2 minutes) banned by Tankmaster

    reason: Cheaters
47.23.17.* banned by Tankslave

```

/checkip ip

```
Check whether the IP is banned and print the corresponding rule. This does not
cover hostbans. Example:

/checkip 35.23.43.66
35.23.43.66 is banned:
35.23.43.66 banned by Tankmaster

    reason: Cheaters

```

/countdown [seconds]

```
Starts the countdown sequence for a timed game.  The countdown
sequence length can optionally be specified in seconds.  Examples:

/countdown
/countdown 3

```

/flag reset {all|unused|team|FlagId}

```
Repositions flags. If unused is specified, flags carried
by tanks are not affected. Using the team option only
resets team flags, whereas specifying a flag id (such as GM) only
repositions flags of this type. If noteam is specified,
team flags will not be reset. Examples:

/flag reset unused noteam
/flag reset G

```

/flag show

```
Shows all flags with information. Example:

0: p:-1 r:1 g:1 1:V s:1 p:159.1x43.2x0.0
1: p:2 r:1 g:1 1:SW s:1 p:209.1x143.2x10.0
2: p:-1 r:1 g:3 1:L s:1 p:-29.1x301.2x0.0

```

/flag up

```
Removes all flags from the game

```

/gameover

```
Ends the current game

```

/handicap

```
Shows the handicap boost percentage for every player

```

/hostban hostpattern duration reason

```
Ban players using the specified hostnames for a certain length of time from using this server.
Example:

/hostban *.foo.com 2 cheating
bans all players from foo.com for 2 minutes

```

/hostbanlist

```
List all of the host patterns currently banned from this server.

```

/jitterwarn [time]

```
Change the maximum allowed jitter time. Example:

/jitterwarn 50

```

/jitterdrop [count]

```
Change the number of jitter warnings given before a player is kicked. Example:

/jitterdrop 3

```

/kick {"Player Name" | playerName | #slot} reason

```
Kick a player off the server. Example:

/kick Gerbol
You were kicked off the server by MrApathyCream
/kick #1 Team killing
Kick the player using slot 1 because Team Killing
Note: Slots numbers are only displayed in admins clients.
A reason is required

```

/kill {"Player Name" | playerName | #slot} [reason]

```
Kill a player just like when shooting. Example:

/kill Gerbol
kill the player named Gerbol
/kill #4 teamkilling
Kill the player using slot 4 because teamkilling

```

/lagwarn [time]

```
Change the maximum allowed lag time. Example:

/lagwarn 300

```

/lagdrop [count]

```
Change the number of lag warnings given before a player is kicked. Example:

/lagdrop 3

```

/modcount [seconds]

```
Change the time on the clock by the specified number of seconds. Example:

/modcount +320

```

/mute {#slot | callsign}

```
Allows a server admin to remove the ability for a player to communicate with
other players. Once muted the player may only talk to admins on the server.
This command removes the TALK permission that is enabled by default for all
players. (disabling TALK by default would let you run a "silent" server)

```

/packetlosswarn [time]

```
Change the maximum allowed packetloss. Example:

/packetloss 1

```

/packetlossdrop [count]

```
Change the number of packetloss warnings given before a player is kicked. Example:

/packetloss 3

```

/playerlist

```
List player names and IP addresses. Example:

/playerlist
[0]MrApathyCream: 35.23.65.44:4808 udp id
[1]Gerbol: 130.123.1.55:4909 udp id
[2]captain_macgyver: 15.32.122.51:3201 udp id

```

/record file filename

```
Start recording directly to a file

```

/record list

```
List all files in the recordings directory

```

/record rate seconds

```
Set the time between game state updates stored in the recording. This will affect
the granularity of the 'skips' you can do while replaying a file. It will also
make the recording files bigger if it is set to a faster update rate.

```

/record save filename [seconds]

```
Save the recording buffer into a file. If seconds is specified, then only save
that many previous seconds into the file.

```

/record size megabytes

```
Set the size of the recording memory buffer

```

/record start

```
Start recording into the memory buffer

```

/record stats

```
Display the statistics for the current recording (file or buffered)

```

/record stop

```
Stop recording into the memory buffer

```

/replay list

```
List all files in the recordings directory

```

/replay load {filename | #index}

```
Load the specified recording file by name, or by index
(same indices as produced by the 'replay list' command)

```

/replay loop

```
Start looping the recording. This will oftentimes require that all players connected
to the server rejoin  (to reload the map, etc...)

```

/replay play

```
Start playing the recording. This will oftentimes require that all players connected
to the server rejoin  (to reload the map, etc...)

```

/replay skip [{+ | -} seconds]

```
If seconds is specified, then skip that amount of time in the recording.
Otherwise, skip forwards until there is activity.

```

/replay stats

```
Show the current replay status (filename, position, etc...)

```

/say message

```
Generate a public message sent by the server. Example:

/say This is a servermessage

```

/sendhelp {"Player name" | playerName | #slot} help page

```
Send the specified help page to a user

/sendhelp register "Foo"
Send the the help page 'register' to the player Foo

```

/shutdownserver

```
Stop serving BZFlag on this server

```

/superkill

```
Kick all players off the server

```

/unmute {#slot | callsign}

```
Allows a server admin to restore the TALK permission to a previously muted
player.

```

/veto

```
If there is a poll active, this will cancel the poll.  By default, you must be
an admin to veto a poll.

```

/viewreports

```
View the server's report file.

```

## USER MANAGEMENT
Generally, you start with empty files for the user and password databases. These are maintained by the server, and modifiable through server commands. Users in turn belong to groups. Groups are generally customized to perhaps allow administrative control to trusted users.

There are both local and global groups, i.e. groups that are available across the entire BZFlag network. In setting up a server, you may want to specify global groups that will allow already well known and trusted users to police your server and help maintain control against cheaters and abuse.

The server will automatically create three groups: EVERYONE, VERIFIED, and LOCAL.ADMIN. EVERYONE has ACTIONMESSAGE, ADMINMESSAGESEND, CLIENTQUERY, DATE, FLAGHISTORY, IDLESTATS, LAGSTATS, PRIVATEMESSAGE, SHOWMOTTO, SPAWN and TALK by default. VERIFIED has LISTPLUGINS, POLL, POLLKICK, POLLBAN, POLLKICK, POLLSET, POLLFLAGRESET, REPORT and VOTE. The LOCAL.ADMIN group has almost every permission possible (similar to granting admin powers via /password).

Once the server is running, users can register their callsigns and admins can set their group memberships. Users can use any command that their permissions allow. Every user, registered or not, is part of the EVERYONE group. When a user identifies, they become part of the VERIFIED group.

In addition, there are global groups available that persist network-wide. Users that register their callsigns on the BZFlag website at https://forums.bzflag.org/ have the ability to globally authenticate by providing a password from within the client. When they authenticate, bzfs will ask the list server if they belong to any of the groups listed in your group database file that are not prefixed with "LOCAL.". If they are a member of a group in question, then they are granted the permissions you specify for that group.

A group database file is set up to contain the specific local and global groups you care to have on your server in addition to default groups and exactly which permissions are granted by each. These files are laid out with one line per group, using the following format:

GROUP_NAME: [*Group] [ +| -| !]perm1 [ +| -| !]perm2 ... permN

*Group: inherit permissions from existing group "Group"

+perm: add perm to this group

-perm: remove perm from this group

!perm: forbid perm for this group. makes perm inaccessible whether it's granted from another group or not

If no operator is given with a permission it is handled like +perm. A group line for a previously existing group adds to already granted permissions. That way you can spread a group's definition over several lines:

GROUP_NAME: +perm1 +perm2

GROUP_NAME: +perm3 +perm4 -perm5

Group names cannot have spaces, quotes, or other special characters in them. This would be a sample line defining a "cop" group:

COPS: +KICK +SHORTBAN +BANLIST

Now a group USERADMIN with all permissions granted to COPS plus some additional could look like this:

USERADMIN: *COPS +BAN +UNBAN

Probably you want to define customized permissions for the default group "VERIFIED" instead of those automatically assigned by the server:

VERIFIED: -ALL +perm1 +perm2 ...

Or you want to disable the /poll command entirely?

EVERYONE: !POLL

To distinguish between a group that is local and one that is global, use the "LOCAL." prefix as part of the group name, e.g.:

LOCAL.OPERATOR: BANLIST

The available permissions are as follows:

ACTIONMESSAGE /me

ADMINMESSAGERECEIVE player receives messages sent to admin channel

ADMINMESSAGESEND player may send messages on the admin channel

ALL all permissions available

ANTIBAN player is immune to /ban

ANTIKICK player is immune to /kick

ANTIKILL player is immune to /kill

ANTIPOLL player is immune to /poll

ANTIPOLLBAN player is immune to /poll ban

ANTIPOLLKICK player is immune to /poll kick

ANTIPOLLKILL player is immune to /poll kill

BAN /ban /hostban

BANLIST /banlist /hostbanlist

CLIENTQUERY /clientquery

COUNTDOWN /countdown

ENDGAME /gameover

FLAGHISTORY /flaghistory

FLAGMASTER /flag

FLAGMOD /flag reset /flag show /flag history

HIDEADMIN player doesn't show the @ sign

IDLESTATS /idlestats

INFO not implemented

JITTERWARN /jitterwarn /jitterdrop

KICK /kick

LAGSTATS /lagstats

LAGWARN /lagwarn /lagdrop

LISTPERMS not implemented

LISTPLUGINS /listplugins

MASTERBAN /masterban

MODCOUNT /modcount

MUTE /mute

PACKETLOSSWARN /packetlosswarn /packetlossdrop

PLAYERLIST /playerlist

PLUGINS /listplugins /loadplugin /unloadplugin

POLL /poll

POLLBAN /poll ban

POLLFLAGRESET /poll flagreset

POLLKICK /poll kick

POLLSET /poll set

PRIVATEMESSAGE /msg

RECORD /record

REJOIN allows instant rejoin, regardless of _rejoinTime

REMOVEPERMS /removegroup

REPLAY /replay

REPORT /report

REQUIREIDENTIFY user must use global registration

SAY /say

SENDHELP /sendhelp

SETALL use of all set/remove commands

SETPERMS /setgroup

SETPASSWORD not implemented

SETVAR /set /reset

SHORTBAN /ban (with a limited duration)

SHOWADMIN player shows an @ regardless of having 'shortban' perm

SHOWMOTTO player is allowed to display their motto on the scoreboard

SHOWOTHERS /showgroup /showperms (on others)

SHUTDOWNSERVER /shutdownserver

SPAWN join game as a player. observers don't need this flag.

SUPERKILL /superkill

TALK allows all players to send messages

UNBAN /unban /hostunban

UNMUTE /unmute

VETO /veto

VOTE /vote

/grouplist

Lists the available user groups

/groupperms

Lists the permissions for each group

/masterban {flush | reload}

Forces the server to flush any bans from the master server. If reload is specified instead of flush, also reloads bans from the the internet. Local bans are unaffected. This command requires the UNBAN permission.

/reload

Reloads the user, group, and password files (for synchronization between multiple servers on the same machine)

/removegroup callsign group

Remove a user from a group

/setgroup callsign group

Add a user to a group

/showgroup callsign

Lists the groups that a registered user is a member of

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


cgoban

package: cgoban

title: cgoban(6)

summary: X11 Go Toolset

text:
# cgoban(6)

## NAME
cgoban - X11 Go Toolset

## SYNOPSIS
cgoban -help

cgoban [ <options> ]

## DESCRIPTION
Information on the switches is available with cgoban -help.

One switch that you may want to use is the cgoban -fontHeight size switch. This switch changes the size of everything that cgoban draws. The default is 12; running cgoban -fontHeight 14 will make the board, etc. larger, while cgoban -fontHeight 10 will make it all smaller.

Any of the command line switches can be set instead with an X default. For example, if you want to set black and white to be the default mode, you can run complete goban with cgoban -nocolor, or you can add cgoban*color: 0 to your X defaults.

Cgoban will store a new .cgobanrc file every time you run it. In this file it will save the current state of cgoban. This is handy; you don't normally have to set command line switches since cgoban will remember them in the .cgobanrc file. However, it is possible that the .cgobanrc file gets some bad data in it. Just delete the file and then you can start from scratch again.

## AUTHOR
Kevin Sonney ksonney@redhat.com

http://cgoban1.sourceforge.net/


title: grab_cgoban(6)

summary: take a snapshot of a cgoban board

text:
# grab_cgoban(6)

## NAME
grab_cgoban - take a snapshot of a cgoban board

## SYNOPSIS
grab_cgoban [ filename.gif ]

## DESCRIPTION
This shell script looks for a cgoban window, grabs the displayed Go board and saves it as a GIF file. It can use imagemagick or pbmplus to convert the image to GIF. If it can't find either, it will save it as an XWD image instead. In that case it will add the extension .xwd to the filename supplied.

## AUTHOR
Anthony Thyssen <anthony@cit.gu.edu.au>.

This manual page was provided by Richard Braakman <dark@xs4all.nl>.


chocolate-server

package: chocolate-common

title: chocolate-server(6)

summary: dedicated server for chocolate\-doom

text:
# chocolate-server(6)

## NAME
chocolate-server - dedicated server for chocolate-doom

## SYNOPSIS
chocolate-server [OPTIONS]

## DESCRIPTION
Chocolate Doom is a modern doom engine designed to behave as similar to the original doom game as is possible.

chocolate-server is a dedicated server for Chocolate. It is equivalent to running chocolate-doom with the "-dedicated" option.

Game options are not specified to the server, which merely acts to retransmit data between players in the game; parameters for the game should be specified by the first player to connect to the server, who is designated the controlling player.

## OPTIONS
-ignoreversion

Ignore version mismatches between the server and the client. Using this option may cause game desyncs to occur, or differences in protocol may mean the netgame will simply not function at all.

-port <n>

Use the specified UDP port for communications, instead of the default (2342).

-privateserver

Don't register with the global master server.

-servername <name>

Specify a name for the server.

## SEE ALSO
chocolate-doom(6), chocolate-setup(6)

## AUTHOR
Chocolate Doom is written and maintained by Simon Howard.

This manual was written by Jonathan Dowland.

## COPYRIGHT
Copyright © id Software Inc. Copyright © 2005-8 Simon Howard.

This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.


chocolate-doom

package: chocolate-doom

title: chocolate-doom(6)

summary: historically compatible Doom engine

text:
# chocolate-doom(6)

## NAME
chocolate-doom - historically compatible Doom engine

## SYNOPSIS
chocolate-doom [OPTIONS]

## DESCRIPTION
Chocolate Doom is a port of Id Software's 1993 game "Doom" that is designed to behave as similar to the original DOS version of Doom as is possible.

## GENERAL OPTIONS
-config <file>

Load main configuration from the specified file, instead of the default.

-devparm

Developer mode. F1 saves a screenshot in the current working directory.

-extraconfig <file>

Load additional configuration from the specified file, instead of the default.

-file <files>

Load the specified PWAD files.

-iwad <file>

Specify an IWAD file to use.

-nomusic

Disable music.

-nomusicpacks

Disable substitution music packs.

-nosfx

Disable sound effects.

-nosound

Disable all sound output.

-response <filename>

Load extra command line arguments from the given response file. Arguments read from the file will be inserted into the command line replacing this argument. A response file can also be loaded using the abbreviated syntax '@filename.rsp'.

-savedir <directory>

Specify a path from which to load and save games. If the directory does not exist then it will automatically be created.

-version

Print the program version and exit.

## GAME START OPTIONS
-episode <n>

Start playing on episode n (1-4)

-fast

Monsters move faster.

-loadgame <s>

Load the game in slot s.

-nomonsters

Disable monsters.

-respawn

Monsters respawn after being killed.

-skill <skill>

Set the game skill, 1-5 (1: easiest, 5: hardest). A skill of 0 disables all monsters.

-turbo <x>

Turbo mode. The player's speed is multiplied by x%. If unspecified, x defaults to 200. Values are rounded up to 10 and down to 400.

-warp [<x> <y> | <xy>]

Start a game immediately, warping to ExMy (Doom 1) or MAPxy (Doom 2)

## DISPLAY OPTIONS
-1

Don't scale up the screen. Implies -window.

-2

Double up the screen to 2x its normal size. Implies -window.

-3

Double up the screen to 3x its normal size. Implies -window.

-fullscreen

Run in fullscreen mode.

-geometry <WxY>

Specify the dimensions of the window. Implies -window.

-height <y>

Specify the screen height, in pixels. Implies -window.

-noblit

Disable blitting the screen.

-nodraw

Disable rendering the screen entirely.

-nograbmouse

Don't grab the mouse when running in windowed mode.

-nomouse

Disable the mouse.

-width <x>

Specify the screen width, in pixels. Implies -window.

-window

Run in a window.

## NETWORKING OPTIONS
-altdeath

Start a deathmatch 2.0 game. Weapons do not stay in place and all items respawn after 30 seconds.

-autojoin

Automatically search the local LAN for a multiplayer server and join it.

-avg

Austin Virtual Gaming: end levels after 20 minutes.

-connect <address>

Connect to a multiplayer server running on the given address.

-deathmatch

Start a deathmatch game.

-dedicated

Start a dedicated server, routing packets but not participating in the game itself.

-dup <n>

Reduce the resolution of the game by a factor of n, reducing the amount of network bandwidth needed.

-extratics <n>

Send n extra tics in every packet as insurance against dropped packets.

-left

Run as the left screen in three screen mode.

-localsearch

Search the local LAN for running servers.

-nodes <n>

Autostart the netgame when n nodes (clients) have joined the server.

-oldsync

Use original network client sync code rather than the improved sync code.

-port <n>

Use the specified UDP port for communications, instead of the default (2342).

-privateserver

When running a server, don't register with the global master server. Implies -server.

-query <address>

Query the status of the server running on the given IP address.

-right

Run as the right screen in three screen mode.

-search

Query the Internet master server for a global list of active servers.

-server

Start a multiplayer server, listening for connections.

-servername <name>

When starting a network server, specify a name for the server.

-solo-net

Start the game playing as though in a netgame with a single player. This can also be used to play back single player netgame demos.

-timer <n>

For multiplayer games: exit each level after n minutes.

## DEHACKED AND WAD MERGING
-aa <files>

Equivalent to "-af <files> -as <files>".

-af <files>

Simulates the behavior of NWT's -af option, merging flats into the main IWAD directory. Multiple files may be specified.

-as <files>

Simulates the behavior of NWT's -as option, merging sprites into the main IWAD directory. Multiple files may be specified.

-deh <files>

Load the given dehacked patch(es)

-dehlump

Load Dehacked patches from DEHACKED lumps contained in one of the loaded PWAD files.

-merge <files>

Simulates the behavior of deutex's -merge option, merging a PWAD into the main IWAD. Multiple files may be specified.

-noautoload

Disable auto-loading of .wad and .deh files.

-nocheats

Ignore cheats in dehacked files.

-nodeh

Disable automatic loading of Dehacked patches for certain IWAD files.

-nwtmerge <files>

Simulates the behavior of NWT's -merge option. Multiple files may be specified.

## DEMO OPTIONS
-longtics

Record a high resolution "Doom 1.91" demo.

-maxdemo <size>

Specify the demo buffer size (KiB)

-playdemo <demo>

Play back the demo named demo.lmp.

-record <x>

Record a demo named x.lmp.

-shorttics

Play with low turning resolution to emulate demo recording.

-strictdemos

When recording or playing back demos, disable any extensions of the vanilla demo format - record demos as vanilla would do, and play back demos as vanilla would do.

-timedemo <demo>

Play back the demo named demo.lmp, determining the framerate of the screen.

## COMPATIBILITY
-donut <x> <y>

Use the specified magic values when emulating behavior caused by memory overruns from improperly constructed donuts. In Vanilla Doom this can differ depending on the operating system. The default (if this option is not specified) is to emulate the behavior when running under Windows 98.

-gameversion <version>

Emulate a specific version of Doom. Valid values are "1.2", "1.666", "1.7", "1.8", "1.9", "ultimate", "final", "final2", "hacx" and "chex".

-pack <pack>

Explicitly specify a Doom II "mission pack" to run as, instead of detecting it based on the filename. Valid values are: "doom2", "tnt" and "plutonia".

-setmem <version>

Specify DOS version to emulate for NULL pointer dereference emulation. Supported versions are: dos622, dos71, dosbox. The default is to emulate DOS 7.1 (Windows 98).

-spechit <n>

Use the specified magic value when emulating spechit overruns.

-statdump <filename>

Dump statistics information to the specified file on the levels that were played. The output from this option matches the output from statdump.exe (see ctrlapi.zip in the /idgames archive).

## OBSCURE AND LESS-USED OPTIONS
-cdrom

[windows only] Save configuration data and savegames in c:\doomdata, allowing play from CD.

-dumpsubstconfig <filename>

Read all MIDI files from loaded WAD files, dump an example substitution music config file to the specified filename and quit.

-mb <mb>

Specify the heap size, in MiB (default 16).

-mmap

Use the OS's virtual memory subsystem to map WAD files directly into memory.

-nogui

If specified, don't show a GUI window for error messages when the game exits with an error.

## IWAD SEARCH PATHS
To play, an IWAD file is needed. This is a large file containing all of the levels, graphics, sound effects, music and other material that make up the game. IWAD files are named according to the game; the standard names are:

doom.wad, doom1.wad, doom2.wad, tnt.wad, plutonia.wad

Doom, Doom II, Final Doom

heretic.wad, heretic1.wad, hexen.wad, strife1.wad

Heretic, Hexen and Strife (commercial Doom engine games).

hacx.wad, chex.wad

Hacx and Chex Quest - more obscure games based on the Doom engine.

freedm.wad, freedoom1.wad, freedoom2.wad

The Freedoom open content IWAD files.

The following directory paths are searched in order to find an IWAD:

Current working directory

Any IWAD files found in the current working directory will be used in preference to IWADs found in any other directories.

DOOMWADDIR

This environment variable can be set to contain a path to a single directory in which to look for IWAD files. This environment variable is supported by most Doom source ports.

DOOMWADPATH

This environment variable, if set, can contain a colon-separated list of directories in which to look for IWAD files, or alternatively full paths to specific IWAD files.

$HOME/.local/share/games/doom

Writeable directory in the user's home directory. The path can be overridden using the XDG_DATA_HOME environment variable (see the XDG Base Directory Specification).

/usr/local/share/doom, /usr/local/share/games/doom, /usr/share/doom,

/usr/share/games/doom System-wide locations that can be accessed by all users. The path /usr/share/games/doom is a standard path that is supported by most Doom source ports. These paths can be overridden using the XDG_DATA_DIRS environment variable (see the XDG Base Directory Specification).

The above can be overridden on a one-time basis by using the -iwad command line parameter to provide the path to an IWAD file to use. This parameter can also be used to specify the name of a particular IWAD to use from one of the above paths. For example, '-iwad doom.wad' will search the above paths for the file doom.wad to use.

## ENVIRONMENT
This section describes environment variables that control Chocolate Doom's behavior.

DOOMWADDIR, DOOMWADPATH

See the section, IWAD SEARCH PATHS above.

PCSOUND_DRIVER

When running in PC speaker sound effect mode, this environment variable specifies a PC speaker driver to use for sound effect playback. Valid options are "Linux" for the Linux console mode driver, "BSD" for the NetBSD/OpenBSD PC speaker driver, and "SDL" for SDL-based emulated PC speaker playback (using the digital output).

OPL_DRIVER

When using OPL MIDI playback, this environment variable specifies an OPL backend driver to use. Valid options are "SDL" for an SDL-based software emulated OPL chip, "Linux" for the Linux hardware OPL driver, and "OpenBSD" for the OpenBSD/NetBSD hardware OPL driver. Generally speaking, a real hardware OPL chip sounds better than software emulation; however, modern machines do not often include one. If present, it may still require extra work to set up and elevated security privileges to access.

## FILES
$HOME/.local/share/chocolate-doom/default.cfg

The main configuration file for Chocolate Doom. See default.cfg(5).

$HOME/.local/share/chocolate-doom/chocolate-doom.cfg

Extra configuration values that are specific to Chocolate Doom and not present in Vanilla Doom. See chocolate-doom.cfg(5).

## SEE ALSO
chocolate-server(6), chocolate-setup(6), chocolate-heretic(6), chocolate-hexen(6), chocolate-strife(6)

## AUTHOR
Chocolate Doom is written and maintained by Simon Howard. It is based on the LinuxDoom source code, released by Id Software.

## COPYRIGHT
Copyright © id Software Inc. Copyright © 2005-2016 Simon Howard.

This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.


chocolate-heretic

package: chocolate-heretic

title: chocolate-heretic(6)

summary: historically compatible Heretic engine

text:
# chocolate-heretic(6)

## NAME
chocolate-heretic - historically compatible Heretic engine

## SYNOPSIS
chocolate-heretic [OPTIONS]

## DESCRIPTION
Chocolate Heretic is a port of Raven Software's 1994 game "Heretic" that aims to behave as similar to the original DOS version of Heretic as possible.

## GENERAL OPTIONS
-config <file>

Load main configuration from the specified file, instead of the default.

-extraconfig <file>

Load additional configuration from the specified file, instead of the default.

-file <files>

Load the specified PWAD files.

-iwad <file>

Specify an IWAD file to use.

-nomusic

Disable music.

-nomusicpacks

Disable substitution music packs.

-nosfx

Disable sound effects.

-nosound

Disable all sound output.

-ravpic

Take screenshots when F1 is pressed.

-response <filename>

Load extra command line arguments from the given response file. Arguments read from the file will be inserted into the command line replacing this argument. A response file can also be loaded using the abbreviated syntax '@filename.rsp'.

-savedir <directory>

Specify a path from which to load and save games. If the directory does not exist then it will automatically be created.

-version

Print the program version and exit.

## GAME START OPTIONS
-episode <n>

Start playing on episode n (1-4)

-loadgame <s>

Load the game in savegame slot s.

-nomonsters

Disable monsters.

-respawn

Monsters respawn after being killed.

-skill <skill>

Set the game skill, 1-5 (1: easiest, 5: hardest). A skill of 0 disables all monsters.

-warp <x> <y>

Start a game immediately, warping to level ExMy.

## DISPLAY OPTIONS
-1

Don't scale up the screen. Implies -window.

-2

Double up the screen to 2x its normal size. Implies -window.

-3

Double up the screen to 3x its normal size. Implies -window.

-fullscreen

Run in fullscreen mode.

-geometry <WxY>

Specify the dimensions of the window. Implies -window.

-height <y>

Specify the screen height, in pixels. Implies -window.

-noblit

Disable blitting the screen.

-nograbmouse

Don't grab the mouse when running in windowed mode.

-nomouse

Disable the mouse.

-width <x>

Specify the screen width, in pixels. Implies -window.

-window

Run in a window.

## NETWORKING OPTIONS
-autojoin

Automatically search the local LAN for a multiplayer server and join it.

-connect <address>

Connect to a multiplayer server running on the given address.

-deathmatch

Start a deathmatch game.

-dup <n>

Reduce the resolution of the game by a factor of n, reducing the amount of network bandwidth needed.

-extratics <n>

Send n extra tics in every packet as insurance against dropped packets.

-nodes <n>

Autostart the netgame when n nodes (clients) have joined the server.

-oldsync

Use original network client sync code rather than the improved sync code.

-port <n>

Use the specified UDP port for communications, instead of the default (2342).

-privateserver

When running a server, don't register with the global master server. Implies -server.

-server

Start a multiplayer server, listening for connections.

-servername <name>

When starting a network server, specify a name for the server.

-solo-net

Start the game playing as though in a netgame with a single player. This can also be used to play back single player netgame demos.

-timer <n>

For multiplayer games: exit each level after n minutes.

## DEHACKED AND WAD MERGING
-aa <files>

Equivalent to "-af <files> -as <files>".

-af <files>

Simulates the behavior of NWT's -af option, merging flats into the main IWAD directory. Multiple files may be specified.

-as <files>

Simulates the behavior of NWT's -as option, merging sprites into the main IWAD directory. Multiple files may be specified.

-deh <files>

Load the given dehacked patch(es)

-hhever <version>

Select the Heretic version number that was used to generate the HHE patch to be loaded. Patches for each of the Vanilla Heretic versions (1.0, 1.2, 1.3) can be loaded, but the correct version number must be specified.

-merge <files>

Simulates the behavior of deutex's -merge option, merging a PWAD into the main IWAD. Multiple files may be specified.

-noautoload

Disable auto-loading of .wad files.

-nocheats

Ignore cheats in dehacked files.

-nwtmerge <files>

Simulates the behavior of NWT's -merge option. Multiple files may be specified.

## DEMO OPTIONS
-demoextend

Record or playback a demo without automatically quitting after either level exit or player respawn.

-longtics

Record or playback a demo with high resolution turning.

-maxdemo <size>

Specify the demo buffer size (KiB)

-playdemo <demo>

Play back the demo named demo.lmp.

-record <x>

Record a demo named x.lmp.

-recordfrom <savenum> <demofile>

Record a demo, loading from the given filename. Equivalent to -loadgame <savenum> -record <demofile>.

-shortticfix

Smooth out low resolution turning when recording a demo.

-strictdemos

When recording or playing back demos, disable any extensions of the vanilla demo format - record demos as vanilla would do, and play back demos as vanilla would do.

-timedemo <demo>

Play back the demo named demo.lmp, determining the framerate of the screen.

## COMPATIBILITY
-setmem <version>

Specify DOS version to emulate for NULL pointer dereference emulation. Supported versions are: dos622, dos71, dosbox. The default is to emulate DOS 7.1 (Windows 98).

## OBSCURE AND LESS-USED OPTIONS
-cdrom

[windows only] Save configuration data and savegames in c:\heretic.cd, allowing play from CD.

-dumpsubstconfig <filename>

Read all MIDI files from loaded WAD files, dump an example substitution music config file to the specified filename and quit.

-mb <mb>

Specify the heap size, in MiB (default 16).

-mmap

Use the OS's virtual memory subsystem to map WAD files directly into memory.

-noartiskip

Allow artifacts to be used when the run key is held down.

-nogui

If specified, don't show a GUI window for error messages when the game exits with an error.

## IWAD SEARCH PATHS
To play, an IWAD file is needed. This is a large file containing all of the levels, graphics, sound effects, music and other material that make up the game. IWAD files are named according to the game; the standard names are:

doom.wad, doom1.wad, doom2.wad, tnt.wad, plutonia.wad

Doom, Doom II, Final Doom

heretic.wad, heretic1.wad, hexen.wad, strife1.wad

Heretic, Hexen and Strife (commercial Doom engine games).

hacx.wad, chex.wad

Hacx and Chex Quest - more obscure games based on the Doom engine.

freedm.wad, freedoom1.wad, freedoom2.wad

The Freedoom open content IWAD files.

The following directory paths are searched in order to find an IWAD:

Current working directory

Any IWAD files found in the current working directory will be used in preference to IWADs found in any other directories.

DOOMWADDIR

This environment variable can be set to contain a path to a single directory in which to look for IWAD files. This environment variable is supported by most Doom source ports.

DOOMWADPATH

This environment variable, if set, can contain a colon-separated list of directories in which to look for IWAD files, or alternatively full paths to specific IWAD files.

$HOME/.local/share/games/doom

Writeable directory in the user's home directory. The path can be overridden using the XDG_DATA_HOME environment variable (see the XDG Base Directory Specification).

/usr/local/share/doom, /usr/local/share/games/doom, /usr/share/doom,

/usr/share/games/doom System-wide locations that can be accessed by all users. The path /usr/share/games/doom is a standard path that is supported by most Doom source ports. These paths can be overridden using the XDG_DATA_DIRS environment variable (see the XDG Base Directory Specification).

The above can be overridden on a one-time basis by using the -iwad command line parameter to provide the path to an IWAD file to use. This parameter can also be used to specify the name of a particular IWAD to use from one of the above paths. For example, '-iwad doom.wad' will search the above paths for the file doom.wad to use.

## ENVIRONMENT
This section describes environment variables that control Chocolate Heretic's behavior.

DOOMWADDIR, DOOMWADPATH

See the section, IWAD SEARCH PATHS above.

PCSOUND_DRIVER

When running in PC speaker sound effect mode, this environment variable specifies a PC speaker driver to use for sound effect playback. Valid options are "Linux" for the Linux console mode driver, "BSD" for the NetBSD/OpenBSD PC speaker driver, and "SDL" for SDL-based emulated PC speaker playback (using the digital output).

OPL_DRIVER

When using OPL MIDI playback, this environment variable specifies an OPL backend driver to use. Valid options are "SDL" for an SDL-based software emulated OPL chip, "Linux" for the Linux hardware OPL driver, and "OpenBSD" for the OpenBSD/NetBSD hardware OPL driver. Generally speaking, a real hardware OPL chip sounds better than software emulation; however, modern machines do not often include one. If present, it may still require extra work to set up and elevated security privileges to access.

## FILES
$HOME/.local/share/chocolate-doom/heretic.cfg

The main configuration file for Chocolate Heretic. See heretic.cfg(5).

$HOME/.local/share/chocolate-doom/chocolate-heretic.cfg

Extra configuration values that are specific to Chocolate Heretic and not present in Vanilla Heretic. See chocolate-heretic.cfg(5).

## SEE ALSO
chocolate-doom(6), chocolate-hexen(6), chocolate-server(6), chocolate-setup(6)

## AUTHOR
Chocolate Heretic is part of the Chocolate Doom project, written and maintained by Simon Howard. It is based on the Heretic source code, released by Raven Software.

## COPYRIGHT
Copyright © id Software Inc. Copyright © Raven Software Inc. Copyright © 2005-2013 Simon Howard.

This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.


chocolate-heretic-setup

title: chocolate-heretic-setup(6)

summary: configuration tool for chocolate\-heretic

text:
# chocolate-heretic-setup(6)

## NAME
chocolate-heretic-setup - configuration tool for chocolate-heretic

## SYNOPSIS
chocolate-heretic-setup [OPTIONS]

## DESCRIPTION
Chocolate Heretic is a modern Heretic engine designed to behave as similar to the original Heretic game as is possible.

chocolate-heretic-setup is a tool for configuring Chocolate Heretic. It provides a menu-based interface for the display, joystick, keyboard, mouse, sound and compatibility settings.

chocolate-heretic-setup can also be used to start and join network games.

## OPTIONS
-config <file>

Load configuration from the specified file, instead of heretic.cfg.

-extraconfig <file>

Load extra configuration from the specified file, instead of chocolate-heretic.cfg.

## SEE ALSO
chocolate-heretic(6), default.cfg(5), chocolate-heretic.cfg(5)

## AUTHOR
Chocolate Doom is written and maintained by Simon Howard.

This manual was written by Jonathan Dowland.

## COPYRIGHT
Copyright © id Software Inc. Copyright © 2005-8 Simon Howard.

This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.