Skip to Content

If you use Homebrew on macOS, you may download BZFlag via the brew command. Alternatively, you may download our binary below and drag the .app into your Applications directory. Then right/control click (or two finger tap) on the application and choose Open.

brew cask install --no-quarantine bzflag
Gatekeeper Warning
The --no-quarantine flag is required as of 2.4.20 to install via Homebrew as our executable is not currently signed.

If you use Flatpak or Snapcraft on your Linux system, you may install BZFlag through the flatpak or snap command.

Alternatively, you may install from your package manager or compile from source. Note that some distribution packages may automatically run a game server.

flatpak install flathub org.bzflag.BZFlag
snap install bzflag

Download 2.4.20 source as

Released on April 24, 2020

Release Summary

This release added several new functions/events to the bzfs API and reorganized the client menus to improve usability. It also adjusts some default options, such as radar size, to improve the new user experience.

Join the discussion »


  • Reorganization of the menus to improve usability - Scott Wichser
  • Add bz_isWithinWorldBoundaries to API - Vladimir Jimenez
  • Use teleporter names in /saveworld .obj exports - Vladimir Jimenez
  • Add bz_getSpawnPointWithin to API - Vladimir Jimenez
  • Fix NetHandler compiler errors on Alpine Linux - Jim Melton
  • Significantly improve platform-dependent header imports - Jim Melton
  • Only perform texture conversion to internal format once - Alfredo Tupone, Scott Wichser
  • Removal of never used logic for expiring builds - Zehra
  • Radar size and console height are controlled with BZDB variables - The Noah
  • Add bz_getNearestFlagSafetyZone to the API - Vladimir Jimenez
  • Don't allow hunt to be used when not connected to a server - Zehra
  • Improve vsync settings with SDL2 - Joshua Bodine
  • Ignore the -NSDocumentRevisionsDebugMode YES option in Xcode - Joshua Bodine
  • Add Slovak translation - Jose Riha, Scott Wichser
  • Use a greyscale color scale based on relative height when colored radar shots are disabled - Alfredo Tupone
  • Sort locally discovered servers to the top of the server list - Scott Wichser
  • Add the Open Free For All mode to the Start Server menu - Scott Wichser
  • Remove ineffective performance tests and just default to "modern" settings - Scott Wichser
  • Change default settings to better suit first time players - Scott Wichser
  • Standardize the rabbit game mode name to "Rabbit Chase" - Scott Wichser
  • Do not scale NPOT textures when OpenGL supports them - Alfredo Tupone
  • Generate mipmaps with OpenGL 1.4 extension - Alfredo Tupone
  • Fixed SDL 1.2 builds on macOS - Joshua Bodine
  • Force zbuffer for Experimental quality - Alfredo Tupone
  • Use GLEW to detect GL_EXT_texture_edge_clamp - Alfredo Tupone
  • Add support for storing arbitrary data in API player records - Jeff Myers
  • Fix API string utility functions sometimes losing values - Vladimir Jimenez
  • Add new bz_ePlayerDeathFinalizedEvent API event - Vladimir Jimenez
  • Display Time-per-Frame with 2 decimal digits and averaged over time - Alfredo Tupone
  • Output correct error when loading a nonexistent bzfs plugin - Vladimir Jimenez
  • Remove obsolete bzfs option from Start Server menu on Windows - Scott Wichser


BZFlag is licensed under the LGPL 2.1 and MPL 2.0 and is free to use/distribute/modify as long as the terms of the license are followed.

Other Releases

The source code repository is available on GitHub for BZFlag and our related sub-projects.

Previous releases are available in the download archive and on GitHub.