All Bitfighter Releases

All Bitfighter releases are listed here, along with the relevant release notes.

Release History

Release Version Release Date
022 June 1, 2021
021 June 28, 2020
019g Dec 12, 2018
019f May 5, 2017
019e May 11, 2015
019d Jan 3, 2015
019c April 4, 2014
019b March 11, 2014
019a February 13, 2014
019 November 30, 2013
018a March 1, 2013
018 December 05, 2012
017b May 09, 2012
017a March 31, 2012
016 Jan 31, 2012
015a Apr 18, 2011
015 Feb 3, 2011
014a Dec 1, 2010
014 Nov 30, 2010
013e Oct 25, 2010
013b Sep 2, 2010
013a Aug 21, 2010
013 Aug 16, 2010
012c May 6, 2010
012a Jan 4, 2010
012 Jan 1, 2010
011b Dec 18, 2009
011a Nov 13, 2009
011 Nov 11, 2009
010 Feb 03, 2009
009 June 27, 2008
008a May 13, 2008
008 May 13, 2008
007.5 Developer Release April 19, 2008
007 April 12, 2008
006 March 30, 2008
005 March 10, 2008
004 February 20, 2008
003 February 17, 2008
002 February 7, 2008
001 January 16, 2008

022 Changes

New Features

  • New weapon: Railgun
  • Enhanced item: team-based asteroids
  • S_Bot names


  • S_Bot shields smarter but more like a human
  • S_Bot shoots smarter and more like a human
  • S_Bot is much smarter with Cores and GoFasts
  • Editor: properly mitered barrier corners
  • Bot zone generation is smarter around barriers
  • GameRecording file numbering has better ordering
  • Server messages can be sent to clients
  • New players and bots are distributed better in Core games
  • Up to 6 loadout presets


  • Editor: fix sometimes disappearing objects when rotating
  • Fix crash when loading a non-existant bot
  • Fix missing in-game messages during announcements
  • Properly highlight turrets/forcefields with inline help system
  • Fix inline help showing over LevelInfo display
  • Fix bots failing on some levels due to bad barrier geometry
  • Fix S_Bot endlessly going to the right on some maps
  • Fix S_Bot stuck in center of Retrieve/HTF maps
  • Fix point earn rate in Rabbit
  • Fix some commands relying on player names
  • Fix being able to rate your own map


  • Remove classic SFX set
  • Luadoc rewrite and updates
  • Notifier is no longer in the download packages but in a separate download
  • Snap package support

021 Changes

New Features

  • Global script option in host menu
  • EnergyItem in the editor
  • Adjustable Core rotation speed
  • In-game health guage
  • Ability to lock soccer balls and flags to their original spawn point
  • Multiple Turret weapons
  • Scoreboard shows kill/death ratio
  • Forcefield health indicators
  • Retrieve games can score with more flags than goals
  • New server commands: /setgloballevelscript, /setserverwelcome
  • Server flag to kick idle players
  • Add a comment to the level database in-game with new /comment command
  • Discord rich-presence integration


  • New stock Retrieve map
  • Host menu reorganization
  • Don't minimize game when switching away
  • Allow jumping to another recorded game in the playback UI
  • Read binary files from Lua
  • Turrets shoot faster
  • Allow larger Nexus scores in the editor


  • Fix editor screen mode bugs
  • Fix editor stall when moving many high vertex count objects
  • Fix editor rendering some objects wrong
  • Fix several other UI bugs
  • Fix bouncer server/client desync
  • Fix window creep in Linux X11
  • Fix server welcome message
  • Lua: Fix crashes with setPos and setGeom
  • Lua: Fix getLeadingTeam/Score


  • Seekers do not bounce off shields
  • Turret friendly fire is now disabled
  • Lua: Removal of some deprecated methods

019g Changes

New Features

  • Multi-core team switching: Core games with 3 or more teams can have early losers redistributed to remaining teams. Option is found in the editor
  • Full resolution screenshots: screenshots will be the full window size instead of always 800x600
  • mp3 decoding now included in all packages
  • Lua: Add set/getAngle methods to moveObject. This will let you set direction of seekers
  • Lua: Allow setting a ship's team


  • Improved scoreboard rendering with long team names
  • Better mouse trapping in-game
  • Game timer turns red with 10 seconds left in the match


  • Fix Windows portable build to be fully backwards compatible on Windows XP
  • Fix memory leak in network code
  • Fix stackoverflow in Linux with logfile initialization
  • Fix various crashes with sorting items in server list and other menus
  • Fix several OSX runtime warnings
  • OSX and Windows updater fixes
  • Fix editor bug when converting a single barrier to a polywall using a plugin
  • Lua: Fix onPlayerJoined event to make robots appear on the correct team


  • OSX i386 support is dropped. Minimum macOS version required is 10.7
  • Bitfighter now requires c++11 to build
  • Minimum SDL version is 2.0.5 for newer gamecontroller support
  • Support for aarch64
  • Build fixes on OSX and Windows. Can fully build with Windows 7+ and OSX 10.7+ now. Includes several updates to internal dependencies

019f changes

This is mostly a bugfix release.

New Features and Improvements

  • New GameController/Joystick subsystem with many more joysticks supported
  • Spy bugs are hexagonal
  • Armor heal rate is reduced
  • Editor: Can set teleporter delay
  • Voting can use /y or /n
  • Game menu font was changed
  • Game playback UI and control improvements
  • Other help and menu improvements and clarifications
  • Lua API: new events onCoreDestroyed, onObjectEnteredZone, onObjectLeftZone
  • Lua API: new FloatCounterMenuItem for editor plugins

General Fixes

  • Fix several crashes in Windows 10
  • Music system fails less often
  • Player names show correctly with /shuffle command
  • Sensor animation is disabled since it is a passive module
  • Voting resets properly on level change
  • Fix some robot zone crashes
  • Robots properly trigger events when entering/leaving zones
  • Fix game time updating with levelgens
  • Fix crash with /pm and unknown player name

Editor Fixes

  • Fix awful editor bug that would overwrite files
  • Fix crash with undoing a teleporter move with a plugin

Other Changes

  • OSX PPC support is dropped. Bitfighter 019e is the last supported version for this platform
  • SDL 1.2 support is dropped

019e changes

This is a minor bugfix release.

General Fixes

  • Host-on-server shutdown disconnects all players now
  • Several game and UI crashes
  • More/Fewer Bots now respect all server limits
  • Team switch delay is disabled if you're the only one left on the server
  • Server permission fixes
  • Don't kick busy/chatting players so fast if multiple levels are cycled
  • Commander's map doesn't flicker if you hold down the key

Editor Fixes

  • Fix several vertex rendering issues
  • Fix some crashes
  • Fix for walls disappearing with 0-point barriers
  • Moving multiple vertexes behaves better
  • Prevent ID duplication in the editor with copy/paste
  • Prevent level upload if you haven't saved it
  • Changed level filename is now saved while switching gametypes


  • Voting time can be set to unlimited
  • Performance improvements
  • Build system improvements
  • Better debian compatibility
  • Vsync enable/disable in the INI
  • Minor instruction updates

New features for 019

  • UI changes everywhere. More sleek and shiny
  • Font changes everywhere. This improves rendering performance in many cases
  • Level database! with upload from editor. See
  • Loadout, Goal, Nexus zones have icons instead of text
  • LineItems have a 'Global' option to be viewd by all teams. This is default
  • Weapon changes:
    • Bouncer uses slightly less energy and stays alive the more it bounces (with an upper limit)
    • Phaser does slighly less damage
    • Triple does more damage and uses more energy (2 hit kills now)
    • Burst uses twice the energy
    • Seeker uses half as much energy, does less damage, shoots faster, and does area damage
    • Mines do not explode unless a burst is within proximity circle. Also Mines in a mine field will not all detonate at once
  • Module changes:
    • Shield uses slightly more energy
    • Armor is slightly stronger, resistant to impulse forces, and it takes 2 asteroids to kill you. Also remove Bouncer advantage against armor
  • Turrets do not hurt themselves with their own weapons
  • Asteroids split when you run into them
  • Many Lua API changes, additions, and enhancements. See Notable ones include:
  • Geom library enhancements. These are very useful with editor plugins
  • Removal of old addLevelLine()
  • More control of many game objects, like a ship's loadout
  • Added a Lua debugger
  • Increase limits on points for most objects
  • Increase limits in the level parameters section of the editor
  • Add ability to change points-per-minute in HTF gametype
  • New server permissions level: Owner. They can kick admins if needed
  • New editor plugins: 'draw_stars' and 'item_select'
  • Levels are saved with real coordinates now. Levels created with 019 are *not* backwards-compatible.
  • No more 'GridSize' level parameter.
  • New plugin dock for the editor (F9)
  • No blanking out background when going idle
  • Add ROBOTS in-game menu to add remove bots easily
  • Add ROBOTS menu when hosting game
  • Add option to have robots intelligently force balanced teams
  • Add marks for regenerative turrets and forcefield projectors
  • Teleporters are repairable
  • 3 new badges! Raging Rabid Rabbit (RAB), Hat Trick (SOC), and Last-Second Win (CTF)
  • Removed score penalty for being killed by Asteroid/Turret in Rabbit gametype
  • Always select first weapon when changing loadout
  • In-game help system. Can be turned on/off in the OPTIONS menu
  • Increase game object limit. We'll see how this goes...
  • Add /rate command for levels that are in the online database
  • You can now edit text in the middle of the word in all the various interfaces
  • Added several text effects for things
  • In-game kill streaks (not recorded in stats yet)
  • Command /shownextlevel to see what the next level in rotation is
  • Command /undeletelevel to undo most recently deleted level with /deletecurrentlevel
  • Editor: Add ability to rotate objects about their center of 'mass'
  • Remove showing keyboard keys in joystick mode
  • Levelgens upload/download with levels now

Bug fixes

  • Fix team sorting with ratings
  • Standalone fixes
  • Fix /shuffle
  • Fix several /idle issues
  • Several Lua API problems, crashes, and memory leaks
  • Turrets no longer target cloaked players with a resource item
  • Fixed score transmission updates using up bandwidth
  • Fix most window bugs on Windows and OSX
  • Normal weapon-damage rules apply to single-team Rabbit gametype
  • No repairing of other players in single-team Bitmatch
  • Keep currently selected weapon when respawning
  • Fix commander's map zoom glitches
  • Fix some energy desychronizations
  • Miscellaneous editor bugs
  • Fix several rounding errors that led to objects inching around slowly in the editor
  • Fix screensaver problems on some Windows systems
  • Fix some 'punching through firewall' issues

Other changes

  • Asteroids give off different sounds when a different size is destroyed
  • Minor S_Bot AI changes
  • Triangulation now done with poly2tri
  • CMake is used for Windows now, too
  • Lua scripts are now run in sandbox. No 'io' for you!
  • LineSmoothing option is back (adjustable in the INI). Turning this off helps speed up rendering on less powerful hardware (but looks much uglier)
  • Several performance improvements with network, UI, and game logic

New features for 018a

  • Add an /announce command for server administrators
  • Add /showids command to see each object's ID (in test mode only)
  • Added CMake build system for Linux and MinGW
  • Server option to disallow team changing. Check in the INI
  • More statistics tracking: distance, objects engineered, asteroids, turrets, and force-fields killed
  • New ZC and Core default maps (courtesy of Quartz)

Bug fixes:

  • Standalone install fixes
  • Server voice chat enabled by default
  • Nexus team spawns spawn appropriately now
  • Fix crash when exiting Editor
  • Fix Editor full screen scaling issues
  • Several idle fixes
  • Fix asteroid initial velocity
  • Fix Zone not triggering EnteredZone event
  • Fix Zone not getting IDs
  • Fix odd crash with Zone Control and returning flags
  • Fix Rabbit 'carrot' color
  • Fix robot default Names
  • Fix Editor saving IDs of objects to file
  • Fix ForceFieldProjectors from jumping to incorrect walls in the Editor
  • Fix levelgen scripts not actually working
  • Fix really old bug where bursts only added horizontal force to moving objects
  • Fix timers in Lua scripts
  • Fix/add several Lua API methods on many objects
  • Fix teleporter not teleporting multiple people when triggered
  • Fix not being able to chat when engineering a teleporter
  • Fix possible Windows update problem
  • Fix crashes with Robots picking up various items
  • Fix phantom forcefields being in games after using the Editor
  • Don't publicize testing/debug servers on master
  • Fix loading of joystick presets on Linux
  • Fix fading UI when typing a message on death
  • Several SpyBug fixes related to kickback and destruction
  • Allow larger barrier width in Editor curve tool
  • Fix crash in OSX with provided a predefined nickname
  • All wall corner snapping for PolyWalls
  • Fix multiple vertex selection in Editor
  • Fix other crashes
  • Fix connection speed bug
  • Fix Robots not having the proper colors in Rabbit
  • Fix /random level display when voting
  • Fix weird Editor vertex problem on PPC (endian problem)
  • Fix Lua API crash with Soccer ball

Other changes:

  • Lua API change: Constructing objects that require points must use a Lua instead of simple coordinates
  • Small rendering performance improvements
  • Server processing performance improvements
  • Update lua-vec to use Lua 5.1.5
  • Increase default Core health to encourage longer Core games
  • Kick old authenticated logins if you rejoin a game
  • Google Code-In contributions from: Dmitry Morozov, Martin Bede, Vasil Bozhurski, Donny Mitsov, and Martin Kirilov

Headline Changes for 018

  • New weapon: Seeker
  • Engineered Teleporters
  • Energy recharges faster if you are idle for 2 seconds or more
  • New music (more than 1 song this time!)
  • Sensor module changes
  • More badges!

New features:

  • New weapon: Seeker
  • Teleporters can be engineered
  • Energy recharges faster if idle for 2 seconds or more
  • Simplify energy recharge rules -- no longer change rate in friendly, hostile, enemy, or neutral loadout zones
  • Added /mnext and /mprev commands to cycle music
  • Added /random to randomly jump to another level
  • Added /idle command to let you go 'away from keyboard' without game penalty. There is a 5 second delay when wanting to rejoin
  • Bot auto-balancing option added to server (See INI)
  • Levelgens can now stay alive and react to game events... the dawn of triggers and switches is here. To be continued in 019.
  • Can merge two polygons in editor (select both, press J, just like joining two line segments)
  • Chat flood protection
  • Core game scoring is more intuitive
  • More badges: BBB ranks, Zone Controller, Level Contest Winner
  • Sensor module changes: passive detection at a certain radius, active placement of spybugs (removed double-click placement)
  • Better Lua documentation (but still a work in progress)
  • Tracker music now supported (via libmodplug)
  • New menu/game/credits music
  • Music now fades in and out
  • New command line option: -nomusic
  • OSX has an updater built in
  • Migrate Windows and Mac to SDL2 framework
  • Migrate to GLES 1.0 in preparation for possible Android/iPad releases
  • Migrate to LuaWrapper for internal Lua binding

Bug fixes:

  • Fix credits scrolling
  • Robot decision making has been reduced to limit CPU usage
  • Fix precision and language on editor arc script
  • Fix chat instructions
  • Fix 'Allow Robots' level option not saving
  • Fix not being able to type in lobby if the server list is empty
  • Fix editor bug with dragging CoreItem
  • Fix same-team turrets not firing at objects in front of you
  • Fix self-repair circle feedback
  • Fix accessing global chat from NameEntry screen
  • Fix several memory leaks
  • Fix some /commands and their documentation
  • Many, many more

Other changes:

  • Major overhaul to robot scripting -- increased efficiency, and set stage for future enhancements. Breaks some existing bots.
  • Restore white color of Core panels
  • Performance improvements to game logic
  • Screenshots taken at default canvas size (800x600) unless in editor. Improves consistency and quality of shots.
  • Remove launcher scripts for all platforms
  • Add new joystick profile (Firestorm Dual Analog 3)

Headline Changes for 017b

  • Bug fixes!

Bug fixes

  • Fix several client connection crashes
  • Fix several server connection and robot crashes
  • Fix F5 not exiting global chat
  • Fix 32-bit Linux music crash
  • Fix editor crash with copy and pasting force fields
  • Fix loading/testing editor levels and several objects end up at (0,0)
  • Fix robot Lua method 'setThrustToPt()'

Headline Changes for 017/017a

  • Cores altered significantly
  • First achievement implemented (25 flags)
  • Better idle handling of players
  • High scores menu and better help menus
  • Lots of bug fixes

New features

  • Core now features shootable panels
  • New menu music
  • Pulse: new kinetic component to the Boost module. Uses all available energy; speed is dependent on available energy
  • Voice chat mute by player with /vmute
  • 25 Flags achievement/badge: return 25 flags during nexus in an official game with not flag spawns or preset flags
  • High Scores screen selectable from main menu

Other enhancements

  • Ctrl+left-click no longer translates to right-click on Windows or Linux
  • Can drag & copy in the editor with ctrl+drag (meta+drag on OSX)
  • Editor performance gains when copying large numbers of objects
  • Can now use variable substitution in chat messages; designed primarily for bots, ideal for explaining how to do something
    Use %XXX% where XXX can be the name of a keybinding (get the names from the INI), or %playerName%. Vars are case insensitive.
  • Hostile load-out zones always drain energy, even if moving
  • Hostile FFs allow flags through again
  • Save previous level's loadout as on-deck for the next level, if the next level has load-out zones
  • Music for menu and in-game is separate. Bitfighter looks for menu.ogg in the 'music' folder, anything else will play in-game
  • New help page for in-game indicators like scoreboard marks
  • Scroll wheel can be used in menus and in-game weapon switching
  • In case of unrecognized joysticks, use a default profile from the INI so users can edit it
  • Fancy text effect when returning more than 100 flags in nexus
  • Idle players are grayed-out in the scoreboard
  • Idle players are no longer included in game statistics if they've been idle the entire level
  • Idle players may be kicked if they've idled too long
  • Server will suspend if all players go idle
  • Server command line options: -nolevelchangepassword, -noadminpassword

    Bug fixes

    • Sparks from previous levels are cleared when a new level loads
    • Fixed bullets not shown in commander's map with sensor module equipped
    • Mac basic shortcut keys work
    • Fix game shutdown crash on PPC
    • Fix Mac fullscreen crash by forcing fake fullscreen for now (you will have to hid the dock)
    • On Windows, fix playing music spiking the CPU and not allowing the bitfighter process to finish
    • Fix gametype instuctions (F2)
    • Restore movement in quickchat menus
    • Fix repair distance behavior. This may allow healing at a slightly longer distance
    • Fix music not being played from local music folder on Mac
    • Fix some memory leaks
    • Fix some connection issues
    • Fix several random game crashes
    • Fix s_bot on Retrieve gametype
    • Fix some Editor object copy problems
    • Fix Editor not reading in 2-point walls with both points the same
    • Keypad numbers should work as regular numbers in-game
    • Fix mouse menu scrolling
    • Single-team game leaderboard should now always display correctly
    • Fix inserting vertices into diagonal barriers
    • Fix black screen of death when chatting + idle on level change
    • Fix several player idle/spawn-delay issues
    • Better handling of idle players and balancing teams
    • Fix animation of Core not spinning when game time was set to unlimited
    • Fix Core stuttering with time changes

    Headline Changes for 016

    • New game type: Core
    • Weapon and module changes and upgrades
    • Better voice chat for all platforms
    • Screen shots fixed
    • Soccer pick-up dropped and soccer ball inertia added


    • Added Core game type. Destroy enemy cores to win. Core health can be set in the editor.
    • Added loadout presets. Players can save loadouts with Ctrl-1/2/3 and load them with Alt-1/2/3. Loadouts are saved via INI and can be viewed with the /showpresets command.
    • Upgraded Sensor increases passive viewing range and allows spybug placement without using a weapon slot. Spybugs are now placed with double-click
    • Added spawn shield. Protects newly spawned players for several seconds until they move, activate a module, or fire a weapon
    • Energy recharge rate increases while idle and doubles while idle in a loadout zone. Hostile loadout zones drain energy.
    • Removed soccer ball pick-up. The ball is now “heavier”, and other objects, like TestItems, are heavier as well.
    • Triples consume about 20% less energy than in the 015 series
    • Bouncers are more effective against the Armor module
    • Loadouts no longer carry over from level to level -- now you start a new level with the default loadout
    • Added top scores in single-team games like Rabbit and Bitmatch to lower right corner
    • Player ratings are determined by kill/death ratio. If you die more, your rating is negative
    • Forcefield engineer abuse has been greatly reduced. Note: Original forcefield behavior can be accessed through 'EngineerUnrestricted' instead of 'Engineer' in Specials
    • Team bitmatch suicides no longer hurt team score
    • Teleporting onto a loadout zone triggers loadout change, just like flying onto one


    • Added music sub-system. Plays Ogg Vorbis music files. You can test it by placing files in the 'music' sub-directory
    • Fixed screenshots; now use PNG format
    • 64-bit Intel Mac build available now
    • Fixed voice chat for all operating systems, with improved quality
    • Reduced leave/join spamming in lobby
    • Allow /mute in server lobby
    • Fixed some game lobby bugs with leaving/joining being out of sync
    • Added scoreboard marks for admins (@) and level changers (+)
    • Joystick profiles are now kept in a separate INI, joystick_presets.ini, that can be adjusted and added to for your joystick
    • Smaller text should look crisper throughout the game
    • Line smoothing is now officially part of the game
    • Removed -jsave and -jplay cmd line options. It's been ages since they worked, and it's unlikely they ever will
    • -help cmd line option now displays meaningful help
    • Added engineer to help screen
    • Added Bitfighter icon for the taskbar
    • Diagnostics work a little better and will not show joystick info if none is attached
    • Allow for more than 32 different types of game objects for future expansion
    • Reduced CPU usage on diagnostics screen
    • Reduced CPU usage for overlapping asteroids
    • Migrated from GLUT to the SDL framework. This brings several improvements like faster rendering on Mac and nicer Input programming.
    • Fixed message rendering problem with disabled loadout indicators
    • Multi-line chat is now indented to prevent spoofing
    • Prevent impersonations with spaces in a username


    • Added mouse wheel zooming in the editor
    • Implemented 2-tier snapping in editor -- hold space to disable grid snap, but still snap to wall corners and other items; hold shift-space to completely disable snapping
    • Added plugin system for the editor -- users can write scripts to generate items in the editor and bind them to hot keys. Includes simple curve generation tool as a sample.
    • Added editor option to disallow robots
    • Added 'tab' filename completion in editor levelname entry screen
    • Added mouse wheel scrolling for existing level names on levelname entry screen
    • Removed dedicated wall-editing mode (Ctrl-A)
    • Game statistics not recorded when testing a level from the editor


    • Added /leveldir admin command to change folder where levels are read. Change affects current session only, and will not be saved in the INI.
    • Added /ban and /banip for persistent server ban lists.
    • Added /resetscore command
    • Added /shuffle command for admins
    • Removed optional hostAddr cmd line parameter for -dedicated . Specify host address (only rarely needed) with the existing -hostAddr option
    • Removed -server cmd line parameter; not sure it really ever worked at all
    • Incorrect admin and levelchange password entries are now logged in server log
    • Fixed rare crash with bot zone generation
    • Console command history now working in a sane manner

    Bots & Scripting

    • Robots are smarter with forcefields
    • Robot team messages now only go to the team
    • Robots only spawn if a valid script is detected
    • Removed deprecated getMove() method -- if your bot still relies on this, it will no longer work
    • Migrated onTick() to a standard event -- this will let bots unsubscribe to onTick events if they like (bot start out subscribed to onTick by default). See wiki for how to use this to make the bot sleep for a time.
    • Added nexusOpened and nexusClosed events. See wiki for details.
    • Lua added copyMoveFromObject, Lua getCurrLoadout and getReqLoadout can now be used for ships
    • LUA scripts print to the OGLconsole

    New Features and Enhancements in Bitfighter 015a

    • Players can now see cloaked teammates.
    • Added Robot:dropItem()
    • Fixed selecting loadout that is same as ship after selecting new loadout, now avoids changing ships loadout when canceled.
    • Can now choose one of multiple joysticks. If there is no joystick, then you cannot change input from keyboard to joystick.
    • Indicator now shows which team possesses the flag in CTF, ZC, and rabbit in team mode.
    • Rabbit and Nexus no longer always spawn with current loadout where there is loadout zone.
    • Added support for PS3 joystick.
    • Tab-expansion when typing a /command has been much improved.
    • Added /pausebots and /stepbots commands, also mapped alt-] to /stepbots, and ctrl-] to /stepbots 10
    • Added /addbot, /addbots, /kickbot, /kickbots commands
    • Added /mute to mute a noisy player
    • Added /gmute to globally mute a noisy player (Admins only)
    • Increased rendering speed for most game objects
    • Improved edge rendering for barriers in-game and in the editor
    • Vastly improved performance for auto-generated bot nav zones
    • Bot nav zones now auto generated for all levels at load time; no further need to manually create zones; manual zone creation will be removed in future version
    • PolyWall item added to editor -- works just like a wall, but is edited like a loadout zone or other polygon item. Note that this replaces the undocumented item "BarrierMakerS" which is now deprecated.
    • Chat/Command box now in lower-left of screen. Chats now appear immediately above it.
    • Multi-line chat in game lobby
    • Game statistics are kept in a local SQLite database
    • Robots are smarter now; they avoid running into walls, turrets, and forcefield projectors
    • Robots can use teleporters now
    • Robots paths are cached - can speed up performance on large maps with many bots
    • Primordial voting system added; disabled by default; will improve upon it in the future
    • Add level option to allow soccer ball pickup
    • S_bot is the default robot when adding a robot
    • Admins can upload local .level files to a server

    Bug Fixes

    • Fixed bug with crossing forcefields when using engineer module
    • Fixed bug letting some players pick heat seeker when the weapon doesn't yet exist
    • Fixed a possible server crash when client sends invalid weapon or module in loadout
    • Fixed Robot:getReqLoadout that returns invalid third weapon.
    • Fix problem where kicking a player will lag, delay disconnect other players at the same IP address or same computer
    • Some minor adjustment to SpeedZone to avoid any possibility to get through one way SpeedZone path, reduce lag while using SpeedZone.
    • Can add or remove joysticks while in the options menu; no longer requires restart
    • Fixed giant memory leak with editor and /showzones
    • Fix editor crash if all teams were deleted
    • Fix missing sound on some Intel sound chips
    • Fix missing sound when using /suspend
    • Linux joystick fixes
    • Fix CPU timing issues
    • Fix broken rating sort - teams should sort better at start of rounds now
    • Fix large scores being chopped off of the display

    New Features in 015

    • Engineer module -- build turrets and forcefields by grabbing resources; activate with /engf or /engt; only works on levels containing line Specials Engineer
    • Armor module -- makes ship stronger but harder to control; always active, uses no energy (Experimental, may be removed in future version)
    • Upload/download resources (levels, levelgens, and bots) from remote server (if enabled, and you have the password) via cmd line parameters
    • Added /getmap command to allow anyone get a currently playing map, if server enabled it.
    • Bots can be added to levels without nav zones, and the zones will be generated automatically

    User Interface

    • Pressing enter now advances to next menu item on most menus


    • Levelgens can be names .lua or .levelgen, and can be stored in either the levels folder or the lua scripts folder
    • Levelgens style scripts can be run from the console with run <script> {args}.
      Scripts can be names .lua or .levelgen, and can be stored in either the levels folder or the lua scripts folder.

      Specifying the extension is optional.
    • added game:isNexusOpen() game:getNexusTimeLeft() GoalZone:hasFlag() FlagItem:getCaptureZone() FlagItem:getShip() Ship:getMountedItems() bot:engineerDeployObject(EngineeredTurret or EngineeredForceField)
    • Robot errors now appears in game console when hosting.
    • Added /showbots to show all robots, /drobot to show robot paths.


    • When creating a new level, credits line is prepoluated with current player name (unless it's ChumpChange)
    • Max level size now unlimited, individual lines limited to c. 4000 characters, which is plenty
    • Can place neutral spawnpoints: Any team can spawn at these
    • When running command from console (run <script>) any created items are now selected
    • Entering 0 time will create unlimited time games. Just because you can doesn't mean you should!
    • Allow bypass level warnings and errors when trying to test level.


    • Passwords now stored in plaintext in the ini file; gives increase in convenience with only small decrease in security; still transmitted via hash
    • When master server is unreachable, server will remember recent game servers and will try to contact those
    • Can define multiple servers in the INI to always try contacting without assistance of the master (good if you are running several servers locally)
    • Engineer module can no longer create crossing forcefields
    • Added /linesmooth /linewidth /maxfps commands, and they are available in INI
    • Added /setscore and /settime commands that set the score and game time for the current level
    • Added /getLevel (/getmap ?) command to download current level to local machine (only some game servers will allow this)
    • Near instant display of bot nav zones with /dzones, but now only works on local hosts (i.e. when you are hosting in-process)
    • Bot nav zones can now link both nav zones with teleporters, this allows robots to use teleporters.
    • Some bandwidth saving by sending updates less often on slow moving objects.
    • Added /pm to send private message in a game server.


    • Fixed issue of wrong player being selected on change teams/kick menus
    • Fixed rare but very annoying problem of flags that can't be picked up
    • Fixed bug with verified names not appearing verified with arranged connection (i.e. most of the time)
    • Ingame Bitfighter logo display issues corrected.
    • Bitfighter logo now positioned almost exactly where the generating text is located, at all zooms and rotations Note that if you have levels with the Bitfighter logo, it's position may have shifted!
    • Fixed soccer sync problems
    • Fixed long loading and lag on level maps with lots of bot zones, /dzones will work only when hosting
    • Fixed crash on maps with: missing GameType, missing Team; FlagItem, Soccer and HuntersNexusObject on wrong GameType; out of range team number, Neutral flag in CTF.
    • Fixed lots of Robots problems. Robots can now score, hold nexus and rabbit flags, and allow admin to kick robots or change robots team.
    • Fixed rare nexus problem with extra flag appearing that doesn't exist on server or other clients.
    • Fixed burst and lag while going forward, bouncing off your own ship.
    • Fixed some random turret hits self.
    • Fixed score board not sorting with lots of players.
    • Fixed problem with unable to see all ships in your teams in full map view.
    • Fixed bouncer going through ship when too close to the wall.

    List of updates and fixes in 014a

    • Fixed crash in chat room
    • Enter advances item selection in menus

    List of updates and fixes in 014

    Soccer Mods

    • Can pickup, carry, and pass ball

    Verified accounts

    • User names now verified against forums user list -- if you want to play with a name from the forums, you need to supply the forums password for that account

    OS X

    • Major crashing issues on Intel Macs now, finally, resolved!!!
    • New, fancier installer


    • Ctrl keys now work on Linux, making the editor much more accessible. Yay!
    • Added some support for joysticks in Linux


    • Added updater for windows -- will check for new versions and help you install them. Can be disabled in INI.

    User Interface

    • More menuing overhaul -- nicer colors, and much better design internally to support multiple menu item types on a single menu
    • Overhaul of game lobby; long lists of servers better handled, chat-server divider now moveable by dragging
    • Added /connect command, available in game lobby. Usage: /connect <address>:<port>. Bypasses master server

    Minor Enhancements

    • Better user message when server is full
    • (1) button on joystick acts like select on menus
    • Experimental forcefield color enhancement


    • Added setGameTime(time_in_mins) command in levelgens.
    • Included new geometry functions (thanks Joe!)
    • Reorganized layout of lua functions. Made vectors available in levelgens (largely untested).
    • Added output console to show all output from levelgen and bot scripts. Visible with "/" in the editor, "Shift-/" in game.
    • Added pointCanSeePoint(point1, point2) function to levelgens, to provide line-of-sight information for a pair of points.


    • Changed shortcut key for splitting walls at selected node to "\" (so "/" can be used to open console)
    • Can insert spaces into level names again (accidentally disabled in a previous release)
    • Added Ctrl-I key to editor that copies results of levelgen script into editor (must run levelgen first with ctrl-R). Entities can then be edited and saved like entities created by other means.

    Bug fixes

    • Rare teleporter crash resolved.
    • Rare flag crash issue resolved when flags spawn on top of one another.
    • Min/max player level params properly handled.
    • Leveldir param now properly handled with specifying an absolute path.
    • Scores over 99 now visible in team nexus games.
    • Player names now guaranteed unique on any given server (again).
    • Game no longer crashes when too many mines explode at once.
    • Ship colliding sound no longer plays on server
    • CTF game no longer crashes when two flags are place on top of one another.
    • Can no longer carry multiple flags in CTF game
    • Fix for too-many-collisions-bogging-down-the-server bug
    • Fix for F2-causes-crash-on-level-change bug
    • Fix for flickering black bars bug
    • Fixed rabbit flag issue where clients would on occasion lose track of where the flag was

    Release notes for 013e

    • New unstretched fullscreen mode
    • When entering filename for editor, arrow keys select existing file names
    • Can take multiple screenshots without crashes (Ctrl-Alt-Q)
    • Enhanced menu system (more colors, more flexibility internally)
    • New hosting menu where players can specify passwords and server name
    • Can now supply a reason when using /shutdown command (e.g. /shutdown 30 Need to change levels; will restart shortly!)

    Release notes for 013b

    Bug fixes

    • Fixed bug in editor that prevented editing of GoFast attributes
    • 32 vertex loadout zones no longer crash game
    • Fix for invalid md5 hash on 64 bit machines
    • Fix for crashing spybug problem


    • Global chat screens now show players joining/leaving, list players using their message color instead of yellow
    • Added very minor cpu throttling when playing with FPS > 100. Should help reduce system load and power usage.
    • level change and admin passwords now remembered for specific servers, and are automatically entered upon connect

    Editor enhancements

    • Walls rendered differently when dragged


    • Player count is now available when running the levelgen using the new getPlayerCount() function

    Release notes for 013a

      Bug fixes

    • Soccer ball return bug
    • Rejoin game problem
    • Leveldir resolution issues
    • Scripting fixes for locating soccer ball and repair items

    Release notes for 013

    Big changes

  • Added ability to add arbitrary linework to levels, complementing existing text. To add lines, hold ~ and right-click.
  • Started trasnsition of Join menu into Game Lobby
  • Started developing framework for remote server management
  • Smaller changes

  • Added Restart Level to game options menu if you have level change permissions
  • Moved Add 2 Mins option to LevelChanger permission level (with older servers you'll still need admin rights)
  • Added asteroids, testItems, soccerball, and resourceItems to help screen, enhanced instruction colors
  • Fixed several in-game crashing issues
  • Minor efficiency improvements on rendering routines
  • Retrieve games now allow non-team flags
  • Bouncers now do half-damage to shooter, rather than full as in previous releases
  • Triples no longer damage shooter
  • Password entry in INI file now changed to ServerPassword -- if you use this, you'll need to manually update your INI file
  • HuntersFlagItem can no longer be used in level files. Please use FlagItem -1 instead!! Note that this line is only present in hand-modified level files
  • Min/max player level params now used when selecting levels
  • Slight improvement when rendering walls joining at acute angles
  • XBOX controller on windows now much better supported
  • Bot nav mesh zones can be displayed in-game by using /dzones command
  • Soccer ball now warps back to starting point rather than "drifting" back
  • Loadout/weapon indicators now more "vector graphicy", colors no longer botched on Vista/Win7
  • Infrastructure in place for goals with different values -- only need editor UI and level file syntax
  • More orderly disconnect from master server when quitting game should make current player counts more accurate and timely
  • Sounds

  • New sound when ship hit by projectile
  • New sound when using GoFast
  • New SFX when players join/quit game
  • Bots

  • Added enhanced timer class to Lua scripting
  • Moved some "unwrapped" functionality into main() function
  • Renamed getMove() function to onTick() ==> 012 era bots will need to be updated
  • Fixed module "always on" bug
  • Fixed "shoot through shielded robot" bug
  • Event manager now working. Can now add game events easily.
  • Added ShipSpawned, ShipKilled events
  • Added ship:isAlive() method
  • Return nil rather than dummy value when method called on dead ship (e.g. in 012, ship:getLoc() returned 0,0 if ship was dead, now returns nil)
  • Got rid of NexusFlagitem --> Now all flag are FlagItems, for all games
  • getName() function now run first, so game will have bot's name before any real game logic gets run
  • Created Player object with info about individual players/bots which you can get from Ship, GameInfo, and TeamInfo objects
  • Restructured the way bots are initialized so that all bots are loaded and getName()s are run before any main() functions are run
  • Can now pass arguments to bots from level file using arg struct, just like with levelgens
  • Robots now shown on scoreboard and in various menus where players are listed
  • Robot names are now "uniqued"
  • Overrode Lua's random generator to use one that's a bit more... random
  • Added setAngle() and setPolar() methods to point object
  • Bots no longer appear as tiny blobs after passing through teleporters
  • Editor

  • Many small improvements to editor
  • Fixed editor crashing issue caused by double-delete of item
  • Fixed editor crash while caused by pasting objects in the middle of a drag operation
  • Undo/redo more efficient -- will perform better with large levels and deep undo states (and will no longer crash!)
  • Added autosave -- will keep a current copy of the level on disk in the event of a crash (though crashes are much rarer now)
  • Ctrl-left click now starts a wall
  • Can now add arbitrary line items in editor: hold "~" while right-clicking to start
  • Editor remembers name of last edited file
  • Ctrl-A can now be used to hide navMeshZones
  • Improved preview mode (when holding Tab key)
  • Text in editor now subject to same min/max size constraints as text in the game
  • Team names can be changed in the editor
  • When moving, items now snap to grid based on vertex closest to cursor, giving much greater control over placement. Snapping vertex highlighted in magenta.
  • Can now snap items to other items, not just to grid
  • Hovering over an item no longer counts as selecting it
  • Increased readibility of node numbers on selected lines/polygons
  • Holding tab now only shows range of selected turrets/spybugs
  • When editing navMeshZones, non-convex zones rendered in red to indicate potential problems
  • Improved snapping of nav mesh zones, including rendering of connections between zones
  • Grid fades when grid-snapping disabled
  • Changing wall widths is now undoable
  • Arbitrary scaling of selected items now works with Ctrl-Shift-X
  • There are now multiple edit modes (normal, bot nav mesh zone mode, etc.) customized for different purposes -- use Ctrl-A to toggle
  • Switched H and F key assignments -- F now inserts forcefield, H flips selection around horizontal axis
  • Holding <shift> while panning causes pan speed to increase -- good for larger levels at higher zoom scales
  • Improved coordinate display on dock -- now shows coords of snapping vertex when dragging an item
  • Editor now starts with (0,0) centered on the middle of the screen
  • Server management

  • Added /shutdown, /setlevpass, /setserverpass, and /setadminpass chat commands (see in-game help)
  • Added /setservername and /setserverdescr commands
  • Added /deletecurrentlevel command to remove level from remote server (file not deleted, but won't be loaded in future)
  • New orderly shutdown process when using /shutdown command (i.e. players notified, dedicated servers can be terminated, etc.)
  • If level change password is left blank, all players granted access (not so for admin password)
  • If level change password is set to blank, all players currently connected are silently granted access to level change menu
  • -password command line parameter changed to -serverpassword
  • When all players leave game, game advances to next level, and suspends itself until a player joins. That way, when players join, level is "fresh" and ready to go. May also reduce processor load and power consumption
  • Added ability to put game into suspended animation, automatically restarting when other players join (/suspend command)
  • Removed allLevels command line parameter, and disabled INI level specification
  • Enhanced logging
  • Linux

  • Added ability to specify locations of various resouces on the cmd line. See wiki for details.
  • Bitfighter builds on both 32 and 64 bit environments
  • Windows

  • Windows installer now does a better job of installing files in their "proper" location
  • Windows installer now installs data files (levels, robots, etc.) in My Documents on Win7 and XP. Untested on Vista, but should work
  • Bugs

  • Fixed rare Zap-era crash condition when player shoots a soccer ball, but quits game before goal is scored
  • Fixed turret/forcefield "in the middle of space" bug
  • Fixed textItem bounds miscalculation that caused large text to "jump" onto screen
  • Fixed /dcoord display position bug
  • Fixed robot bug reporting incorrect team for flags
  • Fixed extent bug when computing extents of levels that do not overlap (0,0)
  • Game no longer crashes when using the -connect param
  • Release notes for 012c

    • Support added for min/max players parameters in level files
    • Better support for XBox joysticks on Windows

    Release notes for 012a

    • Fixed crashing issue during connect to remote server

    Major changes in 012

    • New object: Asteroid generator
    • Can drop items. Provisionally mapped to the "B" key in keyboard mode. See help for key bindings.

    Release notes for 012

    Major changes

    • New object: Asteroid generator
    • Can drop items. Provisionally mapped to the "B" key in keyboard mode. See help for key bindings.

    Other changes


    • Added detailed logging options to the INI
    • Cleaned up unused INI settings


    • Added lag to FPS display
    • Fixed issue with blank server name on Join screen
    • Added gametype/score indicator on game screen

    Bug fixes

    • Fixed crash with invalid player ratings
    • Fixed minor glitch with rendering labels on square loadout/goal zones -- labels will prefer more horizontal alignment
    • Fixed crash when joining new server in commander's map mode
    • Fixed attribute editor for gofasts in editor
    • Fixed other crash conditions
    • Fixed Nexus scoring issue


    • Games without loadout zones automatically set new loadout upon respawn, for all game types
    • Level editor now edits levels in same level specified by leveldir param or INI setting. Seems to make much more sense than always editing in the levels folder.
    • Dedicated server level-list handling now the same as when hosting in interactive mode
    • Teams should now be numerically balanced, though still ratings based


    • Fixed windows icon


    • Improved dedicated-only server compilation -- should no longer need to run with -dedicated parameter
    • Much improved build process

    Release notes for 011

    Major changes

    • Levelgen scripts allow script-generated levels
    • New game item: Asteroids
    • Chat /commands
    • Many new item properties, including auto-healing of turrets & force fields, GoFast speed & accuracy, etc.
    • Much improved level editor, including dynamic level preview

    Detailed change log

    General Enhancements:

    • Levels that don't have designer-specified names can now be accessed from the Level Change menu on in-game options via their file name
    • Retrieve game ->can't pick up enemy flags, so more complex level designs are possible. Actually, maybe not true... maybe this is a lame feature.
    • Fixed scoring message on Hunters levels
    • ZoneControl ->When ship takes flag in an uncaptured zone, they immediately take control of zone without having to leave/reenter
    • Reassigned default key for loading loadout menu from Q to Z (Mac build, change made in Windows version in 010)
    • Added client IP address to server log
    • Added time disconnected and connection duration to server log
    • Unneeded vertices now removed from walls to improve both appearance and performance
    • Added screen saver suppression (Windows only, sorry, and only kind of works)
    • Enhanced flashing effect of zones in ZoneControl game
    • Added yellow flash to ZoneControl and Retrieve zones when touchdown is scored (like Nexus effect in Hunters game)
    • Indicator added to player's name when they are in chat, global chat, or options menus
    • Screenshots now saved in .BMP format
    • Scores displayed in LR corner of main game screen now sorted from high to low
    • Name of current game server now displayed on global chat screen
    • Changed Zapmatch to Bitmatch, the least controversial of the proposed game name changes.
    • Changed Hunters game name to Nexus, a very controversial name change. Nothing like instigating a nice ol' flamewar!!!
    • Team chat message entry box colored appropriately
    • Objective arrows now rendered correctly for levels with multiple Nexuses (Nexii??)
    • Improved rendering of labeling of loadout zones and nexii
    • Added spaces to level files written by editor to make them easier to read
    • Better handling of items with invalid parameter lines in .level files
    • Enter commands using "/" key, or by starting a global or team chat message with "/"
    • Added /restart command to restart current level
    • Added instruction page to explain available chat commands
    • Increased level description length from 32 chars to 60 (thanks Bobdaduck!), and enhanced parameter editor to better enforce those limits
    • Increased max level size from 64K to 96K
    • Private chat messages entered in [F5] chat now relayed to players in-game
    • Better messages when killed by turret or asteroid or mine
    • Soccer game can now be played in no-teams mode by defining only one team
    • It is now possible to add top-level quick chat items, meaning you can now create a flat, one level simpler quick chat menu with section like [QuickChat_Message1]
    • Levelgen scripts offer options for more dynamic and flexible levels. See the wiki for details.
    • List of players in global chat mode now displayed when in global chat
    • UI/Menus:

    • Improved menu navigation instructions for joystick users
    • More intelligent wrapping on long menus
    • On levels menu, pressing first key of level name will take you to levels starting with that letter, the next press will take you to the next, etc.
    • Username entry screen now remembers last name used
    • When hosting a game from the UI, game load progress info displayed
    • When loading a level from a local or remote server, progress bar is displayed
    • Mouse now works on Define Keys, Level Params, and Team Config menus (should now work on every menu)
    • Message displayed when connection to game server fails for some unknown reason
    • Joystick now works on all menus except for those in the editor


    • Can now specify regen time for health packs... currently, add 3rd number on definition line to specify respawn time in seconds (min val = 1 sec, default is 20secs). Cannot change value in editor, but will survive load/save cycle.
    • Turrets and Forcefields can now repair themselves, if you specify an additional argument on their definition line (secs / 10% repair... i.e. entering 1, item will fully repair in 10 seconds). Again, cannot change value in editor, but will survive load/save cycle.
    • 4 alternate gofast graphics available for testing... set in [Testing] section of INI file
    • Can specify gofast speed as optional last argument in level definition file (min 100, max 5000)... no editor UI available, but will survive load/save cycle in editor
    • Can specify whether ships snap to center of gofast with optional additional parameter in level file
    • Gofast are now almost deterministic in where you end up -- very precise corridors now possible, when snapping enabled
    • Default gofast speed reduced to 2000
    • If ship is sitting on repair when it respawns, ship gets the repair (no longer have to move)
    • FlagItems are automatically converted to HuntersFlagItems when loading Nexus levels
    • Flag spawns now spawn flags periodically in Nexus games. Can control rate by appending a number to the FlagSpawn entry in the level file (number in seconds). Cannot modify value in editor, but entries survive editing process when level is manually edited.
    • Flag spawn points now work as soccer ball spawn points in soccer game
    • Asteroids... you figure it out!

    Specifiying levels:

    • ".level" extension now optional when specifying levels with the -levels param
    • -leveldir can now specify any folder on disk, but can still be used to specify a specific subdir of the levels folder. Be sure to use quotes if path includes spaces!
      example: -leveldir abc will load levels in abc subfolder under levels folder. -leveldir c:\levels will load all levels in c:\levels
    • If no levels specified on cmd line or in INI file, all levels in levels folder will be loaded, much as if the -alllevels param was specified
    • Level folder can now be specified in the INI file, either as absolute or relative path.


    • Full scoring information available with -rules option
    • Individual scores now replaced with rating (from 0 to 1) that persists between games. Rating calculated as ratio
      of points player makes divided by total scores all players make during that players time in the game
    • Killing turrets now a scorable event, 0 for all team scores, 1 for individual scores (-1 for own turrets)
    • Teams now assigned on basis of individual ratings, rather than randomly... should help better balance teams
    • Added scoring events when flag is removed from enemy zone in Retrieve and HTF games
    • HTF now requires flags actually be held full 5 seconds before scoring occurs


    • Moved turret/spybug ranges display onto Tab-down display
    • When tab down, test items, resource items, gofasts, teleports, asteroids, and soccer balls all display at actual size, making precise positioning possible
    • Added more editor checks (flags in non-flag games, team flags in non-team-flag games)
    • Fixed problem with inserting vertices into wall segments that caused vertex to jump to location of its neighbor
    • Improved operation of text labeling, may cause slight change in text placed in earlier version of game
    • Display gofast speed and snapping on item
    • Better display in editor when in ctrl-A mode, can no longer select hidden items, tab now shows all items
    • Switched F2 and F3 keys
    • Can now type first letter of game type in GameParams menus to quickly select (still have conflict with "R"s Rabbit/Retrieve)
    • Can edit respawning times for items that support them in the editor
    • Can edit GoFast params in editor
    • Added script/params to game config menu

    • Many minor rendering improvements

    Bug fixes:

    • Speed zones now rendered on top of loadout zones
    • Walls now rendered on top of loadout zones, goal zones, and the like
    • Fixed heap corruption error in editor that caused crashes after some deletes. Bad, long term problem now resolved!
    • Fixed (I hope) seemingly random crashes that occurred with a new level is loaded, lingering from original Zap code
    • Changing other player's team in 3+ team game with 3+ players no longer switches a random player
    • Fixed problem with multiple flags returning to single spawn point in Retrieve games... Flags now only return to an empty spawn points
    • Fixed problem with mis-crediting players for shooting soccer ball into goal (also caused crashes in some cases)
    • Old messages now properly cleared out when game is started
    • Fixed rendering wonkiness with really goofball loadout zones/goal zones/nexii in editor and in main game
    • Fixed rendering bug on ship config menu in joystick mode
    • Fixed scaling issue in editor when only one point item is present

    Server menu enhancements:

    • Fixed minor rendering issue on servers menu
    • Color coded status messages on servers menu
    • Trim server names too long to fit in column on servers menu
    • Added indicator ("T") for servers in test mode
    • Replaced max player listing with number of robots

    Release notes 010


    • Note existing rabbit2.level has bug, and will crash version. Copy included with this game is fixed. Change flag from team 1 to team -1 to fix.


    • Added separate level change password to allow users to change levels without granting player admin permissions (-levelchangepassword on cmd line, or in INI file)
    • Added -alllevels and -leveldir cmd line parameters for specifying levels
    • Added some server-specific logging, such as names and join-times of players playing on your server.

      This is stored in a different file than regular bitfighter logs
    • Timestamps added to login on Master Server
    • Sending salted MD5 of level change and admin pws rather than pw itself... This is probably unnecessary at the moment, but will pave way for universal uids in the future
    • Added server description line visible in the Join Game menu. Configure with INI option or -hostdescr command line arg
    • Added -rules cmd line parameter that prints out some potentially useful info about the "rules of the game" so to speak. Not yet fully developed.


    • Revamped game options menu such that admin functions are no longer in a submenu, and menus dynamically update when permissions are requested. Previous action was to dump users back to game after passwords were entered.
    • Added nexus status label next to timer for hunters game
    • [F2] now cancels level info display at start of level
    • Configure ship menu no longer times out -- now stays visbile until manually cancelled
    • In keyboard mode, users can now use config ship menu display key to toggle menu
    • Mouse now works on all standard game menus (but not on DefineKeys, GameParameters, or DefineTeams menus)
    • Added new "All Levels" option on level selection list
    • Improved the way scrolling menus work
    • Enhanced in-game chat: messages can be longer, visual cue as to how much more you can type
    • Separate voice chat volume control (temporarily replaces music volume, which will be back when we have music!)
    • Join Game interface now continually polls master for new servers, and pings servers for updated stats
    • When client is forceably disconnected (i.e. if kicked, or host is shut down, or connection fails), message is displayed to client explaining what happened
    • When client is kicked from a server, server address hidden from list of active servers for duration of ban
    • Changed icon for dedicated server on Join Game menu
    • Added different message display modes: normal (6 msgs), persistent (6 msgs, no timeout), long (20 msgs, no timeout) (ctrl-M to toggle)
    • Remapped screen shot key to Ctrl-Q so as to not interfere with save shortcut in editor
    • Reassigned default key for loading loadout menu from Q to Z (Windows only, will be added to Mac build in release 011)


    • Fixed several journaling bugs
    • Fixed bug causing crash with certain maps with unusual spybug configs
    • Fixed wall rendering glitches where borders of overlapping walls not properly rendered
    • Fixed bug preventing team change on games with more than 2 teams
    • Ship now correctly points at crosshairs when starting a game or entering/exiting commander's map
    • Quitting game during connection process no longer leaves app in connected/not-connected netherworld
    • Fixed zombie copy of self from appearing after team-change immediately following death
    • On occasion, turrets would shoot themselves. This no longer happens.
    • Fixed bug when moving and composing chat message, movement no longer becomes locked
    • Temp file now removed after level tested
    • Fixed obscure display bug that shows ship config menu after involuntary disconnect and rejoin
    • Fixed problem with testing editor levels when the -leveldir parameter is used
    • Fixed but wherein ships not propelled when destroying friendly spy bugs
    • Fixed crash with certain levels involving multiple pre-positioned spy bugs or mines
    • Fixed save message when saving from menu in editor
    • Fixed crash in editor when dragging existing item as first editing action
    • Fixed crash when changing teams while level is loading
    • Fixed UI problem with mouse and splash screen
    • Clicking on mouse when not pointed at menu item no longer activates highlighted menu item.
    • Concave loadout zones now rendered properly in game (though not yet in editor)
    • Fixed rabbit game -> ship colors now rendered properly
    • Modules no longer stuck on when restarting game after quitting while activated
    • Removed timeout on QuickChat menu --> now same as loadout menu
    • Fixed incorrect button labeling for Saitek 440
    • Fixed mouse on menus in full screen mode


    • Spybug vision ranges now displayed in editor
    • Holding [Tab] will show a reference ship along with its viewable area
    • Turret shooting range now depicted in editor
    • Neutral (and hostile) spy bugs can now be placed in the editor. All players can see what neutral spy bugs see, no one can see what hostile spy bugs see (so these may not have much practical value, except, perhaps, as decoys)


    • Turrets now target resource and test items
    • Eliminated -crazybot option
    • Now builds under Linux
    • Added rudimentary robot code -- doesn't do much, but the network framework for non-user programmable robots is now there (mostly removed for this release)
    • Tinkered with mine visibility
    • Cloaking no longer automatically disabled when another ship is using sensor module.
    • Cloaked ships no longer visible in cmdr map and when on top of loadout zones
    • Doubled spybug range
    • Enhanced burst graphics (varaitions controllable with an INI parameter in [Testing] section)
    • Added flag spawn points -- flags will return to a random spawn point. Initial flag locations are treated as additional spawn point.
    • Added extend game option to admin menu
    • Added reserved names: in INI server hosts can define a set of reserved names that require a PW to use
    • Ctrl key can no longer be bound in key def screen. Sorry!
    • Added screenshot taking ability. Hit Ctrl-S to take a shot of any screen in the game.
    • Teleporters can now have multiple destinations -- to create, simply create two or more teleporters with the same origin. When players use them, they will arrive at a randomly selected destination
    • Teleport destinations now shown on cmdrs map
    • Phasers no longer damage shooter
    • Mine/spybug explosions now kill phaser shots and other projectiles within blast radius
    • Zapmatch is currently the only game that awards points for killing other players --> scoring for all games will be revisited in release 011
    • Reinstated a slightly modified Colosseum level. Hopefully will work better on OS X
    • Tinkered with Geowar level -- bumped up gridsize, fixed a few quirks resulting in changes in rendering algorithm

    Release notes 009


    • Some of the standard levels have been renamed or removed. If you already have Bitfighter installed, either delete your existing INI file, or edit or delete the [Levels] section. If you have a customized level list, note that the "football" level files have been renamed "zonecontrol".
    • This version is incompatible with previous versions, so if you are using this version, you will not be able to play with anyone who has not yet upgraded.

    Major upgrades

    • Revamped team v. individual game infrastructure. As a result...
    • Mines and SpyBugs now show correct (i.e lesser) visibility to "teammates" on inherently individual games (such as Rabbit)
    • No longer see "teammates" on individual games on commander's map
    • Spy bug data is properly shared only in team games, and not shared on individual games
    • Scoring now handled consistently for all games, team or individual. Any improper scoring will be treated as a bug.
    • Determining friendly fire now better, more consistently handled.
    • Most games are inherently team-based (Capture the flag) or individual based (Rabbit), but some can be either (Zapmatch) depending on whether there is 1 or more teams defined (1 = individual, more = team)
    • Included twoplayers.bat file to show how to configure game for multiple players on a single computer

    Minor upgrades

    • Increased number of chat messages on screen to 6, and made them linger a wee bit longer
    • Changed message when a player kills himself
    • Added info about current input mode (joystick/keyboard) to diagnostics screen
    • Added help message if players try to move with keyboard while in joystick mode
    • Enhanced joystick/keyboard interaction when entering quick chat message
    • Max forcefield length increased from 500 to 2500, a value I believe is similar to what is in the commercial version of Zap!
    • Global chat ([F5]) messages are now limited to what can fit on an actual display width, rather than a hard 100 characters as before. This means you can have much longer messages if you use "short" letters like "i" and "l". In practice, it means that the chat is a bit less limiting to use.
    • All standard level files (i.e. those that ship with Bitfighter) have been upgraded to have the third team be green
    • Fixed Windows installer so that only "clean" levels are packaged up
    • Added new levels to default level lineup (thanks, Qui -- you're in the credits!)
    • When an unknown controller is encountered, game will default to keyboard mode rather than joystick mode.
    • If user is changing teams, and there are only two teams, user will bypass the team selection menu and just swap teams
    • Infrastructure now in place for game specific admin menu options. First implementation is to hide admin change teams menu when it makes no sense (i.e. individual game, or only one team). Could be used to designate a new rabbit, for example.
    • Can now press Enter or Escape during opening Bitfighter animation to abort it without quitting game or activating first menu item. Pressing other keys still terminates animation and does appropriate action.
    • Reduced font size of chat messages to 14px, which approximately matches that used in the commercial version of Zap!
    • If you hit enter without specifying a name on the name entry screen, you'll be assigned the name defined in the INI with the DefaultName setting.
    • Improved rendering of the experimental aim mode vector
    • Scores on scoreboard sorted within teams, highest on top (but teams are shown in a fixed order)
    • Score required to win level now displayed along with other level info when [F2] is held down
    • Many minor interface tweaks (text colors, column widths, line spacing, font size, etc.)
    • It is now possible for multiple people to play on a single computer using joysticks, but this is undocumented and unsupported (known to work on Windows, untested, but should work on OS X)
    • Game no longer crashes when some (or all) specified levels are missing (this was a "feature" of the original Zap)
    • Improved QueryServer screen when no ongoing games, or unable to connect to master
    • Made default module buttons on joystick a little more logical
    • Made burst explosions a little "sparkier"
    • Added message when users enter incorrect admin password
    • Added color to enhance readability of diagnostics [F7] screen
    • Fixed server passwords -- you won't be asked for password when hosting own game (with H from main menu), password related crashes resolved
    • Added brief help text to loadout menu, and increased loadout menu timeout period from 6s to 8s.
    • Changed keybindings: Out-of-game chat from [F9] to [F5], Display FPS from [F10] to [F6], and Dignostics from [F11] to [F7] so as to not conflict with default bindings for Expose and other OS X functions.
    • Disabled teleport zoom effect implemented in an earlier release
    • Players lose ownership of and no longer remember location of mines and spybugs when they change teams
    • Mines can damage anyone

    Command line parameters

    • Added command line option -alllevels that will direct Bitfighter to ignore levels settings in the INI file and load all levels it can find in the levels folder [[ if not, delete Wiki comment ]]
    • Added -leveldir command-line option that lets you load all levels in a specified subfolder of your levels dir
    • Added -help command line option that prints a quick reference to the wiki page on cmd line params
    • Added -winpos and -winwidth parameters to let users control location and size of window (see twoplayers.bat for a use-case)
    • Added slightly useful messages for users who misspecify certain command line params
    • Removed the mysterious and useless -server cmd line option, replaced it with -hostaddr cmd line option and hostaddr INI setting


    • Soccer ball always visible on commander's map, and it's location is always known to the players (via objective arrows). Previously, when it was outside your range of vision, it was hidden.
    • Neutral (and hostile) goals now work -- anyone can score on them, hostile goal gives negative points


    • Cleaned up messages, messages now report score for flags returned to Nexus
    • Brighted up the nexus colors a bit
    • If ship is sitting on the nexus when it opens, it scores immediately without having to leave and re-enter the zone
    • Added new visual effect when someone returns flags to the Nexus


    • Enabled + and - keys as alternates for Ins and Del on team definition menus, because Macs don't generally have Ins keys.
    • Added error checking to look for missing nexus in Hunters level (game crashes without a nexus!)
    • Added missing item to editor help menu
    • Ctrl-left click now works like right-click. This is maininly to enhance usability by OS X users.
    • Added a UI message when Ctrl-A is clicked, to help users better understand what is happening.
    • Some effort has been made towards making only current-game specific items appear on dock. Needs to be made more systematic, but it's a start.

    Bug fixes

    • Fixed minor bug when entering quick chat messages in controller mode
    • Fixed bug reading INI settings
    • Teleport zoom effect now only seen by player who is teleporting
    • Fixed cursor placement issue on global chat (only apparent on goofball messages like "iiiiiiii")
    • Bullets are now rendered correctly on commander's map (when you have sensor, they are visible)
    • Fixed crash when testing Hunters level with no Nexus in editor
    • Killing self in solo games no longer scores a point
    • Experimental aim mode bug fixed: you can no longer see aim vector for other players
    • Join game screen now shows correct number of players on game servers
    • Fixed problem with stars disappearing in distant reaches of large levels
    • Zap! style Nexus definition now properly imported by editor
    • Message displayed when you change loadout now gives correct instructions for activating changes based on game-specific mechanics, as well as presence of loadout zones
    • Fixed problem with remote admins not seeing list of players they could kick or switch teams for
    • Can no longer create "hostile-to-all" soccer goals in the editor
    • Fixed bug in instructions (F1) that caused blank pages and missing items

    New in release 008a

    Bug fix

    • Fixed crash when running in dedicated server mode

    New in release 008

      Major enhancements

    • Implemented a new variant of the PS2 controller (DualShock with adapter cable, works differently than DualShock with USB, will be autodetected on Windows and OS X)
    • Entirely new versioning schema, making it easier to manage protocol upgrades where needed
    • Reworked client-master communications to allow different clients to connect using different protocols. Should make it easier to upgrade communications without breaking older clients. Master now dumps current status (ongoing games, who's playing, etc.) in JSON format, for easy parsing by web applets
    • Alert displayed if you are connecting with an older client to let you know that an update is available
    • New change teams interface -- select teams from list, shows team score and num players
    • Experimental enhancement: When using controller, a light touch on firing stick will display a vector showing where you'll shoot when you press harder (Disabled by default; To enable, set EnableExperimentalAimMode = yes in the INI file)
    • Minor enhancements

    • Enabled friendly fire
    • Disabled friendly fire again
    • Audio alerts when running a dedicated server when a player joins or quits. Set volume (disable by setting vol = 0) in the host section of the INI file.
    • When you change your loadout and you are already in a loadout zone, the changes take effect immediately (as opposed to when you next cross a loadout zone boundary)
    • Improved diagnostics screen -- now reports detailed version info, and more data about joysticks and auto-detect info
    • Raw joystick autodetect string sent to master as part of login process to better understand what controllers players are using
    • Can now start using main menu, before it's visible, while logo is appearing, if you know what keys to press
    • Warning text displayed if you try to do F9 chat and you are not connected to the master server (because your messages will go nowhere)
    • When player is killed by a turret, a message is broadcast (like when player is killed by a player). Previously, messages only broadcast when killed by other player.
    • Minor tweaks to cut down on bandwidth usage
    • Added -createsampleini command line option to help with producing new releases
    • Can only change teams once per minute unless you're admin, infrastructure in place for more sophisticated controls
    • Enhanced master server logging
    • Bug fixes

    • Fixed team scoring in zap match game
    • Fixed several problems with dedicated server -- should be working better now
    • Fixed [very] rare crash when some yahoo adds 10 gazillion mines in the editor and blows them all up. Also fixed inconsequential spark rendering bug in same case.

    New in release 007

    • Support added for alternate sound set; setting in INI to switch; new sounds still being developed; "classic" sounds will always be supported
    • Startup logo(s) -- more will be added
    • Player names color coded by team color in admin menus (should make it easier for admins to balance teams)
    • Player status prefixed by [Admin] or [Player] in admin menus
    • Modified master server to produce file showing current number of players/servers for live updates on website (is this the right mechanism?)
    • Reduced overhead during initial master server connection, should connect marginally faster

    New in release 006

    • SpyBugs -- new weapon available when you select sensor module. Let's you add sensors that let you see enemy ships on commander's map
    • Minimap test -- partial trial implementation of floating minimap on main screen. [Disabled for now, not as good as expected.]
    • Fixed default gridSize value in the editor
    • Several misc. bugfixes
    • Enemy mines less visible... now 25% transparent (were 0% transparent)
    • Mine energy cost reduced from 65000 to 55000
    • Tightened triple spread slightly (from 50 to 40)
    • Ships spawn with 80% energy, rather than full energy
    • Quick chat messages colored by whether they are team or global in Quick Chat menu
    • Quick chat messages and controls can be defined in the INI file
    • Added mines and nexus item to the dock in editor
    • Added new visual effects when you go through teleporter
    • Added help text when hovering over dock items in editor
    • Nexus items can now be any shape, like loadout zones (old style of defining them still works too)
    • Raised number of vertices in polygon items (loadout zones, nexus, etc.) from 10 (in Zap!) to 32
    • Implemented concept of "hostile-to-all" team (-2) (mostly applies to turrets) -->hostile-to-all turrets shoot at everyone, netural ones can be repaired, as usual
    • Can create neutral & hostile-to-all objects in editor
    • Any team can now use neutral loadout zones
    • Added music volume control, working to acquire high-quality game music. No music in this release.
    • Level is now properly centered and scaled when loaded into the editor

    New in release 005

    • Fixed ship rendering bug that incorrectly showed thrusters in relation to direction of rotation (bug also exists in Zap!)
    • Reduced CPU use when a dedicated server is running with no players in the game
    • When resizing game window in windowed mode, size is constrained to correct proportions
    • Reworked Windows installer so the process is prettier (reflects modern installer standards)
    • Partially reverted changes to commanders map where I allowed users to see bullets. Now can only see bullets if you have enhanced sensor installed
    • Fixed bug with incorrect loadout displays being shown after loadout change
    • Editor: LevelCredits line in level file -- credits displayed to remote clients along with level name & description
    • Editor: All game parameters and settings can be edited from the editor. Complete levels can be made without text editor (though you can still use one if you like)
    • Editor: Can change the name of the current file in the level params screen, giving a poor-man's "save-as" capability.
    • Editor: Upgraded whole undo/need-to-save interaction experience. Works much more logically now.

    New in release 004

      [Mostly editor enhancements]

    • Editor: Fixed bug where going to the menu and back would cause edits to be lost
    • Editor: Number of teams now displayed on dock
    • Editor: Turned off mouse cursor when testing level
    • Editor: Check for various errors like missing spawn points and notify user
    • Editor: Can't test level with obvious critical errors (avoids crashing game)
    • Editor: Warning message & dialog box when quitting editor w/o saving edits
    • Editor: Better instructions and hints throughout (including cool animation on p2 of instructions)
    • Editor: Level name and "need-to-save" indicator on dock
    • Editor: Very slick modifications to TextItem -- set text size by stretching vertices of alignment vector
    • Editor: NOTE: [F2] Game Params editor is not working

    New in release 003

      [Mostly editor enhancements]

    • Made bullets visible on commander's map
    • Fixed keyboard control bug from commercial game while in commander's map
    • Fixed bug where occasionally when hosting game, and changing levels in commander's map, game would crash
    • Added TextItem object to let level makers add text to levels. Syntax: TextItem -1 0.5 1 1 2 50 Message goes here where -1 is team (only visible to team members, -1 for all players), 50 is text size (valid range 10-255),
    • 1,1 is origin of text, 1,2 is direction text should be "facing"

    • Restricted characters in level files to ordinary "printable" characters (marginal security improvement)
    • changed rendering of "testItem" to 7 sides (had 8) because I think it's more interesting
    • Editor: Hold space to disable snapping while moving an object
    • Editor: 128 state undo/redo (Ctrl-Z/Ctrl-Shift-Z)
    • Editor: Set/edit teams from menu [F3]
    • Editor: re-load current level file to make external-tweaking easier [Ctrl-Shift-L]
    • Editor: Improved rendering of teleporters
    • Editor: Added "dock" area so users can drag/drop items from the dock
    • Editor: Replaced duplicate function with Copy/Cut/Paste (Ctrl-C, Ctrl-X, Ctrl-V)
    • Editor: Map centers on all objects, rather than centering at (0,0) (sort of, still needs work)
    • Editor: Added speed zone items
    • Editor: Much enhanced snapping routine, makes it easier to snap items together at different scales, or get items "back on snap" after they've been moved freehand
    • Editor: Items glow when hovered over, explanatory labels appear
    • Editor: Items are sorted internally so smaller items don't get hidden behind larger ones
    • Editor: Can grab polys by all sides or in middle
    • Editor: Use [shift] [+]/[-] to increase/decrease wall thickness by 1 (unshifted increments/decrements by 5)
    • Editor: Improved schematic rendering of items to make it clearer what they are
    • Editor: Ctrl-A to toggle wall-only view
    • Editor: Fixed crashes when you delete too many vertices from an item
    • Editor: Numbered vertices make it clearer what is going on
    • Editor: Reduced editor clutter at high scales
    • Editor: Join sections of wall that have conicident end points with [J] key
    • Editor: Split walls at vertex with [/] key
    • Editor: TextItem -- edit text of selected item with Ctrl-T, use up and down arrows to adjust text size
    • Editor: Rendering of TextItem pretty close to what you see in game (size calculated appropriately)

    New in release 002

    • More cmd line options replicated in INI
    • More comments/documentation within INI
    • New diagnostic screen to make debugging easier for both users and developers (activate w/ F12)
    • Fixed potentially major problem with GLUT misinterpreting Ctrl + [letter] keyboard entry (lesson: avoid binding CTRL)
    • Better joystick key renderings for Logitech game pad and Playstation joystick
    • Better raw joystick button detection for diagnosing controller problems
    • Upgraded spark generator to make better grenade/mine explosions possible.
    • Implemented better grenade/mine explosions (existing ones are rather anemic, and new ones give you an idea of true damage radius)
    • Levels specified in INI now properly sorted in alpha-numeric order based on names of keys
    • Added keyboard shortcuts on all menus. Usually the first letter of the menu item, where appropriate reverse-toggles unshifted keystroke
    • Many minor menu enhancements, navigation more logical
    • Resolved a number of non-critical compile warnings
    • Pressing F2 during game will display current mission instructions
    • Added support for private chat comments on global (F9) chat. Specify user by starting msg with /user. Now active while playing.
    • Made some display enhancements to private chat messages in global chat mode
    • New key config menu, available via options (can also bind DPad keys on joystick)
    • Master Server can now specify a name which is displayed in the server selection screen
    • Spiffed up Instructions screens
    • Added loadout indicators to show what you've got... (can disable in the INI file with LoadoutIndicators=No)
    • Started down long road of better integrating editor into game (lots to do, still doesn't work well, really not at all)
    • Editor: Got editor sort of integrated with rest of interface (still sucks, but integration better than commercial version)
    • Editor: added save confirmation message
    • Editor: enhanced file name entry
    • Editor: all new levels automatically saved in ".level" files (rather than anything at all)
    • Editor: can only edit files ending in ".level" in editor
    • Editor: added some rudimentary error checking and handling when saving
    • Editor: Ctrl-S now saves current level, Arrow keys pan (old keys still work)
    • Editor: created rudimentary help screen (F1), still more work to be done
    • Editor: removed command line to start in editor mode
    • All levels will be distributed in ".level" files rather than .txt
    • Can include MinPlayers and MaxPlayers directives in level files. Will be parsed, but as of yet have no effect.
    • Admin players have their names colored red in Admin menus (kick and change team)