Skip to content

Releases: drohack/cw4-archipelago

v0.2.0 - The SPAN Experiments: 26 new maps, untested but playable

Choose a tag to compare

@drohack drohack released this 18 Sep 20:16

Matched pair: install the plugin zip AND regenerate with this cw4.apworld. The plugin and the apworld share a version number and must match.

Requires Archipelago 0.6.7 or newer.

This release is backwards compatible. The new content is off by default, and with it off the item placements are byte-identical to v0.1.x - so a seed you would have generated before generates exactly the same now.

The SPAN Experiments: 26 new maps, untested but playable

Creeper World 4 ships 26 SPAN Experiment maps alongside the 20-mission campaign. With span_missions: true in your yaml, those 26 join the pool the seed draws from: the level select still holds 20 planets and the goal is still Founders, but the other 19 slots are now drawn from the 19 remaining campaign missions and the 26 SPAN maps together.

Be clear about what "untested" means here, because it is narrower than it sounds. Tested end to end: the maps load, their objectives register, their checks send, locked slots stay locked, and the finale counts SPAN completions. Not tested: whether any individual SPAN map is beatable with the items the logic thinks it needs. Nobody has finished one inside a seed yet.

The campaign's requirements came from playing the missions. The SPAN requirements were derived - objective counts and totem resources read out of the game, mover requirements computed from the terrain - and the detectors were validated against the campaign before being trusted here. Derived is not played, and three things no measurement can see:

  • creep advance, so a route that exists on an empty map may be gone by the time you need it
  • reach that is not about terrain (one campaign map is a single unbroken landmass and still needs a Pylon)
  • environmental hazards (one campaign map rains creeper, so a Shield is a reach requirement there)

Logic therefore over-requires rather than under-requires. The realistic failure mode is a map that is harder than it needs to be, not one that cannot be finished.

If you play them, please tell us what they needed

This is the whole reason the option ships. Open a SPAN map report - four questions, no copying, blanks welcome. A blank is information; a guess is not.

The single most useful thing you can report: could you take any objective holding no items at all, with just a rift lab and towers? That is what lets a seed start.

Also in this release

  • Build and release audit. Sixteen defects in the build, version and release path, three of which could reach a player. The shipped apworld no longer carries its own test suite (41 percent of the download), and the mod now tells you when it does not match the seed it connected to.
  • Founders: a Terp crosses the chasm, not just a Platform, and ERN upgrades: half as many, and no weaker - both from v0.1.10, included here for anyone upgrading from earlier.

Downloads

File What it is Where it goes
CW4Archipelago-v0.2.0.zip The game mod Unzip into your Creeper World 4 folder, next to CW4.exe. Needs BepInEx 6.0.0-pre.2, IL2CPP, win-x64 installed first.
cw4.apworld The Archipelago world Your Archipelago installation's custom_worlds/ folder (create it if missing).
Creeper World 4.yaml Your options file Archipelago's Players/ folder. Edit name: before generating.

Full install walkthrough: docs/installation.md.

Known issues

  • No full playthrough of a SPAN seed yet. See above - that is what this release is asking for.
  • SPAN logic is conservative by design. A SPAN map may demand more than it strictly needs.

Feedback

GitHub issues. For a SPAN map specifically, the report form asks exactly the four things the logic cannot measure.

v0.1.10 - Founders opens up, and ERN upgrades stop arriving dead

Choose a tag to compare

@drohack drohack released this 14 Sep 18:59

Matched pair: install the plugin zip AND regenerate with this cw4.apworld. This release changes how an option reaches the plugin, so an old plugin with a new seed would read one ERN setting wrongly.

Requires Archipelago 0.6.7 or newer.

Founders: a Terp crosses the chasm, not just a Platform

The enemy builds a land bridge to the starting island. The only thing wrong with it is that it is too bumpy to place weapons on - and a Terp fixes that. Every Founders rule that meant "you have to leave the starting island" now accepts either route: the nullify targets, the three totems across the chasm, and the custom objective.

The item cache dropped its Platform requirement entirely. It already needs a Terp to dig the item up, so once a Terp does the crossing that requirement can never fail - anyone who can dig it out can get to it.

A Terp route does not pay for the greenar chain a Platform needs, which the logic table shows as Factory or Terp.

ERN upgrades: half as many, and no weaker

45 percent of ERN upgrade items were arriving before the ERN Portal that makes them work. The portal gates nothing in logic, so it is placed at random and lands around the middle of a run. Measured over 40 seeds: 21.6 dead-on-arrival items per seed out of 48, worst seed 47.

  • ern_upgrade_copies 4 -> 2, so 48 items become 24
  • the freed slots go to the energy upgrades: energy_storage_copies and base_generation_copies 8 -> 20 each, turning 16 items into 40
  • pool size unchanged; dead-on-arrival falls to 10.3 per seed, worst case 23

The ERN maxima did not move. The copy count now behaves like the energy one - the per-copy step is the maximum divided by the count, so two copies is two bigger steps rather than half the power: 200 percent efficiency in steps of 50, 400 percent rate in steps of 150.

That part is a fix, not a rebalance. The plugin used to divide by a hardcoded 4 because the pool's copy count was never sent to it, so lowering the option silently lowered the ceiling instead of coarsening the steps. The count now travels in slot data.

Seeds generated before this release are unaffected - they send no such key and the plugin falls back to 4, which is what they were built with.

Also

  • The ERN Portal is, and always was, in every seed. Confirmed after a report of never seeing one: one copy per seed, never retired, never precollected. A playthrough that misses it had it behind a check that was not done.
  • Fixed: generation errors in CI. The suite could fail with FillError: No more spots to place 25 items on roughly 1 seed in 1,000. No seed was ever unfillable and no released seed was affected - the tests were generating down a path no player uses. Measured 0 failures in 16,000 seeds on the shipped path against 3 in 3,000 on the test-only one.

Install

See docs/installation.md. If the game starts and nothing has changed, check whether the BepInEx console closes just before the game window appears - that is Steam replacing the process the mod loaded into, and a steam_appid.txt file fixes it.

v0.1.9 - the log reaches the bottom, and two missions read true

Choose a tag to compare

@drohack drohack released this 14 Sep 16:10

Three fixes from play on v0.1.8, and one install gotcha that makes the mod look like it never loaded.

The message log opens at the bottom

Third time reported, first time actually fixed. The log was switching off its own auto-scroll: the scrollbar treats any movement as you dragging it, and it moves by itself whenever the log grows. So on a full log the mod concluded you had scrolled away, stopped following, and left the view in the middle. It now keeps up with the layout for as long as the layout is moving.

Both previous attempts guessed how many frames the text needs to lay out, and both were far too short on a full log. The test that passed them was running against a log holding eight lines; it now fills it to 150 first.

Not My Mars is re-graded

v0.1.8 demanded a Pylon, Porter or Platform, and nothing could satisfy it - so the whole planet turned red the moment it unlocked. It now reads:

you hold the map shows
a weapon red
weapon + Miner yellow
weapon + Miner + Platform yellow
weapon + Miner + Pylon or Porter green

The Miner is required outright - nothing powers the far island without one. Crossing the gap is not: hovering the rift lab gets you over and so does a Platform, but both are hard enough that logic will not assume them. Its cache is still free, so the mission can still open a seed.

Founders no longer shows green across the chasm

Only the two totems on the right-hand starting island are reachable with the factory alone. The other three need a platform, and the totems were the one objective on that map not asking for one - so the planet read green while holding no way across at all.

Installing: stop Steam relaunching the game

If BepInEx flashes up and closes just before the game window appears, and there is no Archipelago panel, this is why. Creeper World 4 asks Steamworks whether it needs restarting; started without Steam having told it which app it is, it relaunches itself through Steam and exits the process BepInEx just loaded into. The mod loads perfectly and is then thrown away two seconds later.

Fix: create a file called steam_appid.txt next to CW4.exe containing 848480, and launch the exe directly rather than from your Steam library. The console staying open for the whole session is how you know it worked. See docs/installation.md.

Install

Requires Archipelago 0.6.7 or newer. The mod and the apworld share a version - update both together.

  • CW4Archipelago-v0.1.9.zip - unzip into your Creeper World 4 folder
  • cw4.apworld - for whoever generates the multiworld
  • Creeper World 4.yaml - a ready-to-use options file

The two logic fixes are in the apworld, so they apply to newly generated seeds. An existing seed carries its requirements in its slot data and will keep showing the old colours; the message-log fix is in the mod and applies immediately.

v0.1.8 - checks that belong to the right structure

Choose a tag to compare

@drohack drohack released this 08 Sep 16:24

Checks now belong to the structure you completed, not to how many you have completed.

Nullify the hard enemy first and you used to get Nullify 1 - the Nth thing finished simply sent the Nth check, across 203 of the 236 locations. Each structure is now identified by its position on the map, so Nullify 3 is always the same enemy, Totem 2 always the same totem, and Cache 1 always the same cache.

This matters beyond tidiness, because different instances carry different requirements - and those were landing on whichever structure happened to be finished in that slot. Re-derived from the map:

  • Sequence's 14 nullify targets split four ways: two top-left emitters need only a weapon, five under the dark tower need the beacon, four bottom-right are tower-reachable, three top-right take the beacon or a mover. The easy pair turn out to be instances 6 and 11 - in the middle - which the old "the first N are easy" table could never express.
  • Sequence's two caches are no longer both treated as buried: only the right-hand one needs the Terp.
  • Shattered's mover requirement is pinned to the actual top-left totem beside the nullify targets - the bug where that totem read as reachable without a Porter or Platform.
  • Farsite's free cache is pinned to the one nearest the rift lab.
  • Wallis needs a Cannon specifically - Mortar-and-Sniper is not a beatable seed there any more - and its Miner is now "reachable but not promised". Its old "first 2/4 enemies" tier is withdrawn.

Caches needed one extra step: collecting one destroys it, and units carry no id, so the mod now ships the map positions of all 20 and works out which is missing. Even a save from before this update identifies its caches correctly.

Also fixed

  • An unreachable server stopped being retried after about four attempts, silently. Start the game before your server is up and you would sit disconnected forever with nothing in the log to explain it. Three causes: leaked connections, thread-pool contention, and a single hung connect ending the chain. Verified to nine attempts over seven minutes.
  • A location checked by someone else did not repaint the map - an admin /send_location, a !collect, or another client on your slot only showed up after a reconnect.
  • The message log opened part-way up instead of on the newest line.
  • Not My Mars needs a Pylon, Porter or Platform to move liftic to the totems and reach the enemies. Platforms and beacons run on liftic, so both now require the refinery and factory.

Breaking: the traps are renamed

Every trap now ends in Trap, and Creeper Surge is now Rift Breach Trap - a surge sounds like emitters ramping up, and what it does is drop a slab of creeper next to the rift lab. There are no aliases: a seed generated before this sends the old name and its traps will silently do nothing. Regenerate to keep traps working. Item ids did not move, and yaml keys are unchanged - trap_weight_creeper_surge still sets the Rift Breach weight, so existing yamls stay valid.

Install

Requires Archipelago 0.6.7 or newer.

  • CW4Archipelago-v0.1.8.zip - unzip into your Creeper World 4 folder
  • cw4.apworld - for whoever generates the multiworld
  • Creeper World 4.yaml - a ready-to-use options file

See docs/installation.md for the full setup.

v0.1.7 - checks that actually arrive

Choose a tag to compare

@drohack drohack released this 06 Sep 00:45

Use the mod, apworld and yaml from THIS release together.

Six fixes, all found by playing. Two of them were losing checks silently, which
is the worst way for a randomizer to be wrong: nothing errors, you just quietly
do not get your items.

Nullify checks never worked

Not on a fresh mission, not on a loaded save, not in any previous version. Every
nullify target you destroyed should have been a check and none of them were.

The mod watched the game's list of nullifiable structures and waited for it to
shrink. That list never shrinks - a nullified structure is not destroyed or
removed, it is marked suppressed and stays exactly where it was. Progress is
counted from that mark now.

If you have an existing save with nullify targets already destroyed, loading
it sends the checks you are owed.
Nothing is lost.

Also fixed

  • Completing a mission did not send its counted checks. A safety net was
    meant to send every required objective when you win, in case the live count
    missed something - but it looked up the wrong name for nullify, totems and
    caches ("Home - Nullify" instead of "Home - Nullify 1"), so it silently
    skipped all three and only ever worked for Reclaim and Custom.
  • Granted ERNs spawned inside the terrain. They were placed beside the rift
    lab at the LAB's height rather than the ground's, so anywhere the ground rises
    they ended up buried.
  • The connect button said DISCONNECT while it was failing to connect,
    offering to end something that had never started. It now reads CONNECT, CANCEL
    while connecting or retrying, and DISCONNECT only when actually connected -
    and CANCEL stops the retries, which previously you could only escape by
    quitting the game.
  • Pressing CONNECT could do nothing at all. A retry already in flight made
    the button ignore the click for up to 40 seconds. It never ignores it now, and
    a slow attempt can no longer reconnect you after you pressed DISCONNECT.
  • The objective dump in the log reported no locations for every counted
    objective - the same wrong-name bug, making the diagnostic lie in exactly the
    case it exists to explain.

Nothing about generation changed and no item or location names changed, so a
v0.1.6 seed keeps working and does not need regenerating.

What to download

File Who needs it Where it goes
CW4Archipelago-v0.1.7.zip every player unzip into your Creeper World 4 folder (needs BepInEx 6 IL2CPP)
cw4.apworld whoever GENERATES the multiworld your Archipelago custom_worlds/ folder
Creeper.World.4.yaml every player your Archipelago Players/ folder - edit name: first

GitHub rewrites the spaces in the yaml's filename. Save it as
Creeper World 4.yaml; the spaces are Archipelago's own convention.

Compatibility

The mod and the apworld share a version number and must match. Use v0.1.7 with
v0.1.7. Requires Archipelago 0.6.7 or newer.

Known issues

  • No full playthrough of a generated seed has been completed yet. The
    furthest so far is roughly four and a half missions with everything unlocking
    correctly. Everything else is verified in slices - 154 unit tests, 225 world
    tests, six in-game batteries - but trap frequency, energy-item pacing and how
    early the casual tier lands are still unproven over a whole campaign.
  • Winning a mission is not the same as taking its optional checks. A mission can
    be beaten with objectives left undone, and those stay on the map as available
    checks - that is intended, not a bug.
  • Emitter Overdrive exists as an effect but is not generated: it does nothing on
    missions without emitters.
  • SPAN Experiments (26 missions) are not included.
  • Windows only, tested against the current Steam build.

Install guide: docs/installation.md
Problems: open an issue

v0.1.6 - offline play, and disconnects that behave

Choose a tag to compare

@drohack drohack released this 04 Sep 14:34

Use the mod, apworld and yaml from THIS release together.

No logic or generation changes. This release is about what happens when the
server is not there - four bugs, all of which lost or duplicated your progress
without saying anything.

Keep playing when the server goes down. The game now starts on the slot you
played last, using its local cache, and the missions you have unlocked stay
playable. Checks you make are queued and sent when you next connect. Before
this, an unreachable server meant every mission locked and nothing playable at
all - even though a complete copy of your slot was already on disk.

Reconnecting keeps trying. It backs off 5, 10, 20, 40 then 60 seconds, and
stops only when you disconnect on purpose. It used to give up after three tries
in 30 seconds, so a host restart left you offline until you noticed. A wrong
slot name or password is now reported instead of retried, since retrying cannot
change the answer.

Fixed

  • Beating the finale while disconnected never counted. Your goal was saved
    correctly and then thrown away on the next connect, so the server never heard
    about it.
  • Every trap fired again each time you connected or launched the game.
    Connecting re-sends your whole item history, and the marker that stops those
    replaying was missing from the save file. At the default 50 percent trap
    share that is dozens of traps at once.
  • Checks could leak between multiworlds. If you joined a different seed
    under the same player name, checks you had earned in the previous one were
    sent to the new one as though you had earned them there.
  • DISCONNECT did not stay disconnected - the mod reconnected a few seconds
    later on its own.

Your progress is never rolled back and your save is never reverted. That is
Archipelago's own rule for clients, not a choice: checks made offline must reach
the server, so they are queued and pushed. Each multiworld is cached separately
by seed, so rehosting the same seed on a new port keeps everything, while a
freshly generated seed starts clean. Details and the citations behind each rule:
docs/design/2026-09-04-offline-and-disconnects.md

What to download

File Who needs it Where it goes
CW4Archipelago-v0.1.6.zip every player unzip into your Creeper World 4 folder (needs BepInEx 6 IL2CPP)
cw4.apworld whoever GENERATES the multiworld your Archipelago custom_worlds/ folder
Creeper.World.4.yaml every player your Archipelago Players/ folder - edit name: first

GitHub rewrites the spaces in the yaml's filename. Save it as
Creeper World 4.yaml; the spaces are Archipelago's own convention.

Compatibility

The mod and the apworld share a version number and must match. Use v0.1.6 with
v0.1.6. Requires Archipelago 0.6.7 or newer.

Seeds generated with v0.1.5 remain compatible: no item or location names
changed, and nothing about generation changed.

Known issues

  • No full playthrough of a generated seed has been done yet. Everything is
    verified in slices - 139 unit tests, 225 world tests, five in-game batteries
    and hands-on checks - but trap frequency, energy-item pacing and how early the
    casual tier lands are still unproven over a whole campaign.
  • Emitter Overdrive exists as an effect but is not generated: it does nothing on
    missions without emitters.
  • SPAN Experiments (26 missions) are not included.
  • Windows only, tested against the current Steam build.

Install guide: docs/installation.md
Problems: open an issue

v0.1.5 - a smaller mod to install

Choose a tag to compare

@drohack drohack released this 04 Sep 03:55

Use the mod, apworld and yaml from THIS release together.

No gameplay changes. Every logic, tracker and generation fix from v0.1.3 is
here unchanged; this release makes the download smaller and the documentation
honest.

The mod is 30 percent smaller. A file-command channel and two measurement
probes - 2,651 of 8,792 lines - existed only for the test harnesses in this
repo. They were switched off at runtime, so they never did anything in a normal
game, but they were still compiled into what you installed. They now live in a
separate plugin that ships in no release, and the DebugCommands config key is
gone with it. Nothing you see in game changes.

The yaml options documentation was wrong. docs/installation.md described
7 of the 24 options and named four that do not exist - energy_storage_step,
energy_storage_decay, base_generation_start and base_generation_ramp, all
replaced by max/copies pairs some releases ago. Copying that table gave you
options the generator silently ignores. All 24 are now documented with their
ranges and defaults, and the four that are accepted but do nothing say so.

The changelog also gained the v0.1.3 and v0.1.4 sections it never got.

What to download

File Who needs it Where it goes
CW4Archipelago-v0.1.5.zip every player unzip into your Creeper World 4 folder (needs BepInEx 6 IL2CPP)
cw4.apworld whoever GENERATES the multiworld your Archipelago custom_worlds/ folder
Creeper.World.4.yaml every player your Archipelago Players/ folder - edit name: first

GitHub rewrites the spaces in the yaml's filename. Save it as
Creeper World 4.yaml; the spaces are Archipelago's own convention.

Compatibility

The mod and the apworld share a version number and must match. Use v0.1.5 with
v0.1.5. A v0.1.1 or older seed disagrees with a current mod about what the
items are called.

Requires Archipelago 0.6.7 or newer.

Known issues

  • No full playthrough of a generated seed has been done yet. Everything is
    verified in slices - 130 unit tests, 225 world tests, four in-game batteries
    and hands-on checks - but trap frequency, energy-item pacing and how early
    the casual tier lands are unproven over a whole campaign.
  • Emitter Overdrive exists as an effect but is not generated: it does nothing
    on missions without emitters.
  • SPAN Experiments (26 missions) are not included.
  • Windows only, tested against the current Steam build.

Install guide: docs/installation.md
Problems: open an issue

v0.1.4 - same game as v0.1.3, with release tooling

Choose a tag to compare

@drohack drohack released this 04 Sep 01:49

Gameplay is identical to v0.1.4's predecessor - every logic, tracker and
generation fix shipped in v0.1.3. This release exists so the published artifacts
match main exactly.

What is new is all release plumbing:

  • CI fails any push where the version has already shipped, so drift is caught on
    the push that causes it rather than at the next release. v0.1.1 and v0.1.2
    both drifted for days without anything noticing.
  • Publishing a release now bumps the version automatically.
  • The plugin logs the commit it was built from, so a released build and a local
    one that share a version number can be told apart from the log.

Use the mod, apworld and yaml from THIS release together.

Install: docs/installation.md

v0.1.3 - honest map, tighter logic, seeds that always build

Choose a tag to compare

@drohack drohack released this 04 Sep 00:59

Use the mod, apworld and yaml from THIS release together.

GENERATION. Solo seeds used to fail to build about once in 18,000 - loudly,
writing no seed at all. This world now places its own progression and retries
on failure, the way oot and pokemon_emerald do. Measured 0 failures in 16,000
seeds, with no unreachable or unbeatable seeds. Multiworld is untouched.

THE MAP TELLS THE TRUTH. Red now means a check cannot be reached, yellow means
reachable but out of logic, grey means done. Farsite's free first cache reads
green as it always should have, and its skull is drawn as a totem, because
lighting the totems is what the mission actually asks.

LOGIC, from playing the campaign. Totems on Shattered, Wallis and Founders need
the greenar chain. Reclaim needs a Nullifier everywhere. Not My Mars and Ruins
Repurposed need a Miner. Serious, Sequence, Wallis and Ever After have real
requirements they did not have before, some of which escalate across a
mission's objectives. Two seeds were soft-locked before these corrections.

Greenar Refinery is retired - the Factory now unlocks it too. There was never a
reason to have one without the other.

starter_missions now starts at 2. One starter could not be made to generate
reliably.

The CONNECT button becomes DISCONNECT once connected.

Install: docs/installation.md

v0.1.2 - matching mod and apworld

Choose a tag to compare

@drohack drohack released this 03 Sep 01:11

Use the mod and the apworld from THIS release together. v0.1.1's assets were
built before twelve commits that renamed every progressive item, so a v0.1.1
seed and a current mod disagree about what the items are called and those
items silently do nothing.

Since v0.1.1:

  • ERN port upgrades: all six measured, the efficiency cap and the ramp fixed
  • Every progressive item is now named "Progressive ...", so trackers group them
  • ERN upgrade magnitudes are yaml options
  • Ten filler items (ammo, energy, resource caches, field shield, six ERN surges),
    each proven in game; five that did nothing are fixed
  • Build Limit items are no longer generated - every building starts unlimited
  • The login panel picks its canvas deterministically and logs which one it got
  • The release build refuses to package if the version disagrees across files

Install: docs/installation.md