Wolfenstein Modloader Buy me a coffeeKaffee spendieren

Wiki / Research reportsForschungsberichte

TNC: Custom Map Registration and Load Path (Read-Only Finding)

OpenOffen Original page in the GitHub wikiOriginalseite im GitHub-Wiki

In plain wordsIn einfachen Worten

This report asks what a new map for Wolfenstein II (TNC) needs and how the game could load it. A map is much more than its entity file: one original map uses at least 235 assets, including collision, navigation and visibility data. The most promising route is the game's own DLC folder format, but it has not been proven in the game for a new map. The page describes a single test to try next.

  • Map c02p0 has, among others, 178 collision entries, 34 lighting images and 2 navigation meshes.
  • Starting the game with +map, +exec or +loadGame does not load a map before the menu.
  • The refchunks setting only loads extra data; it does not prove an override wins.
  • No mod folder option was found in the TNC program.
  • Suggested loader stages: map content (stable), map override (experimental), new map (not yet).

Der Bericht fragt, was eine neue Karte für Wolfenstein II (TNC) braucht und wie das Spiel sie laden könnte. Eine Karte ist viel mehr als ihre Entity-Datei: Eine Originalkarte nutzt mindestens 235 Assets, darunter Kollisions-, Navigations- und Sichtbarkeitsdaten. Der vielversprechendste Weg ist das spieleigene DLC-Ordnerformat, doch für eine neue Karte ist er im Spiel nicht bewiesen. Die Seite beschreibt einen einzelnen Test als nächsten Schritt.

  • Karte c02p0 hat unter anderem 178 Kollisionseinträge, 34 Beleuchtungsbilder und 2 Navigationsnetze.
  • Ein Spielstart mit +map, +exec oder +loadGame lädt vor dem Menü keine Karte.
  • Die Einstellung refchunks lädt nur zusätzliche Daten; sie beweist nicht, dass ein Ersatz gewinnt.
  • Im TNC-Programm wurde keine Mod-Ordner-Option gefunden.
  • Vorgeschlagene Loader-Stufen: Karteninhalt (stabil), Karten-Ersatz (experimentell), neue Karte (noch nicht).

Technical detailsTechnische Details

Der technische Teil ist auf Englisch – so, wie er im Wiki steht. Unterstrichene Begriffe haben eine Erklärung auf Deutsch.

Date: 2026-09-22. This investigation has neither modified the live installation nor altered game saves.

Executive Summary

A new TNC map is not merely a .entities file from a data perspective. For game/wolf/c02/c02p0, there are at least 235 named assets in Retail: compfile (Entities/Proc/Prockd), file (World-Tome/Ambient), hknavmesh, cm Collision/Trigger, models, PVS, Shadow Geometry, Lightprobe images, Material Decls, and devmapinfo.json. The current tnc_custom_map_probe therefore correctly tests only the Entity portion; it cannot generate new geometry, collision, or navigation.

The most plausible unchanged extension path is TNC's own dlc/dlc_<n>/ format: dlcinfo.json, base/packagemapspec.json, and a Chunk pair. This is documented by DLCs 1–3, but has not yet been positively proven in-game for a new Map-ID. A separate same-named DLC entry with a Canary is the next good single test; refchunks alone is not an override.

Documented Data Structure

base/packagemapspec.json describes Name, primary chunkid, basechunkid, layer, and optionally refchunks. Retail-Base includes game/wolf/c02/c02p0 -> chunkid 1; DLC Specs utilize layer: -1 and their own chunks (DLC 1: 20, DLC 2: 22, DLC 3: 24). The existing DLCs are:

dlc/dlc_1/dlcinfo.json                    { "dlcid": 1 }
dlc/dlc_1/base/packagemapspec.json        maps + chunk_20
dlc/dlc_2/...                              maps + chunk_22
dlc/dlc_3/...                              maps + chunk_24

A Map prefix is not self-sustaining. Counts from Retail Archives for c02p0:

Type Count Example
compfile 3 c02p0.entities, _combo/c02p0.proc, c02p0.prockd
file 3 _world.tome, Tome-Metadata, c02p0.ambientsh
hknavmesh 2 c02p0.hknavmesh, Combat-Nav-Section
cm 178 World-Shape, Trigger and Combat-Volumes
model 9 _combo/_world.bmodel, Sky, dynamic models
image 34 Lightprobes
others 6 json, material, pvs, staticShadowGeom

This count comes from the TNC Archive Index; it is intentionally a negative control against the overly strong assumption "Entities = Map".

What Has Been Disproved or Is Open

  • +map, +exec, and +loadGame are not executed as visible Map/Save load processes during direct Retail startup before the Menu. The reliable path is Load Game -> SLOT2 -> GAME-AUTOSAVE0; only then do LaunchLoadScreen and LoadMap appear in the Log.
  • refchunks loads additional dependencies. A refchunks: [26] entry does not prove that Chunk 26 wins on a name conflict.
  • layer and basechunkid are not proven priority rules.
  • A simple new packagemapspec without a complete Chunk/Index/Texdb set is not a positive Map result. An incorrect Container Header is rejected beforehand with corrupt header.
  • There is no documented fs_mod/fs_game/modDir path in TNC-EXE and no proven free Loose-Asset Maploader. resource_dlcDbgSearchPath is, however, the documented candidate for relocating the DLC search path.

Minimal, Discriminating Test (Not Yet Executed)

  1. Use an external search path, e.g., C:\\wolfdlc_probe, to keep the Steam installation untouched.
  2. Create only dlc_4/dlcinfo.json with { "dlcid": 4 } and a minimal base/packagemapspec.json inspired by DLC 3. First use an existing map name (e.g., c02p0) to verify registration and Canary selection separately from "new Map-ID".
  3. Provide a valid Chunk 26 with identical header/index/texdb structure and exactly one clearly identifiable asset Canary. Do not use a refchunks test as a substitute.
  4. Start with +logFile 1 +logFilePersistent 1 and the DLC search path. First check: SearchDLC: found 4 dlcs, no Could not load mapspec-/corrupt header message.
  5. Load the c02p0 game state via the normal UI. Evaluate:

    • Canary visible: same-named DLC primary chunk was selected.
    • Map loads, Canary missing: Mount was successful, Base won, or the tested asset is not in the actually loaded layer.
    • Mapspec-/Header errors: Integrity-/registration issue, no priority judgment.

For a truly new Map-ID, it must additionally be checked whether the engine offers it in the menu/saves at all or only reacts to an explicit internal map command. Only if the existing-name test is positive does it make sense to use a new name with complete _world, .proc/.prockd, Collision-, Navmesh-, PVS-, Shadow-, and Entity assets.

Recommendation for the Loader

The mod definition should distinguish three stages:

  1. map-content: replaces existing Entities/Decls; currently stable.
  2. map-override: same-named map via a separately mounted DLC chunk; still experimental and only enabled with Canary logic.
  3. new-map: new Map-ID with complete asset bundle; do not claim or automatically activate yet.

This keeps the loader startable even without Mapspec/Chunk header and clearly reports "Entity Probe successful" instead of falsely "Custom Map supported".