Repository navigation
Releases: timriker/bzo
Releases · timriker/bzo
Release list
v1.3.44
bzo@1.3.44 changelog:extract
node scripts/extract-changelog.mjs v1.3.44
[1.3.44] - 2026-10-12
Added
- Per-flag shot limits, as bzfs's
-sl:shotLimitsinserver.jsonor
-sl <flag> <count>in a map. The last shot uses the flag up. Where any
limit is set, the HUD shows "N left" or "unlimited" above the reload bars. - Scores survive a restart for new code (nodemon, a Docker upgrade), but not
a map or server option change. docs/bzfs-options.md: every bzfs option and what bzo has for it.
Changed
- Server bots take the highest free player slots and are named for them
(Ace41), so a bot that leaves and comes back keeps its score.
Fixed
- A bot reaching a base no longer has its capture logged as "standing on no
base".
v1.3.43
bzo@1.3.43 changelog:extract
node scripts/extract-changelog.mjs v1.3.43
[1.3.43] - 2026-10-11
Added
- Tank skins, as in BZFlag 2.5: Standard, Hex, Digital, Facet and Solid,
chosen in the entry dialog or XR Player Options and changed without a
respawn.
Changed
- Tanks wear upstream's texture for their team; only its team-coloured
patches follow each player's shade. Free-for-all colours keep the
repainted camo.
Fixed
- The turret's camo is no longer stretched, and the hull faces bzo fills in
carry the pattern at upstream's size.
v1.3.42
bzo@1.3.42 changelog:extract
node scripts/extract-changelog.mjs v1.3.42
[1.3.42] - 2026-10-11
Added
- A player changes team without a rejoin, as BZFlag 2.5 does: between
playing teams the tank keeps its life and score and takes the new team at
its next spawn; going to observer self-destructs a live tank; to and from
observer has no rejoin wait.
Changed
- Paused and not-responding tanks are dimmed on the radar, as upstream
draws them. - hix's and bzo.bzw's walkway grid is see-through in BZFlag clients too.
Fixed
- Changing only the tank in XR Player Options no longer respawns it.
v1.3.41
bzo@1.3.41 changelog:extract
node scripts/extract-changelog.mjs v1.3.41
[1.3.41] - 2026-10-11
Changed
- The BZFlag port's TCP and UDP listen, and WebTransport (with
httpsand
its packages) and WebRTC (with werift) are on, without aserver.json
block asking:"bzflag": false,"webtransport": falseand
"webrtc": falseturn each off and stop offering it. - hix lets tanks jump.
- Ace, the autopilot and server bots, plays to the score: a foe coming down
from a jump on his level within a shot's reach is shot first; a foe 10
clear of everyone is hunted ahead of captures; 3 under his foes' average,
he fights rather than captures or fetches flags. - A map's flag and team spawn zones reach browsers and bots beside its
safety zones. Ace takes an unnamed flag in a one-type zone for that type,
and with no foe left alive waits within a shot of a foe's spawn zone. - Ace's routes no longer drive or fly through a wall thinner than the route
grid (hix's diagonal walls), drive off the point of a turned base, or land
where a small miss falls off a corner; he goes round on the ground rather
than jump to a landing a foe has a clear level shot at, unless that is
much further; and he no longer fires a level shot at a foe whose body is
not at his muzzle's height, Super Bullet included. npm run bench:stuckdrives Ace between random spots on a map and lists
where he backed off, missed a jump or never arrived.- Ace takes his own flag to the middle of his base and puts it down there
on the move, rather than at the edge he came in by -- where he could also
stall, turning between home and not. - Ace counts a jump flown once he is down on its level a few units short of
the planned landing, instead of taking it a second time from there -- the
second jump that carried him past his base onto the pyramid under it. - A jump from a flat mesh top with the tank's centre over its edge keeps its
speed; it went straight up, as off a slope. - Ace gives up a flag he is held short of twice, and steers round a bad
flag he knows of rather than drive over it -- including one the player he
flies for has seen carried, identified or named. - Ace keeps Identify, remembers what it names, and trades it only for a
flag worth it (L, GM, SB, SW, G, ST); he goes out of his way for one only
while ahead on his own and his team's score. Server bots holding it learn
what it names, as a person's client does.
Fixed
- Flags no longer spawn inside buildings on a map whose flags are 0 tall
(hix), and one dropped inside a building climbs onto it or, with no top
to stand on, leaves, as upstream.
v1.3.40
bzo@1.3.40 changelog:extract
node scripts/extract-changelog.mjs v1.3.40
[1.3.40] - 2026-10-10
Added
- Everything on one port, 5154 by default, TCP and UDP. Browsers carry moves
and shots over WebTransport ("webtransport": true), else WebRTC
("webrtc": {}), with the voice TURN relays as the last resort and the
WebSocket until one opens -- iOS Safari, Firefox, Chrome and the Quest
included. BZFlag clients share the same UDP. - HTTPS on the port speaks HTTP/2, so a page's requests share one connection.
/playerlist, the scoreboard'sTcolumn and/api/playerssay which
path a player is on:h3+,rtc+,turn+(h,r,t), and a BZFlag
client'sudp+(b+)./test.htmllinks the?udp=h3|rtc|turn|wstest modes and
/wt-test.html; the log notes a main thread that stops answering.
Changed
- The default port is 5154, BZFlag's IANA port.
- WebRTC no longer needs a port of its own:
webrtc.listenand 5153 are
gone, and node-datachannel with them; an oldlistenis ignored with a log
line.
Fixed
- A BZFlag client on the server's own network gets its UDP link through the
router's loop-back. - The scoreboard's names and 1-on-1 column show in Firefox.
v1.3.39
bzo@1.3.39 changelog:extract
node scripts/extract-changelog.mjs v1.3.39
[1.3.39] - 2026-10-10
Fixed
- Playing on a watched BZFlag server: Player Options now offers the teams
that server runs, and /list's Play uses the team chosen there instead
of always Automatic. A team the server does not run places the player
rather than leaving them watching.
v1.3.38
bzo@1.3.38 changelog:extract
node scripts/extract-changelog.mjs v1.3.38
[1.3.38] - 2026-10-10
Fixed
- Ace no longer holds its own flag on a corner of its base without putting it
down, sits stuck with Left or Right Turn Only or Reverse Only, or camps at a
foe on another level that a level shot cannot reach. A camp that never
fires is now given up.
v1.3.37
bzo@1.3.37 changelog:extract
node scripts/extract-changelog.mjs v1.3.37
[1.3.37] - 2026-10-10
Fixed
- Ace no longer gets stuck inside a lift's teleporter going straight back
down, falls off a walkway after a lift, circles a flag instead of picking it
up, trades one good flag for the next, rides a lift up and down chasing a
flag, or camps at a foe its barrel cannot see. - Ace drops Oscillation Overthruster before a lift up, and no longer tries to
drop its flag over a raised base it cannot get onto.
Changed
- Ace comes into a lift at the angle that leaves it facing the way on, and
with a laser keeps just outside a foe's lunge-shot reach.
v1.3.36
bzo@1.3.36 changelog:extract
node scripts/extract-changelog.mjs v1.3.36
[1.3.36] - 2026-10-10
Added
- Ace camps: with nobody near it fetches flags until it has GM, L or SB,
then shoots from the best vantage point it can reach, leaving a spot after
shots it had to dodge or a Shock Wave in reach. Debug Geometry shows the
spots it weighed. - Routes go through teleporters, so a pilot uses lifts such as hix's corners.
Server bots now teleport at all, and lock a Guided Missile before firing. - A map's safety zones reach the browser, as they always reached BZFlag
clients. hix has one on each base.
Changed
- Ace keeps a team flag until home, fighting on the way rather than dropping
it, and drops its own flag over an enemy base when it would land near home. - Ace fetches flags on other levels by route, and plans routes with the
jumping its own flag allows. - hix has jumping off for now, while the lifts are tested.
v1.3.35
bzo@1.3.35 changelog:extract
node scripts/extract-changelog.mjs v1.3.35
[1.3.35] - 2026-10-10
Added
publicUrlmay be a list of a server's names. The bzo list checks each one
against the server's key and shows those that answer under Also at,
and under Carried by on a carried server's row.
Changed
- Ace goes after whoever has its team's flag at any range, fetches its own
flag home before an enemy flag that is not much nearer, shoots back at a
foe that just shot at it, counts a runaway score leader as nearer, keeps
to captures when its team is behind, and hunts rather than wanders while
there is anyone to find. - The autopilot's HUD line and server bots' debug labels say why Ace picked
its target:chase (retaliate),hunt (ours-carrier),chase (leader). - Release and CI images come from mirror.gcr.io rather than Docker Hub.