This wiki is archived and useful information is being migrated to the main bzflag.org website

BZW

From BZFlagWiki
Jump to: navigation, search

The BZW format is used by BZFS to define the game world, or "map". This file is a plain text file that is loaded by the server application at start up and sent to each client when it joins the game. The map file contains a list of 3d world objects that populate the world, as well as optionally settings and options for the server to use when running.

Basic Format[edit]

All structures in the BZW format are contained in this basic block structure

OBJECT_TYPE #comment
  KEY  VALUE
  KEY  VALUE
end

The object names are special keywords that are recognized by the BZW parser, unknown names will produce a warning at run time. Each object type has it's own subset of recognizedly keys and associated values, depending on what it does. All blocks must have an END statement to be valid.

Words are defined in lowercase. Comments can be added to the file by preceding them with a # character. The comment will be in effect until the end of the line.

There is no set limit to the number of times you may use any of the objects except for the world, options, and waterLevel objects, they can only be specified once.

All distances in a map file are in world units and all angular values in are degrees.

Here is small example world:

world  # simple world containing a box, pyramid, and mesh
 name Simple World
 size 100.0
end
box
 position -20 -20 0
 size 10 20 10
end
pyramid
 position 20 20 0
 size 10 10 20
end
mesh
 vertex -10 0 0
 vertex 10 0 0
 vertex 0 10 0
 face
  vertices 0 1 2
 endface
end

Object Types[edit]

The format of this text file consists of any number of objects listed in any order (except that physics, textureMatrix, dynamicColor, and material must come before they are referenced) separated by newlines and grouped into blocks of types, and it is conventional (but not mandatory) that world, options and waterLevel will go at the top of files.

The list of world types consists of:

Headers:

Must be defined before being referenced:

Others:

Map Usage[edit]

Maps are loaded by BZFS at runtime. The most common way to load a map is with the -world command line option. Other methods involve plug-ins or scripts to automatically change or load the map.

Map Editors[edit]

Several map editor applications exist and are commonly used to make complex maps. They are listed in the comparison of map editors page.

Man BZW[edit]

More detailed information on the specifics of the bzw file format is available in the manpage.