Repository navigation
Releases: blisspixel/fragr
Release list
v0.90.0: Interface Polish, Accessibility, and Retro-Modern Identity
This release marks the complete delivery of the interface rules and polish milestone (#411-#418), unifying the visual hierarchy, screen flash budgets, terminal tooling, signature moment feedback, and the README front door into a cohesive retro-modern 3D FPS presentation.
Highlights
- Accessibility Tab (#414, PR #425): Added a dedicated Accessibility tab in Settings covering Screen Flashes (Full, Reduced, Off; default Reduced), Reduced Motion toggle, HUD Scaling (1.0x, 1.25x, 1.5x, 2.0x), and team color selection with accessible relation-first palettes (Ours/Theirs). Enforced a global rolling screen flash budget in screen_flash.gd with at most 3 admissions per second.
- Terminal Polish and Tooling (#415, PR #426): Implemented --no-color CLI flags and NO_COLOR standard environment variable detection across server, playtest, and adapter binaries. Added semantic ANSI level roles (cyan info, yellow warn, red error, dim debug), formatted hosting-first help, and introduced the canonical listener line: fragr-server listening on ws://{addr}.
- Signature Moments (#416, PR #427): Replaced harsh full-screen white/magenta washes with physical, retro-tactile visual treatments:
- SealCutPlate: A 4-frame stepped peel and affix physical certificate animation for match starts, respawns, and campaign checkpoints.
- StampCard: High-contrast relation-bordered paper cards for frags, captures, and objectives with 0 screen flashes and 0 magenta.
- Retired 6 full-screen flashes across combat, respawn, and podium chrome.
- README Front Door and Game Voice (#417, PR #428): Refreshed the README first screen with an ASCII wordmark, authentic opening lore, canonical Three Doors entry table (Play, Host, Bring an agent), above-the-fold 16:9 first-person HUD capture with visible viewmodel, world lore anchors, and four exact in-game broadcast quotes. Cleanly relocated the developer status block to docs/ROADMAP.md#now-in-development.
- Roadmap Advance to Campaign Episode V: With all 7 sub-issues #411-#417 and parent milestone #418 closed, the immediate project rung advances to the connected campaign climax: Level 19 (Planned Works) and Level 20 (Local Exception), followed by multiplayer and bot AI excellence.
Includes Windows, Linux, and macOS packages containing the standalone client, local authoritative server, and agent adapter.
v0.89.0
- Keep five frag rows in their own queue for 4.5 seconds each. Taunts, Host
lines and pickups have a separate corner voice budget. Objective calls appear
one at a time above aim, while results retain their backed cards. - Show resolved weapon glyphs and a bone plate for frags involving you. Feed
and standings share relation marks, and duplicate callsigns retain distinct
participant identities. Older events retain neutral, honest fallbacks. - Pause obscured notice clocks under actual loading, menu, story, standings
and mission covers. Preserve frags across round transitions, and keep scoped
voice readable. Duck the radio once when a Host line is first presented. - Carry optional participant IDs and resolved weapon provenance on frag events
through the adapter and observer. Omit uncertain optional statistics instead
of guessing from held guns or same-named fighters. - Update existing developer HTTP dependencies to Rustls 0.23.46 and
yoke-derive 0.8.4 without changing packaged desktop dependencies or TLS policy.
Includes the published tour, complete recorded-round replays and live CTF, Sabotage and Conquest objective captures. Windows, Linux and macOS packages include the client, local server and agent adapter.
v0.88.0
- Give health, armor and ammunition equal display numerals. Health changes at
50 and 25, keeps its exact count and bar, and pulses once on a fresh critical
injury. Empty magazines say EMPTY even when reserve rounds remain. - Center scores, clocks and objectives while keeping the corner to mode and
round state. Preserve capture information, Sabotage timing and all five
Conquest sites. Keep accepted participant scores through respawn and retain
final team/objective scores after the result card closes. - Add Reduced Motion to shared Accessibility settings. Cancel decorative
camera, HUD, weapon, pickup and story motion while retaining aim, accepted
attack/reload frames and world movement. - Reserve distinct space for context, notices, ammunition, radio and vehicle
controls. Keep full standings on the scoreboard binding. - Bound developer client checks with an independent process deadline and
retained per-check logs, including Windows descendant cleanup on timeout.
Includes the published tour, populated status-bar fixtures and refreshed TDM and Sabotage captures. Windows, Linux and macOS packages include the client, local server and agent adapter.
v0.87.0
Menus and the HUD now share the canonical fragr palette and two intended typefaces. Pixel labels stay crisp, display numerals are easier to read, and settings, objectives, vehicle controls, radio cards and results have room for the larger type.
The front end keeps its dark cabinet. World materials, weapon art, reticle preferences and game rules retain their existing behavior. Player names and chat continue to support Unicode glyph fallback.
Full standings wrap inside a bounded board. Hold the scoreboard and use weapon-cycle keys, wheel or bumpers to browse large rosters. Controller defaults now use Back for the board and Y for the spectator view. Customized bindings keep their ownership.
The release includes Windows, Linux and macOS desktop packages, each with the client and local server. Extract the complete archive before launching. Local play needs no API key or paid service.
The campaign has eighteen connected development missions. M19 and M20, fresh-player campaign acceptance and the remaining interface roadmap are still in progress.
Validation includes the complete client regression suite, palette and contrast checks, a published and inspected 32-state tour, and controls and joined-play captures at 720p, 1080p and 1440p. Those captures use Linux software rendering and do not establish hardware performance or physical-controller acceptance.
v0.86.0: Late campaign and player controls
The connected development campaign now reaches M18. Launch Authority brings the Walker fight into the campaign, followed by the stadium, avenue, Forever Office and transit corridor. Version-22 saves retain exact historical archives, mission-entry resources and the Episode IV/V continue refills.
- Agent admission failures remain visible instead of staying at "connecting". Round descriptions name the actual map and rules.
- Fresh pad controls include D-pad down to reload and D-pad left to crouch. Muted story narration becomes readable, reader-paced text without changing caption preferences.
- Late-mission geometry, shared departures, readiness, launcher menus and client validation are integrated. The motorcycle foundation and bounded arcade Rocket self-jump are included.
Validation: 2,142 passing native tests, 92.74% unfiltered line coverage, 578 Godot checks including 185 harnesses, multiplayer smoke/roster/soak checks, and inspected Linux rendered tours. Linux x86_64, Windows x86_64 and universal macOS packages pass headless installation checks on CI runners. SHA256SUMS.txt accompanies the downloads. macOS packages are ad-hoc signed, not notarized.
These remain development missions. M19/M20, final art, complete human routes and difficulty acceptance are unfinished; the unarmed late-mission practice starts still need balance work. Physical-controller feel and hardware frame rates are separate from these checks.
Changes and verification: PR #419 and passing main CI.
v0.84.0: Walker combat and team play
The Continuance Walker now has a playable development encounter: dodge warned stomps and locked artillery, move around its changing position, and strike exposed joints during recovery. Its mechanical presentation and collision follow the server's resolved facts. This is the foundation for Launch Authority; campaign level 14 is not connected yet.
Sabotage bots now recover charges and defuse around idle teammates while preserving an active defuse. The Rocket Launcher has visible reload movement tied to its actual deadline. Destroyed vehicle effects no longer reject valid snapshots, and a successful rejoin clears a previously failed loading screen.
Validation includes 2,074 native tests, 92.97% unfiltered line coverage, 176 Godot harnesses, live multiplayer scenarios, a two-minute soak, and inspected OpenGL and Vulkan software-rendered encounters. These checks do not establish hardware frame rates or fresh-player balance.
Changes and verification | Rendered and network evidence
Download the archive for your platform and keep the bundled server beside the game. SHA256SUMS.txt contains the package checksums.
v0.83.0: The Weight of Permission
The Weight of Permission is now the thirteenth connected campaign mission. Enter the Martian foundry, claim the first finite Rocket Launcher, secure the freight loop and upper gallery, and ride the freight lift out. The Rocket has a distinct first-person model and visible firing feedback.
Workers have three distinct voluntary responses. Their choices stay optional, their movement follows the server, and disabling the machine relay preserves the town feed. Machinery warnings, the overseer's surrender and lift recovery follow actual mission facts.
Saved runs continue from Terms of Cooperation without an episode refill. Version 17 retains historical save archives and mission-entry retries. Launch Authority remains unavailable until its connected mission is built.
This is a development mission. Final art, first-player pacing and difficulty acceptance remain open. Windows, Linux and macOS packages include matching game, server and MCP adapter binaries, license notices and checksums.
v0.82.1
Desktop packages now include fragr-agent-adapter beside the game and server. Saved MCP configurations use absolute paths, connection/action guidance is clearer, and hosted matches stay accessible through the menu.
- Traveling Rockets produce spatial launch feedback without doubling local prediction. Muzzle flashes retain their first draw on slow frames.
- Foundry worker release requires terminal reach, facing and line of sight. Party resets restore the standalone foundry, and unrelated bystanders no longer stall its freight lift.
- Developer asset tools retain historical model credit holds and report allowance details. An inspected foundry ladle and surface comparisons remain offline sources; newly generated audio is not included in these packages.
This remains a development prototype with twelve connected campaign levels. M13 is still an unconnected development map. Final art, fresh-player balance, physical LAN evidence and the rest of the campaign remain open.
PR #401 records the round. Main CI passed all eight jobs, with 92.92% line coverage and Linux, Windows and macOS checks. Local validation includes an inspected 32-state Linux visual tour, eight network scenarios/routes, a seven-map roster and a two-minute soak. The matching pretag Linux archive also passed its install check on Omarchy with isolated settings and saves.
All three tagged desktop packages passed native adapter, server and exported-game install checks, including TDM and 5v5 Sabotage readiness, wire connection and owned shutdown. Attached archive digests match SHA256SUMS.txt.
fragr v0.82.0
Assisted, Standard, and Severe now change ordinary campaign supply and how long an enemy remembers a sighting. Assisted holds between bursts and receives half again as much ordinary ammunition, health, and armor. Severe remembers a sighting longer, steps in sooner between bursts, and receives two thirds. Standard tell timing and Standard amounts stay exact. Secrets, grenades, mines, and arcade pads stay authored. Rules revision stays 4. This is not fresh-player balance.
- Development grayboxes for levels 15 through 20, and a sheltered trench on the level 14 battlefield, are not missions. The foundry successor now carries the optional gate key and is still not a mission. Walker, save promotion, and the menu remain unbuilt.
- Connection admission, spectators, status answers, and live plus parked pawns are bounded, with loopback room for the desktop client and playtests. A join ticket can be one-time and audience-bound. Local tickets stay reusable when no audience is configured. The client does not attach a ticket on a public cleartext ws host. A saved server keeps its wss scheme. Present Origin values must match an allow-list. Snapshot rows, board posts, adapter events, brain traces, and developer receipts are bounded. Release workflows pin third-party actions and check Godot archives against a committed digest. Gameplay version, campaign rules revision, and the save format stay unchanged.
These are development prototypes. Full campaign completion, final art, fresh-player acceptance, physical LAN evidence and a networked 64-player capacity claim remain open.
fragr v0.81.0
The Rocket Launcher is a traveling server weapon with straight flight, covered splash, a one-round tube and a separate Rockets pool. Shared arcade rooms use gameplay 46. Version 16 saves add an empty Rockets pool and reject a forged launcher. Arcade stock stays at zero. No mission grants it. Its viewmodel art and the optional habitat secret remain unfinished.
- Leaving a match stops match voices before the scene exits, so the round-start sample is released.
- The foundry successor opens the ladle shaft and places an office Rocket Launcher and a freight Assessor. It is not a mission, and no menu launches it.
- Foundry relay, hazard, worker and lift rules are tested on a fixture map. The successor map does not carry their key.
Connected foundry progression and Walker remain unfinished. Full campaign completion, final art, fresh-player acceptance, physical LAN evidence and a networked 64-player capacity claim remain open.