Repository navigation
Home
| You want to… | English | Deutsch |
|---|---|---|
| play with mods, cheats or a custom map | WolfSDK Loader | WolfSDK Loader |
| make mods (textures, texts, decls, scripts) | WolfSDK Studio | WolfSDK Studio |
| find a quick answer | FAQ | FAQ |
write a mod.json by hand |
Mod format | Mod-Format |
| learn which values a mod can change | Modding Guide | – |
Keywords: start here, home, wiki, getting started, first steps, WolfSDK, Loader, Studio, Hier starten, Startseite, Erste Schritte
Download: the current app release, WolfSDK 0.3.0, is on the release page: a Loader for players and a Studio for modders (the Studio download contains the Loader too). Windows only, Steam versions of both games. Unzip and run WolfSDK.cmd; Python is bundled.
Community and Discord: https://lopekinz.github.io/wolfenstein-modloader/#community
Keywords: download, release, WolfSDK 0.3.1, WolfSDK 0.3.0, Loader ZIP, Studio ZIP, Discord, community, herunterladen
This wiki describes two games and a tool:
-
Wolfenstein: The New Order (id Tech 5,
WolfNewOrder_x64.exe) — the loader reads, patches, and launches this game. -
Wolfenstein II: The New Colossus (id Tech 6,
NewColossus_x64vk.exe) — the loader locates and launches it, passing Cvars, and writes its archives too:wolfsdk/tncpatch.pypatches its IDCL containers directly (wolfsdk/game.py,TITLES["tnc"].mods = Truefor both titles). Decl value edits, a BC1 weapon skin, and a fulldlc_0-precedence custom map have all been confirmed working in a real, running game — see the tables below and TNC Modding Surface.
The apps are described on WolfSDK Loader and WolfSDK Studio; their source and README are in the repository folder modloader/. The pages below contain what has been discovered about the games.
Keywords: documentation, research, overview, The New Order, The New Colossus, id Tech 5, id Tech 6, Dokumentation, Forschung
This project is only as valuable as you can trust your claims. Therefore, the documents define three levels of proof, most sharply formulated in Asset-Loading-Paths.md:
| Grade | Means | Example |
|---|---|---|
| Measured / RUNTIME | In the log of a running game, on the disc, or proven via a run with real data. |
WARNING: com_allowConsole CANNOT be set in retail! in qconsole.log
|
| Inferred / CVAR | Read from the binary; the Name↔Meaning mapping is guessed via neighborhood. The .text of both games is SteamStub-encrypted, there is no call site as proof. |
fs_overlaypath — "Extra location for game files (with precedence over fs_basepath)" |
| Speculated / STRING | The text exists in the binary, nothing more. A dead code path looks just as good. |
FSPATH_OVERLAY as an RTTI name |
Keywords: evidence, proof, measured, inferred, speculated, evidence grades, Beleg, gemessen
A string in the EXE does not prove that the function exists. How large the difference is: of 2231 "Cvar names" harvested as strings from Part 2, 409 are not Cvars at all, and 1433 real Cvars were missed. The engine's own registry holds 3,256, of which 304 are exposed to the retail console (TNC-CVar-Catalog.md, TNC-CVar-Validation.md).
For the game launched so far, almost nothing has been done. By far the largest part of all statements about Effect is unverified; statements about Format are mostly not.
Keywords: strings, cvar names, registry, exposed cvars, unverified, effect vs format
The tables below point to the page for each question. For the apps themselves, start with Start here.
Keywords: which page, document index, table of contents, where to find, Inhaltsverzeichnis
| Question | Document |
|---|---|
| How do I install and use the loader? | WolfSDK-Loader |
| How do I use the Studio? | WolfSDK-Studio |
| Short answers to common questions | FAQ |
Which fields does mod.json have? |
Mod-Format |
| How do I write a Mod? Which values exist for weapons, skins, enemies? | Modding-Guide.md |
| What doesn't work, and why? How does the Retail-Cvar block work? | Modding-Limits.md |
| How do I load maps from the developer menu of Part 2? | TNC-Dev-Menu |
Keywords: loader, studio, faq, mod.json, modding guide, limits, dev menu, which page
| Question | Document |
|---|---|
What do the archives from Part 1 look like? (master.index, chunkN.index/.resources, Decls, BIM) |
File-Formats.md |
| What asset types exist at all, how many, text or binary? | Engine-Modding-Surface.md |
What in the game has not been touched yet? Starting equipment, .entities, .script, AI, Ammo |
TNO-Modding-Surface.md |
| The same for Part 2: 174 types, difficulty levels, enemy health, Gore, cost of an Edit | TNC-Modding-Surface.md |
Keywords: file formats, archives, asset types, modding surface, master.index, entities
| Question | Document |
|---|---|
| How is the Audio layer built, and how do you make the game louder/grittier? | Audio.md |
| Menu, HUD, Menu text — what can be changed? | UI-Assets.md |
How does the Megatexture (.pages) work? |
TNO-Virtual-Textures.md |
How are the texture databases of Part 2 (.texdb) built? |
TNC-Texture-Database.md |
Keywords: audio, sound, UI, HUD, menu text, megatexture, virtual textures, texdb
| Question | Document |
|---|---|
| Can you load loose files instead of archives? DLC folders? Overlay paths? | Asset-Loading-Paths.md |
| What do save games and profiles look like, and what is protected there? | Save-Games-and-Profiles.md |
| Which Cvars does Part 2 have, with description and default? |
TNC-CVar-Catalog.md — 3116 settable Cvars from the engine registry |
| Which Cvars does Part 1 have, which are cheats, and how do you set them? |
TNO-CVar-Catalog.md — 3194 Cvars from the engine registry |
Keywords: loading paths, loose files, overlay, save games, profiles, cvar catalog, cvars
| Question | Document |
|---|---|
| How does Part 2's console/Cvar restriction work, and which commands reach the game without a patch? | TNC-Console-Unlock.md |
| What do Kiscule's 205 script node types do, grouped by purpose? | Kiscule-Node-Reference.md |
| Where do the documents contradict each other? | Known-Contradictions.md |
| What has happened since the last session, what is open? | Research-Status-2026-09-21.md |
Keywords: console unlock, kiscule, script nodes, contradictions, research status
Raw data without prose: cvars_tnc.json and cvars_tno.json (the engines' cvar registries), cvars_tnc_echt.json (listCvars output of the running engine: the 304 exposed Cvars), samples/ (Before/After images of Gore Mods).
Asset-Loading-Paths.md and TNO-Virtual-Textures.md are long. Both have a short answer at the very top; those who only need the decision read only that.
Keywords: raw data, json, cvars_tnc.json, cvars_tno.json, samples, long pages
"Unverified" here always means: plausible but not confirmed in a running game — not "uncertain measured". The status of the WolfSDK 0.3.0 features themselves is in the FAQ.
Keywords: status, what works, unverified, measured, research status, Stand
| Area | Status | Proof |
|---|---|---|
| Read archives, 203,843 assets, 105 types | works, measured | Index Round-Trip byte-identical, File-Formats.md
|
| Parse Decls and surgically change them | works, measured | 0 Round-Trip deviations, File-Formats.md §4 |
| Patch in existing Slot + Revert | works, measured | Apply→Revert sha256-identical; Order-invariant Modding-Limits.md §4 |
| Load patched archives in game |
works, measured — 14/14 .resources rebuilt, 373 assets, 48 min playtime, 0 error lines in log |
Modding-Limits.md §4 |
| Weapon values, enemies, skins, Gore via Decls | works (Format measured, Effect unverified in game) | Modding-Guide.md |
| Sound Decls: Volume, Range, Mixbuses | works (Format measured, Effect unverified) |
Audio.md §4 |
Player starting equipment (entityDef:player/…) |
works (Fields measured, Effect unverified) |
TNO-Modding-Surface.md §4.4 |
Keywords: The New Order, TNO, archives, decls, patch, revert, weapon values, sound decls
| Area | Status | Proof |
|---|---|---|
g_permaGodMode, g_permaInfiniteAmmo, g_fov, g_damageScale, pm_togglesprint, com_showFPS, g_showHud
|
works, not affected by the block |
Modding-Limits.md §1 |
Cheat cvars (devgui, Gore Cvars, all pm_* speeds, g_gravity, Intro skip) via Config or +name value
|
does not work, measured — rejected from a Config, accepted from command line and wiped by Cheat Reset. toggle name v v (console or +toggle) is code-only, not yet run in game; the loader sends cheat cvars as +toggle since 0.2.0 (Not yet confirmed in game) |
Modding-Limits.md §1-2, TNO-CVar-Catalog
|
Keywords: TNO cvars, cheat cvars, retail lock, cheat reset, toggle, +toggle, g_permaGodMode
| Area | Status | Proof |
|---|---|---|
| Console in The New Order |
unmeasured — opens with Ctrl+^ (code only); com_allowConsole does not open it |
Modding-Limits.md §2 |
DevGUI / Ingame Menu via debugmenu.txt
|
does not work, measured at the main menu — file patchable, but no consumer for debugmenu.txt found in the exe (code only); devgui only stays on inside a level |
Modding-Limits.md §2, UI-Assets.md §5 |
Keywords: TNO console, Ctrl+^, com_allowConsole, DevGUI, debugmenu.txt, ingame menu
| Area | Status | Proof |
|---|---|---|
| Patch EXE (Steam version) |
does not work — .text is SteamStub-encrypted |
Modding-Limits.md §2 |
Particles (particle) change |
does not work, measured |
TNO-Modding-Surface.md §6.1 |
New 3D Geometry (.md6mesh) |
does not work — binary, not examined |
Modding-Limits.md §5 |
| Replace Virtual-Texture-Pixel | does not work — container read, Codec (clipped JPEG-XR) not |
TNO-Virtual-Textures.md §8 |
| Create new assets (new index entry) | does not work without extending the Patcher |
TNO-Modding-Surface.md §6.4 |
| Edit save games | blocked — nothing encrypted, but the 4-byte checksum header is not recomputable |
Save-Games-and-Profiles.md §3 |
Keywords: does not work, EXE patch, particles, geometry, virtual texture pixels, new assets, save games
| Area | Status | Proof |
|---|---|---|
Change Menu text (strings/*.lang) length-preserving |
unverified — raw deposited, raw write path exists in Patcher, mods/menue_marke built but never applied (not in the public packages) |
UI-Assets.md §3 |
| Replace HUD/UI Textures (BIM) | unverified — Encoder exists (only RGBA8); the engine loaded four self-built BIMs error-free, no one has checked how they look |
Modding-Limits.md §5, File-Formats.md §5 |
.entities / .script change (Enemies, Pickups, Script VM) |
unverified — plaintext, but enforces Chunk Rebuild |
TNO-Modding-Surface.md §4.1/4.2 |
Keywords: unverified, menu text, strings, HUD textures, BIM, entities, script
| Area | Status | Proof |
|---|---|---|
Loose files instead of archive (fs_overlaypath) |
unverified — Cvar and search path output prove it, precedence not |
Asset-Loading-Paths.md, Experiment E1/E2 |
Own DLC package (dlc/<name>/info.txt) |
unverified — possession check against Steam visible in binary |
Asset-Loading-Paths.md, E7 |
Translate renderProg HLSL at runtime |
unverified |
TNO-Modding-Surface.md §2.10 |
Keywords: unverified, loose files, fs_overlaypath, own DLC package, renderProg, HLSL
| Area | Status | Evidence |
|---|---|---|
Developer console (com_enableDeveloperMode 1) |
works, measured — real console in retail build, impossible in Part 1 | Research-Status-2026-09-21.md |
| Cvars via startup argument |
works — Steam asks once at steam:// arguments |
Research-Status-2026-09-21.md |
| Cvar catalog from the engine registry (3,256 registered, 3116 settable, 304 exposed; descriptions and defaults) | works, measured — read from a memory snapshot of the running game | TNC-CVar-Catalog.md |
Keywords: The New Colossus, TNC, developer console, com_enableDeveloperMode, startup arguments, cvar catalog
| Area | Status | Evidence |
|---|---|---|
| Console/Cvar restriction (34/304 exposed vs. 234/3,256 total) |
works, measured — resourceExec <loader-replaced cfile> -s drops the restriction for the file; God, Notarget, g_infiniteAmmo 1 confirmed executing in a real save game |
TNC-Console-Unlock.md |
+devMode_ prefix, devMode_enable
|
partially confirmed — devMode_enable is a real, exposed, retail-settable Cvar (observed live at value 1 on a running process), but it gates only one dispatcher branch that no proven entry point reaches — not load-bearing for the console unlock above |
TNC-Console-Unlock.md §1, Save-Games-and-Profiles.md §5 |
Keywords: console restriction, exposed commands, resourceExec, devMode_enable, devMode, TNC console
| Area | Status | Evidence |
|---|---|---|
Read .texdb, unpack Oodle |
works, measured — 24 files, 437,706 entries, gap 0 | TNC-Texture-Database.md |
Read IDCL archives (.resources, v12) |
works — layout verified against all 24 files; since 0.2.0 the loader writes them and the Studio reads them |
wolfsdk/idcl.py, Known-Contradictions.md W8 |
| Apply mods / write archives |
works, measured — wolfsdk/tncpatch.py writes IDCL containers directly; decl value edits (pistol magazine 10→30) confirmed in game |
wolfsdk/game.py (mods=True), Explosive Pistol mod |
Keywords: TNC archives, IDCL, texdb, Oodle, apply mods, decl edits, tncpatch
| Area | Status | Evidence |
|---|---|---|
| Replace textures (weapon skin, single material) |
works, measured — a custom BC1 pistol skin (.bimage+.texdb blocks re-encoded and appended, all 40 textures.cache copies patched) shows on the first-person model in a running game |
session notes, 2026-09-25 |
| Replace textures (Virtual-Texture/Megatexture pixel plane) | does not work — Key-to-asset name mapping missing, tile content undeciphered, every size change rewrites the entire (up to 8 GB) file; unaffected by the weapon-skin finding above, which is a different, smaller container |
TNC-Texture-Database.md §6 |
Keywords: TNC textures, weapon skin, BC1, bimage, textures.cache, megatexture, virtual texture
| Area | Status | Evidence |
|---|---|---|
| Change audio | Built, not yet confirmed in game — since 0.3.0 the Studio replaces sounds (PCM WAV) and videos (Bink 2) for The New Colossus, because Revert now restores the original sound packs and video files; not yet tried in game |
Audio.md, Modding-Limits.md
|
| Change save games |
partial — .verify is not a lock (save game loaded as "corrupted" in dev mode), profile/progress are AES encrypted |
Save-Games-and-Profiles.md §5 |
Loose files (resource_loadLooseAssets) |
unverified — Cvar description matches verbatim, runtime evidence missing |
Asset-Loading-Paths.md, E5/E6 |
Keywords: TNC audio, Wwise, sound packs, held back, save games, verify, loose files
| Area | Status | Evidence |
|---|---|---|
Custom DLC / custom map (dlc/<name>/…, dlc_0 precedence) |
works, measured — the engine mounts the first dlc/* folder (alphabetical) whose packagemapspec.json lists the map; a dlc_0 folder beats retail dlc_2 for map c2v1, confirmed in game with a relit custom light layout and a normal mission start. The loader's Install map… sets it up |
TNC-Custom-Map-Status.md, Research-Report-Tnc-Custom-Maps
|
Developer menu loads maps (devmap) |
works, measured — the Dev Menu Map Loading mod turns each map entry into console lines ending in devmap
|
TNC-Dev-Menu |
Keywords: custom map, dlc_0, packagemapspec.json, c2v1, Install map, developer menu, devmap
| Area | Status | Evidence |
|---|---|---|
cfile entries (encrypted configs/localization under .resources) |
works, measured — the AES-128-CBC/HMAC-SHA256 key is derived ("swapTeam\n\x00" + salt + resource name), round-trip byte-exact on 67/67 retail payloads; the loader builds new, game-accepted payloads under existing names (wolfsdk/tnccrypt.py), used to unlock the restricted console |
Research-Report-Cfilekey2 |
Keywords: cfile, encrypted config, AES, HMAC, tnccrypt, key derivation
These documents were created side-by-side in a short time and contradicted each other at 20 places. Raised in Known-Contradictions.md, processed on 21.09.2026: 17 were fixed in the text, 3 remain open with justification — two of which are embedded in the code and belong to other workers.
In case of a conflict, the rule remains: the newer, more detailed individual investigation overrides the older summary — and both override the README.
Keywords: contradictions, which document is right, newer overrides older, Widersprüche
So that no one falls back to an old status:
- The Patcher does not hang onto the file end but writes into the slot;
File-Formats.md§3 described up to that point the procedure, which demonstrably leads to a crash (W4). - A BIM Encoder exists (
wolfsdk/image.py, only RGBA8) — six places explained it as missing (W5). - The
IDCLContainer (Part 2) and the.pagesContainer (Virtual Textures) are read, not "unsolved" (W8, W9). - The 2231 Cvars for Part 2 are candidates; 222 of them are among the 304 exposed Cvars (W3). Against the full registry of 3,256: 1822 are real, 409 are not Cvars.
- The Slot space is exactly
csize, notcsize + 15(W6).
Keywords: corrections, slot write, BIM encoder, IDCL, pages container, csize
Every document names the tool from which its numbers originate. All are purely read-only and do not start a game. They live in the research workspace: they are not part of the public modloader/ folder or the public packages.
python tools/verify_all.py # all harmless checks
python tools/survey_engine.py # engine-surface.md
python tools/survey_modding_surface.py # moddingflaeche-tno.md
python tools/survey_tnc.py # moddingflaeche-tnc.md (~4 min)
python tools/probe_audio.py # audio.md (~70 s)
python tools/probe_ui_assets.py # ui-assets.md
python tools/probe_vtpages.py selftest # virtualtextures.md
python tools/probe_texdb.py # texdb.md
python tools/probe_idcl.py # IDCL-Derivation
python tools/probe_loadpaths.py --self-test # ladepfade.md
python tools/probe_savegame.py # spielstaende.md
Keywords: verification tools, probe, survey, recalculate, reproduce
probe_loadpaths.py --self-test also checks the negative findings. If it fails after a game update, the affected document is outdated — this applies generally to all verification tools here.
Keywords: negative findings, self-test, game update, outdated documents
English Wiki generated from the measured research notes in docs/. Evidence grades and uncertainty are preserved intentionally.
- WolfSDK Loader · DE
- WolfSDK Studio · DE
- FAQ · DE
- Mod format · DE
- Modding Guide
- Modding Surface
- CVar Catalog
- CVar Validation (old scrape)
- Texture Database
- Developer Mode
- Dev Menu
- Custom-Map Status