Changelog
LoomWrite Engine
Patch Notes
This tracks the shared engine — not any one game's story or scene content, which each game versions independently. Patch notes below are tracked starting at v0.2.006, from back when the engine and its first game, Meridian Ascent, were still one project; see the note at the bottom for what was already in place before that.
For documentation, please Click Here.
v0.4.001 2026-08-22
- Accent color is now a per-game config field (
Game.Config.accentColor) instead of fixed in the stylesheet. - Added a background preset system (
Game.Config.background) with four built-in scenes — Stars (the original twinkling starfield), Clouds, Mountains, and VaporWave — plus an Image option for a custom uploaded background.
v0.4.000 2026-08-22
- Split the codebase into a shared
engine/and onegames/<name>/folder per game — the engine no longer assumes it's running any one specific game. - Added a fantasy reference game ("Goblin's Due",
games/fantasy-demo/) demonstrating dice combat, multiple currencies, and leveling — none of which Meridian Ascent uses. - New
combatMode: "dice"option — classic d20-to-hit-vs-AC plus damage-dice resolution, selectable per game or per enemy, alongside the original flat formula (which Meridian Ascent keeps using unchanged). - New item registry (
Game.Data.items) — any item can now be made usable or equippable through data alone; usable items no longer need a matching code change. - New currency registry (
Game.Data.currencies) — a game can declare any number of named currencies (gold, credits, reputation, ...), each shown in the status bar. - New optional leveling/XP system (
Game.Config.levelCurve, theaddXPeffect) — off by default, opt-in per game. - Ambient music is now preset-based and swappable per game instead of one fixed mood — a new
fantasy-tavernpreset joins the originalsci-fi-drone. - Save data is now prefixed per game, so multiple games can be hosted on the same domain without their
localStoragecolliding. - The version number and these patch notes moved from being a per-game setting to an engine-level one — the boot screen's version link now always points here, describing the engine everything is built on rather than any single game.
v0.3.014 2026-08-18
- Fixed number-key presses in input fields (e.g. debug mode's stat/flag editors) being misread as conversation choice selections.
v0.3.013 2026-08-17
- Added an internal debug mode for playtesting.
v0.3.012 2026-08-16
- Added icons to the title screen menu buttons — New Game and Load Game now pair an icon with their label, and Achievements sits alongside a new wordless music toggle button.
v0.3.011 2026-08-16
- Added
analyticsTagtoGame.Config— paste any analytics provider's tracking snippet (Tinylytics, Plausible, Fathom, GA/gtag, etc.) and it loads into<head>on every page load, same pattern asiconSetTag. Documented in documentation.html.
v0.3.010 2026-08-16
- Styled the scrollbar in the Achievements and Inventory panels to match the game's theme instead of the browser default.
v0.3.009 2026-08-16
- Achievement titles and descriptions now support the same
**bold**/*italic*markup as scene text, in both the unlock toast and the Achievements panel.
v0.3.008 2026-08-16
- Reworked the post-vote approach beat:
first_lookis now a hub letting you talk to the medic, talk to security, or skip straight to suiting up, in any order. - The medic and security conversations now link to each other and to suit up, and drop off the list once you've already had that conversation (new
met_medic/met_securityflags). - Fixed
suit_uppointing back atfirst_lookinstead of continuing on to docking — it was orphaned wiring left over from before this reorg.
v0.3.007 2026-08-15
- Fixed the game failing to load several early scenes (including the room) after scene files were renamed to the new
XYZ_name.js(Act/Scene/Event) convention —story.js's load list was still pointing at the old filenames. - Updated the documentation and code comments to describe the new numbering convention.
v0.3.006 2026-08-15
- Merged the "room" (wake-up) and "room_return" scenes into a single gated scene, following the same visit-counter pattern already used for the shower.
v0.3.005 2026-08-15
- Achievement toast now reads "Achievement: {title}" instead of "Achievement Unlocked: {title}".
v0.3.004 2026-08-15
- Choice numbers ("1.", "2.", ...) are now a quieter dim gray instead of bold accent blue.
- The Achievements panel no longer scrolls the whole box (title and Close button included) once you have enough trophies — it now stays a fixed max size with just the trophy list scrolling inside it.
v0.3.003 2026-08-15
- Replaced the "Inventory" text button in the status bar with a backpack icon, matching the other status bar controls.
v0.3.002 2026-08-15
- Added a Platinum "You Did It!" trophy for earning every other achievement, with its own icon in the toast and achievements panel.
- Platinum eligibility is computed live rather than stored as a permanent flag, so it can never go stale — if a new achievement is added later, players who don't also have that one correctly stop showing Platinum until they do, with nothing to migrate or reset.
v0.3.001 2026-08-15
- Increased the star field density by about 20% (80 → 96 stars).
v0.3.000 2026-08-15
- Choices can now show an icon — add
icon: "fa-thin fa-check"(or any Font Awesome class string) to a choice object. - New
Game.Config.iconSetTagsetting to load your Font Awesome kit/stylesheet into the page — this is the one deliberate exception to the project's no-external-dependencies rule, and only matters if you actually set it.
v0.2.011 2026-08-15
- Status bar polish: a profile icon next to your name, a heart icon in place of the "HP" label, and your HP is now a filled bar instead of a plain number.
v0.2.010 2026-08-15
- Fixed the documentation page opening to a blank screen you had to scroll past before reaching any content — the table-of-contents sidebar wasn't actually nested inside its layout container, so it was forcing a full viewport-height gap above the real page.
v0.2.009 2026-08-15
- Reworked the documentation into a full engine reference — config, scenes, enemies, endings, achievements, save data, and audio, in that order — instead of just content-authoring basics.
- Renamed
CONTENT_GUIDE.md/CONTENT_GUIDE.htmltodocumentation.md/documentation.html.
v0.2.008 2026-08-15
- Added this patch notes page. The version number on the title screen now links here (opens in a new tab).
v0.2.007 2026-08-15
- Each choice now clears the screen and shows a fresh scene, instead of the old scrolling transcript of every scene you've visited.
- The scrolling-transcript log is still available as a fallback (
clearTextBetweenChoices: falseinconfig.js) — and its scroll position bug is fixed too, so it's not just a worse option kept around for nothing.
v0.2.006 2026-08-15
- Restart now shows a proper "Are you sure?" confirmation pop-up instead of swapping out the on-screen choice buttons.
- Restart and the ending screen's "Play Again" both return you to the title screen now, rather than dropping you straight into a brand new playthrough, allowing you to rename your character if you wish.
Before patch notes were tracked
Version numbers weren't being bumped consistently before v0.2.006, so there's no clean per-version list for everything earlier than that. In no particular order, the build already had:
- A full Act 1 playthrough — waking up, maintenance tasks, the beacon briefing, the crew vote, suiting up, and docking with the derelict Meridian Ascent.
- A data-driven scene format supporting flags, conditions, visit counters, and branching text variants.
- A persistent achievements system, with an in-game panel and pop-up toasts.
- An ending credits scene, with clickable links for music attribution.
- A procedurally generated ambient score for ordinary gameplay, plus dedicated opening and credits tracks.
- A twinkling starfield behind the whole game, not just the title screen.
- Icon-based controls (Achievements, Music, Restart) in the status bar.
- Automatically styled spoken dialogue, distinct from narration.