<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tedius</id>
	<title>BZFlagWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tedius"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/Special:Contributions/Tedius"/>
	<updated>2026-05-19T11:41:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=5082</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=5082"/>
		<updated>2008-12-12T04:04:24Z</updated>

		<summary type="html">&lt;p&gt;Tedius: added jump-through box, tidied up the Code a bit.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mesh is a [[BZW]] map object that defines an arbitrary three dimensional shape. A mesh is defined as a series of faces containing 3 or more points(vertices) in three dimensional space.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a mesh object is as follows, this is only an example&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 mesh&lt;br /&gt;
  name example_mesh&lt;br /&gt;
    #&lt;br /&gt;
    # Material properties and physics applied to a mesh apply to all faces&lt;br /&gt;
    # that follow the setting. Mesh faces will alter their own&lt;br /&gt;
    # properties without affecting the state of the mesh properties.&lt;br /&gt;
    #&lt;br /&gt;
  inside 5.5 4.5 1.2 # add an inside point (repeatable) &lt;br /&gt;
  outside 0 0 1000 # add an outside point (repeatable) &lt;br /&gt;
  vertex 100 200 300 # add a vertex (repeatable) &lt;br /&gt;
  normal 1.0 0 0 # add a normal (repeatable) &lt;br /&gt;
  texcoord 0.1 0.75 # add a texture coordinate (repeatable) &lt;br /&gt;
  shift 0 0 0 # (repeatable) &lt;br /&gt;
  scale 1 1 1 # (repeatable) &lt;br /&gt;
  shear 0 0 0 # (repeatable) &lt;br /&gt;
  spin angle nx ny nz # (repeatable) &lt;br /&gt;
  phydrv example_phydrv # assign a physics driver &lt;br /&gt;
  smoothbounce # ricochets use normals &lt;br /&gt;
  noclusters # render each mesh face individually &lt;br /&gt;
             # (this can be useful for occluders) &lt;br /&gt;
  face # start a face (repeatable) &lt;br /&gt;
       # faces must be convex polygons &lt;br /&gt;
    vertices 1 4 0 3 5 # list of vertices (requires at least three) &lt;br /&gt;
    normals 2 6 0 4 7 # list of normals (optional) &lt;br /&gt;
    texcoords 0 3 2 4 9 # list of texture coordinates (optional) &lt;br /&gt;
    phydrv example_phydrv # assign a physics driver &lt;br /&gt;
    smoothbounce &lt;br /&gt;
    noclusters &lt;br /&gt;
    drivethrough &lt;br /&gt;
    shootthrough &lt;br /&gt;
    passable &lt;br /&gt;
    material &lt;br /&gt;
  endface # end the face &lt;br /&gt;
   #&lt;br /&gt;
   #  The drawInfo element can be added to increase the rendering speed&lt;br /&gt;
   #  of the mesh object. If the client is capable of using this data,&lt;br /&gt;
   #  then it is used to draw the mesh instead of the face  information.&lt;br /&gt;
   #&lt;br /&gt;
 end	  # mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for a mesh are&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=The name of the mesh&lt;br /&gt;
vertex= this is a &#039;corner&#039; of your mesh - a point where faces connect. (at least 3 are required)&lt;br /&gt;
normal= a unit vector describing the direction light will reflect off the object&lt;br /&gt;
texcoord= this is used for mapping textures onto the mesh.  This will link a point of the 2-Dimensional texture to a vertex on the 3-Dimensional object.  (0,0) refers to the lower left corner of the texture, (1,1) refers to the top right.  Textures are defined in the [[material]] object.&lt;br /&gt;
inside= an arbitrary vertex placed on the inside of the mesh object.  This keeps tanks from driving or spawning inside the object.&lt;br /&gt;
phydrv=Assign a physics driver as defined in the [[physics]] object.&lt;br /&gt;
smoothbounce=shot will ricochet from the face in the same direction as the defined normal.&lt;br /&gt;
noclusters=Render each face individually.&lt;br /&gt;
shift=places the mesh using &amp;lt;x y z&amp;gt; coordinates&lt;br /&gt;
scale=resizes the mesh along the x, y, or z axis&lt;br /&gt;
shear=repeatable&lt;br /&gt;
spin=spins the mesh &amp;lt;angle&amp;gt; number of degrees, &amp;lt;n&amp;gt; number of rotations along one or more of the x, y, or z axiis&lt;br /&gt;
matref=Assign a [[material]] to all below faces.&lt;br /&gt;
face=Start a face (required), see below:&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Valid parameters within the face sub-object:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
vertices=Numbered list of vertices for this face. (requires at least three)&lt;br /&gt;
normals=Numbered list of normals for this face.&lt;br /&gt;
texcoords=Numbered list of texture coordinates for this face.&lt;br /&gt;
phydrv=Assign a [[Physics|physics driver]] to this face only.&lt;br /&gt;
smoothbounce=use normals to determine shot ricochets for this face.&lt;br /&gt;
noclusters&#039;&#039;&#039;&lt;br /&gt;
drivethrough=Tanks can drive through this face.&lt;br /&gt;
shootthrough=Tanks can shoot through this face.&lt;br /&gt;
passable=Tanks can both shoot and drive through this face&lt;br /&gt;
matref=Assign a [[material]] to this face.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Meshes have full support for [[Material]] (wherein custom textures can be defined) and [[Physics Drivers]].&lt;br /&gt;
&lt;br /&gt;
==DrawInfo==&lt;br /&gt;
[[DrawInfo]] can be added to the mesh object to increase rendering efficiency, allowing the designer to specify which details will be seen from certain distances.  It can also be used to rotate a mesh object, though tanks can not interact with the moving object.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The shape of a mesh will vary greatly as by its very nature it can be defined to look like anything.  Unless a material is defined and applied, the default &amp;quot;mesh.png&amp;quot; texture will be applied to all faces of the mesh.&lt;br /&gt;
&lt;br /&gt;
==Simplified Examples==&lt;br /&gt;
{|&lt;br /&gt;
|Simple Cube&lt;br /&gt;
 mesh&lt;br /&gt;
    vertex -10 -10 0&lt;br /&gt;
    vertex 10 -10 0&lt;br /&gt;
    vertex 10 10 0&lt;br /&gt;
    vertex -10 10 0&lt;br /&gt;
    vertex -10 -10 10&lt;br /&gt;
    vertex 10 -10 10&lt;br /&gt;
    vertex 10 10 10&lt;br /&gt;
    vertex -10 10 10&lt;br /&gt;
    face #south&lt;br /&gt;
        vertices 0 1 5 4&lt;br /&gt;
    endface&lt;br /&gt;
    face #east&lt;br /&gt;
        vertices 1 2 6 5&lt;br /&gt;
    endface&lt;br /&gt;
    face #north&lt;br /&gt;
        vertices 2 3 7 6&lt;br /&gt;
    endface&lt;br /&gt;
    face #west&lt;br /&gt;
        vertices 3 0 4 7 &lt;br /&gt;
    endface&lt;br /&gt;
    face #bottom&lt;br /&gt;
        vertices 0 1 2 3&lt;br /&gt;
    endface&lt;br /&gt;
    face #top&lt;br /&gt;
        vertices 4 5 6 7&lt;br /&gt;
    endface&lt;br /&gt;
 end #mesh&lt;br /&gt;
|Simple billboard with texcoords&lt;br /&gt;
 mesh &lt;br /&gt;
     vertex -10 0 0&lt;br /&gt;
     vertex 10 0 0&lt;br /&gt;
    vertex 10 0 10&lt;br /&gt;
    vertex -10 0 10&lt;br /&gt;
    texcoord 0 0&lt;br /&gt;
    texcoord 1 0&lt;br /&gt;
    texcoord 1 1&lt;br /&gt;
    texcoord 0 1&lt;br /&gt;
    matref myBillboard&lt;br /&gt;
    face&lt;br /&gt;
        vertices 0 1 2 3&lt;br /&gt;
        texcoord 0 1 2 3&lt;br /&gt;
    endface&lt;br /&gt;
    face #backside&lt;br /&gt;
        vertices 1 0 3 2&lt;br /&gt;
        texcoord 1 0 3 2&lt;br /&gt;
    endface&lt;br /&gt;
 end #mesh&lt;br /&gt;
|Simple Jump-through floor&lt;br /&gt;
 mesh&lt;br /&gt;
    vertex 0 0 9&lt;br /&gt;
    vertex 10 0 9&lt;br /&gt;
    vertex 10 10 9&lt;br /&gt;
    vertex 0 10 9&lt;br /&gt;
    vertex 0 0 10&lt;br /&gt;
    vertex 10 0 10&lt;br /&gt;
    vertex 10 10 10&lt;br /&gt;
    vertex 0 10 10&lt;br /&gt;
    face #south&lt;br /&gt;
        vertices 0 1 5 4&lt;br /&gt;
    endface&lt;br /&gt;
    face #east&lt;br /&gt;
        vertices 1 2 6 5&lt;br /&gt;
    endface&lt;br /&gt;
    face #north&lt;br /&gt;
        vertices 2 3 7 6&lt;br /&gt;
    endface&lt;br /&gt;
    face #west&lt;br /&gt;
        vertices 3 0 4 7 &lt;br /&gt;
    endface&lt;br /&gt;
    face #bottom&lt;br /&gt;
        vertices 0 1 2 3&lt;br /&gt;
        drivethrough&lt;br /&gt;
    endface&lt;br /&gt;
    face #top&lt;br /&gt;
        vertices 4 5 6 7&lt;br /&gt;
    endface&lt;br /&gt;
 end #mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The mesh object is supported by the [[BZWTools]] blender plugin, the Wings3D Exporter and hand coding.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Mesh object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=TextureMatrix&amp;diff=4784</id>
		<title>TextureMatrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=TextureMatrix&amp;diff=4784"/>
		<updated>2008-08-03T20:30:59Z</updated>

		<summary type="html">&lt;p&gt;Tedius: /* Editor Support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A TextureMatrix, or texmat, when applied to a material, object allows you to define how a texture will appear in an material.  It can be used to manipulate still (fixed) textures as well as animated ones.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
  textureMatrix&lt;br /&gt;
   name example_texmat&lt;br /&gt;
   scale 0.0 0.0 1.0 1.0 # u/v freqs, u/v scales&lt;br /&gt;
   spin 0.0 # rotation freq&lt;br /&gt;
   shift 0.0 0.0 # u/v freqs&lt;br /&gt;
   center 0.5 0.5 # dynamic u/v center (for spin and scale)&lt;br /&gt;
   fixedscale 0.0 0.0 # time invariant u/v scale&lt;br /&gt;
   fixedspin 0.0 # time invariant rotation&lt;br /&gt;
   fixedshift 0.0 0.0 # time invariant u/v shift&lt;br /&gt;
  end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The valid parameters for textureMatrix are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=Name of the texmat, for reference&lt;br /&gt;
scale=Causes texture to dynamically change it&#039;s size, parameters are u/v frequencies, then u/v scales.&lt;br /&gt;
spin=Cause a texture to spin around a center point, parameter is rotational frequency.&lt;br /&gt;
shift=Causes texture to move linearly, parameters are u/v frequencies.&lt;br /&gt;
center=Central point for spin and scale&lt;br /&gt;
fixedscale=Fixed scale, texture doesn&#039;t move with time.&lt;br /&gt;
fixedspin=Fixed spin, texture doesn&#039;t move with time.&lt;br /&gt;
fixedshift=Fixed shift, texture doesn&#039;t move with time.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A textureMatrix can be called by adding &#039;texmat &amp;lt;name&amp;gt;&#039; to a material containing a texture, like so:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 material&lt;br /&gt;
  name example_material&lt;br /&gt;
  diffuse 1 1 1 1&lt;br /&gt;
  texture caution&lt;br /&gt;
  texmat example_texmat&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editor Support ==&lt;br /&gt;
There are currently no supported editors. The Texture Matrix object must be added by hand in a text editor.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Physics object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4388</id>
		<title>Map making by hand</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4388"/>
		<updated>2008-04-05T03:52:35Z</updated>

		<summary type="html">&lt;p&gt;Tedius: reverted the changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Major re-organization, transform away from &amp;quot;chat&amp;quot; style}}&lt;br /&gt;
Although there are a number of GUI options for creating maps such as BZ-Edit, 3D modelers, many map-makers use a basic text-editor.  There are many times when it is necessary to make small changes to a map, such as including objects that are unavailable in GUI map-maker, but there are also some who enjoy the challenge of creating a map entirely from scratch with a text-editor.&lt;br /&gt;
&lt;br /&gt;
==Text Editors==&lt;br /&gt;
Most text-editors designed for coding/programming are more than sufficient for editing bzw files.  Although word-processing programs such as Microsoft Word can be used, there are many cheaper (free) and more efficient programs designed specifically for coding.&lt;br /&gt;
===Windows===&lt;br /&gt;
*Notepad&lt;br /&gt;
*PSPad&lt;br /&gt;
*NoteTab&lt;br /&gt;
===Mac===&lt;br /&gt;
*TextWrangler&lt;br /&gt;
*TextEdit&lt;br /&gt;
===Linux===&lt;br /&gt;
*Command-line editors such as nano, emacs, pico, vim, ed. &lt;br /&gt;
*GEdit&lt;br /&gt;
*Kate&lt;br /&gt;
==Editing existing maps==&lt;br /&gt;
Beginning mapmakers should spend some time studying and making small changes in existing maps to see how things work.  In the client, maps can be saved for editing by joining the desired server and choosing: Options&amp;gt;Save World.  Maps can also be saved by issuing the /saveworld command.  The map should be a simple map when getting started.  One may find it easier to create a file in BZEdit and open the resulting file in the text-editor.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
If you have created a box in BZEdit you may see:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 # World built with bzedit32 world class, available at&lt;br /&gt;
 # http://www.sourceforge.net/projects/bzflag&lt;br /&gt;
 world &lt;br /&gt;
   size 400 &lt;br /&gt;
 end &lt;br /&gt;
 options &lt;br /&gt;
   +r &lt;br /&gt;
   -j &lt;br /&gt;
   -set _tankSpeed 25 &lt;br /&gt;
   -ms 5 &lt;br /&gt;
   -mp 0,2,0,2,0,2 &lt;br /&gt;
 end &lt;br /&gt;
 box &lt;br /&gt;
   name box1 &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Explanation of the Sample Code===&lt;br /&gt;
There are set variables that define various things such as how fast your tank is, how fast the bullets are, or if it&#039;s raining or foggy.  Put those in the options setting with &amp;quot;-set(space) &amp;quot; in front of it. You can also make those changes as an admin by using /set _variable (notice there is a space between the set and the _).  A full list of these settings can be found on the [[Server Variables]] page.  Other options, such as how many times a flag can be grabbed before it resets or if flags can land on buildings are explained [http://my.bzflag.org/bb/files/antigrav4teamconf_114.txt in this forum post]&lt;br /&gt;
Optionally, the variables can be placed in a separate configuration file and referenced when the server is started.&lt;br /&gt;
&lt;br /&gt;
===Basic Definitions===&lt;br /&gt;
;Objects&lt;br /&gt;
:Objects are the basic building blocks of the bzw file.  Objects begin with a line declaring the object, some fields describing that object, and a line that closes the object (usually with &amp;quot;end&amp;quot;).  Each of these sections of the object is important.&lt;br /&gt;
;Comments&lt;br /&gt;
:BZFS ignores anything in a line following the #; the line has been &amp;quot;commented out.&amp;quot;  It is highly recommended that comments be used often, both for the mapmaker and for others that may see the map.&lt;br /&gt;
;3D Cartesian Coordinate System&lt;br /&gt;
:In most objects, you will see three numbers after position and size. These numbers are coordinates on a graph. The first number is the x coordinate (left and right) the middle number is the y coordinate (forward and backward) and the third number is the z coordinate (height and depth). Another way of thinking of it is: x = width, y = depth, z = height. (Those accustomed to the Y axis determining height will have to slightly adjust their thinking.) &lt;br /&gt;
&lt;br /&gt;
==Sample Objects==&lt;br /&gt;
Most objects have similar parameters as the basic box.  For instance, the code for a cone may look something like this:&lt;br /&gt;
{|&lt;br /&gt;
| &lt;br /&gt;
 cone &lt;br /&gt;
    name cone1            # name is optional&lt;br /&gt;
    position 0 0 0 &lt;br /&gt;
    size 10 10 20 &lt;br /&gt;
    divisions 128 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Divisions basically decide how smooth the cone is. The higher the divisions the more smooth the cone is.  A division of 4 would look like a pyramid.  Another parameter that can be added to the cone object is angle. If you say angle 180, that would make 1/2 of a cone, 90 would make 1/4 of a cone, and so on. &lt;br /&gt;
&lt;br /&gt;
An arc...&lt;br /&gt;
&lt;br /&gt;
An arc is basically a cylinder. However it doesn’t have to be a perfect cylinder depending on certain options you select. For an arc the only required options are divisions, position and size. Just like the cone divisions have the same effect, position and size are all the same. Once again you can have an oval shaped cylinder type thing. Now, you WILL find more options to an arc than to a cone, for example the ratio option. The ratio options let you basically put a hole in the cylinder. So if you have the option: ratio 1 you would have a full cylinder. If you say for example ratio .3 or any number less than 1 you will get a whole in the cylinder. The bigger the number, the smaller the hole. Angle allows you to do a simi-circle. Rotation once again isn&#039;t really needed. all the options like spin and shear are the same for this object too! phydrv and matref I’ll show later. Let’s move to the sphere &lt;br /&gt;
&lt;br /&gt;
The sphere... &lt;br /&gt;
&lt;br /&gt;
The only options required to make a sphere are position, size, and divisions. &lt;br /&gt;
all these options do the same thing as they did in the objects above. you may also have an oval like sphere. You make an oval like sphere simply by making the x and y&#039;s different sizes just like in the cone and arc. The radius option is just a substitute for size. You can write size 10 10 10 or radius 10.  Both do the same thing. However if you want an oval shaped sphere you have to use size. Rotation wouldn’t really have an effect and the shear and spin works the same for this object.&lt;br /&gt;
&lt;br /&gt;
==Getting more help==&lt;br /&gt;
*The links at the bottom of the [[:Category:Map Making|Map Making]] page.&lt;br /&gt;
*The original creator of this page is flight, you can email him at dirtbikerdude_91@yahoo.com and he will be happy to answer any questions that he is capable of answering.&lt;br /&gt;
&lt;br /&gt;
==Special Objects==&lt;br /&gt;
There are certain objects that are often coded by hand because it is simpler or it is impossible to do with graphical map creation tools.  &lt;br /&gt;
&lt;br /&gt;
===Materials ===&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_bolt.png &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
Material is letting the computer know that a material is about to be explained to it. You name it so that way you can reference it with the matref. The name can be any thing you want as long as it does not have any spaces. You type in addtexture and you state a texture name. Now, how do you know what texture names there are to use?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Linux&#039;&#039;&#039;: Running ls /usr/share/bzflag/*.png in a terminal will show the list of pictures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Mac&#039;&#039;&#039;: If you control click (right click) on the bzflag icon, click show package contents, click contents, and click resources, those are the pictures you may use. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Windows&#039;&#039;&#039;: The default path is C:\Program Files\BZFlag\data\*.png&lt;br /&gt;
&lt;br /&gt;
What you will find are images that are used in every day games. The top of a base, the wall of a base. A bullet which is blue_bolt.png (as was used above).  The full path to the texture needs to be used if the texture is not found in that directory.  Any customized textures should be uploaded to the bzflag image submission system at [http://images.bzflag.org/submitimages/] before the map is hosted publicly.&lt;br /&gt;
&lt;br /&gt;
Servers running bzfs 2.0.8 and earlier will require &amp;quot;meshbox&amp;quot; and &amp;quot;meshpyr&amp;quot; in order to apply textures and physics to these objects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instead of creating a new texture, many interesting and creative things can be done with the &amp;quot;diffuse&amp;quot; parameter in the material object. You can add the diffuse command and it will look like this diffuse 1 1 1 1. The first number is the amount of red that will be in the meshobject. The second number is the amount of green, the third is the amount of blue. So you can mix those colors to make more colors. You may use a range from 0-1. For example diffuse .3 .5 .26 1. The fourth number determines the opacity or transparency (the see-throughability).  0 is invisible, .5 is half invisible, and 1 is normal. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   diffuse .5 .25 .1 .6 &lt;br /&gt;
   addtexture mesh.png &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Physics===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Physics make your tank behave in different ways. If you have ever played laser mania by Louman than you know on the outskirts of the map there is something you can jump on and you go really fast, that is a physics. Physics and materials work the same way. Physics is to material as phydrv is to matref. You must specify a physics then on a meshbox, meshpyr cone arc sphere or whatever, you can reference that physics by using the phydrv command just like you would use the matref command for materials. There are different physics commands. Linear, angular, slide and death. In the Louman map I mentioned above is a linear physics. Linear physics makes your tank move in a line. The numbers after a linear command are just like position x y z. example:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 physics &lt;br /&gt;
  name phy1 &lt;br /&gt;
  linear 50 0 0 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive x direction you may use -50 and it will make it go the other way.&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy2 &lt;br /&gt;
  linear 0 50 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive y direction &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy3 &lt;br /&gt;
   linear 0 0 50 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank jump at a speed of 50 &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy4 &lt;br /&gt;
   slide 5 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank basically feel like it&#039;s on ice.  Whichever way the tank is moving it will keep moving that way. &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy5 &lt;br /&gt;
   death haha! you died &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make the tank die when it touches the object that refers to this and the message haha! you died will be displayed to that person. &lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
 physics &lt;br /&gt;
   name phy1 &lt;br /&gt;
   death I like you better dead! &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   phydrv phy1 &amp;lt;or what ever you named the physics &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This works just like the material &lt;br /&gt;
&lt;br /&gt;
The thing about physics and materials is that they have to be written before they are referenced. &lt;br /&gt;
&lt;br /&gt;
This WON&#039;T work &lt;br /&gt;
&lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_team.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
==Transformations==&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Missile_War&amp;diff=4237</id>
		<title>Talk:Missile War</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Missile_War&amp;diff=4237"/>
		<updated>2008-03-17T15:52:17Z</updated>

		<summary type="html">&lt;p&gt;Tedius: New page: What&amp;#039;s a PSL description?  Also, the original map was always mispelled. see http://web.archive.org/web/20070101185131/http://my.bzflag.org/serverlist.php  However, as long as there is a re...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What&#039;s a PSL description?  Also, the original map was always mispelled. see http://web.archive.org/web/20070101185131/http://my.bzflag.org/serverlist.php  However, as long as there is a redirect its fine with me. [[User:Tedius|Ted]] 11:52, 17 March 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Material&amp;diff=4117</id>
		<title>Material</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Material&amp;diff=4117"/>
		<updated>2008-02-28T18:29:55Z</updated>

		<summary type="html">&lt;p&gt;Tedius: some additional parameters, why didn&amp;#039;t these get copied from the man page?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A material is used in a BZFlag world to define a new look for otherwise regular objects, such as [[Meshbox|meshboxes]].&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
To put a material in your map, first it must be defined:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 material&lt;br /&gt;
  name example_material&lt;br /&gt;
  texture filename&lt;br /&gt;
  addtexture filename&lt;br /&gt;
  notextures&lt;br /&gt;
  notexcolor&lt;br /&gt;
  notexalpha&lt;br /&gt;
  texmat -1&lt;br /&gt;
  dyncol -1&lt;br /&gt;
  ambient 0.0 0.0 0.0 1.0&lt;br /&gt;
  diffuse 1.0 1.0 1.0 1.0&lt;br /&gt;
  color 1.0 1.0 1.0 1.0&lt;br /&gt;
  specular 0.0 0.0 0.0 1.0&lt;br /&gt;
  emission 0.0 0.0 0.0 1.0&lt;br /&gt;
  shininess 0.0&lt;br /&gt;
  resetmat&lt;br /&gt;
  spheremap &lt;br /&gt;
  noradar &lt;br /&gt;
  noshadow&lt;br /&gt;
  noculling &lt;br /&gt;
  nosorting &lt;br /&gt;
  nolighting &lt;br /&gt;
  alphathresh 0.0 &lt;br /&gt;
  groupalpha&lt;br /&gt;
  occluder &lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
Valid parameters for a Material are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=name for reference&lt;br /&gt;
texture=set the texture (must be .png but don&#039;t include the extension unless on the Internet)&lt;br /&gt;
addtexture=add a texture (again, no extension is needed)&lt;br /&gt;
notextures=don&#039;t use textures.&lt;br /&gt;
notexcolor=don&#039;t apply the [[Color(BZW)|color]] to the texture&lt;br /&gt;
notexalpha=don&#039;t use the texture&#039;s alpha channel&lt;br /&gt;
texmat=specify a [[TextureMatrix|texture matrix]]. -1 for no texture matrix. (addtexture must be used before texmat)&lt;br /&gt;
dyncol=specify a [[DynamicColor|dynamic color]]. -1 for no dynamic color.&lt;br /&gt;
ambient=ambient color&lt;br /&gt;
diffuse=diffuse (main)[[Color(BZW)|color]]&lt;br /&gt;
[[Color(BZW)|color]]=synonym for diffuse&lt;br /&gt;
specular=specular [[Color(BZW)|color]]&lt;br /&gt;
emission=emission [[Color(BZW)|color]]&lt;br /&gt;
shininess=shiny!&lt;br /&gt;
resetmat=restore default values&lt;br /&gt;
spheremap=use spherical texture coordinate mapping&lt;br /&gt;
noradar=do not display on radar (except normal mode)&lt;br /&gt;
noshadow=do not render shadows&lt;br /&gt;
noculling=do not cull by face winding (double-sided)&lt;br /&gt;
nosorting=do not do front-to-back alpha sorting&lt;br /&gt;
nolighting=disable lighting&lt;br /&gt;
alphathresh=alpha thresholding value&lt;br /&gt;
groupalpha=sort translucent faces as a group&lt;br /&gt;
occluder=faces with this material will occlude&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
To actually apply a material, you must use some sort of reference in an object, like so:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 meshbox&lt;br /&gt;
  position 0 0 10&lt;br /&gt;
  rotation 0&lt;br /&gt;
  size 10 10 5&lt;br /&gt;
  matref example_material&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transparency==&lt;br /&gt;
The transparency effect is created by setting the alpha component of a material&#039;s [[Color(BZW)|color]] to a value less than one.&lt;br /&gt;
Transparent objects should be sparingly, because everything behind them must always be rendered. In addition, very large transparent objects may be sorted and drawn in the wrong order. This is caused by the fact that the Z-buffer cannot be used because it would allow another transparent object to cover the transparent object, which would not look right. Thus, the transparent elements are instead sorted by determining the distance to a point in the center, which works well as long as there are not too many large transparent objects.&lt;br /&gt;
The same applies to textures that have transparent sections.&lt;br /&gt;
&lt;br /&gt;
==Magic Material Names==&lt;br /&gt;
===General===&lt;br /&gt;
[[GroundMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
WaterMaterial&amp;lt;br&amp;gt;&lt;br /&gt;
LinkMaterial  For Teleporter &amp;lt;br&amp;gt;&lt;br /&gt;
TeleFrame For Teleporter Frame (BZFlag version 3.0)&lt;br /&gt;
&lt;br /&gt;
===Skybox===&lt;br /&gt;
[[LeftSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[RightSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[FrontSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[BackSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[TopSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[BottomSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Materials were added in [[BZFlag 2.0.0]].&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
Materials are supported in [[Blender]] with [[BZWTools]], [[pyBZEdit]], and [[Wings3D]] with the [[BZW Exporter for Wings3D]]. Materials are NOT supported in [[BZEdit]] or [[BZFed]].&lt;br /&gt;
&lt;br /&gt;
==A note about textures==&lt;br /&gt;
A material can be composed of colors and textures. Textures are .png files that are either in the client directory or on the Internet. The terms &#039;&#039;material&#039;&#039; and &#039;&#039;texture&#039;&#039; are often confused and misunderstood, so bear the above in mind.&lt;br /&gt;
&lt;br /&gt;
[[category:Map_Objects]]&lt;br /&gt;
[[category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4090</id>
		<title>Map making by hand</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4090"/>
		<updated>2008-02-21T03:40:52Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Getting better, still needs work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Major re-organization, transform away from &amp;quot;chat&amp;quot; style}}&lt;br /&gt;
Although there are a number of GUI options for creating maps such as BZ-Edit, 3D modelers, many map-makers use a basic text-editor.  There are many times when it is necessary to make small changes to a map, such as including objects that are unavailable in GUI map-maker, but there are also some who enjoy the challenge of creating a map entirely from scratch with a text-editor.&lt;br /&gt;
&lt;br /&gt;
==Text Editors==&lt;br /&gt;
Most text-editors designed for coding/programming are more than sufficient for editing bzw files.  Although word-processing programs such as Microsoft Word can be used, there are many cheaper (free) and more efficient programs designed specifically for coding.&lt;br /&gt;
===Windows===&lt;br /&gt;
*Notepad&lt;br /&gt;
*PSPad&lt;br /&gt;
*NoteTab&lt;br /&gt;
===Mac===&lt;br /&gt;
*TextWrangler&lt;br /&gt;
*TextEdit&lt;br /&gt;
===Linux===&lt;br /&gt;
*Command-line editors such as nano, emacs, pico, vim, ed. &lt;br /&gt;
*GEdit&lt;br /&gt;
*Kate&lt;br /&gt;
==Editing existing maps==&lt;br /&gt;
Beginning mapmakers should spend some time studying and making small changes in existing maps to see how things work.  In the client, maps can be saved for editing by joining the desired server and choosing: Options&amp;gt;Save World.  Maps can also be saved by issuing the /saveworld command.  The map should be a simple map when getting started.  One may find it easier to create a file in BZEdit and open the resulting file in the text-editor.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
If you have created a box in BZEdit you may see:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 # World built with bzedit32 world class, available at&lt;br /&gt;
 # http://www.sourceforge.net/projects/bzflag&lt;br /&gt;
 world &lt;br /&gt;
   size 400 &lt;br /&gt;
 end &lt;br /&gt;
 options &lt;br /&gt;
   +r &lt;br /&gt;
   -j &lt;br /&gt;
   -set _tankSpeed 25 &lt;br /&gt;
   -ms 5 &lt;br /&gt;
   -mp 0,2,0,2,0,2 &lt;br /&gt;
 end &lt;br /&gt;
 box &lt;br /&gt;
   name box1 &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Explanation of the Sample Code===&lt;br /&gt;
There are set variables that define various things such as how fast your tank is, how fast the bullets are, or if it&#039;s raining or foggy.  Put those in the options setting with &amp;quot;-set(space) &amp;quot; in front of it. You can also make those changes as an admin by using /set _variable (notice there is a space between the set and the _).  A full list of these settings can be found on the [[Server Variables]] page.  Other options, such as how many times a flag can be grabbed before it resets or if flags can land on buildings are explained [http://my.bzflag.org/bb/files/antigrav4teamconf_114.txt in this forum post]&lt;br /&gt;
Optionally, the variables can be placed in a separate configuration file and referenced when the server is started.&lt;br /&gt;
&lt;br /&gt;
===Basic Definitions===&lt;br /&gt;
;Objects&lt;br /&gt;
:Objects are the basic building blocks of the bzw file.  Objects begin with a line declaring the object, some fields describing that object, and a line that closes the object (usually with &amp;quot;end&amp;quot;).  Each of these sections of the object is important.&lt;br /&gt;
;Comments&lt;br /&gt;
:BZFS ignores anything in a line following the #; the line has been &amp;quot;commented out.&amp;quot;  It is highly recommended that comments be used often, both for the mapmaker and for others that may see the map.&lt;br /&gt;
;3D Cartesian Coordinate System&lt;br /&gt;
:In most objects, you will see three numbers after position and size. These numbers are coordinates on a graph. The first number is the x coordinate (left and right) the middle number is the y coordinate (forward and backward) and the third number is the z coordinate (height and depth). Another way of thinking of it is: x = width, y = depth, z = height. (Those accustomed to the Y axis determining height will have to slightly adjust their thinking.) &lt;br /&gt;
&lt;br /&gt;
==Sample Objects==&lt;br /&gt;
Most objects have similar parameters as the basic box.  For instance, the code for a cone may look something like this:&lt;br /&gt;
{|&lt;br /&gt;
| &lt;br /&gt;
 cone &lt;br /&gt;
    name cone1            # name is optional&lt;br /&gt;
    position 0 0 0 &lt;br /&gt;
    size 10 10 20 &lt;br /&gt;
    divisions 128 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Divisions basically decide how smooth the cone is. The higher the divisions the more smooth the cone is.  A division of 4 would look like a pyramid.  Another parameter that can be added to the cone object is angle. If you say angle 180, that would make 1/2 of a cone, 90 would make 1/4 of a cone, and so on. &lt;br /&gt;
&lt;br /&gt;
An arc...&lt;br /&gt;
&lt;br /&gt;
An arc is basically a cylinder. However it doesn’t have to be a perfect cylinder depending on certain options you select. For an arc the only required options are divisions, position and size. Just like the cone divisions have the same effect, position and size are all the same. Once again you can have an oval shaped cylinder type thing. Now, you WILL find more options to an arc than to a cone, for example the ratio option. The ratio options let you basically put a hole in the cylinder. So if you have the option: ratio 1 you would have a full cylinder. If you say for example ratio .3 or any number less than 1 you will get a whole in the cylinder. The bigger the number, the smaller the hole. Angle allows you to do a simi-circle. Rotation once again isn&#039;t really needed. all the options like spin and shear are the same for this object too! phydrv and matref I’ll show later. Let’s move to the sphere &lt;br /&gt;
&lt;br /&gt;
The sphere... &lt;br /&gt;
&lt;br /&gt;
The only options required to make a sphere are position, size, and divisions. &lt;br /&gt;
all these options do the same thing as they did in the objects above. you may also have an oval like sphere. You make an oval like sphere simply by making the x and y&#039;s different sizes just like in the cone and arc. The radius option is just a substitute for size. You can write size 10 10 10 or radius 10.  Both do the same thing. However if you want an oval shaped sphere you have to use size. Rotation wouldn’t really have an effect and the shear and spin works the same for this object.&lt;br /&gt;
&lt;br /&gt;
==Getting more help==&lt;br /&gt;
*The links at the bottom of the [[:Category:Map Making|Map Making]] page.&lt;br /&gt;
*The original creator of this page is flight, you can email him at dirtbikerdude_91@yahoo.com and he will be happy to answer any questions that he is capable of answering.&lt;br /&gt;
&lt;br /&gt;
==Special Objects==&lt;br /&gt;
There are certain objects that are often coded by hand because it is simpler or it is impossible to do with graphical map creation tools.  &lt;br /&gt;
&lt;br /&gt;
===Materials ===&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_bolt.png &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
Material is letting the computer know that a material is about to be explained to it. You name it so that way you can reference it with the matref. The name can be any thing you want as long as it does not have any spaces. You type in addtexture and you state a texture name. Now, how do you know what texture names there are to use?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Linux&#039;&#039;&#039;: Running ls /usr/share/bzflag/*.png in a terminal will show the list of pictures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Mac&#039;&#039;&#039;: If you control click (right click) on the bzflag icon, click show package contents, click contents, and click resources, those are the pictures you may use. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Windows&#039;&#039;&#039;: The default path is C:\Program Files\BZFlag\data\*.png&lt;br /&gt;
&lt;br /&gt;
What you will find are images that are used in every day games. The top of a base, the wall of a base. A bullet which is blue_bolt.png (as was used above).  The full path to the texture needs to be used if the texture is not found in that directory.  Any customized textures should be uploaded to the bzflag image submission system at [http://images.bzflag.org/submitimages/] before the map is hosted publicly.&lt;br /&gt;
&lt;br /&gt;
Servers running bzfs 2.0.8 and earlier will require &amp;quot;meshbox&amp;quot; and &amp;quot;meshpyr&amp;quot; in order to apply textures and physics to these objects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instead of creating a new texture, many interesting and creative things can be done with the &amp;quot;diffuse&amp;quot; parameter in the material object. You can add the diffuse command and it will look like this diffuse 1 1 1 1. The first number is the amount of red that will be in the meshobject. The second number is the amount of green, the third is the amount of blue. So you can mix those colors to make more colors. You may use a range from 0-1. For example diffuse .3 .5 .26 1. The fourth number determines the opacity or transparency (the see-throughability).  0 is invisible, .5 is half invisible, and 1 is normal. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   diffuse .5 .25 .1 .6 &lt;br /&gt;
   addtexture mesh.png &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Physics===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Physics make your tank behave in different ways. If you have ever played laser mania by Louman than you know on the outskirts of the map there is something you can jump on and you go really fast, that is a physics. Physics and materials work the same way. Physics is to material as phydrv is to matref. You must specify a physics then on a meshbox, meshpyr cone arc sphere or whatever, you can reference that physics by using the phydrv command just like you would use the matref command for materials. There are different physics commands. Linear, angular, slide and death. In the Louman map I mentioned above is a linear physics. Linear physics makes your tank move in a line. The numbers after a linear command are just like position x y z. example:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 physics &lt;br /&gt;
  name phy1 &lt;br /&gt;
  linear 50 0 0 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive x direction you may use -50 and it will make it go the other way.&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy2 &lt;br /&gt;
  linear 0 50 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive y direction &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy3 &lt;br /&gt;
   linear 0 0 50 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank jump at a speed of 50 &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy4 &lt;br /&gt;
   slide 5 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank basically feel like it&#039;s on ice.  Whichever way the tank is moving it will keep moving that way. &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy5 &lt;br /&gt;
   death haha! you died &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make the tank die when it touches the object that refers to this and the message haha! you died will be displayed to that person. &lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
 physics &lt;br /&gt;
   name phy1 &lt;br /&gt;
   death I like you better dead! &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   phydrv phy1 &amp;lt;or what ever you named the physics &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This works just like the material &lt;br /&gt;
&lt;br /&gt;
The thing about physics and materials is that they have to be written before they are referenced. &lt;br /&gt;
&lt;br /&gt;
This WON&#039;T work &lt;br /&gt;
&lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_team.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
==Transformations==&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4020</id>
		<title>Map making by hand</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4020"/>
		<updated>2008-02-18T20:03:13Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Major re-organization, transform away from &amp;quot;chat&amp;quot; style}}&lt;br /&gt;
Although there are a number of GUI options for creating maps such as BZ-Edit, 3D modelers, many map-makers use a basic text-editor.  There are many times when it is necessary to make small changes to a map, such as including objects that are unavailable in GUI map-maker, but there are also some who enjoy the challenge of creating a map entirely from scratch with a text-editor.&lt;br /&gt;
&lt;br /&gt;
==Text Editors==&lt;br /&gt;
Most text-editors designed for coding/programming are more than sufficient for editing bzw files.  Although word-processing programs such as Microsoft Word can be used, there are many cheaper (free) and more efficient programs designed specifically for coding.&lt;br /&gt;
===Windows===&lt;br /&gt;
*Notepad&lt;br /&gt;
*PSPad&lt;br /&gt;
===Mac===&lt;br /&gt;
*TextWrangler&lt;br /&gt;
*TextEdit&lt;br /&gt;
===Linux===&lt;br /&gt;
*Command-line editors such as nano, emacs, pico, vim, ed. &lt;br /&gt;
*GEdit&lt;br /&gt;
&lt;br /&gt;
==Editing existing maps==&lt;br /&gt;
Beginning mapmakers should spend some time studying and making small changes in existing maps to see how things work.  In the client, maps can be saved for editing by joining the desired server and choosing: Options&amp;gt;Save World.  Maps can also be saved by issuing the /saveworld command.  The map should be a simple map when getting started.  One may find it easier to create a file in BZEdit and open the resulting file in the text-editor.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
If you have created a box in BZEdit you may see:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 # World built with bzedit32 world class, available at&lt;br /&gt;
 # http://www.sourceforge.net/projects/bzflag&lt;br /&gt;
 world &lt;br /&gt;
   size 400 &lt;br /&gt;
 end &lt;br /&gt;
 options &lt;br /&gt;
   +r &lt;br /&gt;
   -j &lt;br /&gt;
   -set _tankSpeed 25 &lt;br /&gt;
   -ms 5 &lt;br /&gt;
   -mp 0,2,0,2,0,2 &lt;br /&gt;
 end &lt;br /&gt;
 box &lt;br /&gt;
   name box1 &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
 end &lt;br /&gt;
|}&lt;br /&gt;
===Basic Definitions===&lt;br /&gt;
;Objects&lt;br /&gt;
:Objects are the basic building blocks of the bzw file.  Objects begin with a line declaring the object, some fields describing that object, and a line that closes the object (usually with &amp;quot;end&amp;quot;).  Each of these sections of the object is important.&lt;br /&gt;
;Comments&lt;br /&gt;
:BZFS ignores anything in a line following the #; the line has been &amp;quot;commented out.&amp;quot;  It is highly recommended that comments be used often, both for the mapmaker and for others that may see the map.&lt;br /&gt;
;3D Cartesian Coordinate System&lt;br /&gt;
:In most objects, you will see three numbers after position and size. These numbers are coordinates on a graph. The first number is the x coordinate (left and right) the middle number is the y coordinate (forward and backward) and the third number is the z coordinate (height and depth). Another way of thinking of it is: x = width, y = depth, z = height. (Those accustomed to the Y axis determining height will have to slightly adjust their thinking.) &lt;br /&gt;
&lt;br /&gt;
===Explanation of the Sample Code===&lt;br /&gt;
There are set variables that define various things such as how fast your tank is, how fast the bullets are, or if it&#039;s raining or foggy.  Put those in the options setting with &amp;quot;-set(space) &amp;quot; in front of it. You can also make those changes as an admin by using /set _variable (notice there is a space between the set and the _).  A full list of these settings can be found on the [[Server Variables]] page.  Other options, such as how many times a flag can be grabbed before it resets or if flags can land on buildings are explained [http://my.bzflag.org/bb/files/antigrav4teamconf_114.txt in this forum post]&lt;br /&gt;
&lt;br /&gt;
==Sample Objects==&lt;br /&gt;
&lt;br /&gt;
==Getting more help==&lt;br /&gt;
*The links at the bottom of the [[:Category:Map Making|Map Making]] page.&lt;br /&gt;
*The original creator of this page is flight, you can email him at dirtbikerdude_91@yahoo.com and he will be happy to answer any questions that he is capable of answering.&lt;br /&gt;
&lt;br /&gt;
==The Original Post==&lt;br /&gt;
For now, you can put those in the options part of your map file, but when you are ready to get your map public, copy those options out to another blank text file and save it as a .conf. You don&#039;t have to know what that does, just do it. .conf is configuration file. Then in terminal or command prompt you can specify the path to your .conf file and it will open the map. For more information on this, look in the link above. It explains a lot. &lt;br /&gt;
&lt;br /&gt;
The code for the cone works like a box. In fact, the code for every other object (other than meshes and tetra) look like the box code. You must say you are creating a cone. Complex shapes will be explained later in the post. &lt;br /&gt;
&lt;br /&gt;
In case the article hyperlinks in the previous page confuse you, (because I know it confused me) I’ll let you know the only real things you need to make a cone are divisions, position, and size. Divisions basically decide how smooth the cone is. The higher the divisions the more smooth. For example, if you were to say 4 divisions it would look like a pyramid. Basically the divisions is how many sides there are. 4 divisions, 4 sides. Imagine 128 divisions. The sides would be so small you wouldn&#039;t really notice them, making it look more like a cone. To see what I’m talking about, go ahead and test it out. I’ll show the code to test it in a second. I assume you know what position is. I assume you know what size is too, however you should know that you can make a cone that&#039;s more of an oval-shaped cone simply by making the size something like 5 10 20. If the x is larger than the y coordinate or vise versa than obviously you have an oval, just like in a box you would have a rectangle. That&#039;s it. &lt;br /&gt;
&lt;br /&gt;
 cone &lt;br /&gt;
    name cone1            # name is optional, but it helps you.&lt;br /&gt;
    divisions 128 &lt;br /&gt;
    position 0 0 0 &lt;br /&gt;
    size 10 10 20 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
There are other options such as shift, shear, scale, spin, angle, smoothbounce, flatshading, and probably many more. I don&#039;t know what the smoothbounce and flatshading options do, however I do know how to use the other options such as rotation (I&#039;m sure you know what that does too) which in a cone&#039;s case doesn&#039;t really matter what way it&#039;s rotated, angle, which basically allows you to make half of a cone. If you say angle 180, that would make 1/2 of a cone, 90 would make 1/4 of a cone, and so on. To add one of these, simply type in angle &amp;lt;number&amp;gt; somewhere under &amp;quot;cone&amp;quot;. Shear is interesting!  This is what it does. Imagine a slinky. Hold the bottom of the slinky tight. Take the top of the slinky and move it to the left (right, forward, or backward). That would be a perfect example of a sheared arc! When you write the shear options, it must look like this:  shear 3 0 0  . This is telling the object to be sheared 3 units to the x coordinate. The number next to the 3 is the y and the last 0 is the z or the height. Shift is weird in my opinion. It doesn&#039;t seem to have any benefits unless you are working with a mesh. When you shift something, you are basically changing the position of it. Shift is a synonym for position. The scale option is the same as the size option. Another really cool option is spin. This takes a tall pyramid and can turn it on it&#039;s side. The code for this may be a little hard to understand, so I&#039;ll do my best to explain it. Take an object (in this case I&#039;m using a cone).&lt;br /&gt;
&lt;br /&gt;
 cone&lt;br /&gt;
   name cone&lt;br /&gt;
   divisions 128&lt;br /&gt;
   position 0 0 0&lt;br /&gt;
   size 10 10 10&lt;br /&gt;
   spin 90 0 1 0&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
One thing you will notice about BZFlag is a lot of times the numbers 1 and 0 will be given not as a value, but more of a way of saying on or off, or in this case which coordinate gets the spin. I&#039;ll show you what I&#039;m talking about. I say spin (that is to say it I&#039;m putting a spin on it). The 90 is saying that the object is going to spin 90 degrees, but it doesn&#039;t now which way to turn 90 degrees.  that is what the 0 1 0 are for. Because there is a 0 in the x and z coordinates it won&#039;t spin that way. Because there is a 1 in the y coordinate it will spin that way 90 degrees.  &lt;br /&gt;
  &lt;br /&gt;
I also know how to use phydrv and matref. I’ll show you how to use those later in this article. For now lets move on to arcs.&lt;br /&gt;
&lt;br /&gt;
An arc...&lt;br /&gt;
&lt;br /&gt;
An arc is basically a cylinder. However it doesn’t have to be a perfect cylinder depending on certain options you select. For an arc the only required options are divisions, position and size. Just like the cone divisions have the same effect, position and size are all the same. Once again you can have an oval shaped cylinder type thing. Now, you WILL find more options to an arc than to a cone, for example the ratio option. The ratio options let you basically put a hole in the cylinder. So if you have the option: ratio 1 you would have a full cylinder. If you say for example ratio .3 or any number less than 1 you will get a whole in the cylinder. The bigger the number, the smaller the hole. Angle allows you to do a simi-circle. Rotation once again isn&#039;t really needed. all the options like spin and shear are the same for this object too! phydrv and matref I’ll show later. Let’s move to the sphere &lt;br /&gt;
&lt;br /&gt;
The sphere... &lt;br /&gt;
&lt;br /&gt;
The only options required to make a sphere are position, size, and divisions. &lt;br /&gt;
all these options do the same thing as they did in the objects above. you may also have an oval like sphere. You make an oval like sphere simply by making the x and y&#039;s different sizes just like in the cone and arc. The radius option is just a substitute for size. You can write size 10 10 10 or radius 10.  Both do the same thing. However if you want an oval shaped sphere you have to use size. Rotation wouldn’t really have an effect and the shear and spin works the same for this object. :O I can show you how to use phydrv and marref now. &lt;br /&gt;
&lt;br /&gt;
OK, a phydrv is a physics driver. And a matref, well I’m not sure what it means, but I always thought it meant material reference. Lets focus on material right now. A material is how you add a design or a texture on something. For example if you make a box, that box doesn’t have to have bricks around the outside of it like it does in bzedit. You want to make a tree? Later I will show you how to make a cone and put a material on it like Louman does for the trunk although Louman is way better than I am!! You might want to find a picture of wood on Google or something and use it as a material so that instead of a cone with bricks it looks like wood. I’ll show you how to do this later. You can change that design by using the material and matref. These two work together. Material is where you define the material. And matref is where you reference the material you defined. Let me show you... &lt;br /&gt;
&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_bolt.png &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
Material is letting the computer know that a material is about to be explained to it. You name it so that way you can reference it with the matref. The name can be any thing you want as long as it does not have any spaces. You type in addtexture and you state a texture name. Now, how do you know what texture names there are to use?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Linux&#039;&#039;&#039;: Running ls /usr/share/bzflag/*.png in a terminal will show the list of pictures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Mac&#039;&#039;&#039;: If you control click (right click) on the bzflag icon, click show package contents, click contents, and click resources, those are the pictures you may use. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Windows&#039;&#039;&#039;: The default path is C:\Program Files\BZFlag\data\*.png&lt;br /&gt;
&lt;br /&gt;
What you will find are images that are used in every day games. The top of a base, the wall of a base. A bullet which is blue_bolt.png (i used above). You can check the rest out by going to that folder. You can also add your own. Any picture you add must be in a .png format. I suggest just taking a screen shot of a picture you want to use, such as, the wood picture to make a tree trunk. Most screen shots are .png formats. (At least mine are) you can name that what ever you want as long as it has a .png in the title and no spaces. Then put it in the same folder as the rest of the images in the resource folder. You may now reference those images by typing matref (name of image.png) &lt;br /&gt;
&lt;br /&gt;
Also you probably noticed I typed meshbox, not box. To enable the material or physics it must be a meshbox. A meshbox is a box just like a &amp;quot;box&amp;quot; however it enables things such as materials and physics. The same goes for pyramids. You must type meshpyr to get a pyramid with a material on it or physics. However objects such as spheres cones and arcs don&#039;t need do have the word mesh in front of them. &lt;br /&gt;
&lt;br /&gt;
Also a really cool thing is diffuse. You can add the diffuse command and it will look like this diffuse 1 1 1 1. Those four numbers represent things. The first number is the amount of red that will be in the meshobject. The second number is the amount of green, the third is the amount of blue. So you can mix those colors to make more colors. You may use a range from 0-1. For example diffuse .3 .5 .26 1. Now the fourth number is cool. It is the opacity or transparency. The see through-ability I call it.  0 is invisible .5 is half invisible 1 is normal. If you use this I suggest using the texture mesh.png only because it looks the best however you can use that option on any texture. so it would look like the code below. (For default images you don&#039;t have to say .png but I suggest getting in the habit of doing it.) &lt;br /&gt;
&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   diffuse .5 .25 .1 .6 &lt;br /&gt;
   addtexture mesh.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
So the best way of thinking about a material or rather a meshbox is NOT this– A mateial isn&#039;t something you put on as a skin to a box. A meshbox is a different type of box that allows the use of a material or physics. So lets cap up materials &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 material &amp;lt;you must type material &lt;br /&gt;
   name mat1 &amp;lt;you must give it a name so that you can reference it, the name may be any thing as long as there are no spaces and ends in .png. I named it mat1 &lt;br /&gt;
   addtexture &amp;lt;add a texture name you may find in the folder I specified simply by   typing the file name of that image. &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
 meshbox &amp;lt;this alows for a box to use the material above &lt;br /&gt;
   position x y z &lt;br /&gt;
   size x y z &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1&amp;lt;referencing the material to the name mat1 so that this box will have the properties of the material specified. &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
&lt;br /&gt;
Similarly, lets make a mesh pyramid (a pyramid with different images on it) &lt;br /&gt;
&lt;br /&gt;
 meshpry &amp;lt;this alows for a pyramid to use the material above &lt;br /&gt;
   position x y z &lt;br /&gt;
   size x y z &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &amp;lt;referencing the material to the name mat1 (note, I can have several material listed above with different names and reference them as I want with different objects &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
&lt;br /&gt;
And the same for an arc, cone and sphere, this time without the mesh in front of the name &lt;br /&gt;
&lt;br /&gt;
 sphere &lt;br /&gt;
   divisions 128 &lt;br /&gt;
   position &lt;br /&gt;
   size &lt;br /&gt;
   rotation &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
Done with materials.&lt;br /&gt;
&lt;br /&gt;
Lets move on to phydrv and physics &lt;br /&gt;
&lt;br /&gt;
Physics make your tank behave in different ways. If you have ever played laser mania by Louman than you know on the outskirts of the map there is something you can jump on and you go really fast, that is a physics. Physics and materials work the same way. Physics is to material as phydrv is to matref. You must specify a physics then on a meshbox, meshpyr cone arc sphere or whatever, you can reference that physics by using the phydrv command just like you would use the matref command for materials. There are different physics commands. Linear, angular, slide and death. In the Louman map I mentioned above is a linear physics. Linear physics makes your tank move in... well a line. The numbers after a linear command are just like position x y z. example …&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy1 &lt;br /&gt;
  linear 50 0 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive x direction you may use -50 and it will make it go the other way.&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy2 &lt;br /&gt;
  linear 0 50 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive y direction &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy3 &lt;br /&gt;
   linear 0 0 50 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank jump at a speed of 50 &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy4 &lt;br /&gt;
   slide 5 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank basically feel like it&#039;s on ice, that&#039;s the only way I can explain it. Whichever way the tank is moving it will keep moving that way. A good example is in ... I forgot the exact title, but it&#039;s the &amp;quot;wide world even wider&amp;quot; on the sides if you go up top there is a slide physics. &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy5 &lt;br /&gt;
   death haha! you died &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make the tank die when it touches the object that refers to this and the message haha! you died will be displayed to that person. &lt;br /&gt;
&lt;br /&gt;
Now you know how to write a physics you have to be able to reference it. &lt;br /&gt;
Let me show you the code &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy1 &lt;br /&gt;
   death I like you better dead! &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   phydrv phy1 &amp;lt;or what ever you named the physics &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This works just like the material &lt;br /&gt;
&lt;br /&gt;
The thing about physics and materials is that they have to be written before they are referenced. &lt;br /&gt;
&lt;br /&gt;
This WON&#039;T work &lt;br /&gt;
&lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_team.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
I hope this helped. As you get more advanced into making maps by hand you will start doing meshes and &amp;quot;tetra&amp;quot; which is a tetrahedron. &amp;lt;I think that&#039;s how you spell it. I’m willing to explain meshes but it&#039;s much more complicated and would be easier to explain in a conversation. &lt;br /&gt;
*flight&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4019</id>
		<title>Map making by hand</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4019"/>
		<updated>2008-02-18T19:47:55Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Major re-organization, transform away from &amp;quot;chat&amp;quot; style}}&lt;br /&gt;
Although there are a number of GUI options for creating maps such as BZ-Edit, 3D modelers, many map-makers use a basic text-editor.  There are many times when it is necessary to make small changes to a map, such as including objects that are unavailable in GUI map-maker, but there are also some who enjoy the challenge of creating a map entirely from scratch with a text-editor.&lt;br /&gt;
==Text Editors==&lt;br /&gt;
Most text-editors designed for coding/programming are more than sufficient for editing bzw files.  Although word-processing programs such as Microsoft Word can be used, there are many cheaper (free) and more efficient programs designed specifically for coding.&lt;br /&gt;
===Windows===&lt;br /&gt;
*Notepad&lt;br /&gt;
*PSPad&lt;br /&gt;
===Mac===&lt;br /&gt;
*TextWrangler&lt;br /&gt;
*TextEdit&lt;br /&gt;
===Linux===&lt;br /&gt;
*Command-line editors such as nano, emacs, pico, vim, ed. &lt;br /&gt;
*GEdit&lt;br /&gt;
==Editing existing maps==&lt;br /&gt;
Beginning mapmakers should spend some time studying and making small changes in existing maps to see how things work.  In the client, maps can be saved for editing by joining the desired server and choosing: Options&amp;gt;Save World.  Maps can also be saved by issuing the /saveworld command.  The map should be a simple map when getting started.  One may find it easier to create a file in BZEdit and open the resulting file in the text-editor.&lt;br /&gt;
==Getting Started==&lt;br /&gt;
If you have created a box in BZEdit you may see:&lt;br /&gt;
 #created in BZEdit &amp;lt;date etc...&amp;gt;&lt;br /&gt;
 world &lt;br /&gt;
   size 400 &lt;br /&gt;
 end &lt;br /&gt;
 options &lt;br /&gt;
   +r &lt;br /&gt;
   -j &lt;br /&gt;
   -set _tankSpeed 25 &lt;br /&gt;
   -ms 5 &lt;br /&gt;
   -mp 0,2,0,2,0,2 &lt;br /&gt;
 end &lt;br /&gt;
 box &lt;br /&gt;
   name box1 &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
 end &lt;br /&gt;
===Basic Definitions===&lt;br /&gt;
====Objects====&lt;br /&gt;
Objects are the basic building blocks of the bzw file.  Objects begin with a line declaring the object, some fields describing that object, and a line that closes the object (usually with &amp;quot;end&amp;quot;).  Each of these sections of the object is important.&lt;br /&gt;
====Comments====&lt;br /&gt;
BZFS ignores anything in a line following the #; the line has been &amp;quot;commented out.&amp;quot;  It is highly recommended that comments be used often, both for the mapmaker and for others that may see the map.&lt;br /&gt;
====3D Cartesian Coordinate System====&lt;br /&gt;
In most objects, you will see three numbers after position and size. These numbers are coordinates on a graph. The first number is the x coordinate (left and right) the middle number is the y coordinate (forward and backward) and the third number is the z coordinate (height and depth). Another way of thinking of it is: x = width, y = depth, z = height. (Those accustomed to the Y axis determining height will have to slightly adjust their thinking.) &lt;br /&gt;
&lt;br /&gt;
==Sample Objects==&lt;br /&gt;
&lt;br /&gt;
==Getting more help==&lt;br /&gt;
*The links at the bottom of the [[:Category:Map Making|Map Making]] page.&lt;br /&gt;
*The original creator of this page is [[flight]], you can email him at dirtbikerdude_91@yahoo.com and he will be happy to answer any questions that he is capable of answering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also important to note that a box is different from a meshbox. A box allows nothing more than position, size, and rotation, whereas a meshbox allows more things explained later in this article.&lt;br /&gt;
&lt;br /&gt;
There are lots of options that won&#039;t be explained here. However, a link will be provided below. There are set variables that define various things such as how fast your tank is, how fast the bullets are, or if it&#039;s raining or foggy.  Put those in the options setting with &amp;quot;-set(space) &amp;quot; in front of it. You can also make those changes as an admin by using /set _variable (notice there is a space between the set and the _)&lt;br /&gt;
&lt;br /&gt;
[[Server Variables]] &lt;br /&gt;
&lt;br /&gt;
Other options, such as how many times a flag can be grabbed before it resets or if flags can land on buildings are explained in the following link.&lt;br /&gt;
&lt;br /&gt;
http://my.bzflag.org/bb/files/antigrav4teamconf_114.txt&lt;br /&gt;
&lt;br /&gt;
For now, you can put those in the options part of your map file, but when you are ready to get your map public, copy those options out to another blank text file and save it as a .conf. You don&#039;t have to know what that does, just do it. .conf is configuration file. Then in terminal or command prompt you can specify the path to your .conf file and it will open the map. For more information on this, look in the link above. It explains a lot. &lt;br /&gt;
&lt;br /&gt;
The code for the cone works like a box. In fact, the code for every other object (other than meshes and tetra) look like the box code. You must say you are creating a cone. Complex shapes will be explained later in the post. &lt;br /&gt;
&lt;br /&gt;
In case the article hyperlinks in the previous page confuse you, (because I know it confused me) I’ll let you know the only real things you need to make a cone are divisions, position, and size. Divisions basically decide how smooth the cone is. The higher the divisions the more smooth. For example, if you were to say 4 divisions it would look like a pyramid. Basically the divisions is how many sides there are. 4 divisions, 4 sides. Imagine 128 divisions. The sides would be so small you wouldn&#039;t really notice them, making it look more like a cone. To see what I’m talking about, go ahead and test it out. I’ll show the code to test it in a second. I assume you know what position is. I assume you know what size is too, however you should know that you can make a cone that&#039;s more of an oval-shaped cone simply by making the size something like 5 10 20. If the x is larger than the y coordinate or vise versa than obviously you have an oval, just like in a box you would have a rectangle. That&#039;s it. &lt;br /&gt;
&lt;br /&gt;
 cone &lt;br /&gt;
    name cone1            # name is optional, but it helps you.&lt;br /&gt;
    divisions 128 &lt;br /&gt;
    position 0 0 0 &lt;br /&gt;
    size 10 10 20 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
There are other options such as shift, shear, scale, spin, angle, smoothbounce, flatshading, and probably many more. I don&#039;t know what the smoothbounce and flatshading options do, however I do know how to use the other options such as rotation (I&#039;m sure you know what that does too) which in a cone&#039;s case doesn&#039;t really matter what way it&#039;s rotated, angle, which basically allows you to make half of a cone. If you say angle 180, that would make 1/2 of a cone, 90 would make 1/4 of a cone, and so on. To add one of these, simply type in angle &amp;lt;number&amp;gt; somewhere under &amp;quot;cone&amp;quot;. Shear is interesting!  This is what it does. Imagine a slinky. Hold the bottom of the slinky tight. Take the top of the slinky and move it to the left (right, forward, or backward). That would be a perfect example of a sheared arc! When you write the shear options, it must look like this:  shear 3 0 0  . This is telling the object to be sheared 3 units to the x coordinate. The number next to the 3 is the y and the last 0 is the z or the height. Shift is weird in my opinion. It doesn&#039;t seem to have any benefits unless you are working with a mesh. When you shift something, you are basically changing the position of it. Shift is a synonym for position. The scale option is the same as the size option. Another really cool option is spin. This takes a tall pyramid and can turn it on it&#039;s side. The code for this may be a little hard to understand, so I&#039;ll do my best to explain it. Take an object (in this case I&#039;m using a cone).&lt;br /&gt;
&lt;br /&gt;
 cone&lt;br /&gt;
   name cone&lt;br /&gt;
   divisions 128&lt;br /&gt;
   position 0 0 0&lt;br /&gt;
   size 10 10 10&lt;br /&gt;
   spin 90 0 1 0&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
One thing you will notice about BZFlag is a lot of times the numbers 1 and 0 will be given not as a value, but more of a way of saying on or off, or in this case which coordinate gets the spin. I&#039;ll show you what I&#039;m talking about. I say spin (that is to say it I&#039;m putting a spin on it). The 90 is saying that the object is going to spin 90 degrees, but it doesn&#039;t now which way to turn 90 degrees.  that is what the 0 1 0 are for. Because there is a 0 in the x and z coordinates it won&#039;t spin that way. Because there is a 1 in the y coordinate it will spin that way 90 degrees.  &lt;br /&gt;
  &lt;br /&gt;
I also know how to use phydrv and matref. I’ll show you how to use those later in this article. For now lets move on to arcs.&lt;br /&gt;
&lt;br /&gt;
An arc...&lt;br /&gt;
&lt;br /&gt;
An arc is basically a cylinder. However it doesn’t have to be a perfect cylinder depending on certain options you select. For an arc the only required options are divisions, position and size. Just like the cone divisions have the same effect, position and size are all the same. Once again you can have an oval shaped cylinder type thing. Now, you WILL find more options to an arc than to a cone, for example the ratio option. The ratio options let you basically put a hole in the cylinder. So if you have the option: ratio 1 you would have a full cylinder. If you say for example ratio .3 or any number less than 1 you will get a whole in the cylinder. The bigger the number, the smaller the hole. Angle allows you to do a simi-circle. Rotation once again isn&#039;t really needed. all the options like spin and shear are the same for this object too! phydrv and matref I’ll show later. Let’s move to the sphere &lt;br /&gt;
&lt;br /&gt;
The sphere... &lt;br /&gt;
&lt;br /&gt;
The only options required to make a sphere are position, size, and divisions. &lt;br /&gt;
all these options do the same thing as they did in the objects above. you may also have an oval like sphere. You make an oval like sphere simply by making the x and y&#039;s different sizes just like in the cone and arc. The radius option is just a substitute for size. You can write size 10 10 10 or radius 10.  Both do the same thing. However if you want an oval shaped sphere you have to use size. Rotation wouldn’t really have an effect and the shear and spin works the same for this object. :O I can show you how to use phydrv and marref now. &lt;br /&gt;
&lt;br /&gt;
OK, a phydrv is a physics driver. And a matref, well I’m not sure what it means, but I always thought it meant material reference. Lets focus on material right now. A material is how you add a design or a texture on something. For example if you make a box, that box doesn’t have to have bricks around the outside of it like it does in bzedit. You want to make a tree? Later I will show you how to make a cone and put a material on it like Louman does for the trunk although Louman is way better than I am!! You might want to find a picture of wood on Google or something and use it as a material so that instead of a cone with bricks it looks like wood. I’ll show you how to do this later. You can change that design by using the material and matref. These two work together. Material is where you define the material. And matref is where you reference the material you defined. Let me show you... &lt;br /&gt;
&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_bolt.png &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
Material is letting the computer know that a material is about to be explained to it. You name it so that way you can reference it with the matref. The name can be any thing you want as long as it does not have any spaces. You type in addtexture and you state a texture name. Now, how do you know what texture names there are to use?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Linux&#039;&#039;&#039;: Running ls /usr/share/bzflag/*.png in a terminal will show the list of pictures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Mac&#039;&#039;&#039;: If you control click (right click) on the bzflag icon, click show package contents, click contents, and click resources, those are the pictures you may use. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Windows&#039;&#039;&#039;: The default path is C:\Program Files\BZFlag\data\*.png&lt;br /&gt;
&lt;br /&gt;
What you will find are images that are used in every day games. The top of a base, the wall of a base. A bullet which is blue_bolt.png (i used above). You can check the rest out by going to that folder. You can also add your own. Any picture you add must be in a .png format. I suggest just taking a screen shot of a picture you want to use, such as, the wood picture to make a tree trunk. Most screen shots are .png formats. (At least mine are) you can name that what ever you want as long as it has a .png in the title and no spaces. Then put it in the same folder as the rest of the images in the resource folder. You may now reference those images by typing matref (name of image.png) &lt;br /&gt;
&lt;br /&gt;
Also you probably noticed I typed meshbox, not box. To enable the material or physics it must be a meshbox. A meshbox is a box just like a &amp;quot;box&amp;quot; however it enables things such as materials and physics. The same goes for pyramids. You must type meshpyr to get a pyramid with a material on it or physics. However objects such as spheres cones and arcs don&#039;t need do have the word mesh in front of them. &lt;br /&gt;
&lt;br /&gt;
Also a really cool thing is diffuse. You can add the diffuse command and it will look like this diffuse 1 1 1 1. Those four numbers represent things. The first number is the amount of red that will be in the meshobject. The second number is the amount of green, the third is the amount of blue. So you can mix those colors to make more colors. You may use a range from 0-1. For example diffuse .3 .5 .26 1. Now the fourth number is cool. It is the opacity or transparency. The see through-ability I call it.  0 is invisible .5 is half invisible 1 is normal. If you use this I suggest using the texture mesh.png only because it looks the best however you can use that option on any texture. so it would look like the code below. (For default images you don&#039;t have to say .png but I suggest getting in the habit of doing it.) &lt;br /&gt;
&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   diffuse .5 .25 .1 .6 &lt;br /&gt;
   addtexture mesh.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
So the best way of thinking about a material or rather a meshbox is NOT this– A mateial isn&#039;t something you put on as a skin to a box. A meshbox is a different type of box that allows the use of a material or physics. So lets cap up materials &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 material &amp;lt;you must type material &lt;br /&gt;
   name mat1 &amp;lt;you must give it a name so that you can reference it, the name may be any thing as long as there are no spaces and ends in .png. I named it mat1 &lt;br /&gt;
   addtexture &amp;lt;add a texture name you may find in the folder I specified simply by   typing the file name of that image. &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
 meshbox &amp;lt;this alows for a box to use the material above &lt;br /&gt;
   position x y z &lt;br /&gt;
   size x y z &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1&amp;lt;referencing the material to the name mat1 so that this box will have the properties of the material specified. &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
&lt;br /&gt;
Similarly, lets make a mesh pyramid (a pyramid with different images on it) &lt;br /&gt;
&lt;br /&gt;
 meshpry &amp;lt;this alows for a pyramid to use the material above &lt;br /&gt;
   position x y z &lt;br /&gt;
   size x y z &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &amp;lt;referencing the material to the name mat1 (note, I can have several material listed above with different names and reference them as I want with different objects &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
&lt;br /&gt;
And the same for an arc, cone and sphere, this time without the mesh in front of the name &lt;br /&gt;
&lt;br /&gt;
 sphere &lt;br /&gt;
   divisions 128 &lt;br /&gt;
   position &lt;br /&gt;
   size &lt;br /&gt;
   rotation &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
Done with materials.&lt;br /&gt;
&lt;br /&gt;
Lets move on to phydrv and physics &lt;br /&gt;
&lt;br /&gt;
Physics make your tank behave in different ways. If you have ever played laser mania by Louman than you know on the outskirts of the map there is something you can jump on and you go really fast, that is a physics. Physics and materials work the same way. Physics is to material as phydrv is to matref. You must specify a physics then on a meshbox, meshpyr cone arc sphere or whatever, you can reference that physics by using the phydrv command just like you would use the matref command for materials. There are different physics commands. Linear, angular, slide and death. In the Louman map I mentioned above is a linear physics. Linear physics makes your tank move in... well a line. The numbers after a linear command are just like position x y z. example …&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy1 &lt;br /&gt;
  linear 50 0 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive x direction you may use -50 and it will make it go the other way.&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy2 &lt;br /&gt;
  linear 0 50 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive y direction &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy3 &lt;br /&gt;
   linear 0 0 50 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank jump at a speed of 50 &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy4 &lt;br /&gt;
   slide 5 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank basically feel like it&#039;s on ice, that&#039;s the only way I can explain it. Whichever way the tank is moving it will keep moving that way. A good example is in ... I forgot the exact title, but it&#039;s the &amp;quot;wide world even wider&amp;quot; on the sides if you go up top there is a slide physics. &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy5 &lt;br /&gt;
   death haha! you died &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make the tank die when it touches the object that refers to this and the message haha! you died will be displayed to that person. &lt;br /&gt;
&lt;br /&gt;
Now you know how to write a physics you have to be able to reference it. &lt;br /&gt;
Let me show you the code &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy1 &lt;br /&gt;
   death I like you better dead! &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   phydrv phy1 &amp;lt;or what ever you named the physics &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This works just like the material &lt;br /&gt;
&lt;br /&gt;
The thing about physics and materials is that they have to be written before they are referenced. &lt;br /&gt;
&lt;br /&gt;
This WON&#039;T work &lt;br /&gt;
&lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_team.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
I hope this helped. As you get more advanced into making maps by hand you will start doing meshes and &amp;quot;tetra&amp;quot; which is a tetrahedron. &amp;lt;I think that&#039;s how you spell it. I’m willing to explain meshes but it&#039;s much more complicated and would be easier to explain in a conversation. &lt;br /&gt;
*flight&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4018</id>
		<title>Map making by hand</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Map_making_by_hand&amp;diff=4018"/>
		<updated>2008-02-18T19:39:07Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Its a start&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Major re-organization, transform away from &amp;quot;chat&amp;quot; style}}&lt;br /&gt;
Although there are a number of GUI options for creating maps such as BZ-Edit, 3D modelers, many map-makers use a basic text-editor.  There are many times when it is necessary to make small changes to a map, such as including objects that are unavailable in GUI map-maker, but there are also some who enjoy the challenge of creating a map entirely from scratch with a text-editor.&lt;br /&gt;
&lt;br /&gt;
==Text Editors==&lt;br /&gt;
Most text-editors designed for coding/programming are more than sufficient for editing bzw files.  Although word-processing programs such as Microsoft Word can be used, there are many cheaper (free) and more efficient programs designed specifically for coding.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
*Notepad&lt;br /&gt;
*PSPad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Mac===&lt;br /&gt;
*TextWrangler&lt;br /&gt;
*TextEdit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
*Command-line editors such as nano, emacs, pico, vim, ed. &lt;br /&gt;
&lt;br /&gt;
==Editing existing maps==&lt;br /&gt;
Beginning mapmakers should spend some time studying and making small changes in existing maps to see how things work.  In the client, maps can be saved for editing by joining the desired server and choosing: Options&amp;gt;Save World.  Maps can also be saved by issuing the /saveworld command.  The map should be a simple map when getting started.  One may find it easier to create a file in BZEdit and open the resulting file in the text-editor.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
If you have created a box in BZEdit you may see:&lt;br /&gt;
&lt;br /&gt;
 #created in BZEdit &amp;lt;date etc...&amp;gt;&lt;br /&gt;
 world &lt;br /&gt;
   size 400 &lt;br /&gt;
 end &lt;br /&gt;
 options &lt;br /&gt;
   +r &lt;br /&gt;
   -j &lt;br /&gt;
   -set _tankSpeed 25 &lt;br /&gt;
   -ms 5 &lt;br /&gt;
   -mp 0,2,0,2,0,2 &lt;br /&gt;
 end &lt;br /&gt;
 box &lt;br /&gt;
   name box1 &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
 end &lt;br /&gt;
===Basic Definitions===&lt;br /&gt;
====Objects====&lt;br /&gt;
Objects are the basic building blocks of the bzw file.  Objects begin with a line declaring the object, some fields describing that object, and a line that closes the object (usually with &amp;quot;end&amp;quot;).  Each of these sections of the object is important.&lt;br /&gt;
&lt;br /&gt;
====Comments====&lt;br /&gt;
BZFS ignores anything in a line following the #; the line has been &amp;quot;commented out.&amp;quot;  It is highly recommended that comments be used often, both for the mapmaker and for others that may see the map.&lt;br /&gt;
&lt;br /&gt;
====3D Cartesian Coordinate System====&lt;br /&gt;
In most objects, you will see three numbers after position and size. These numbers are coordinates on a graph. The first number is the x coordinate (left and right) the middle number is the y coordinate (forward and backward) and the third number is the z coordinate (height and depth). Another way of thinking of it is: x = width, y = depth, z = height. (Those accustomed to the Y axis determining height will have to slightly adjust their thinking.) &lt;br /&gt;
&lt;br /&gt;
==Sample Objects==&lt;br /&gt;
&lt;br /&gt;
==Getting more help==&lt;br /&gt;
&lt;br /&gt;
For additional reference material see the links at the bottom of the [[:Category:Map Making|Map Making]] page.&lt;br /&gt;
The original creator of this page is [[flight]], you can email him at dirtbikerdude_91@yahoo.com and he will be happy to answer any questions that he is capable of answering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also important to note that a box is different from a meshbox. A box allows nothing more than position, size, and rotation, whereas a meshbox allows more things explained later in this article.&lt;br /&gt;
&lt;br /&gt;
There are lots of options that won&#039;t be explained here. However, a link will be provided below. There are set variables that define various things such as how fast your tank is, how fast the bullets are, or if it&#039;s raining or foggy.  Put those in the options setting with &amp;quot;-set(space) &amp;quot; in front of it. You can also make those changes as an admin by using /set _variable (notice there is a space between the set and the _)&lt;br /&gt;
&lt;br /&gt;
[[Server Variables]] &lt;br /&gt;
&lt;br /&gt;
Other options, such as how many times a flag can be grabbed before it resets or if flags can land on buildings are explained in the following link.&lt;br /&gt;
&lt;br /&gt;
http://my.bzflag.org/bb/files/antigrav4teamconf_114.txt&lt;br /&gt;
&lt;br /&gt;
For now, you can put those in the options part of your map file, but when you are ready to get your map public, copy those options out to another blank text file and save it as a .conf. You don&#039;t have to know what that does, just do it. .conf is configuration file. Then in terminal or command prompt you can specify the path to your .conf file and it will open the map. For more information on this, look in the link above. It explains a lot. &lt;br /&gt;
&lt;br /&gt;
The code for the cone works like a box. In fact, the code for every other object (other than meshes and tetra) look like the box code. You must say you are creating a cone. Complex shapes will be explained later in the post. &lt;br /&gt;
&lt;br /&gt;
In case the article hyperlinks in the previous page confuse you, (because I know it confused me) I’ll let you know the only real things you need to make a cone are divisions, position, and size. Divisions basically decide how smooth the cone is. The higher the divisions the more smooth. For example, if you were to say 4 divisions it would look like a pyramid. Basically the divisions is how many sides there are. 4 divisions, 4 sides. Imagine 128 divisions. The sides would be so small you wouldn&#039;t really notice them, making it look more like a cone. To see what I’m talking about, go ahead and test it out. I’ll show the code to test it in a second. I assume you know what position is. I assume you know what size is too, however you should know that you can make a cone that&#039;s more of an oval-shaped cone simply by making the size something like 5 10 20. If the x is larger than the y coordinate or vise versa than obviously you have an oval, just like in a box you would have a rectangle. That&#039;s it. &lt;br /&gt;
&lt;br /&gt;
 cone &lt;br /&gt;
    name cone1            # name is optional, but it helps you.&lt;br /&gt;
    divisions 128 &lt;br /&gt;
    position 0 0 0 &lt;br /&gt;
    size 10 10 20 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
There are other options such as shift, shear, scale, spin, angle, smoothbounce, flatshading, and probably many more. I don&#039;t know what the smoothbounce and flatshading options do, however I do know how to use the other options such as rotation (I&#039;m sure you know what that does too) which in a cone&#039;s case doesn&#039;t really matter what way it&#039;s rotated, angle, which basically allows you to make half of a cone. If you say angle 180, that would make 1/2 of a cone, 90 would make 1/4 of a cone, and so on. To add one of these, simply type in angle &amp;lt;number&amp;gt; somewhere under &amp;quot;cone&amp;quot;. Shear is interesting!  This is what it does. Imagine a slinky. Hold the bottom of the slinky tight. Take the top of the slinky and move it to the left (right, forward, or backward). That would be a perfect example of a sheared arc! When you write the shear options, it must look like this:  shear 3 0 0  . This is telling the object to be sheared 3 units to the x coordinate. The number next to the 3 is the y and the last 0 is the z or the height. Shift is weird in my opinion. It doesn&#039;t seem to have any benefits unless you are working with a mesh. When you shift something, you are basically changing the position of it. Shift is a synonym for position. The scale option is the same as the size option. Another really cool option is spin. This takes a tall pyramid and can turn it on it&#039;s side. The code for this may be a little hard to understand, so I&#039;ll do my best to explain it. Take an object (in this case I&#039;m using a cone).&lt;br /&gt;
&lt;br /&gt;
 cone&lt;br /&gt;
   name cone&lt;br /&gt;
   divisions 128&lt;br /&gt;
   position 0 0 0&lt;br /&gt;
   size 10 10 10&lt;br /&gt;
   spin 90 0 1 0&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
One thing you will notice about BZFlag is a lot of times the numbers 1 and 0 will be given not as a value, but more of a way of saying on or off, or in this case which coordinate gets the spin. I&#039;ll show you what I&#039;m talking about. I say spin (that is to say it I&#039;m putting a spin on it). The 90 is saying that the object is going to spin 90 degrees, but it doesn&#039;t now which way to turn 90 degrees.  that is what the 0 1 0 are for. Because there is a 0 in the x and z coordinates it won&#039;t spin that way. Because there is a 1 in the y coordinate it will spin that way 90 degrees.  &lt;br /&gt;
  &lt;br /&gt;
I also know how to use phydrv and matref. I’ll show you how to use those later in this article. For now lets move on to arcs.&lt;br /&gt;
&lt;br /&gt;
An arc...&lt;br /&gt;
&lt;br /&gt;
An arc is basically a cylinder. However it doesn’t have to be a perfect cylinder depending on certain options you select. For an arc the only required options are divisions, position and size. Just like the cone divisions have the same effect, position and size are all the same. Once again you can have an oval shaped cylinder type thing. Now, you WILL find more options to an arc than to a cone, for example the ratio option. The ratio options let you basically put a hole in the cylinder. So if you have the option: ratio 1 you would have a full cylinder. If you say for example ratio .3 or any number less than 1 you will get a whole in the cylinder. The bigger the number, the smaller the hole. Angle allows you to do a simi-circle. Rotation once again isn&#039;t really needed. all the options like spin and shear are the same for this object too! phydrv and matref I’ll show later. Let’s move to the sphere &lt;br /&gt;
&lt;br /&gt;
The sphere... &lt;br /&gt;
&lt;br /&gt;
The only options required to make a sphere are position, size, and divisions. &lt;br /&gt;
all these options do the same thing as they did in the objects above. you may also have an oval like sphere. You make an oval like sphere simply by making the x and y&#039;s different sizes just like in the cone and arc. The radius option is just a substitute for size. You can write size 10 10 10 or radius 10.  Both do the same thing. However if you want an oval shaped sphere you have to use size. Rotation wouldn’t really have an effect and the shear and spin works the same for this object. :O I can show you how to use phydrv and marref now. &lt;br /&gt;
&lt;br /&gt;
OK, a phydrv is a physics driver. And a matref, well I’m not sure what it means, but I always thought it meant material reference. Lets focus on material right now. A material is how you add a design or a texture on something. For example if you make a box, that box doesn’t have to have bricks around the outside of it like it does in bzedit. You want to make a tree? Later I will show you how to make a cone and put a material on it like Louman does for the trunk although Louman is way better than I am!! You might want to find a picture of wood on Google or something and use it as a material so that instead of a cone with bricks it looks like wood. I’ll show you how to do this later. You can change that design by using the material and matref. These two work together. Material is where you define the material. And matref is where you reference the material you defined. Let me show you... &lt;br /&gt;
&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_bolt.png &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
Material is letting the computer know that a material is about to be explained to it. You name it so that way you can reference it with the matref. The name can be any thing you want as long as it does not have any spaces. You type in addtexture and you state a texture name. Now, how do you know what texture names there are to use?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Linux&#039;&#039;&#039;: Running ls /usr/share/bzflag/*.png in a terminal will show the list of pictures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Mac&#039;&#039;&#039;: If you control click (right click) on the bzflag icon, click show package contents, click contents, and click resources, those are the pictures you may use. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Windows&#039;&#039;&#039;: The default path is C:\Program Files\BZFlag\data\*.png&lt;br /&gt;
&lt;br /&gt;
What you will find are images that are used in every day games. The top of a base, the wall of a base. A bullet which is blue_bolt.png (i used above). You can check the rest out by going to that folder. You can also add your own. Any picture you add must be in a .png format. I suggest just taking a screen shot of a picture you want to use, such as, the wood picture to make a tree trunk. Most screen shots are .png formats. (At least mine are) you can name that what ever you want as long as it has a .png in the title and no spaces. Then put it in the same folder as the rest of the images in the resource folder. You may now reference those images by typing matref (name of image.png) &lt;br /&gt;
&lt;br /&gt;
Also you probably noticed I typed meshbox, not box. To enable the material or physics it must be a meshbox. A meshbox is a box just like a &amp;quot;box&amp;quot; however it enables things such as materials and physics. The same goes for pyramids. You must type meshpyr to get a pyramid with a material on it or physics. However objects such as spheres cones and arcs don&#039;t need do have the word mesh in front of them. &lt;br /&gt;
&lt;br /&gt;
Also a really cool thing is diffuse. You can add the diffuse command and it will look like this diffuse 1 1 1 1. Those four numbers represent things. The first number is the amount of red that will be in the meshobject. The second number is the amount of green, the third is the amount of blue. So you can mix those colors to make more colors. You may use a range from 0-1. For example diffuse .3 .5 .26 1. Now the fourth number is cool. It is the opacity or transparency. The see through-ability I call it.  0 is invisible .5 is half invisible 1 is normal. If you use this I suggest using the texture mesh.png only because it looks the best however you can use that option on any texture. so it would look like the code below. (For default images you don&#039;t have to say .png but I suggest getting in the habit of doing it.) &lt;br /&gt;
&lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   diffuse .5 .25 .1 .6 &lt;br /&gt;
   addtexture mesh.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
So the best way of thinking about a material or rather a meshbox is NOT this– A mateial isn&#039;t something you put on as a skin to a box. A meshbox is a different type of box that allows the use of a material or physics. So lets cap up materials &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 material &amp;lt;you must type material &lt;br /&gt;
   name mat1 &amp;lt;you must give it a name so that you can reference it, the name may be any thing as long as there are no spaces and ends in .png. I named it mat1 &lt;br /&gt;
   addtexture &amp;lt;add a texture name you may find in the folder I specified simply by   typing the file name of that image. &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
 meshbox &amp;lt;this alows for a box to use the material above &lt;br /&gt;
   position x y z &lt;br /&gt;
   size x y z &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1&amp;lt;referencing the material to the name mat1 so that this box will have the properties of the material specified. &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
&lt;br /&gt;
Similarly, lets make a mesh pyramid (a pyramid with different images on it) &lt;br /&gt;
&lt;br /&gt;
 meshpry &amp;lt;this alows for a pyramid to use the material above &lt;br /&gt;
   position x y z &lt;br /&gt;
   size x y z &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &amp;lt;referencing the material to the name mat1 (note, I can have several material listed above with different names and reference them as I want with different objects &lt;br /&gt;
 end &amp;lt;must use end &lt;br /&gt;
&lt;br /&gt;
And the same for an arc, cone and sphere, this time without the mesh in front of the name &lt;br /&gt;
&lt;br /&gt;
 sphere &lt;br /&gt;
   divisions 128 &lt;br /&gt;
   position &lt;br /&gt;
   size &lt;br /&gt;
   rotation &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
Done with materials.&lt;br /&gt;
&lt;br /&gt;
Lets move on to phydrv and physics &lt;br /&gt;
&lt;br /&gt;
Physics make your tank behave in different ways. If you have ever played laser mania by Louman than you know on the outskirts of the map there is something you can jump on and you go really fast, that is a physics. Physics and materials work the same way. Physics is to material as phydrv is to matref. You must specify a physics then on a meshbox, meshpyr cone arc sphere or whatever, you can reference that physics by using the phydrv command just like you would use the matref command for materials. There are different physics commands. Linear, angular, slide and death. In the Louman map I mentioned above is a linear physics. Linear physics makes your tank move in... well a line. The numbers after a linear command are just like position x y z. example …&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy1 &lt;br /&gt;
  linear 50 0 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive x direction you may use -50 and it will make it go the other way.&lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
  name phy2 &lt;br /&gt;
  linear 0 50 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank move at a speed of 50 in a positive y direction &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy3 &lt;br /&gt;
   linear 0 0 50 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank jump at a speed of 50 &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy4 &lt;br /&gt;
   slide 5 0 &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make your tank basically feel like it&#039;s on ice, that&#039;s the only way I can explain it. Whichever way the tank is moving it will keep moving that way. A good example is in ... I forgot the exact title, but it&#039;s the &amp;quot;wide world even wider&amp;quot; on the sides if you go up top there is a slide physics. &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy5 &lt;br /&gt;
   death haha! you died &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This will make the tank die when it touches the object that refers to this and the message haha! you died will be displayed to that person. &lt;br /&gt;
&lt;br /&gt;
Now you know how to write a physics you have to be able to reference it. &lt;br /&gt;
Let me show you the code &lt;br /&gt;
&lt;br /&gt;
 physics &lt;br /&gt;
   name phy1 &lt;br /&gt;
   death I like you better dead! &lt;br /&gt;
 end &lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   phydrv phy1 &amp;lt;or what ever you named the physics &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
This works just like the material &lt;br /&gt;
&lt;br /&gt;
The thing about physics and materials is that they have to be written before they are referenced. &lt;br /&gt;
&lt;br /&gt;
This WON&#039;T work &lt;br /&gt;
&lt;br /&gt;
 meshbox &lt;br /&gt;
   position 0 0 0 &lt;br /&gt;
   size 10 10 10 &lt;br /&gt;
   rotation 0 &lt;br /&gt;
   matref mat1 &lt;br /&gt;
 end &lt;br /&gt;
 material &lt;br /&gt;
   name mat1 &lt;br /&gt;
   addtexture blue_team.png &lt;br /&gt;
 end &lt;br /&gt;
&lt;br /&gt;
I hope this helped. As you get more advanced into making maps by hand you will start doing meshes and &amp;quot;tetra&amp;quot; which is a tetrahedron. &amp;lt;I think that&#039;s how you spell it. I’m willing to explain meshes but it&#039;s much more complicated and would be easier to explain in a conversation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Category:Map_Making&amp;diff=3778</id>
		<title>Category:Map Making</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Category:Map_Making&amp;diff=3778"/>
		<updated>2007-12-05T21:10:00Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &amp;quot;blender is preferred&amp;quot; is arguable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[BZFlag]] uses its own map file format called the [[BZW]] file. [[BZW]] files are text based and contain a list of objects and map options that are read by the [[BZFS]] server.&lt;br /&gt;
&lt;br /&gt;
== Map Creation Methods ==&lt;br /&gt;
[[BZFlag]] has several well practiced methods for the design of maps, from simple text editing, custom editors, to exporters for 3D modeling software. While basic dedicated map editors, such as BZEdit, can often only create simple objects, 3D modeling software can create complex custom [[mesh]] objects, but have a much steeper learning curve.&lt;br /&gt;
&lt;br /&gt;
=== Dedicated Map editors ===&lt;br /&gt;
Dedicated [[BZFlag]] map editors (i.e. written specifically for graphically editing [[BZW]] files) generally go by the name [[BZEdit]]. There are a number of versions of [[BZEdit]] that have been developed over the years, some of them sharing code, some of them not. Each editor has its own level of support for various map features. At this time there is no custom editor that supports every feature of the [[BZW]] format. In general, these will only support simple map objects such as a [[box]], a [[pyramid]] or a [[teleporter]].&lt;br /&gt;
&lt;br /&gt;
Editors supporting [[BZW]] 1.10 features&lt;br /&gt;
*[[BZEdit]]&lt;br /&gt;
*[[BZEditWin32]]&lt;br /&gt;
*[[BZFed]]&lt;br /&gt;
&lt;br /&gt;
Editors supporting some [[BZW]] 2.0 features.&lt;br /&gt;
*[[iBZEdit]]&lt;br /&gt;
*[[pyBZEdit]]&lt;br /&gt;
&lt;br /&gt;
=== Blender ===&lt;br /&gt;
The [http://www.blender.org/ blender] 3d modeling application features a plug-in called [[BZWTools]], which enables blender to read and write the [[BZW]] file format and to create [[BZW]] specific objects.  Tutorials on using blender (not specific to BZFlag) can be found on the [http://www.blender.org/tutorials-help/tutorials/ blender web tutorials] pages.&lt;br /&gt;
&lt;br /&gt;
=== Wings 3D ===&lt;br /&gt;
[http://www.wings3d.com/ Wings 3D] is a good modeler to use if you&#039;re new modeling. It has a much smaller learning curve than Blender, although it doesn&#039;t have as many features. There is also a plugin (which you can download [http://trepan.bzflag.bz/wings3d_to_bzw_1.1.tar.gz here]) created by trepan which allows you to export objects to a [[BZW]] file.  It is not widely know that you can export a bzflag map from the actual bzflag client in .obj format.  To do so, you must connect to a server hosting the [[BZW]] map you would like to download and type &#039;&#039;/saveworld -o &amp;quot;mapname.obj&amp;quot;&#039;&#039;.  This will allow you to then import the .obj file into [http://www.wings3d.com/ Wings 3D] and edit the map.  Then you can use the  [http://trepan.bzflag.bz/wings3d_to_bzw_1.1.tar.gz exporter] created by trepan which allows you to export objects to a [[BZW]] file.&lt;br /&gt;
&lt;br /&gt;
=== Creating BZW files via scripting or trivial programming ===&lt;br /&gt;
Several of the existing BZFLAG maps are created using a trivial application custom created for the purpose of generating each map.  The application/program consists of print statements that output BZW file primitives (boxes, pyramids, meshes).  This method, using Perl, visual basic or C, allows re-use of the print statements with variables, for relatively fast creation of nearly identical objects.  Once a coder creates a box primitive, for instance, another box can be created with a simple call to the same set of print statements but with different size or location arguments.  The sets of print statements are then collected by the coder to create a library of available primitives (box, cylinder, fancy-teleporter, cage) that can be used again and again.  The library of primitives may then be used to create additional maps but without all of the original work required to make the first map.  &lt;br /&gt;
The flaws in using this method compared to a graphical modeler or even bzedit are:&lt;br /&gt;
representation of the work are not available without first launching a bzflag client to look at the map;  &lt;br /&gt;
Errors in the library or in calls might make the map unusable but with only visual basic, Perl or C compiler output as a clue;  &lt;br /&gt;
The map is created in a text and syntax intensive process that may not be tolerated by many otherwise creative individuals.  &lt;br /&gt;
&lt;br /&gt;
The advantage of this method is that the library is relatively easy to improve compared to bzedit and new features of bzflag are easily applied.  In addition, the ability to replicate structures in a for-next loop context allow for repetitive or stepped structures with more rapidity than other mapping methods.&lt;br /&gt;
&lt;br /&gt;
=== Editing by Hand ===&lt;br /&gt;
The last method of creating maps is simply coding them by hand as text files using the raw [[BZW]] structures. This is still one of the most common ways that people create and edit maps, and can be very fun and challenging. This is easily done in any text editor, for example NotePad on Windows, and TextEdit on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Most maps made by hand tend to be fairly simple, though experienced mappers have made some extraordinary maps in this way. The reason for the popularity of the &#039;hand made&#039; approach is partly because of the simple structure of the [[BZW]] code, but also the fact that, until recently, there were no graphical editors available for operating systems like Mac OS X.&lt;br /&gt;
&lt;br /&gt;
A detailed explanation about creating a map &#039;by hand&#039; can be found on the [[Editing by Hand]] page.&lt;br /&gt;
&lt;br /&gt;
Maps that contain 2.0 objects (such as [[mesh]]) tend to have been either completely made in a text editor, or partly modeled in 3D modeling software, and later manipulated in text format.&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=TextureMatrix&amp;diff=3761</id>
		<title>TextureMatrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=TextureMatrix&amp;diff=3761"/>
		<updated>2007-11-30T15:22:11Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A TextureMatrix, or texmat, when applied to a material, object allows you to define how a texture will appear in an material.  It can be used to manipulate still (fixed) textures as well as animated ones.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 textureMatrix&lt;br /&gt;
  name example_texmat&lt;br /&gt;
  scale 0.0 0.0 1.0 1.0 # u/v freqs, u/v scales&lt;br /&gt;
  spin 0.0 # rotation freq&lt;br /&gt;
  shift 0.0 0.0 # u/v freqs&lt;br /&gt;
  center 0.5 0.5 # dynamic u/v center (for spin and scale)&lt;br /&gt;
  fixedscale 0.0 0.0 # time invariant u/v scale&lt;br /&gt;
  fixedspin 0.0 # time invariant rotation&lt;br /&gt;
  fixedshift 0.0 0.0 # time invariant u/v shift&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The valid parameters for textureMatrix are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=Name of the texmat, for reference&lt;br /&gt;
scale=Causes texture to dynamically change it&#039;s size, parameters are u/v frequencies, then u/v scales.&lt;br /&gt;
spin=Cause a texture to spin around a center point, parameter is rotational frequency.&lt;br /&gt;
shift=Causes texture to move linearly, parameters are u/v frequencies.&lt;br /&gt;
center=Central point for spin and scale&lt;br /&gt;
fixedscale=Fixed scale, texture doesn&#039;t move with time.&lt;br /&gt;
fixedspin=Fixed spin, texture doesn&#039;t move with time.&lt;br /&gt;
fixedshift=Fixed shift, texture doesn&#039;t move with time.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A textureMatrix can be called by adding &#039;texmat &amp;lt;name&amp;gt;&#039; to a material containing a texture, like so:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 material&lt;br /&gt;
  name example_material&lt;br /&gt;
  diffuse 1 1 1 1&lt;br /&gt;
  texture caution&lt;br /&gt;
  texmat example_texmat&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editor Support ==&lt;br /&gt;
There are currently no supported editors: Texture Matrices will need to be added by hand in a text editor.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Physics object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Group&amp;diff=3704</id>
		<title>Group</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Group&amp;diff=3704"/>
		<updated>2007-11-27T05:48:34Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Tried to clear up the introduction a little.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The group object allows a map-maker to bring together a number of elements and refer to them as a single object.  The group of elements is created in the [[define]] object and then called by name with the group object.  The group of elements can then be placed, copied, and/or modified as a whole instead of having to re-create separate objects.  Group creates an &amp;quot;instance&amp;quot; of something defined.  &lt;br /&gt;
&lt;br /&gt;
Unlike most other objects, the group object can come before the definition in the bzw file.  This may help make the bzw file more readable. &lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 group my_group&lt;br /&gt;
   shift 0 0 0 &lt;br /&gt;
   scale 1 1 1&lt;br /&gt;
   shear 0 0 0&lt;br /&gt;
   spin 0 0 0 0&lt;br /&gt;
   team 0&lt;br /&gt;
   tint 1 1 1 1&lt;br /&gt;
   drivethrough&lt;br /&gt;
   shootthrough&lt;br /&gt;
   phydrv my_phydrv&lt;br /&gt;
   matref my_material&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
The valid parameters for groups are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
shift=Shift the group (repeatable)&lt;br /&gt;
scale=Scale the group (repeatable)&lt;br /&gt;
shear=Shear the group (repeatable)&lt;br /&gt;
spin=Spin the group (repeatable)&lt;br /&gt;
team=Redefine all [[base]] colors within group.&lt;br /&gt;
tint=Hierarchically tints objects within group.&lt;br /&gt;
drivethrough=Make all objects in group drivethrough.&lt;br /&gt;
shootthrough=Make all objects in the group shootthrough.&lt;br /&gt;
phydrv=Apply [[physics]] to all objects/faces within group.&lt;br /&gt;
matref=Apply [[material]] to all objects/faces within group.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An in-depth explanation of the 3d-transformations of shift, scale, and shear can be found [http://kapsi.fi/jpa/stuff/bzw/transformations.php here]&lt;br /&gt;
&lt;br /&gt;
== Editor Support ==&lt;br /&gt;
There are currently no supported editors: groups are normally most useful when editing by hand. &lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The group definition object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZW&amp;diff=3702</id>
		<title>BZW</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZW&amp;diff=3702"/>
		<updated>2007-11-26T01:48:24Z</updated>

		<summary type="html">&lt;p&gt;Tedius: group instantiations can precede definitions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BZW format is used by [[BZFS]] to define the game world, or &amp;quot;map&amp;quot;. 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.&lt;br /&gt;
&lt;br /&gt;
==Basic Format==&lt;br /&gt;
All structures in the BZW format are contained in this basic block structure&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 OBJECT_TYPE #comment&lt;br /&gt;
   KEY  VALUE&lt;br /&gt;
   KEY  VALUE&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
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&#039;s own subset of recognizedly keys and associated values, depending on what it does. All blocks must have an END statement to be valid.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
All distances in a map file are in [[world units]] and all angular values in are degrees.&lt;br /&gt;
&lt;br /&gt;
Here is small example world:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 world  # simple world containing a box, pyramid, and mesh&lt;br /&gt;
  name Simple World&lt;br /&gt;
  size 100.0&lt;br /&gt;
 end&lt;br /&gt;
 box&lt;br /&gt;
  position -20 -20 0&lt;br /&gt;
  size 10 20 10&lt;br /&gt;
 end&lt;br /&gt;
 pyramid&lt;br /&gt;
  position 20 20 0&lt;br /&gt;
  size 10 10 20&lt;br /&gt;
 end&lt;br /&gt;
 mesh&lt;br /&gt;
  vertex -10 0 0&lt;br /&gt;
  vertex 10 0 0&lt;br /&gt;
  vertex 0 10 0&lt;br /&gt;
  face&lt;br /&gt;
   vertices 0 1 2&lt;br /&gt;
  endface&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
==Object Types==&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
The list of world types consists of:&lt;br /&gt;
&lt;br /&gt;
Headers:&lt;br /&gt;
*[[world (object)|world]]&lt;br /&gt;
*[[options (object)|options]]&lt;br /&gt;
*[[waterLevel]]&lt;br /&gt;
&lt;br /&gt;
Must be defined before being referenced:&lt;br /&gt;
*[[dynamicColor]]&lt;br /&gt;
*[[TextureMatrix|textureMatrix]]&lt;br /&gt;
*[[material]]&lt;br /&gt;
*[[physics]]&lt;br /&gt;
&lt;br /&gt;
Others:&lt;br /&gt;
*[[arc]]&lt;br /&gt;
*[[base]]&lt;br /&gt;
*[[box]]&lt;br /&gt;
*[[cone]]&lt;br /&gt;
*[[define]]&lt;br /&gt;
*[[group]]&lt;br /&gt;
*[[link]]&lt;br /&gt;
*[[mesh]]&lt;br /&gt;
*[[meshbox]]&lt;br /&gt;
*[[meshpyr]]&lt;br /&gt;
*[[pyramid]]&lt;br /&gt;
*[[sphere]]&lt;br /&gt;
*[[teleporter]]&lt;br /&gt;
*[[tetra]]&lt;br /&gt;
*[[weapon (object)|weapon]]&lt;br /&gt;
*[[zone]]&lt;br /&gt;
&lt;br /&gt;
==Map Usage==&lt;br /&gt;
Maps are loaded by [[BZFS]] at runtime. The most common way to load a map is with the &#039;&#039;&#039;-world&#039;&#039;&#039; [[BZFS Command Line Options|command line option]]. Other methods involve [[Plug-ins|plug-ins]] or scripts to automatically change or load the map.&lt;br /&gt;
&lt;br /&gt;
==Map Editors==&lt;br /&gt;
Several map editor applications exist and are commonly used to make complex maps.&lt;br /&gt;
They are listed in the [[:Category:Map Editors|Map Editor Category]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Anomaly&amp;diff=3561</id>
		<title>Anomaly</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Anomaly&amp;diff=3561"/>
		<updated>2007-11-14T18:52:59Z</updated>

		<summary type="html">&lt;p&gt;Tedius: hello anomaly&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A coder and maker of many creative and aesthetically pleasing maps.  Anomaly&#039;s maps tend to be well textured with a simple, straightforward gameplay.  His maps include:&lt;br /&gt;
&lt;br /&gt;
==Block Party==&lt;br /&gt;
A simple map that is comprised of randomly placed, beveled and textured blocks.  As with most of Anomaly&#039;s maps, shots keep vertical velocity, however, bullets do not ricochet.&lt;br /&gt;
&lt;br /&gt;
==Volcano Island (Vacation Hot Spot)==&lt;br /&gt;
&lt;br /&gt;
==Brave New World==&lt;br /&gt;
A composite of Terramine and Planet X, this map incorporates evocative textures, numerous tunnels, and a lava-filled canyon.  There is no radar, so the BZplayer is encouraged to explore the alien landscape, the vacant space-vehicles, and the numerous easter-eggs found throughout the map.&lt;br /&gt;
 &lt;br /&gt;
==Stonehenge==&lt;br /&gt;
&lt;br /&gt;
==The Dread Pirate Ryan==&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3549</id>
		<title>DI-Machine</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3549"/>
		<updated>2007-11-09T19:02:25Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The DrawInfo-Machine is a script written in PHP to convert a WaveFront .obj file into a [[drawInfo]]-specific .bzw file.  The related forum thread can be found [[#http://my.bzflag.org/bb/viewtopic.php?p=115772#115772 | here.]]&lt;br /&gt;
&lt;br /&gt;
==Instructions for use==&lt;br /&gt;
#Download the script from [[#http://my.bzflag.org/bb/files/dimachine5_php_191.txt | here]] and change the file-name to dI-Machine.php&lt;br /&gt;
# Download and install PHP 5 or later from [[#http://www.php.net/downloads.php#v5 | the php website.]]  (PHP 4 may work, but it has not been tested)&lt;br /&gt;
#Using your favorite 3D modeler, export your model as an obj file.&lt;br /&gt;
# If desired, create multiple copies of your model with lower resolution (less polygons).  This can be included in your map for viewing from a distance.&lt;br /&gt;
# At the command-line, type:  php drawinfomachine.php /path/to/object.obj&lt;br /&gt;
#Copy and paste or pipe the result into a your map.&lt;br /&gt;
&lt;br /&gt;
==Hisory/Information==&lt;br /&gt;
The script was originally conceived by Optic Delusion and Tedius in an IRC conversation relating to the similarity of the obj syntax with that of the drawInfo object.  The code was created by Tedius and improved by suggestions and submissions by Optic Delusion, Anomaly, Tanner, and Teppic.  The machine was the first to give mappers a practical way to incorporate LODs and spinning objects in their maps.  [[Modeltool | ModelTool v1.8.1]] and later [[#http://my.bzflag.org/bb/viewtopic.php?t=10820 | BZWorkbench]] also incorporated this capability as well.&lt;br /&gt;
&lt;br /&gt;
[[category:Map Making]]&lt;br /&gt;
[[category:Map Editors]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Modeltool&amp;diff=3548</id>
		<title>Modeltool</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Modeltool&amp;diff=3548"/>
		<updated>2007-11-09T18:50:30Z</updated>

		<summary type="html">&lt;p&gt;Tedius: added categories, and SVN, still needs work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Modeltool can now convert .obj files to bzflag drawinfo. It can be downloaded with the source code through [[SVN]], and it is found in the bzflag/tools/ directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modeltool options&lt;br /&gt;
 -bounding      generates sphere and extents,  &lt;br /&gt;
 -comments     numbers each vertex/normal/texcoord and corner to assist in further editing of the .bzw.&lt;br /&gt;
 -nomats          materials are not output in the .bzw.  Use this with the &amp;quot;include&amp;quot; function.&lt;br /&gt;
&lt;br /&gt;
[[category:Map Making]]&lt;br /&gt;
[[category:Map Editors]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3547</id>
		<title>DI-Machine</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3547"/>
		<updated>2007-11-09T18:43:35Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The DrawInfo-Machine is a script written in PHP to convert a WaveFront .obj file into a [[drawInfo]]-specific .bzw file.  The related forum thread can be found [[#http://my.bzflag.org/bb/viewtopic.php?p=115772#115772 | here.]]&lt;br /&gt;
&lt;br /&gt;
==Instructions for use==&lt;br /&gt;
#Download the script from [[#http://my.bzflag.org/bb/files/dimachine5_php_191.txt | here]] and change the file-name to dI-Machine.php&lt;br /&gt;
# Download and install PHP 5 or later from [[#http://www.php.net/downloads.php#v5 | the php website.]]  (PHP 4 may work, but it has not been tested)&lt;br /&gt;
#Using your favorite 3D modeler, export your model as an obj file.&lt;br /&gt;
# If desired, create multiple copies of your model with lower resolution (less polygons).  This can be included in your map for viewing from a distance.&lt;br /&gt;
# At the command-line, type:  php drawinfomachine.php /path/to/object.obj&lt;br /&gt;
#Copy and paste or pipe the result into a your map.&lt;br /&gt;
&lt;br /&gt;
==Hisory/Information==&lt;br /&gt;
The script was originally conceived by Optic Delusion and Tedius in an IRC conversation relating to the similarity of the obj syntax with that of the drawInfo object.  The code was created by Tedius and improved by suggestions and submissions by Optic Delusion, Anomaly, Tanner, and Teppic.  The machine was the first to give mappers a practical way to incorporate LODs and spinning objects in their maps.  [[Modeltool | ModelTool v1.8.1]] and later [[#http://my.bzflag.org/bb/viewtopic.php?t=10820 | BZWorkbench]]&lt;br /&gt;
&lt;br /&gt;
[[category:Map Making]]&lt;br /&gt;
[[category:Map Editors]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3546</id>
		<title>DI-Machine</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3546"/>
		<updated>2007-11-09T18:41:18Z</updated>

		<summary type="html">&lt;p&gt;Tedius: /* Hisory/Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The DrawInfo-Machine is a script written in PHP to convert a WaveFront .obj file into a [[drawInfo]]-specific .bzw file.  The related forum thread can be found [[#http://my.bzflag.org/bb/viewtopic.php?p=115772#115772 | here.]]&lt;br /&gt;
&lt;br /&gt;
==Instructions for use==&lt;br /&gt;
#Download the script from [[#http://my.bzflag.org/bb/files/dimachine5_php_191.txt | here]] and change the file-name to dI-Machine.php&lt;br /&gt;
# Download and install PHP 5 or later from [[#http://www.php.net/downloads.php#v5 | the php website.]]  (PHP 4 may work, but it has not been tested)&lt;br /&gt;
#Using your favorite 3D modeler, export your model as an obj file.&lt;br /&gt;
# If desired, create multiple copies of your model with lower resolution (less polygons).  This can be included in your map for viewing from a distance.&lt;br /&gt;
# At the command-line, type:  php drawinfomachine.php /path/to/object.obj&lt;br /&gt;
#Copy and paste or pipe the result into a your map.&lt;br /&gt;
&lt;br /&gt;
==Hisory/Information==&lt;br /&gt;
The script was originally conceived by Optic Delusion and Tedius in an IRC conversation relating to the similarity of the obj syntax with that of the drawInfo object.  The code was created by Tedius and improved by suggestions and submissions by Optic Delusion, Anomaly, Tanner, and Teppic.  The machine was the first to give mappers a practical way to incorporate LODs and spinning objects in their maps.  [[Modeltool | ModelTool v1.8.1]] and later [[#http://my.bzflag.org/bb/viewtopic.php?t=10820 | BZWorkbench]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3545</id>
		<title>DI-Machine</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DI-Machine&amp;diff=3545"/>
		<updated>2007-11-09T18:35:29Z</updated>

		<summary type="html">&lt;p&gt;Tedius: New page: The DrawInfo-Machine is a script written in PHP to convert a WaveFront .obj file into a drawInfo-specific .bzw file.  The related forum thread can be found [[#http://my.bzflag.org/bb/v...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The DrawInfo-Machine is a script written in PHP to convert a WaveFront .obj file into a [[drawInfo]]-specific .bzw file.  The related forum thread can be found [[#http://my.bzflag.org/bb/viewtopic.php?p=115772#115772 | here.]]&lt;br /&gt;
&lt;br /&gt;
==Instructions for use==&lt;br /&gt;
#Download the script from [[#http://my.bzflag.org/bb/files/dimachine5_php_191.txt | here]] and change the file-name to dI-Machine.php&lt;br /&gt;
# Download and install PHP 5 or later from [[#http://www.php.net/downloads.php#v5 | the php website.]]  (PHP 4 may work, but it has not been tested)&lt;br /&gt;
#Using your favorite 3D modeler, export your model as an obj file.&lt;br /&gt;
# If desired, create multiple copies of your model with lower resolution (less polygons).  This can be included in your map for viewing from a distance.&lt;br /&gt;
# At the command-line, type:  php drawinfomachine.php /path/to/object.obj&lt;br /&gt;
#Copy and paste or pipe the result into a your map.&lt;br /&gt;
&lt;br /&gt;
==Hisory/Information==&lt;br /&gt;
The script was originally conceived by Optic Delusion and Tedius in an [[IRC]] conversation relating to the similarity of the obj syntax with that of the drawInfo object.  The code was created by Tedius and improved by suggestions and submissions by Optic Delusion, Anomaly, Tanner, and Teppic.  The machine was the first to give mappers a practical way to incorporate LODs and spinning objects in their maps.  [[ModelTool| ModelTool v1.8.1]] and later [[#http://my.bzflag.org/bb/viewtopic.php?t=10820 | BZWorkbench]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=User:Tedius&amp;diff=3538</id>
		<title>User:Tedius</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=User:Tedius&amp;diff=3538"/>
		<updated>2007-11-08T15:03:30Z</updated>

		<summary type="html">&lt;p&gt;Tedius: I wiki therefore I am.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maker of a handful of mildly innovative maps:&lt;br /&gt;
==The Most Dangerous Game== &lt;br /&gt;
late 2007 - Featuring numerous [[DrawInfo]] effects and enhancements&lt;br /&gt;
==Skate-Park==&lt;br /&gt;
Winner of the 2007 MDG Map contest.&lt;br /&gt;
==Road Rage==&lt;br /&gt;
2007 - Proof of concept map, with &amp;quot;moving&amp;quot; traffic&lt;br /&gt;
==Quidditch==&lt;br /&gt;
2007 - Resembles a Quidditch Arena, as in Harry Potter&#039;s sport.  The fighting style is similar to WWII Dogfighting.&lt;br /&gt;
==Grand Prix Racer==&lt;br /&gt;
2006 - no shooting, only racing.  Included a PHP plugin which keeps track of race standings.&lt;br /&gt;
==Speedskate series==&lt;br /&gt;
2006 -Speedskate Rabbit Hunt, Racer, and CTF&lt;br /&gt;
==Sniper&#039;s Paradise==&lt;br /&gt;
2006&lt;br /&gt;
==Pigeon Hunter==&lt;br /&gt;
2006&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Zone&amp;diff=3537</id>
		<title>Talk:Zone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Zone&amp;diff=3537"/>
		<updated>2007-11-08T14:14:10Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What is the difference between &#039;&#039;&#039;zoneflag&#039;&#039;&#039; and &#039;&#039;&#039;flag&#039;&#039;&#039;? I do not understand from this description. Is there a difference? I am assuming so since there are two different options. [[User:DonnyBaker|DonnyBaker]] 21:10, 23 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Umm, I assume that &#039;&#039;&#039;zoneflag&#039;&#039;&#039; guarantee that there will be x number of x flag in that zone at any time. &#039;&#039;&#039;Flag&#039;&#039;&#039; probably just says that if there are any of x flag, they may spawn in there or they might not. Sorta confusing. Might want to get that double checked. In the old wiki it says, &amp;quot;Zone flag - Actually generates each flag listed w/in this zone (add ,n for quantity)&amp;quot; and for &amp;quot;Flag - where flag may spawn&amp;quot;. [[User:Tanner|Tanner]] 15:54, 24 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:See what I put there now. Basically, flag says what kind of flags should spawn there (they need to be specified on the command line) while zoneflag spawns extra flags for the zone. [[User:TD-Linux|TD-Linux]] 21:20, 8 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Much clearer, thanks [[User:DonnyBaker|DonnyBaker]] 08:08, 9 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Safety zone should also be in the &amp;quot;valid parameters&amp;quot; section.. so i go to edit it in... when I get to the edit page, IT IS ALREADY THERE. Something is stopping it from being displayed where it should. Wiki bug?&lt;br /&gt;
&lt;br /&gt;
I see saftey, probably a cached page, either on your machine of your ISPs proxy if they have one. [[User:DonnyBaker|DonnyBaker]] 04:33, 8 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I was confused as well, both Team and Safety were not showing up in the properties section.  Turns out you can only have one &amp;quot;=&amp;quot; in each definition . --[[User:Tedius|Ted]] 09:14, 8 November 2007 (EST)&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Zone&amp;diff=3536</id>
		<title>Zone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Zone&amp;diff=3536"/>
		<updated>2007-11-08T14:09:24Z</updated>

		<summary type="html">&lt;p&gt;Tedius: fixed the ghost properties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Zone is a [[BZW]] map structure that is only a rectangular prism area for spawn or flag zones.  The zone lets you create a specific area for a certain flag or a certain team to spawn.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a zone is as follows:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
  zone &lt;br /&gt;
    name example_zone &lt;br /&gt;
    position 0.0 0.0 0.0&lt;br /&gt;
    size 1.0 1.0 1.0&lt;br /&gt;
    rotation 0.0&lt;br /&gt;
    # Add two GM, one OO&lt;br /&gt;
    zoneflag GM 2 OO&lt;br /&gt;
    flag L SW good bad&lt;br /&gt;
    team 0 1 2 3 4&lt;br /&gt;
    safety 1 2 3 4&lt;br /&gt;
  end&lt;br /&gt;
|}&lt;br /&gt;
Valid parameters for the zone are&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
position=Defines the position of the zone in the word (x/y/x)&lt;br /&gt;
size=Defines the size of the zone (rectangular prism)&lt;br /&gt;
rotation=Defines a rotation around the Z axis for the box, in degrees.&lt;br /&gt;
zoneflag=Generates the flags listed inside this zone (adding &amp;quot;flag n&amp;quot; for the quantity). The flags will be generated specifically for the zone, regardless of BZFS options.&lt;br /&gt;
flag=Listed flags will spawn in the zone. The flags need to be specified in the map via BZFS options.&lt;br /&gt;
team=Team players will spawn (0 - Rogue, 1 - Red, 2 - Green, 3 - Blue, 4  - Purple).&lt;br /&gt;
safety=Team flags listed here will fly to the closest safety zone when dropped (0 - Rogue, 1 - Red, 2 - Green, 3 - Blue, 4 - Purple).&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
Zones have no appearance in a map other than what they define (ex: flags or tank spawns).&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Zones were added to BZFlag in version 2.0.0.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The zone object is not supported by any known editors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Essential_skills&amp;diff=3489</id>
		<title>Essential skills</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Essential_skills&amp;diff=3489"/>
		<updated>2007-11-03T23:08:59Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Often servers demand specific skills and tactics.  However, there are a number of skills that each BZFlagger should develop in order to achieve success on most servers.  The following is a brief list of only the most essential of those skills.&lt;br /&gt;
&lt;br /&gt;
This page was based on the The Vet&#039;s [http://my.bzflag.org/bb/viewtopic.php?t=11096 forum topic]&lt;br /&gt;
&lt;br /&gt;
==Dodging==&lt;br /&gt;
Using the radar to avoid shots and determine the most opportune time to strike.&lt;br /&gt;
&lt;br /&gt;
==Accurate Jumping==&lt;br /&gt;
&lt;br /&gt;
==Sniping==&lt;br /&gt;
Using the HUD to achieve accurate shots quickly.  This includes proficiency with binoculars and fast reflexes.  &amp;quot;Hurry up and take your time.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Team Awareness==&lt;br /&gt;
Includes communication through team-chat and working as a team. &lt;br /&gt;
&lt;br /&gt;
==Flag-Specific Tactics==&lt;br /&gt;
&lt;br /&gt;
==Navigating Non-level terrain==&lt;br /&gt;
&lt;br /&gt;
[[Category:Tactics]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Essential_skills&amp;diff=3488</id>
		<title>Essential skills</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Essential_skills&amp;diff=3488"/>
		<updated>2007-11-03T20:42:07Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Please edit, but keep the list brief&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Often servers demand specific skills and tactics.  However, there are a number of skills that each BZFlagger should develop in order to achieve success on most servers.  The following is a brief list of only the most essential of those skills.&lt;br /&gt;
&lt;br /&gt;
This page was based on the The Vet&#039;s [http://my.bzflag.org/bb/viewtopic.php?t=11096 forum topic]&lt;br /&gt;
&lt;br /&gt;
==Dodging==&lt;br /&gt;
Using the radar to avoid shots and determine the most opportune time to strike.&lt;br /&gt;
&lt;br /&gt;
==Accurate Jumping==&lt;br /&gt;
&lt;br /&gt;
==Sniping==&lt;br /&gt;
Using the HUD to achieve accurate shots quickly.  This includes proficiency with binoculars and fast reflexes.  &amp;quot;Hurry up and take your time.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Team Awareness==&lt;br /&gt;
Includes communication through team-chat and working as a team. &lt;br /&gt;
&lt;br /&gt;
==Flag-Specific Tactics==&lt;br /&gt;
&lt;br /&gt;
==Navigating Non-level terrain==&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Material&amp;diff=3472</id>
		<title>Material</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Material&amp;diff=3472"/>
		<updated>2007-10-28T00:10:02Z</updated>

		<summary type="html">&lt;p&gt;Tedius: added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A material is used in a BZFlag world to define a new look for otherwise regular objects, such as [[Meshbox|meshboxes]].&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
To put a material in your map, first it must be defined:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 material&lt;br /&gt;
  name example_material&lt;br /&gt;
  texture filename&lt;br /&gt;
  addtexture filename&lt;br /&gt;
  notextures&lt;br /&gt;
  notexcolor&lt;br /&gt;
  notexalpha&lt;br /&gt;
  texmat -1&lt;br /&gt;
  dyncol -1&lt;br /&gt;
  ambient 0.0 0.0 0.0 1.0&lt;br /&gt;
  diffuse 1.0 1.0 1.0 1.0&lt;br /&gt;
  color 1.0 1.0 1.0 1.0&lt;br /&gt;
  specular 0.0 0.0 0.0 1.0&lt;br /&gt;
  emission 0.0 0.0 0.0 1.0&lt;br /&gt;
  shininess 0.0&lt;br /&gt;
  resetmat&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
Valid parameters for a Material are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=name for reference&lt;br /&gt;
texture=set the texture (must be .png but don&#039;t include the extension)&lt;br /&gt;
addtexture=add a texture (again, no extension is needed)&lt;br /&gt;
notextures=don&#039;t use textures.&lt;br /&gt;
notexcolor=don&#039;t apply the [[Color(BZW)|color]] to the texture&lt;br /&gt;
notexalpha=don&#039;t use the texture&#039;s alpha channel&lt;br /&gt;
texmat=specify a [[TextureMatrix|texture matrix]]. -1 for no texture matrix. (addtexture must be used before texmat)&lt;br /&gt;
dyncol=specify a [[DynamicColor|dynamic color]]. -1 for no dynamic color.&lt;br /&gt;
ambient=ambient color&lt;br /&gt;
diffuse=diffuse (main)[[Color(BZW)|color]]&lt;br /&gt;
[[Color(BZW)|color]]=synonym for diffuse&lt;br /&gt;
specular=specular [[Color(BZW)|color]]&lt;br /&gt;
emission=emission [[Color(BZW)|color]]&lt;br /&gt;
shininess=shiny!&lt;br /&gt;
resetmat=restore default values&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
To actually apply a material, you must use some sort of reference in an object, like so:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 meshbox&lt;br /&gt;
  position 0 0 10&lt;br /&gt;
  rotation 0&lt;br /&gt;
  size 10 10 5&lt;br /&gt;
  matref example_material&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transparency==&lt;br /&gt;
The transparency effect is created by setting the alpha component of a material&#039;s [[Color(BZW)|color]] to a value less than one.&lt;br /&gt;
Transparent objects should be sparingly, because everything behind them must always be rendered. In addition, very large transparent objects may be sorted and drawn in the wrong order. This is caused by the fact that the Z-buffer cannot be used because it would allow another transparent object to cover the transparent object, which would not look right. Thus, the transparent elements are instead sorted by determining the distance to a point in the center, which works well as long as there are not too many large transparent objects.&lt;br /&gt;
The same applies to textures that have transparent sections.&lt;br /&gt;
&lt;br /&gt;
==Magic Material Names==&lt;br /&gt;
===General===&lt;br /&gt;
[[GroundMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
WaterMaterial&amp;lt;br&amp;gt;&lt;br /&gt;
LinkMaterial  (for teleporters)&lt;br /&gt;
&lt;br /&gt;
===Skybox===&lt;br /&gt;
[[LeftSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[RightSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[FrontSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[BackSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[TopSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[BottomSkyboxMaterial]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Materials were added in [[BZFlag 2.0.0]].&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
Materials are supported in [[Blender]] with [[BZWTools]], [[pyBZEdit]], and [[Wings3D]] with the [[BZW Exporter for Wings3D]]. Materials are NOT supported in [[BZEdit]] or [[BZFed]].&lt;br /&gt;
&lt;br /&gt;
==A note about textures==&lt;br /&gt;
A material can be composed of colors and textures. Textures are .png files that are either in the client directory or on the Internet. The terms &#039;&#039;material&#039;&#039; and &#039;&#039;texture&#039;&#039; are often confused and misunderstood, so bear the above in mind.&lt;br /&gt;
&lt;br /&gt;
[[category:Map_Objects]]&lt;br /&gt;
[[category:Map Making]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=TextureMatrix&amp;diff=3471</id>
		<title>TextureMatrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=TextureMatrix&amp;diff=3471"/>
		<updated>2007-10-27T22:42:02Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Hello Texmats.  Needs some work.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The texture matrix object allows you to define how a texture will appear in an material.  It can be used to manipulate still (fixed) textures as well as animated ones.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 textureMatrix&lt;br /&gt;
 name example_texmat&lt;br /&gt;
 scale 0.0 0.0 1.0 1.0 # u/v freqs, u/v scales&lt;br /&gt;
 spin 0.0 # rotation freq&lt;br /&gt;
 shift 0.0 0.0 # u/v freqs&lt;br /&gt;
 center 0.5 0.5 # dynamic u/v center (for spin and scale)  &lt;br /&gt;
 fixedscale 0.0 0.0 # time invariant u/v scale&lt;br /&gt;
 fixedspin 0.0 # time invariant rotation&lt;br /&gt;
 fixedshift 0.0 0.0 # time invariant u/v shift&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
Texture Matrix must be used in conjunction with the [[Material]] object using texmat.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
Texture Matrix is often used to create the appearance of flowing water or lava with the &amp;quot;shift&amp;quot; argument.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DynamicColor&amp;diff=3470</id>
		<title>DynamicColor</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DynamicColor&amp;diff=3470"/>
		<updated>2007-10-27T22:26:47Z</updated>

		<summary type="html">&lt;p&gt;Tedius: added categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Code ===&lt;br /&gt;
----&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
       dynamicColor&lt;br /&gt;
         name example_dyncol&lt;br /&gt;
         red limits 0 1               &lt;br /&gt;
         green sinusoid 0.1 0 0.25    &lt;br /&gt;
         blue clampUp 0.1 0 0.75      &lt;br /&gt;
         alpha clampDown 0.2 0.5 0.5  &lt;br /&gt;
         red sequence 0.0 0.0 2 0 1 1 2 0 ... &lt;br /&gt;
       end&lt;br /&gt;
|}&lt;br /&gt;
The valid parameters for dynamicColor are:&lt;br /&gt;
{|&lt;br /&gt;
 [channel] [function] [options]&lt;br /&gt;
|}&lt;br /&gt;
Color Settings:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
channels=red, green, blue, alpha&lt;br /&gt;
functions=limits, sinusoid, clampUp, clampDown, sequence (repeatable, except for &amp;quot;limits&amp;quot; and &amp;quot;sequence&amp;quot;)&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sequence&#039;&#039;&#039; (Can have three settings)&lt;br /&gt;
*0=active clampDown&lt;br /&gt;
*1=no clamps&lt;br /&gt;
*2=active clampUp&lt;br /&gt;
&lt;br /&gt;
if both clampUp and clampDown are active, the value is (min+max)/2, if used with &amp;quot;sequence&amp;quot; they will have no effect&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sinusoid&#039;&#039;&#039; (starts at the max value)&lt;br /&gt;
&lt;br /&gt;
the sum of a channel&#039;s sinusoids is clamped between 0 and 1&lt;br /&gt;
&lt;br /&gt;
Example syntax for use within dynamicColor:&lt;br /&gt;
 &lt;br /&gt;
* [channel] limits [min limit] [max limit]&lt;br /&gt;
* [channel] sinusoid [period] [offset] [weight]&lt;br /&gt;
* [channel] clampUp [period] [offset] [width]&lt;br /&gt;
* [channel] clampDown [period] [offset] [width]&lt;br /&gt;
* [channel] sequence [period] [offset] [list of states...]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bloodbath&amp;diff=3456</id>
		<title>Bloodbath</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bloodbath&amp;diff=3456"/>
		<updated>2007-10-23T17:19:17Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Hello Bloodbath, (needs some help)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bloodbath is an elongated Capture the Flag map by R3lax.  It features extremely powerful flags and frequent team-domination, suiting it to the title &amp;quot;Bloodbath&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Bloodbath has a limited radar view, custom textures, and interesting yet simple 2.0 objects including cones, arcs, and meshes. &lt;br /&gt;
Some specific areas of the map include:&lt;br /&gt;
*The stealth hole - can be referred to as &amp;quot;the hole,&amp;quot; or simply &amp;quot;in,&amp;quot; as in &amp;quot;r ST in&amp;quot; (red stealth)   this contains Stealth, Cloaking, Seer, and Masquerade flags&lt;br /&gt;
*The tower - sometimes referred to as the &amp;quot;base&amp;quot; or the &amp;quot;castle,&amp;quot;  as in &amp;quot;bSW is in our base!&amp;quot;(blue Shockwave is in the tower)  It is placed in the center behind the team-base and hold Guided Missile, Super-Bullet, and Shockwave flags.  &lt;br /&gt;
*The tracks - also &amp;quot;transporters&amp;quot; or &amp;quot;highways.&amp;quot;&lt;br /&gt;
*The middle -or &amp;quot;mid&amp;quot; In the middle is where the Geno flag is found, as well as Narrow, Tiny, Shockwave, and Super-Bullet.  &lt;br /&gt;
*The crack - This is where the team flag is usually placed since it requires the Narrow flag to retrieve.  It is immediately behind the team-base.&lt;br /&gt;
&lt;br /&gt;
==Tactics==&lt;br /&gt;
Tactics rely heavily on team support.  One player can not be successful alone and it is almost impossible to capture the flag without team coordination.&lt;br /&gt;
*Control the middle - the two most important flags are in the middle: Geno and Narrow.  The team that dominates the middle usually dominates the map.  Because it is usually impossible to capture the flag without the Narrow flag, the action is centered around the middle.&lt;br /&gt;
*Sniping is a common tactic, especially to those new to the game.  Grab the laser flag, hit the binocular key and support those who are fighting for the middle.&lt;br /&gt;
*Beware of the Geno! It is important that everyone on a team is careful not to get hit by a Genocide bullet.  Chat is useful here, pay attention when someone says &amp;quot;geno mid&amp;quot; (enemy with Genocide is in the middle).  &amp;quot;Hunt&amp;quot; the player with the genocide flag and avoid them. Conversely, allow a teammate carrying the geno flag to shoot an enemy.&lt;br /&gt;
*Camping (laser camping, spawn-camping, base-camping) is a part of the game.  Although it may be looked on as a lame way to rack up points, direct your energy toward eliminating the camper rather than complaining about them.  Again, teamwork is crucial.&lt;br /&gt;
&lt;br /&gt;
==Map History and Information ==&lt;br /&gt;
Created by R3laX, the original style of play has changed little in it&#039;s revisions.   The location of the crack and the shape of the stealth hole have been the important changes.  The current version is 2.3 featuring a rounded stealth hole and additional Tiny and Masquerade flags.&lt;br /&gt;
&lt;br /&gt;
[[Category:Maps]]&lt;br /&gt;
[[Category:CTF_Maps]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tavern&amp;diff=3455</id>
		<title>Tavern</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tavern&amp;diff=3455"/>
		<updated>2007-10-23T16:43:13Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Technically, Tavern is a server rather than a map, namely tavern.rkubli.ee.  However, because of it&#039;s distinctive gameplay and it&#039;s non-succinct title &amp;quot;Very fast bullets, L, WG, ST, IB flags. One shot. Jumping. No rico.&amp;quot; most BZ-players refer to the map and server as &amp;quot;Tavern.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Tavern is a randomly generated map, using 1.0 objects such as simple boxes and pyramids.  Tavern&#039;s distinction is in the fast bullets and shotsKeepVerticalVelocity setting.  Sniping and ducking behind buildings for cover are important tactics since dodging is quite impossible.  Although each of the flags is equally powerful, a skilled player will often be effective with no flag.&lt;br /&gt;
&lt;br /&gt;
==Tactics==&lt;br /&gt;
*Tavern requires heavy use of the radar.  The radar size should be increased to as large as one feels comfortable.  &lt;br /&gt;
*Use the radar to watch for sight-lines on the entire map.  Use the buildings to block others from being able to get a shot at you.&lt;br /&gt;
*Make heavy use of the binocular key (&#039;b&#039; by default).  Re-map this key to a more comfortable place if necessary.&lt;br /&gt;
*Unless you are out in the open, it is usually better not to move too much. Wait and watch carefully.&lt;br /&gt;
*Avoid jumping unless you are well protected by buildings.  Conversely, make your move to destroy an enemy when you see that they have jumped.  &lt;br /&gt;
*Beware of stealthed tanks, note to yourself the last known position of the stealthed tank.&lt;br /&gt;
*Use shotsKeepVerticalVelocity to your advantage.  You can shoot down Winged tanks and/or tanks on buildings if you time your shot and jump correctly.&lt;br /&gt;
&lt;br /&gt;
==Map History and Information ==&lt;br /&gt;
Tavern is hosted in Estonia.&lt;br /&gt;
&lt;br /&gt;
[[Category:Maps]]&lt;br /&gt;
[[Category:FFA_Maps]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tavern&amp;diff=3454</id>
		<title>Tavern</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tavern&amp;diff=3454"/>
		<updated>2007-10-23T16:25:25Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Technically, Tavern is a server rather than a map, namely tavern.rkubli.ee.  However, because of it&#039;s distinctive gameplay and it&#039;s non-succinct title &amp;quot;Very fast bullets, L, WG, ST, IB flags. One shot. Jumping. No rico.&amp;quot; most BZ-players refer to the map and server as &amp;quot;Tavern.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Tavern is a randomly generated map, using 1.0 objects such as simple boxes and pyramids.  Tavern&#039;s distinction is in the fast bullets and shotsKeepVerticalVelocity setting.  Sniping and ducking behind buildings for cover are important tactics since dodging is quite impossible.  Although each of the flags is equally powerful, a skilled player will often be effective with no flag.&lt;br /&gt;
&lt;br /&gt;
==Tactics==&lt;br /&gt;
Tavern requires heavy use of the radar.  The radar size should be increased to as large as one feels comfortable.  &lt;br /&gt;
Use the radar to watch for sight-lines on the entire map.  Use the buildings to block others from being able to get a shot at you.&lt;br /&gt;
Make heavy use of the binocular key (&#039;b&#039; by default).  Re-map this key to a more comfortable place if necessary.&lt;br /&gt;
Unless you are out in the open, it is usually better not to move too much. Wait and watch carefully.&lt;br /&gt;
Avoid jumping unless you are well protected by buildings.  Conversely, make your move to destroy an enemy when you see that they have jumped.  &lt;br /&gt;
Beware of stealthed tanks, note to yourself the last known position of the stealthed tank.&lt;br /&gt;
Use shotsKeepVerticalVelocity to your advantage.  You can shoot down Winged tanks and/or tanks on buildings if you time your shot and jump correctly.&lt;br /&gt;
&lt;br /&gt;
==Map History and Information ==&lt;br /&gt;
Tavern is hosted in Estonia.&lt;br /&gt;
&lt;br /&gt;
[[Category:Maps]]&lt;br /&gt;
[[Category:FFA_Maps]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Category:FFA_Maps&amp;diff=3453</id>
		<title>Category:FFA Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Category:FFA_Maps&amp;diff=3453"/>
		<updated>2007-10-23T16:24:54Z</updated>

		<summary type="html">&lt;p&gt;Tedius: New page: FFA FTW Category:Maps&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FFA FTW&lt;br /&gt;
[[Category:Maps]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tavern&amp;diff=3452</id>
		<title>Tavern</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tavern&amp;diff=3452"/>
		<updated>2007-10-23T16:22:39Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Hello Tavern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Technically, Tavern is a server rather than a map, namely tavern.rkubli.ee.  However, because of it&#039;s distinctive gameplay and it&#039;s non-succinct title &amp;quot;Very fast bullets, L, WG, ST, IB flags. One shot. Jumping. No rico.&amp;quot; most BZ-players refer to the map and server as &amp;quot;Tavern.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Tavern is a randomly generated map, using 1.0 objects such as simple boxes and pyramids.  Tavern&#039;s distinction is in the fast bullets and shotsKeepVerticalVelocity setting.  Sniping and ducking behind buildings for cover are important tactics since dodging is quite impossible.  Although each of the flags is equally powerful, a skilled player will often be effective with no flag.&lt;br /&gt;
&lt;br /&gt;
==Tactics==&lt;br /&gt;
Tavern requires heavy use of the radar.  The radar size should be increased to as large as one feels comfortable.  &lt;br /&gt;
Use the radar to watch for sight-lines on the entire map.  Use the buildings to block others from being able to get a shot at you.&lt;br /&gt;
Make heavy use of the binocular key (&#039;b&#039; by default).  Re-map this key to a more comfortable place if necessary.&lt;br /&gt;
Unless you are out in the open, it is usually better not to move too much. Wait and watch carefully.&lt;br /&gt;
Avoid jumping unless you are well protected by buildings.  Conversely, make your move to destroy an enemy when you see that they have jumped.  &lt;br /&gt;
Beware of stealthed tanks, note to yourself the last known position of the stealthed tank.&lt;br /&gt;
Use shotsKeepVerticalVelocity to your advantage.  You can shoot down Winged tanks and/or tanks on buildings if you time your shot and jump correctly.&lt;br /&gt;
&lt;br /&gt;
==Map History and Information ==&lt;br /&gt;
Tavern is hosted in Estonia.&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3446</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3446"/>
		<updated>2007-10-15T02:15:38Z</updated>

		<summary type="html">&lt;p&gt;Tedius: /* Simplified Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mesh is a [[BZW]] map object that defines an arbitrary three dimensional shape. A mesh is defined as a series of faces containing 3 or more points(vertices) in three dimensional space.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a mesh object is as follows, this is only an example&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 mesh&lt;br /&gt;
  name example_mesh&lt;br /&gt;
  # Material properties applied to a mesh apply to all faces&lt;br /&gt;
  # that follow the setting. Mesh faces will alter their own&lt;br /&gt;
  # properties without affecting the state of the mesh properties.&lt;br /&gt;
  # The same pattern is used to apply physics drivers.&lt;br /&gt;
  inside 5.5 4.5 1.2 # add an inside point (repeatable) &lt;br /&gt;
  outside 0 0 1000 # add an outside point (repeatable) &lt;br /&gt;
  vertex 100 200 300 # add a vertex (repeatable) &lt;br /&gt;
  normal 1.0 0 0 # add a normal (repeatable) &lt;br /&gt;
  texcoord 0.1 0.75 # add a texture coordinate (repeatable) &lt;br /&gt;
  shift 0 0 0 # (repeatable) &lt;br /&gt;
  scale 1 1 1 # (repeatable) &lt;br /&gt;
  shear 0 0 0 # (repeatable) &lt;br /&gt;
  spin angle nx ny nz # (repeatable) &lt;br /&gt;
  phydrv example_phydrv # assign a physics driver &lt;br /&gt;
  smoothbounce # ricochets use normals &lt;br /&gt;
  noclusters # render each mesh face individually &lt;br /&gt;
             # (this can be useful for occluders) &lt;br /&gt;
  face # start a face (repeatable) &lt;br /&gt;
       # faces must be convex polygons &lt;br /&gt;
    vertices 1 4 0 3 5 # list of vertices (requires at least three) &lt;br /&gt;
    normals 2 6 0 4 7 # list of normals (optional) &lt;br /&gt;
    texcoords 0 3 2 4 9 # list of texture coordinates (optional) &lt;br /&gt;
    phydrv example_phydrv # assign a physics driver &lt;br /&gt;
    smoothbounce &lt;br /&gt;
    noclusters &lt;br /&gt;
    drivethrough &lt;br /&gt;
    shootthrough &lt;br /&gt;
    passable &lt;br /&gt;
    material &lt;br /&gt;
  endface # end the face &lt;br /&gt;
  #&lt;br /&gt;
  #  This next element can be added to increase the rendering speed&lt;br /&gt;
  #  of the mesh object. If the client is capable of using this data,&lt;br /&gt;
  #  then it is used to draw the mesh instead of the face  information.&lt;br /&gt;
  #&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
 end	  # mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for a mesh are&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=The name of the mesh&lt;br /&gt;
vertex= this is a &#039;corner&#039; of your mesh - a point where faces connect. (at least 3 are required)&lt;br /&gt;
normal= a unit vector describing the direction light will reflect off the object&lt;br /&gt;
texcoord= this is used for mapping textures onto the mesh.  This will link a point of the 2-Dimensional texture to a vertex on the 3-Dimensional object.  (0,0) refers to the lower left corner of the texture, (1,1) refers to the top right.  Textures are defined in the [[material]] object.&lt;br /&gt;
inside= an arbitrary vertex placed on the inside of the mesh object.  This keeps tanks from driving or spawning inside the object.&lt;br /&gt;
phydrv=Assign a physics driver as defined in the [[physics]] object.&lt;br /&gt;
smoothbounce=shot will ricochet from the face in the same direction as the defined normal.&lt;br /&gt;
noclusters=Render each face individually.&lt;br /&gt;
shift=places the mesh using &amp;lt;x y z&amp;gt; coordinates&lt;br /&gt;
scale=resizes the mesh along the x, y, or z axis&lt;br /&gt;
shear=repeatable&lt;br /&gt;
spin=spins the mesh &amp;lt;angle&amp;gt; number of degrees, &amp;lt;n&amp;gt; number of rotations along one or more of the x, y, or z axiis&lt;br /&gt;
matref=Assign a [[material]] to all below faces.&lt;br /&gt;
face=Start a face (required), see below:&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Valid parameters within the face sub-object:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
vertices=Numbered list of vertices for this face. (requires at least three)&lt;br /&gt;
normals=Numbered list of normals for this face.&lt;br /&gt;
texcoords=Numbered list of texture coordinates for this face.&lt;br /&gt;
phydrv=Assign a [[Physics|physics driver]] to this face only.&lt;br /&gt;
smoothbounce=use normals to determine shot ricochets for this face.&lt;br /&gt;
noclusters&#039;&#039;&#039;&lt;br /&gt;
drivethrough=Tanks can drive through this face.&lt;br /&gt;
shootthrough=Tanks can shoot through this face.&lt;br /&gt;
passable=Tanks can both shoot and drive through this face&lt;br /&gt;
matref=Assign a [[material]] to this face.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Meshes have full support for [[Material]] (wherein custom textures can be defined) and [[Physics Drivers]].&lt;br /&gt;
&lt;br /&gt;
==DrawInfo==&lt;br /&gt;
[[DrawInfo]] can be added to the mesh object to increase rendering efficiency, allowing the designer to specify which details will be seen from certain distances.  It can also be used to rotate a mesh object, though tanks can not interact with the moving object.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The appearance of a mesh will vary greatly as by its very nature it can be defined to look like anything.&lt;br /&gt;
&lt;br /&gt;
==Simplified Examples==&lt;br /&gt;
{|&lt;br /&gt;
|Simple Cube&lt;br /&gt;
 mesh&lt;br /&gt;
    vertex -10 -10 0&lt;br /&gt;
    vertex 10 -10 0&lt;br /&gt;
    vertex 10 10 0&lt;br /&gt;
    vertex -10 10 0&lt;br /&gt;
    vertex -10 -10 10&lt;br /&gt;
    vertex 10 -10 10&lt;br /&gt;
    vertex 10 10 10&lt;br /&gt;
    vertex -10 10 10&lt;br /&gt;
    face #south&lt;br /&gt;
        vertices 0 1 5 4&lt;br /&gt;
    endface&lt;br /&gt;
    face #east&lt;br /&gt;
        vertices 1 2 6 5&lt;br /&gt;
    endface&lt;br /&gt;
    face #north&lt;br /&gt;
        vertices 2 3 7 6&lt;br /&gt;
    endface&lt;br /&gt;
    face #west&lt;br /&gt;
        vertices 3 0 4 7 &lt;br /&gt;
    endface&lt;br /&gt;
    face #bottom&lt;br /&gt;
        vertices 0 1 2 3&lt;br /&gt;
    endface&lt;br /&gt;
    face #top&lt;br /&gt;
        vertices 4 5 6 7&lt;br /&gt;
    endface&lt;br /&gt;
 end #mesh&lt;br /&gt;
|Simple billboard with texcoords&lt;br /&gt;
 mesh &lt;br /&gt;
     vertex -10 0 0&lt;br /&gt;
     vertex 10 0 0&lt;br /&gt;
    vertex 10 0 10&lt;br /&gt;
    vertex -10 0 10&lt;br /&gt;
    texcoord 0 0&lt;br /&gt;
    texcoord 1 0&lt;br /&gt;
    texcoord 1 1&lt;br /&gt;
    texcoord 0 1&lt;br /&gt;
    matref myBillboard&lt;br /&gt;
    face&lt;br /&gt;
        vertices 0 1 2 3&lt;br /&gt;
        texcoord 0 1 2 3&lt;br /&gt;
    endface&lt;br /&gt;
    face #backside&lt;br /&gt;
        vertices 1 0 3 2&lt;br /&gt;
        texcoord 1 0 3 2&lt;br /&gt;
    endface&lt;br /&gt;
 end #mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The mesh object is supported by the [[BZWTools]] blender plugin, the Wings3D Exporter or hand coding.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Mesh object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Mesh&amp;diff=3440</id>
		<title>Talk:Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Mesh&amp;diff=3440"/>
		<updated>2007-10-12T21:05:31Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Does anyone have experience on using drawInfo? I would like to add information, but I can&#039;t seem to figure out how it works myself. [[User:TD-Linux|TD-Linux]] 17:10, 19 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
I put together what I have figured out about drawinfo.  I&#039;m sure it could use some help: [[Drawinfo]]&lt;br /&gt;
&lt;br /&gt;
I added simplified examples, are they helpful? --[[User:Tedius|Ted]] 17:05, 12 October 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3439</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3439"/>
		<updated>2007-10-12T21:03:50Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Added simplified examples, helpful?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mesh is a [[BZW]] map object that defines an arbitrary three dimensional shape. A mesh is defined as a series of faces containing 3 or more points(vertices) in three dimensional space.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a mesh object is as follows, this is only an example&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 mesh&lt;br /&gt;
  name example_mesh&lt;br /&gt;
  # Material properties applied to a mesh apply to all faces&lt;br /&gt;
  # that follow the setting. Mesh faces will alter their own&lt;br /&gt;
  # properties without affecting the state of the mesh properties.&lt;br /&gt;
  # The same pattern is used to apply physics drivers.&lt;br /&gt;
  inside 5.5 4.5 1.2 # add an inside point (repeatable) &lt;br /&gt;
  outside 0 0 1000 # add an outside point (repeatable) &lt;br /&gt;
  vertex 100 200 300 # add a vertex (repeatable) &lt;br /&gt;
  normal 1.0 0 0 # add a normal (repeatable) &lt;br /&gt;
  texcoord 0.1 0.75 # add a texture coordinate (repeatable) &lt;br /&gt;
  shift 0 0 0 # (repeatable) &lt;br /&gt;
  scale 1 1 1 # (repeatable) &lt;br /&gt;
  shear 0 0 0 # (repeatable) &lt;br /&gt;
  spin angle nx ny nz # (repeatable) &lt;br /&gt;
  phydrv example_phydrv # assign a physics driver &lt;br /&gt;
  smoothbounce # ricochets use normals &lt;br /&gt;
  noclusters # render each mesh face individually &lt;br /&gt;
             # (this can be useful for occluders) &lt;br /&gt;
  face # start a face (repeatable) &lt;br /&gt;
       # faces must be convex polygons &lt;br /&gt;
    vertices 1 4 0 3 5 # list of vertices (requires at least three) &lt;br /&gt;
    normals 2 6 0 4 7 # list of normals (optional) &lt;br /&gt;
    texcoords 0 3 2 4 9 # list of texture coordinates (optional) &lt;br /&gt;
    phydrv example_phydrv # assign a physics driver &lt;br /&gt;
    smoothbounce &lt;br /&gt;
    noclusters &lt;br /&gt;
    drivethrough &lt;br /&gt;
    shootthrough &lt;br /&gt;
    passable &lt;br /&gt;
    material &lt;br /&gt;
  endface # end the face &lt;br /&gt;
  #&lt;br /&gt;
  #  This next element can be added to increase the rendering speed&lt;br /&gt;
  #  of the mesh object. If the client is capable of using this data,&lt;br /&gt;
  #  then it is used to draw the mesh instead of the face  information.&lt;br /&gt;
  #&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
 end	  # mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for a mesh are&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=The name of the mesh&lt;br /&gt;
vertex= this is a &#039;corner&#039; of your mesh - a point where faces connect. (at least 3 are required)&lt;br /&gt;
normal= a unit vector describing the direction light will reflect off the object&lt;br /&gt;
texcoord= this is used for mapping textures onto the mesh.  This will link a point of the 2-Dimensional texture to a vertex on the 3-Dimensional object.  (0,0) refers to the lower left corner of the texture, (1,1) refers to the top right.  Textures are defined in the [[material]] object.&lt;br /&gt;
inside= an arbitrary vertex placed on the inside of the mesh object.  This keeps tanks from driving or spawning inside the object.&lt;br /&gt;
phydrv=Assign a physics driver as defined in the [[physics]] object.&lt;br /&gt;
smoothbounce=shot will ricochet from the face in the same direction as the defined normal.&lt;br /&gt;
noclusters=Render each face individually.&lt;br /&gt;
shift=places the mesh using &amp;lt;x y z&amp;gt; coordinates&lt;br /&gt;
scale=resizes the mesh along the x, y, or z axis&lt;br /&gt;
shear=repeatable&lt;br /&gt;
spin=spins the mesh &amp;lt;angle&amp;gt; number of degrees, &amp;lt;n&amp;gt; number of rotations along one or more of the x, y, or z axiis&lt;br /&gt;
matref=Assign a [[material]] to all below faces.&lt;br /&gt;
face=Start a face (required), see below:&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Valid parameters within the face sub-object:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
vertices=Numbered list of vertices for this face. (requires at least three)&lt;br /&gt;
normals=Numbered list of normals for this face.&lt;br /&gt;
texcoords=Numbered list of texture coordinates for this face.&lt;br /&gt;
phydrv=Assign a [[Physics|physics driver]] to this face only.&lt;br /&gt;
smoothbounce=use normals to determine shot ricochets for this face.&lt;br /&gt;
noclusters&#039;&#039;&#039;&lt;br /&gt;
drivethrough=Tanks can drive through this face.&lt;br /&gt;
shootthrough=Tanks can shoot through this face.&lt;br /&gt;
passable=Tanks can both shoot and drive through this face&lt;br /&gt;
matref=Assign a [[material]] to this face.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Meshes have full support for [[Material]] (wherein custom textures can be defined) and [[Physics Drivers]].&lt;br /&gt;
&lt;br /&gt;
==DrawInfo==&lt;br /&gt;
[[DrawInfo]] can be added to the mesh object to increase rendering efficiency, allowing the designer to specify which details will be seen from certain distances.  It can also be used to rotate a mesh object, though tanks can not interact with the moving object.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The appearance of a mesh will vary greatly as by its very nature it can be defined to look like anything.&lt;br /&gt;
&lt;br /&gt;
==Simplified Examples==&lt;br /&gt;
{|&lt;br /&gt;
|Simple Cube&lt;br /&gt;
 mesh&lt;br /&gt;
    vertex -10 -10 0&lt;br /&gt;
    vertex 10 -10 0&lt;br /&gt;
    vertex 10 10 0&lt;br /&gt;
    vertex -10 10 0&lt;br /&gt;
    vertex -10 -10 10&lt;br /&gt;
    vertex 10 -10 10&lt;br /&gt;
    vertex 10 10 10&lt;br /&gt;
    vertex -10 10 10&lt;br /&gt;
    face #south&lt;br /&gt;
        vertices 0 1 5 4&lt;br /&gt;
    endface&lt;br /&gt;
    face #east&lt;br /&gt;
        vertices 1 2 6 5&lt;br /&gt;
    endface&lt;br /&gt;
    face #north&lt;br /&gt;
        vertices 2 3 7 6&lt;br /&gt;
    endface&lt;br /&gt;
    face #west&lt;br /&gt;
        vertices 3 0 4 7 &lt;br /&gt;
    endface&lt;br /&gt;
    face #bottom&lt;br /&gt;
        vertices 0 1 2 3&lt;br /&gt;
    endface&lt;br /&gt;
    face #top&lt;br /&gt;
        vertices 4 5 6 7&lt;br /&gt;
    endface&lt;br /&gt;
 end #mesh&lt;br /&gt;
|Simple bilboard with texcoords&lt;br /&gt;
 mesh &lt;br /&gt;
     vertex -10 0 0&lt;br /&gt;
     vertex 10 0 0&lt;br /&gt;
    vertex 10 0 10&lt;br /&gt;
    vertex -10 0 10&lt;br /&gt;
    texcoord 0 0&lt;br /&gt;
    texcoord 1 0&lt;br /&gt;
    texcoord 1 1&lt;br /&gt;
    texcoord 0 1&lt;br /&gt;
    matref myBilboard&lt;br /&gt;
    face&lt;br /&gt;
        vertices 0 1 2 3&lt;br /&gt;
        texcoord 0 1 2 3&lt;br /&gt;
    endface&lt;br /&gt;
    face #backside&lt;br /&gt;
        vertices 1 0 3 2&lt;br /&gt;
        texcoord 1 0 3 2&lt;br /&gt;
    endface&lt;br /&gt;
 end #mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The mesh object is supported by the [[BZWTools]] blender plugin, the Wings3D Exporter or hand coding.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Mesh object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3433</id>
		<title>DrawInfo</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3433"/>
		<updated>2007-10-10T14:45:08Z</updated>

		<summary type="html">&lt;p&gt;Tedius: sphere and extents, dIMachine and Modeltool&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DrawInfo allows clients to render the [[mesh]] object more efficiently through LODs (Levels of Detail).  Many associate drawinfo with the ability to create moving objects in a map.  &lt;br /&gt;
==Code==&lt;br /&gt;
The code must be added to the mesh object.&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for drawinfo are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
dlist=requests that the client use display lists to render the object (recommended for meshes that are not overly complicated)&lt;br /&gt;
decorative=disables drawInfo in older clients&lt;br /&gt;
angvel=causes the mesh object to spin at the given rate in degrees per second&lt;br /&gt;
extents=the minimum and maximum x, y, and z point of the mesh to be drawn.  This helps with rendering efficiency, meshes whose extents are outside of the point of view will not be drawn.&lt;br /&gt;
sphere=an imaginary sphere that encompasses all x, y, and z coordinates.  Similar to extents, this helps increase rendering efficiency.&lt;br /&gt;
vertex=if defined within the drawInfo section, the vertices, normals, and texcoords will be used instead of those defined in the mesh&lt;br /&gt;
corner=(required)a point defined by a vertex, normal, and a texcoord&lt;br /&gt;
lod=(required)sections that determines which faces/points will be rendered from specific distances (lengthPerPixel)&lt;br /&gt;
lengthPerPixel=(required)distance from which the points will be rendered, 0 is close, .3 is about as far away as is needed &lt;br /&gt;
matref=(required)material to use for the faces that follow it.&lt;br /&gt;
points=&#039;&#039;description&#039;&#039;&lt;br /&gt;
lines=&#039;&#039;description&#039;&#039;&lt;br /&gt;
lineloop=&#039;&#039;description&#039;&#039;&lt;br /&gt;
linestrip=&#039;&#039;description&#039;&#039;&lt;br /&gt;
tris=index numbers of corners that create triangles&lt;br /&gt;
tristrip=series of points that form a chain of triangles.&lt;br /&gt;
trifan= a series of points that create triangles that fan out from a single point.  That point, usually in the center, is placed first in the series.  Trifans are used only in pyramid and cone-shaped meshes.&lt;br /&gt;
quads=points that create 4-sided mesh planes&lt;br /&gt;
quadstrip=series of points that create a chain of 4-sided planes.  Similarly to tristrips, the series zig-zags between the points, starting in the counter-clockwise direction.&lt;br /&gt;
polygon=same as quads except for planes of more than 4 sides.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
DrawInfo is only applied to existing [[mesh]] objects.  If you look closely in Louman&#039;s Mystic Valley, shrubbery and trees will change in appearance slightly when viewed from about 200 units away.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
DrawInfo support has been added to obj to bzw converters: Modeltool (available through [[SVN]]) and [http://my.bzflag.org/bb/viewtopic.php?p=115772#115772 php-dIMachine].&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
DrawInfo was added (by trepan) in BZFlag version 2.0.4 and is rarely used for anything other than experimental and proof-of-concept maps. Notable exceptions to this are Louman&#039;s &amp;quot;Mystic Valley&amp;quot; and &amp;quot;Churchyard&amp;quot; maps.&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=3392</id>
		<title>BZFlag on IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=3392"/>
		<updated>2007-09-27T02:21:50Z</updated>

		<summary type="html">&lt;p&gt;Tedius: ##bzw not #bzw&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BZFlag communities use the [http://freenode.net/ freenode IRC network] for communication and collaboration. [http://en.wikipedia.org/wiki/IRC IRC]&lt;br /&gt;
&lt;br /&gt;
The [http://freenode.net/ freenode network] is used for all IRC communications.&lt;br /&gt;
Common channels include:&lt;br /&gt;
* #bzflag&lt;br /&gt;
* #bzchat&lt;br /&gt;
&lt;br /&gt;
A web interface is provided to these channels at http://my.BZFlag.org/irc/irc.cgi&lt;br /&gt;
==Channels==&lt;br /&gt;
&lt;br /&gt;
===#bzflag===&lt;br /&gt;
The #bzflag channel is the primary development and support channel. The major developers and many long time community members are users. Discussions in the channel range from development and coding discussions to technical support and bug reports. #bzflag is a great channel to discuss new features and bugs. The channel is moderated by the project administration and development staff.&lt;br /&gt;
&lt;br /&gt;
===#bzchat===&lt;br /&gt;
The #bzchat channel is a more informal channel designated for player community discussions.&lt;br /&gt;
&lt;br /&gt;
===Other channels===&lt;br /&gt;
A number of players, servers, and [[leagues]] have their own channel for more focused discussion, some of these include:&lt;br /&gt;
&lt;br /&gt;
* ##bar (DUCLeague team, The Barbarians)&lt;br /&gt;
* #BoomBZ (Team Channel for GU team [BoOm])&lt;br /&gt;
* #bzfx (Support channel for the bzfx.net BZFlag servers)&lt;br /&gt;
* ##bzpod (Channel to discuss the BZFlag podcast, BZPod)&lt;br /&gt;
* ##bzw (A place to discuss map making for BZFlag, including ideas and help)&lt;br /&gt;
* ##bz-inc (DUCLeague team, [http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=689/ Bz-Incorporated])&lt;br /&gt;
* #dub (Support channel for the dub.bzflag.org BZFlag servers)&lt;br /&gt;
* ##ducleague (Support channel for [http://my.bzflag.org/league/ Ducati League (DucLeague)])&lt;br /&gt;
* ##guleague (Support channel for [http://gu.bzleague.com/ GamesUnited League (GULeague)])&lt;br /&gt;
* #hepcat (Support channel for borrego.hepcat.org BZFlag server)&lt;br /&gt;
* ##icf (Support channel for [http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=112 Insane Crazy Funsters, (GULeague)])&lt;br /&gt;
* #forestforce ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=10 GULeague Team])&lt;br /&gt;
* #inleague (Support channel for [http://in.bzleague.com InterNational League (INLeague)])&lt;br /&gt;
* #kas (GULeague team, KAS)&lt;br /&gt;
* ##norang (Support channel for [http://bzflag.norang.ca Norang.ca] BZFlag servers)&lt;br /&gt;
* #pillbox (Support channel for [http://pillbox.bzleague.com/ Pillbox League (PBLeague)])&lt;br /&gt;
* ##planetmofo (Support channel for [http://www.planet-mofo.com planet-mofo.com] servers)&lt;br /&gt;
* #plosileague (Support channel for [http://bzfx.net/league/ Plosileague])&lt;br /&gt;
* #silvercat (Support channel for [http://silvercat.bzflag.org/ Silvercat BZFlag servers])&lt;br /&gt;
* ##t42 ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=39 GULeague team])&lt;br /&gt;
* ##untamed ([http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=909 DUCLeague team])&lt;br /&gt;
&lt;br /&gt;
==IRC Clients==&lt;br /&gt;
To access the IRC network you need to use an IRC client, there are many IRC client softwares available for most operating systems. &lt;br /&gt;
&lt;br /&gt;
http://irchelp.org/ is an excellent resource for more information on general IRC.&lt;br /&gt;
&lt;br /&gt;
===Web IRC Interface===&lt;br /&gt;
The project provides a [http://my.BZFlag.org/irc/irc.cgi web based interface] to the main IRC channels. These are intended mostly for tech support issues, and the web interface is limited in the number of channels it can access.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
http://my.BZFlag.org/irc/irc.cgi&lt;br /&gt;
&lt;br /&gt;
http://irchelp.org/&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Support]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Server_Variables&amp;diff=3391</id>
		<title>Talk:Server Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Server_Variables&amp;diff=3391"/>
		<updated>2007-09-27T02:14:18Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Undo revision 3385 by 207.44.238.95 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m sorry, how does the longitude and latitude thing work? Say I lived in New York, 43N 75W, how would I put that into the server?&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Physics&amp;diff=3328</id>
		<title>Physics</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Physics&amp;diff=3328"/>
		<updated>2007-09-25T23:57:05Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Physics, or Physics Driver, when applied to an object, will affect a tank touching it in some way.  Physics can be applied to any 2.0 object, namely: [[mesh]], [[meshbox]],[[meshpyr]],[[sphere]],[[cone]],[[tetra]], and [[arc]].  Similar to [[material|materials]], they can not be applied to the [[box]] or [[pyramid]] objects unless the server ([[BZFS]]) is version 2.0.9 or later.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 physics &lt;br /&gt;
   name example_phydrv&lt;br /&gt;
   linear 0.0 0.0 0.0&lt;br /&gt;
   angular 0.0 0.0 0.0&lt;br /&gt;
   slide 0.0&lt;br /&gt;
   death Message goes here. &lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
The valid parameters for physics are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=Name of the physics driver, for reference&lt;br /&gt;
linear=Cause a tank to move linearly at the given velocity (x/y/z). For example linear 5 0 0 would cause any tanks on the object to move at a velocity of 5 towards X+ (the side of the map with the highest value of X).&lt;br /&gt;
angular=Cause a tank to rotate at the given velocity,(Rotation velocity, x/y coordinates of the centre).&lt;br /&gt;
slide=Cause the tank to accelerate slowly during the time given. (i.e. Makes a &#039;slippery&#039; surface.)(Time until max velocity (&amp;gt; 0.0 enables)&lt;br /&gt;
death=Causes the tank to die on contact. Player sees the given message&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A physics driver can be called by adding &#039;phydrv &amp;lt;name&amp;gt;&#039; to an object, group or mesh face, like so:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 meshbox&lt;br /&gt;
  position 0 0 10&lt;br /&gt;
  size 10 10 5&lt;br /&gt;
  phydrv example_phydrv&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editor Support ==&lt;br /&gt;
There are currently no supported editors: physics drivers will need to be added by hand in a text editor.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Physics object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Physics&amp;diff=3327</id>
		<title>Physics</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Physics&amp;diff=3327"/>
		<updated>2007-09-25T23:56:12Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Physics, or Physics Driver, when applied to an object, will affect a tank touching it in some way.  Physics can be applied to any 2.0 object, namely: [[mesh]], [[meshbox]],[[meshpyr]],[[sphere]],[[cone]],[[tetra]], and [[arc]].  Similar to [[material|materials]], they can not be applied to the [[box]] or [[pyramid]] objects unless the server ([[bzfs]]) is version 2.0.9 or later.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 physics &lt;br /&gt;
   name example_phydrv&lt;br /&gt;
   linear 0.0 0.0 0.0&lt;br /&gt;
   angular 0.0 0.0 0.0&lt;br /&gt;
   slide 0.0&lt;br /&gt;
   death Message goes here. &lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
The valid parameters for physics are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=Name of the physics driver, for reference&lt;br /&gt;
linear=Cause a tank to move linearly at the given velocity (x/y/z). For example linear 5 0 0 would cause any tanks on the object to move at a velocity of 5 towards X+ (the side of the map with the highest value of X).&lt;br /&gt;
angular=Cause a tank to rotate at the given velocity,(Rotation velocity, x/y coordinates of the centre).&lt;br /&gt;
slide=Cause the tank to accelerate slowly during the time given. (i.e. Makes a &#039;slippery&#039; surface.)(Time until max velocity (&amp;gt; 0.0 enables)&lt;br /&gt;
death=Causes the tank to die on contact. Player sees the given message&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A physics driver can be called by adding &#039;phydrv &amp;lt;name&amp;gt;&#039; to an object, group or mesh face, like so:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 meshbox&lt;br /&gt;
  position 0 0 10&lt;br /&gt;
  size 10 10 5&lt;br /&gt;
  phydrv example_phydrv&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editor Support ==&lt;br /&gt;
There are currently no supported editors: physics drivers will need to be added by hand in a text editor.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Physics object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Physics&amp;diff=3315</id>
		<title>Talk:Physics</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Physics&amp;diff=3315"/>
		<updated>2007-09-25T17:06:23Z</updated>

		<summary type="html">&lt;p&gt;Tedius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page has confusing and almost contradictory statements as to which objects can use physics drivers and which can&#039;t!  Can someone &amp;quot;in the know&amp;quot; tidy it up?  [[User:Mr Burns|Mr Burns]]&lt;br /&gt;
Done, but my wording probably needs some help.  Also, can we decide on a standardized way to do the code on these objects? such as: linear 0 0 5 #&amp;lt;x y z&amp;gt;        angular 0 0 #&amp;lt;x y&amp;gt;[[User:Tedius|Tedius]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Physics&amp;diff=3314</id>
		<title>Physics</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Physics&amp;diff=3314"/>
		<updated>2007-09-25T16:58:17Z</updated>

		<summary type="html">&lt;p&gt;Tedius: clarified(?) objects that it can be applied to.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Physics, or Physics Driver, when applied to an object, will affect a tank touching it in some way.  Physics can be applied to any 2.0 object, namely: [[mesh]], [[meshbox]],[[meshpyr]],[[sphere]],[[cone]],[[tetra]], and [[arc]].  Similar to [[material|materials]], they can not be applied to the [[box]] or [[pyramid]] objects.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 physics &lt;br /&gt;
   name example_phydrv&lt;br /&gt;
   linear 0.0 0.0 0.0&lt;br /&gt;
   angular 0.0 0.0 0.0&lt;br /&gt;
   slide 0.0&lt;br /&gt;
   death Message goes here. &lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
The valid parameters for physics are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=Name of the physics driver, for reference&lt;br /&gt;
linear=Cause a tank to move linearly at the given velocity (x/y/z). For example linear 5 0 0 would cause any tanks on the object to move at a velocity of 5 towards X+ (the side of the map with the highest value of X).&lt;br /&gt;
angular=Cause a tank to rotate at the given velocity,(Rotation velocity, x/y coordinates of the centre).&lt;br /&gt;
slide=Cause the tank to accelerate slowly during the time given. (i.e. Makes a &#039;slippery&#039; surface.)(Time until max velocity (&amp;gt; 0.0 enables)&lt;br /&gt;
death=Causes the tank to die on contact. Player sees the given message&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A physics driver can be called by adding &#039;phydrv &amp;lt;name&amp;gt;&#039; to an object, group or mesh face, like so:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 meshbox&lt;br /&gt;
  position 0 0 10&lt;br /&gt;
  size 10 10 5&lt;br /&gt;
  phydrv example_phydrv&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editor Support ==&lt;br /&gt;
There are currently no supported editors: physics drivers will need to be added by hand in a text editor.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Physics object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3291</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3291"/>
		<updated>2007-09-22T17:34:39Z</updated>

		<summary type="html">&lt;p&gt;Tedius: 3 vertices are required&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mesh is a [[BZW]] map object that defines an arbitrary three dimensional shape. A mesh is defined as a series of faces containing 3 or more points(vertices) in three dimensional space.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a mesh object is as follows, this is only an example&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 mesh&lt;br /&gt;
  name example_mesh&lt;br /&gt;
  # Material properties applied to a mesh apply to all faces&lt;br /&gt;
  # that follow the setting. Mesh faces will alter their own&lt;br /&gt;
  # properties without affecting the state of the mesh properties.&lt;br /&gt;
  # The same pattern is used to apply physics drivers.&lt;br /&gt;
  inside 5.5 4.5 1.2 # add an inside point (repeatable) &lt;br /&gt;
  outside 0 0 1000 # add an outside point (repeatable) &lt;br /&gt;
  vertex 100 200 300 # add a vertex (repeatable) &lt;br /&gt;
  normal 1.0 0 0 # add a normal (repeatable) &lt;br /&gt;
  texcoord 0.1 0.75 # add a texture coordinate (repeatable) &lt;br /&gt;
  shift 0 0 0 # (repeatable) &lt;br /&gt;
  scale 1 1 1 # (repeatable) &lt;br /&gt;
  shear 0 0 0 # (repeatable) &lt;br /&gt;
  spin angle nx ny nz # (repeatable) &lt;br /&gt;
  phydrv example_phydrv # assign a physics driver &lt;br /&gt;
  smoothbounce # ricochets use normals &lt;br /&gt;
  noclusters # render each mesh face individually &lt;br /&gt;
             # (this can be useful for occluders) &lt;br /&gt;
  face # start a face (repeatable) &lt;br /&gt;
       # faces must be convex polygons &lt;br /&gt;
    vertices 1 4 0 3 5 # list of vertices (requires at least three) &lt;br /&gt;
    normals 2 6 0 4 7 # list of normals (optional) &lt;br /&gt;
    texcoords 0 3 2 4 9 # list of texture coordinates (optional) &lt;br /&gt;
    phydrv example_phydrv # assign a physics driver &lt;br /&gt;
    smoothbounce &lt;br /&gt;
    noclusters &lt;br /&gt;
    drivethrough &lt;br /&gt;
    shootthrough &lt;br /&gt;
    passable &lt;br /&gt;
    material &lt;br /&gt;
  endface # end the face &lt;br /&gt;
  #&lt;br /&gt;
  #  This next element can be added to increase the rendering speed&lt;br /&gt;
  #  of the mesh object. If the client is capable of using this data,&lt;br /&gt;
  #  then it is used to draw the mesh instead of the face  information.&lt;br /&gt;
  #&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
 end	  # mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for a mesh are&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=The name of the mesh&lt;br /&gt;
vertex= this is a &#039;corner&#039; of your mesh - a point where faces connect. (at least 3 are required)&lt;br /&gt;
normal= a unit vector describing the direction light will reflect off the object&lt;br /&gt;
texcoord= this is used for mapping textures onto the mesh.  This will link a point of the 2-Dimensional texture to a vertex on the 3-Dimensional object.  (0,0) refers to the lower left corner of the texture, (1,1) refers to the top right.  Textures are defined in the [[material]] object.&lt;br /&gt;
inside= an arbitrary vertex placed on the inside of the mesh object.  This keeps tanks from driving or spawning inside the object.&lt;br /&gt;
phydrv=Assign a physics driver as defined in the [[physics]] object.&lt;br /&gt;
smoothbounce=shot will ricochet from the face in the same direction as the defined normal.&lt;br /&gt;
noclusters=Render each face individually.&lt;br /&gt;
shift=places the mesh using &amp;lt;x y z&amp;gt; coordinates&lt;br /&gt;
scale=resizes the mesh along the x, y, or z axis&lt;br /&gt;
shear=repeatable&lt;br /&gt;
spin=spins the mesh &amp;lt;angle&amp;gt; number of degrees, &amp;lt;n&amp;gt; number of rotations along one or more of the x, y, or z axiis&lt;br /&gt;
matref=Assign a [[material]] to all below faces.&lt;br /&gt;
face=Start a face (required), see below:&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Valid parameters within the face sub-object:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
vertices=Numbered list of vertices for this face. (requires at least three)&lt;br /&gt;
normals=Numbered list of normals for this face.&lt;br /&gt;
texcoords=Numbered list of texture coordinates for this face.&lt;br /&gt;
phydrv=Assign a [[Physics|physics driver]] to this face only.&lt;br /&gt;
smoothbounce=use normals to determine shot ricochets for this face.&lt;br /&gt;
noclusters&#039;&#039;&#039;&lt;br /&gt;
drivethrough=Tanks can drive through this face.&lt;br /&gt;
shootthrough=Tanks can shoot through this face.&lt;br /&gt;
passable=Tanks can both shoot and drive through this face&lt;br /&gt;
matref=Assign a [[material]] to this face.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Meshes have full support for [[Material]] (wherein custom textures can be defined) and [[Physics Drivers]].&lt;br /&gt;
&lt;br /&gt;
==DrawInfo==&lt;br /&gt;
[[DrawInfo]] can be added to the mesh object to increase rendering efficiency, allowing the designer to specify which details will be seen from certain distances.  It can also be used to rotate a mesh object, though tanks can not interact with the moving object.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The appearance of a mesh will vary greatly as by its very nature it can be defined to look like anything.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The mesh object is supported by the [[BZWTools]] blender plugin, the Wings3D Exporter or hand coding.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Mesh object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3264</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3264"/>
		<updated>2007-09-15T22:50:28Z</updated>

		<summary type="html">&lt;p&gt;Tedius: fixed some typos, made the properties section more helpful and less redundant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mesh is a [[BZW]] map object that defines an arbitrary three dimensional shape. A mesh is defined as a series of faces containing 3 or more points(vertices) in three dimensional space.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a mesh object is as follows, this is only an example&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 mesh&lt;br /&gt;
  name example_mesh&lt;br /&gt;
  # Material properties applied to a mesh apply to all faces&lt;br /&gt;
  # that follow the setting. Mesh faces will alter their own&lt;br /&gt;
  # properties without affecting the state of the mesh properties.&lt;br /&gt;
  # The same pattern is used to apply physics drivers.&lt;br /&gt;
  inside 5.5 4.5 1.2 # add an inside point (repeatable) &lt;br /&gt;
  outside 0 0 1000 # add an outside point (repeatable) &lt;br /&gt;
  vertex 100 200 300 # add a vertex (repeatable) &lt;br /&gt;
  normal 1.0 0 0 # add a normal (repeatable) &lt;br /&gt;
  texcoord 0.1 0.75 # add a texture coordinate (repeatable) &lt;br /&gt;
  shift 0 0 0 # (repeatable) &lt;br /&gt;
  scale 1 1 1 # (repeatable) &lt;br /&gt;
  shear 0 0 0 # (repeatable) &lt;br /&gt;
  spin angle nx ny nz # (repeatable) &lt;br /&gt;
  phydrv example_phydrv # assign a physics driver &lt;br /&gt;
  smoothbounce # ricochets use normals &lt;br /&gt;
  noclusters # render each mesh face individually &lt;br /&gt;
             # (this can be useful for occluders) &lt;br /&gt;
  face # start a face (repeatable) &lt;br /&gt;
       # faces must be convex polygons &lt;br /&gt;
    vertices 1 4 0 3 5 # list of vertices (requires at least three) &lt;br /&gt;
    normals 2 6 0 4 7 # list of normals (optional) &lt;br /&gt;
    texcoords 0 3 2 4 9 # list of texture coordinates (optional) &lt;br /&gt;
    phydrv example_phydrv # assign a physics driver &lt;br /&gt;
    smoothbounce &lt;br /&gt;
    noclusters &lt;br /&gt;
    drivethrough &lt;br /&gt;
    shootthrough &lt;br /&gt;
    passable &lt;br /&gt;
    material &lt;br /&gt;
  endface # end the face &lt;br /&gt;
  #&lt;br /&gt;
  #  This next element can be added to increase the rendering speed&lt;br /&gt;
  #  of the mesh object. If the client is capable of using this data,&lt;br /&gt;
  #  then it is used to draw the mesh instead of the face  information.&lt;br /&gt;
  #&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
 end	  # mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for a mesh are&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=The name of the mesh&lt;br /&gt;
vertex= this is a &#039;corner&#039; of your mesh - a point where faces connect. (at least required)&lt;br /&gt;
normal= a unit vector describing the direction light will reflect off the object&lt;br /&gt;
texcoord= this is used for mapping textures onto the mesh.  This will link a point of the 2-Dimensional texture to a vertex on the 3-Dimensional object.  (0,0) refers to the lower left corner of the texture, (1,1) refers to the top right.  Textures are defined in the [[material]] object.&lt;br /&gt;
inside= an arbitrary vertex placed on the inside of the mesh object.  This keeps tanks from driving or spawning inside the object.&lt;br /&gt;
phydrv=Assign a physics driver as defined in the [[physics]] object.&lt;br /&gt;
smoothbounce=shot will ricochet from the face in the same direction as the defined normal.&lt;br /&gt;
noclusters=Render each face individually.&lt;br /&gt;
shift=places the mesh using &amp;lt;x y z&amp;gt; coordinates&lt;br /&gt;
scale=resizes the mesh along the x, y, or z axis&lt;br /&gt;
shear=repeatable&lt;br /&gt;
spin=spins the mesh &amp;lt;angle&amp;gt; number of degrees, &amp;lt;n&amp;gt; number of rotations along one or more of the x, y, or z axiis&lt;br /&gt;
matref=Assign a [[material]] to all below faces.&lt;br /&gt;
face=Start a face (required), see below:&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Valid parameters within the face sub-object:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
vertices=Numbered list of vertices for this face. (requires at least three)&lt;br /&gt;
normals=Numbered list of normals for this face.&lt;br /&gt;
texcoords=Numbered list of texture coordinates for this face.&lt;br /&gt;
phydrv=Assign a [[Physics|physics driver]] to this face only.&lt;br /&gt;
smoothbounce=use normals to determine shot ricochets for this face.&lt;br /&gt;
noclusters&#039;&#039;&#039;&lt;br /&gt;
drivethrough=Tanks can drive through this face.&lt;br /&gt;
shootthrough=Tanks can shoot through this face.&lt;br /&gt;
passable=Tanks can both shoot and drive through this face&lt;br /&gt;
matref=Assign a [[material]] to this face.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Meshes have full support for [[Material]] (wherein custom textures can be defined) and [[Physics Drivers]].&lt;br /&gt;
&lt;br /&gt;
==DrawInfo==&lt;br /&gt;
[[DrawInfo]] can be added to the mesh object to increase rendering efficiency, allowing the designer to specify which details will be seen from certain distances.  It can also be used to rotate a mesh object, though tanks can not interact with the moving object.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The appearance of a mesh will vary greatly as by its very nature it can be defined to look like anything.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The mesh object is supported by the [[BZWTools]] blender plugin, the Wings3D Exporter or hand coding.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Mesh object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3263</id>
		<title>DrawInfo</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3263"/>
		<updated>2007-09-15T22:29:01Z</updated>

		<summary type="html">&lt;p&gt;Tedius: mesh links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DrawInfo allows clients to render the [[Mesh|mesh]] object more efficiently through LODs (Levels of Detail).  Many associate drawinfo with the ability to create moving objects in a map.  &lt;br /&gt;
==Code==&lt;br /&gt;
The code must be added to the mesh object.&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for drawinfo are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
dlist=(recommended) requests that the client use display lists to render the object&lt;br /&gt;
decorative=disables drawInfo in older clients&lt;br /&gt;
angvel=causes the mesh object to spin at the given rate in degrees per second&lt;br /&gt;
extents=&lt;br /&gt;
sphere=&lt;br /&gt;
vertex=if defined within the drawInfo section, the vertices, normals, and texcoords will be used instead of those defined in the mesh&lt;br /&gt;
corner=(required)a point defined by a vertex, normal, and a texcoord&lt;br /&gt;
lod=(required)sections that determines which faces/points will be rendered from specific distances (lengthPerPixel)&lt;br /&gt;
lengthPerPixel=(required)distance from which the points will be rendered, 0 is close, .3 is about as far away as is needed &lt;br /&gt;
matref=(required)material to use for the faces that follow it.&lt;br /&gt;
points=&lt;br /&gt;
lines=&lt;br /&gt;
lineloop=&lt;br /&gt;
linestrip=&lt;br /&gt;
tris=index numbers of corners that create triangles&lt;br /&gt;
tristrip=series of points that form a chain of triangles.&lt;br /&gt;
trifan= a series of points that create triangles that fan out from a single point.  That point, usually in the center, is placed first in the series.  Trifans are used only in pyramid and cone-shaped meshes.&lt;br /&gt;
quads=points that create 4-sided mesh planes&lt;br /&gt;
quadstrip=series of points that create a chain of 4-sided planes.  Similarly to tristrips, the series zig-zags between the points, starting in the counter-clockwise direction.&lt;br /&gt;
polygon=same as quads except for planes of more than 4 sides.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
DrawInfo is only applied to existing [[Mesh|mesh]] objects.  If you look closely in Louman&#039;s Mystic Valley, shrubbery and trees will change in appearance slightly when viewed from about 200 units away.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
There is currently no support for drawInfo except for hand-editing&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
DrawInfo was only recently added (by trepan) and is rarely used for anything other than experimental and proof-of-concept maps.    Notable exceptions to this are: Louman&#039;s Mystic Valley, and Louman&#039;s Churchyard.&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3262</id>
		<title>DrawInfo</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3262"/>
		<updated>2007-09-15T22:00:28Z</updated>

		<summary type="html">&lt;p&gt;Tedius: /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DrawInfo allows clients to render mesh more efficiently through LODs (Level of Detail).  Many associate drawinfo with the ability to create moving objects in a map.  &lt;br /&gt;
==Code==&lt;br /&gt;
The code must be added to the mesh object.&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for drawinfo are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
dlist=(recommended) requests that the client use display lists to render the object&lt;br /&gt;
decorative=disables drawInfo in older clients&lt;br /&gt;
angvel=causes the mesh object to spin at the given rate in degrees per second&lt;br /&gt;
extents=&lt;br /&gt;
sphere=&lt;br /&gt;
vertex=if defined within the drawInfo section, the vertices, normals, and texcoords will be used instead of those defined in the mesh&lt;br /&gt;
corner=(required)a point defined by a vertex, normal, and a texcoord&lt;br /&gt;
lod=(required)sections that determines which faces/points will be rendered from specific distances (lengthPerPixel)&lt;br /&gt;
lengthPerPixel=(required)distance from which the points will be rendered, 0 is close, .3 is about as far away as is needed &lt;br /&gt;
matref=(required)material to use for the faces that follow it.&lt;br /&gt;
points=&lt;br /&gt;
lines=&lt;br /&gt;
lineloop=&lt;br /&gt;
linestrip=&lt;br /&gt;
tris=index numbers of corners that create triangles&lt;br /&gt;
tristrip=series of points that form a chain of triangles.&lt;br /&gt;
trifan= a series of points that create triangles that fan out from a single point.  That point, usually in the center, is placed first in the series.  Trifans are used only in pyramid and cone-shaped meshes.&lt;br /&gt;
quads=points that create 4-sided mesh planes&lt;br /&gt;
quadstrip=series of points that create a chain of 4-sided planes.  Similarly to tristrips, the series zig-zags between the points, starting in the counter-clockwise direction.&lt;br /&gt;
polygon=same as quads except for planes of more than 4 sides.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
DrawInfo is only applied to existing meshes.  If you look closely in places like Louman&#039;s Mystic Valley, shrubbery and trees will change in appearance slightly when viewed from about 200 units away.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
There is currently no support for drawInfo except for hand-editing&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
DrawInfo was only recently added (by trepan) and is rarely used for anything other than experimental and proof-of-concept maps.  Notable exceptions to this are: Louman&#039;s Mystic Valley, and Louman&#039;s Churchyard.&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3256</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Mesh&amp;diff=3256"/>
		<updated>2007-09-12T17:16:55Z</updated>

		<summary type="html">&lt;p&gt;Tedius: /* drawInfo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mesh is a [[BZW]] map object that defines an arbitrary three dimensional shape. A mesh is defined as a series of faces containing 3 or more points in three dimensional space ( or a vertex ).&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a mesh object is as follows, this is only an example&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 mesh&lt;br /&gt;
  name example_mesh&lt;br /&gt;
  # Material properties applied to a mesh apply to all faces&lt;br /&gt;
  # that follow the setting. Mesh faces will alter their own&lt;br /&gt;
  # properties without affecting the state of the mesh properties.&lt;br /&gt;
  # The same pattern is used to apply physics drivers.&lt;br /&gt;
  inside 5.5 4.5 1.2 # add an inside point (repeatable) &lt;br /&gt;
  outside 0 0 1000 # add an outside point (repeatable) &lt;br /&gt;
  vertex 100 200 300 # add a vertex (repeatable) &lt;br /&gt;
  normal 1.0 0 0 # add a normal (repeatable) &lt;br /&gt;
  texcoord 0.1 0.75 # add a texture coordinate (repeatable) &lt;br /&gt;
  shift 0 0 0 # (repeatable) &lt;br /&gt;
  scale 1 1 1 # (repeatable) &lt;br /&gt;
  shear 0 0 0 # (repeatable) &lt;br /&gt;
  spin angle nx ny nz # (repeatable) &lt;br /&gt;
  phydrv example_phydrv # assign a physics driver &lt;br /&gt;
  smoothbounce # ricochets use normals &lt;br /&gt;
  noclusters # render each mesh face individually &lt;br /&gt;
             # (this can be useful for occluders) &lt;br /&gt;
  face # start a face (repeatable) &lt;br /&gt;
       # faces must be convex polygons &lt;br /&gt;
    vertices 1 4 0 3 5 # list of vertices (requires at least three) &lt;br /&gt;
    normals 2 6 0 4 7 # list of normals (optional) &lt;br /&gt;
    texcoords 0 3 2 4 9 # list of texture coordinates (optional) &lt;br /&gt;
    phydrv example_phydrv # assign a physics driver &lt;br /&gt;
    smoothbounce &lt;br /&gt;
    noclusters &lt;br /&gt;
    drivethrough &lt;br /&gt;
    shootthrough &lt;br /&gt;
    passable &lt;br /&gt;
    material &lt;br /&gt;
  endface # end the face &lt;br /&gt;
  #&lt;br /&gt;
  #  This next element can be added to increase the rendering speed&lt;br /&gt;
  #  of the mesh object. If the client is capable of using this data,&lt;br /&gt;
  #  then it is used to draw the mesh instead of the face  information.&lt;br /&gt;
  #&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
 end	  # mesh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for a mesh are&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=The name of the mesh&lt;br /&gt;
vertex=Add a vertex to the mesh (repeatable); this is a &#039;corner&#039; of your mesh - a point where faces connect.&lt;br /&gt;
normal=Add a normal to the mesh  (repeatable)&lt;br /&gt;
texcoord=Add a texture coordinate (repeatable); this is used for mapping textures onto complicated meshes.&lt;br /&gt;
phydrv=Assign a physics driver to the entire mesh.&lt;br /&gt;
smoothbounce=Ricochets use normals.&lt;br /&gt;
noclusters=Render each face individually.&lt;br /&gt;
shift=repeatable&lt;br /&gt;
scale=repeatable&lt;br /&gt;
shear=repeatable&lt;br /&gt;
spin=repeatable&lt;br /&gt;
matref=Assgn a material to all below faces.&lt;br /&gt;
face=Start a face (repeatable), see below:&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Valid parameters within the face sub-object:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
verticies=Numbered list of verticies for this face, requires at least three.&lt;br /&gt;
normals=Numbered list of normals for this face.&lt;br /&gt;
texcoords=Numbered list of texture coordinates for this face.&lt;br /&gt;
phydrv=Assign a physics driver to this face only.&lt;br /&gt;
smoothbounce&#039;&#039;&#039;&lt;br /&gt;
noclusters&#039;&#039;&#039;&lt;br /&gt;
drivethrough=Tanks can drive through this face.&lt;br /&gt;
shootthrough=Tanks can shoot through this face.&lt;br /&gt;
passable=Tanks can both shoot and drive through this face&lt;br /&gt;
matref=Assign a material to this face.&lt;br /&gt;
endface&#039;&#039;&#039; End this face.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
Meshes have full support for [[Material]] (wherein custom textures can be defined) and [[Physics Drivers]].&lt;br /&gt;
&lt;br /&gt;
==drawInfo==&lt;br /&gt;
[[DrawInfo]] can be added to the mesh object to increase rendering efficiency, allowing the designer to specify which details will be seen from certain distances.  It can also be used to rotate a mesh object, though tanks can not interact with the moving object.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The appearance of a mesh will vary greatly as by its very nature it can be defined to look like anything.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The mesh object is supported by the [[BZWTools]] blender plugin, the Wings3D Exporter or hand coding.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Mesh object was added with the [[BZFlag 2.0.0|v2.0.0]] release of BZFlag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map_Objects]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Drawinfo&amp;diff=3255</id>
		<title>Drawinfo</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Drawinfo&amp;diff=3255"/>
		<updated>2007-09-12T17:16:17Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Drawinfo moved to DrawInfo: capital I&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[DrawInfo]]&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3254</id>
		<title>DrawInfo</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3254"/>
		<updated>2007-09-12T17:16:17Z</updated>

		<summary type="html">&lt;p&gt;Tedius: Drawinfo moved to DrawInfo: capital I&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DrawInfo allows clients to render mesh more efficiently through LODs (Level of Detail).  Many associate drawinfo with the ability to create moving objects in a map.  &lt;br /&gt;
==Code==&lt;br /&gt;
The code must be added to the mesh object.&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for drawinfo are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
dlist=&lt;br /&gt;
decorative=disables drawinfo in older clients&lt;br /&gt;
angvel=causes the mesh object to spin at a given rate&lt;br /&gt;
extents=&lt;br /&gt;
sphere=&lt;br /&gt;
corner=this is a series of points specified by the indexes of the vertices, normals, and texcoords&lt;br /&gt;
vertex=&lt;br /&gt;
normal= &lt;br /&gt;
texcoord= &lt;br /&gt;
lod=sections that determine which faces/points will be rendered at specified distances (lengthPerPixel)&lt;br /&gt;
lengthPerPixel=distance from which the points will be rendered, 0 is close, .3 is about as far away as is needed &lt;br /&gt;
matref=material to use as defined in the materials object&lt;br /&gt;
points=&lt;br /&gt;
lines=&lt;br /&gt;
lineloop=&lt;br /&gt;
linestrip=&lt;br /&gt;
tris=index numbers of corners that create triangles&lt;br /&gt;
tristrip=series of points that form a chain of triangles.&lt;br /&gt;
trifan= a series of points that create triangles that fan out from a single point.  That point, usually in the center, is placed first in the series.  Trifans are used only in pyramid and cone-shaped meshes.&lt;br /&gt;
quads=points that create 4-sided mesh planes&lt;br /&gt;
quadstrip=series of points that create a chain of 4-sided planes.  Similarly to tristrips, the series zig-zags between the points, starting in the counter-clockwise direction.&lt;br /&gt;
polygon=same as quads except for planes of more than 4 sides.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
DrawInfo is only applied to existing meshes.  If you look closely in places like Louman&#039;s Mystic Valley, shrubbery and trees will change in appearance slightly when viewed from about 200 units away.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
There is currently no support for drawInfo except for hand-editing&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
DrawInfo was only recently added (by trepan) and is rarely used for anything other than experimental and proof-of-concept maps.  Notable exceptions to this are: Louman&#039;s Mystic Valley, and Louman&#039;s Churchyard.&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3253</id>
		<title>DrawInfo</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DrawInfo&amp;diff=3253"/>
		<updated>2007-09-12T17:13:54Z</updated>

		<summary type="html">&lt;p&gt;Tedius: oops, draw&amp;lt;capital &amp;#039;I&amp;#039;&amp;gt;nfo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DrawInfo allows clients to render mesh more efficiently through LODs (Level of Detail).  Many associate drawinfo with the ability to create moving objects in a map.  &lt;br /&gt;
==Code==&lt;br /&gt;
The code must be added to the mesh object.&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
  drawInfo&lt;br /&gt;
    dlist		      # display list for all material sets&lt;br /&gt;
    decorative		      # older clients with not see this mesh&lt;br /&gt;
    angvel &amp;lt;degrees/sec&amp;gt;       # rotation about initial Z axis&lt;br /&gt;
    extents &amp;lt;minX&amp;gt; &amp;lt;minY&amp;gt; &amp;lt;minZ&amp;gt; &amp;lt;maxX&amp;gt; &amp;lt;maxY&amp;gt; &amp;lt;maxZ&amp;gt;&lt;br /&gt;
    sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
    corner &amp;lt;v&amp;gt; &amp;lt;n&amp;gt; &amp;lt;t&amp;gt;	      (repeatable)&lt;br /&gt;
    vertex 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    normal 0.0 0.0 0.0	      (repeatable)&lt;br /&gt;
    texcoord 0.0 0.0	      (repeatable)&lt;br /&gt;
    lod			      (repeatable)&lt;br /&gt;
      lengthPerPixel &amp;lt;value&amp;gt;&lt;br /&gt;
      matref &amp;lt;name&amp;gt;	      (repeatable)&lt;br /&gt;
        dlist		      # display list for this material set&lt;br /&gt;
        sphere &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; &amp;lt;radiusSquared&amp;gt;&lt;br /&gt;
        points	 0	      (repeatable)&lt;br /&gt;
        lines	 0 1	      (repeatable)&lt;br /&gt;
        lineloop  0 1	      (repeatable)&lt;br /&gt;
        linestrip 0 1	      (repeatable)&lt;br /&gt;
        tris	 0 1 2	      (repeatable)&lt;br /&gt;
        tristrip  0 1 2	      (repeatable)&lt;br /&gt;
        trifan	 0 1 2	      (repeatable)&lt;br /&gt;
        quads	 0 1 2 3      (repeatable)&lt;br /&gt;
        quadstrip 0 1 2 3      (repeatable)&lt;br /&gt;
        polygon	 0 1 2	      (repeatable)&lt;br /&gt;
      end  # matref&lt;br /&gt;
    end	  # lod&lt;br /&gt;
  end	  # drawInfo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Valid parameters for drawinfo are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
dlist=&lt;br /&gt;
decorative=disables drawinfo in older clients&lt;br /&gt;
angvel=causes the mesh object to spin at a given rate&lt;br /&gt;
extents=&lt;br /&gt;
sphere=&lt;br /&gt;
corner=this is a series of points specified by the indexes of the vertices, normals, and texcoords&lt;br /&gt;
vertex=&lt;br /&gt;
normal= &lt;br /&gt;
texcoord= &lt;br /&gt;
lod=sections that determine which faces/points will be rendered at specified distances (lengthPerPixel)&lt;br /&gt;
lengthPerPixel=distance from which the points will be rendered, 0 is close, .3 is about as far away as is needed &lt;br /&gt;
matref=material to use as defined in the materials object&lt;br /&gt;
points=&lt;br /&gt;
lines=&lt;br /&gt;
lineloop=&lt;br /&gt;
linestrip=&lt;br /&gt;
tris=index numbers of corners that create triangles&lt;br /&gt;
tristrip=series of points that form a chain of triangles.&lt;br /&gt;
trifan= a series of points that create triangles that fan out from a single point.  That point, usually in the center, is placed first in the series.  Trifans are used only in pyramid and cone-shaped meshes.&lt;br /&gt;
quads=points that create 4-sided mesh planes&lt;br /&gt;
quadstrip=series of points that create a chain of 4-sided planes.  Similarly to tristrips, the series zig-zags between the points, starting in the counter-clockwise direction.&lt;br /&gt;
polygon=same as quads except for planes of more than 4 sides.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
DrawInfo is only applied to existing meshes.  If you look closely in places like Louman&#039;s Mystic Valley, shrubbery and trees will change in appearance slightly when viewed from about 200 units away.&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
There is currently no support for drawInfo except for hand-editing&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
DrawInfo was only recently added (by trepan) and is rarely used for anything other than experimental and proof-of-concept maps.  Notable exceptions to this are: Louman&#039;s Mystic Valley, and Louman&#039;s Churchyard.&lt;/div&gt;</summary>
		<author><name>Tedius</name></author>
	</entry>
</feed>