Is there such a thing as too much BZFlag?

BZTips #2 – Client-side variables

by blast on 2009-03-03, 6 comments

The BZFlag client and server both use what’s called the BZDB (BZFlag DataBase) to store different variables. Many of you know about the various server variables that BZFS has. You can also set client-side variables using the /localset command. To run this, you would hit ‘n’ or whatever your chat key is, type /localset, and then the name of the variable you want to change. After that, you need to type the new value for that variable. Once you have all that, you can press Enter. On 2.0.x versions of the game, you have to be on a server to run /localset. In recent code (what will become 3.0.0), you do not have to be on a server to run it.

Here’s an example of what you could run:

/localset someVariableName 1

Okay, now that you know how to set client-side variables, I’m going to cover a handful of them that aren’t exposed in the GUI.


The showCoordinates variable can be set to 1, which will then show your tank’s current coordinates in the top right corner of the screen. This can be useful for map development to determine the position of the tank when resting on an object or platform.


This is another boolean value (0 for off, 1 for on) that you can set. When this variable is turned on, and you are in the observer mode following or driving with a tank, it will switch the camera view to a view of their bullet when they fire. This might be removed in future versions of BZFlag, but it exists in at least 2.0.10. Kinda makes you sick if you use it for too long, but it is fun to fly along with a guided missile.


This one is especially useful for getting good screenshots. It turns off the manority of the user interface. The radar and chat panel still remain, but you can turn those off with ‘q’ and ‘w’. With all of that combined, you can get a screenshot that doesn’t have any text or user interface.


This one is mainly useful for admins. You can set this to a ratio (such as 0.3) and if a user has that ratio of team kills (30%, based on the previous example), then it will highlight their number of TKs in cyan. Neat!


These two options can be altered, and will affect stuff like the star patterns. I’m not sure what all effects this has (might affect the moon/sun position, time of sunrise/sunset, etc), but feel free to play around with it. The sky system in BZFlag is quite advanced.

EDIT: trepan also mentioned that some (or all?) of theses could be replaced with Lua scripts. However, to replicate trackShots, you’d need to use LuaWorld or LuaBzOrg, since LuaUser cannot access shot data.

6 thoughts on “BZTips #2 – Client-side variables

  1. Wow, the “trackShots” variable reminds me on the old DOS helicopter game LHX where this was possible too…neat gimmick.
    The sky variables were the most impressing ones. I didn’t verify the result in detail, but it seems to be correct and with a lot of work behind it.

    Thanks again for your background information and when I’m looking into “defaultBZDB.cxx” there’s still a lot to come! ;o)

  2. I always wondered blast, why do the parts of the variables have Caps? like why is it “_setSkyColor” instead of just being “_setskycolor”?

  3. That’s just the way it was coded. Camel case (look it up on Wikipedia) is pretty common in programming.

  4. Hahaha never knew about that trackShots thing. Makes me dizzzzzy! Its lots of fun on one shot servers like Quickshot

    • That feature still works in 2.4.2 for me. Make sure you’re in observer mode and either using the “Driving With” or “Following” view modes, which you can cycle through with the F8 key.

Comments are closed.