Skip to content

Releases: timriker/bzo

v1.3.44

Choose a tag to compare

@github-actions github-actions released this 12 Oct 05:01

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: shotLimits in server.json or
    -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

Choose a tag to compare

@github-actions github-actions released this 11 Oct 21:44

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

Choose a tag to compare

@github-actions github-actions released this 11 Oct 17:57

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

Choose a tag to compare

@github-actions github-actions released this 11 Oct 04:00

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 https and
    its packages) and WebRTC (with werift) are on, without a server.json
    block asking: "bzflag": false, "webtransport": false and
    "webrtc": false turn 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:stuck drives 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

Choose a tag to compare

@github-actions github-actions released this 11 Oct 00:03

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's T column and /api/players say which
    path a player is on: h3+, rtc+, turn+ (h, r, t), and a BZFlag
    client's udp+ (b+).
  • /test.html links the ?udp=h3|rtc|turn|ws test 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.listen and 5153 are
    gone, and node-datachannel with them; an old listen is 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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 08:04

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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 07:39

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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 05:33

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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 04:49

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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 00:26

bzo@1.3.35 changelog:extract
node scripts/extract-changelog.mjs v1.3.35

[1.3.35] - 2026-10-10

Added

  • publicUrl may 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.