The proven custom-map route rides on dlc/dlc_0 claiming the Freedom Chronicles map slot c2v1, which needs the real DLC2 payload (sound, virtual-texture pages, intro video, ~400 MB) to exist on disk — so that whole route still requires Freedom Chronicles ownership. This note asks whether a route exists that needs no DLC ownership at all: claiming a base-campaign map slot instead, exposing a brand-new map name through the menu, or overriding a base slot the way dlc_0 overrides c2v1. Static disassembly of the map-mount code gives a firm no for "a DLC folder steals a base map's slot" — base is always checked first. What is open and DLC-free is editing an existing base map's own archive directly with the already-proven technique, and a newly-investigated, retail-precedented route through the chapter-select data. All mechanism claims here are static analysis; only the dlc_0-beats-dlc_2 collision itself was previously confirmed with a screenshot.
Why a DLC folder can never steal a base map name
idResourceManagerLocal::LoadNamedResourceBlock (0xac1730) does two spec lookups — 0xabf440 (chunk id) and 0xabf500 (directory prefix) — and both check base/packagemapspec.json first, consulting the DLC list only when base has no entry for that name; first hit wins, no comparison across DLCs ever happens. 0xabd940 builds the chunk filename, 0x1211e70 joins the directory, 0xacc6b0 mounts. DLC discovery itself (0xabdcf0, SearchDLC) appends folders in scan order and skips a duplicate id, logging found dlc id %d at %s. Measured live: a dlc_0/id-4 folder beat retail dlc_2/id-2 for the identical map name game/dlc/c02/c2v1 — not a "last-registered wins" effect, since dlc_2 is scanned later and still lost.
Consequence: none of the 31 base campaign map names in base/packagemapspec.json can ever be taken over by a DLC folder; the DLC fallback only fires for a name base has no entry for at all — exactly c2v1's case.
Routes, ranked
Route 1 — edit a base map's own chunk directly (recommended, DLC-free). The same technique already proven on the DLC map (c2v1: entity retype/relight/respawn, archive rebuild, header-hash finalize) applied to base/chunk_N.resources instead. Cost model (TNC-specific, not TNO's): every entry sits in a payload followed by a zero-filled gap before the next entry; median gap is 48 B in gameresources, 650 B in chunk_12, 63 B in patch_1. A representative edit (every integer in a decl scaled up) fits that gap 21–25 times out of 25 for most decl types without a full chunk rebuild; a rebuild, if needed, runs 73–466 MB depending on the chunk. This route needs zero DLC folders, zero ownership checks, zero name-collision gamble.
Route 2 — a self-built patch layer overriding a base map's entity data (untested). Patch containers are searched up to a declared patch level and the highest present layer wins for a name — proven for decls/tables/images (strong corpus evidence), not yet confirmed for the map-entity resource type specifically.
Route 3 — a DLC folder claiming an existing base map name — closed, by the lookup-order evidence above.
Route 4/5 — exposing a brand-new map through chapter-select. chapter and chaptervariation are ordinary, patchable decl entries (confirmed by their class hierarchy), not a hardcoded 4-slot list — 28 chapter + 105 chaptervariation decls exist in the live install, including Kraken-compressed ones, all read directly. Retail itself already ships a patch-only new chaptervariation name (present only in a patch archive, absent from the base archive) — proof the mechanism accepts brand-new decl names for this type, not just overrides. But the chapter-select UI does not enumerate every chapter decl present: at least 8 leftover debug/demo chapters sit in the same non-DLC-gated layers every player mounts yet never appear on screen (two even reuse an existing chapter's numeric id with no apparent ill effect). The safer sub-route is therefore not a whole new chapter, but appending one more chaptervariation entry to an already-shown chapter's variations list.
A related, already-tried dead end: flipping a map's "show in developer map menu" flag crashed the game on start in earlier work; not re-attempted.
Failed hypotheses
- "The DLC folder enumerated later wins" — falsified by the
dlc_0-beats-dlc_2result (the loser was scanned later, not earlier). - "
refchunksis an override mechanism" — tested twice, the primary chunk always won regardless. - "
packagechunklist.jsoncan pre-mount a DLC chunk at the main menu" — disassembly-traced dead end; on PC the streaming-install "chunk installed" check is hardwired to always-true with zero writers to the active flag. - "Console or
resourceExeccan load an arbitrary map without a save" — measured:resourceExecat the main menu fails withcan't generate in production, because DLC chunks mount only inside the map-load function itself, never at startup/menu time. - "An offline-edited save can register a new map id" — two increasingly-correct candidate saves both produced
File Corrupt; each save's six verification files are AES ciphertext with an unidentified signing key.
Open questions
- Whether the patch level that gates container precedence is enforced per-container or as a global maximum across all mounted specs.
- Whether the map-entity resource type follows the same patch-override rule proven for decls/tables/images.
- Whether the chapter-select screen's own UI widget walks a chapter's full current variations array each time, or caches a fixed count baked at build time — the one question that decides whether appending a variation entry is enough.
In-game test (not yet run)
Two decisive tests, in order:
- Route 1–3 decision test: install a DLC-style folder carrying a modified
base/packagemapspec.jsonthat re-registers an existing base chapter's map name under a different chunk id, start that chapter fresh, and take a hit — normal damage confirms base always wins (expected, closes Route 3); no damage overturns this report's central claim. - Route 5 test: build a one-entry patch archive that appends a new
chaptervariationto an already-shown chapter's variations list (pointing at already-proven custom map content), bump the patch level, start the game fresh, and open chapter select. A new, selectable entry settles whether the Timeline UI reads appended chapter data at all.