Skip to content

0.4.0 - both DLCs, and a Skip that works on every puzzle

Choose a tag to compare

@drohack drohack released this 25 Sep 16:47
· 48 commits to main since this release

0.3.4 seeds need regenerating. The tables grew from 432 locations to 822
and from 18 items to 19, and location ids moved: parts the game solves the
moment a level opens, or never, stopped being checks, and several levels'
checks were corrected by play. The mod refuses a seed made by a different
apworld version, as it has since 0.3.3.

A yaml with puzzle_count below 10 no longer generates. The minimum rose
from 8 to 10, two full packs of 5. A 0.3.4 yaml otherwise still works; the new
options default to both DLCs off.

Install

Three files, and they carry the same version on purpose. See
docs/installation.md.

  • ALTTLArchipelago-0.4.0.zip - the mod. Extract into the game folder. You
    need BepInEx 6 for Unity IL2CPP
    installed first
    - it is not included.
  • alttl.apworld - only whoever generates the seed needs it. Goes in
    Archipelago's custom_worlds/. Requires Archipelago 0.6.7 or newer.
  • A Little to the Left.yaml - your settings. Edit the name and hand it to
    whoever generates.

What a player will notice

  • Both DLCs, each behind its own toggle and off by default:
    cupboards_and_drawers (25 puzzles) and seeing_stars (37), weighed by
    cupboards_weight and stars_weight (default 10) beside the other weights.
    You need the DLC you turn on. The five Seeing Stars puzzles the game locks
    behind a star total are opened by the mod, and a new ability, Distributing,
    gates DLC2's Pizza.
  • Ability locks really lock. In 0.3.4 some greyed-out objects could still
    be played - stickers and coins among them, enough to finish a puzzle holding
    nothing - and a level's locks landed up to a second after it opened. A
    locked object can no longer be moved, the locks are in place the moment a
    level opens, and an ability that arrives mid-puzzle frees its objects at
    once. A lock no longer makes Radial Dance Party unwinnable.
  • A check you finish without the item it needs is held back, and sent on a
    later visit to that puzzle once you have the item. Beating a puzzle and a
    Skip always pay out.
  • A Skip works on every puzzle. Where the game's own skip does nothing -
    the generated puzzles, inside a run, where 0.3.4 spent the Skip for nothing -
    the mod clears the puzzle itself, sends every check on it and takes you back
    to the level select. A Skip is spent once, and only when it did something;
    one pressed on a puzzle with nothing left to find is refused.
  • Checks that asked for too little. Some checks asked for less than their
    puzzle needs, so a seed could put a needed item where you could not yet reach
    it: Tupperware Nesting's lids ended a run that way, and Fruit Stickers could
    not be peeled holding Tidying alone. A requirement is never loosened
    without a hand test behind it.
  • The hover stars on a card are the run's own: empty on a new seed, one
    lit for each solution you complete, all of them after a Skip.
  • Cards read red, red/green, green or a star, and the dark veil over a
    locked card is gone. A locked card and a beaten one with nothing reachable
    are the same red square; hover for the stars, or read the beaten count in
    the corner.
  • Playing offline shows what online shows - the same cards, stars and
    goal count.
  • Starting a new seed no longer resets your resolution setting.

What changed underneath

Requirements proven, not guessed. Every part that asked for less than its
level was audited, and every guarded level was played once with the locks off
while a recorder logged when each group became movable. 65 levels are now
proven by play; the results are apworld/alttl/data/proven-requirements.json
and the edges in levels.json. Nothing unproven can hold progression.

Every level measured alone. All 173 levels were booted and forced one at a
time, and skipped one at a time, into fixtures/forceability.jsonl; the
release gate plans each run on paper from it before it plays, and stops the
moment the game disagrees.

The gate itself. It keeps the log of every session, warns when it sends a
solve into a paused game (it caught a cat trap's reset holding events for
about 8 seconds, released by the game itself), buys a Skip on any level and
stops if one does nothing.

Known limits

  • After a DLC puzzle the game still opens that DLC's own level select for a
    moment before the mod swaps in the run's track. Once, after DLC1 Boss, both
    stayed on screen and clicks went nowhere. What causes it is not known; if
    you see it, BepInEx/LogOutput.log from that session helps.

Verified

Both release gates on this exact code: the DLC gate 28/28 and the base gate
28/28, all 15 puzzles beaten in each. These files were rebuilt from the tag and
differ from the gated build only in line endings and the commit id stamped into
the DLLs. Core 357 tests, apworld 193, the harness scheduler 210 with 88 of 88
mutations caught, the fill stress over 25 seeds and 1000 seeds at the new
10-puzzle floor, and CI green on main before this was published.

Full detail in the CHANGELOG.


This project was built with AI assistance.