Wolfenstein Modloader Buy me a coffeeKaffee spendieren

Wiki / The New ColossusThe New Colossus

Cvar Catalog Wolfenstein II: Scrapped vs Engine Output

ReferenceNachschlagewerk Original page in the GitHub wikiOriginalseite im GitHub-Wiki

In plain wordsIn einfachen Worten

UpdateAktualisierung This is now a historical comparison. The 304 settings here are only the ones the restricted console shows; the game registers 3,256. Against that full list, 1,822 of the 2,231 scanned names are real and 409 are not. The complete list is the new cvar catalogue.Das ist jetzt ein historischer Vergleich. Die 304 Einstellungen hier sind nur die, die die eingeschränkte Konsole zeigt; das Spiel kennt 3.256. Gemessen an dieser vollständigen Liste sind 1.822 der 2.231 gescannten Namen echt und 409 nicht. Die vollständige Liste ist der neue Cvar-Katalog.

This page checks a catalog of Wolfenstein II: The New Colossus console settings that was built by scanning text in the game program. It compares that list with the game's own console output, which shows 304 settings. Only 10% of the 2,231 scanned names are among those 304, and about 83% of the checkable guessed descriptions were correct. For modders, it shows that the scanned list is unreliable and that the engine's own output should be trusted.

  • The restricted console of the running game shows 304 settings.
  • Of 2,231 scanned names, only 222 (10.0%) are among those 304; 82 of the 304 were missing from the scan.
  • Of 149 checkable descriptions, 124 match the game word for word (83.2%) and 25 are wrong.
  • 7 settings have no help text in the game itself, and one (r_SSR) has not yet appeared in any help output.
  • All values come from a single menu session; settings registered later (in a level, developer mode or multiplayer) may still be missing.

Diese Seite prüft einen Katalog von Konsoleneinstellungen für Wolfenstein II: The New Colossus, der durch Durchsuchen von Texten im Spielprogramm entstand. Sie vergleicht die Liste mit der Konsolenausgabe des Spiels, die 304 Einstellungen zeigt. Nur 10 % der 2.231 gefundenen Namen gehören zu diesen 304, und etwa 83 % der prüfbaren geratenen Beschreibungen stimmten. Für Modder heißt das: Die gescannte Liste ist unzuverlässig, der Ausgabe der Engine selbst solltest du vertrauen.

  • Die eingeschränkte Konsole des laufenden Spiels zeigt 304 Einstellungen.
  • Von 2.231 gescannten Namen gehören nur 222 (10,0 %) zu diesen 304; 82 der 304 fehlten im Scan.
  • Von 149 prüfbaren Beschreibungen stimmen 124 wörtlich mit dem Spiel überein (83,2 %), 25 sind falsch.
  • 7 Einstellungen haben im Spiel selbst keinen Hilfetext, und eine (r_SSR) ist noch in keiner Hilfeausgabe aufgetaucht.
  • Alle Werte stammen aus einer einzigen Menü-Sitzung; später registrierte Einstellungen (im Level, im Entwicklermodus oder im Mehrspieler) könnten noch fehlen.

Technical detailsTechnische Details

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

Historical comparison. The 304 Cvars below are what listCvars shows at the restricted retail console level: only the exposed ones. The engine registers 3,256 Cvars in total (Research-Report-Cvartable). Measured against that full registry, 1822 of the 2231 scraped names are real Cvars, 409 are not, and 1433 real Cvars were missed. The "10 %" hit rate below is relative to the 304 exposed ones only. The full catalogue with descriptions and defaults is TNC-CVar-Catalog.

Generated by tools/merge_cvars_tnc.py. Compared against docs/cvars_tnc.json (scraped from EXE strings via tools/mine_cvars_tnc.py) and docs/cvars_tnc_real.json (output of the running engine).

What the Engine Says

listCvars without a search string reports 304 Cvars in total.

Combined from the available dumps: 304 unique names, of which 296 have descriptions from listCvars - help and 304 with observed values.

The values are observed values for this single session, not default values. The engine does not output default values via listCvars. Therefore, the catalog lists value together with value_source and no default field; a standard value would be an assertion anyway.

How Good Was the Scraping

Names

Count Percentage
Scraped names in cvars_tnc.json 2231 100 %
of which real, registered Cvars 222 10.0 %
of which no Cvars, only EXE strings 2009 90.0 %

Name hit rate: 10.0 %.

The number 2231 in the header of the old file is not a Cvar count, but the number of found strings that look like Cvar names.

Read conversely: of the 304 real Cvars, 222 are also in the scraped catalog; 82 are missing there.

Descriptions

Count Percentage
Guesses overall 1374 100 %
at a name that doesn't exist at all 1224 89.1 %
verifiable against the engine 149 10.8 %
of which word-for-word matching the engine 124 83.2 %
of which partial match (truncated or extended) 0 0.0 %
of which simply wrong 25 16.8 %

Description hit rate: 83.2 % of verifiable cases, word-for-word 83.2 %. Based on all guessed descriptions, including those at names that are not Cvars: 9.0 % demonstrably useful.

Examples of Deviations

anim_fxDeclName — wrong

  • Scraped: idAnimatedEntity::InitAimTargeting INVALID Tag on %s Tagname: %s
  • Engine: fxDecl to use when testing in the model editor

com_assertNoDialog — wrong

  • Scraped: whether to pop up the break, continue, ignore dialog or just break when an assert is hit
  • Engine: bypass the popup assert dialog

com_capturePath — wrong

  • Scraped: format for capture screenshots, 0 = JPG, 1 = TGA
  • Engine: optional outpath for screenshots, this path is appended to screeenshots/

com_drawThreadSpeeds — wrong

  • Scraped: sets com_drawThreadSpeeds to 2 if a frame takes longer than this time in milliseconds
  • Engine: 1 = dynamic draw, 2 = static draw, 3 = dynamic draw until stall

r_allowAsyncCompute — wrong

  • Scraped: If true then enforce encoded async compute blacklist, cvar is here to allow IHV to test
  • Engine: Enables async computing. No effect until game is restarted

r_decalFadeCulling — wrong

  • Scraped: Threshold value for the dot product between decal normal and player view direction. Range is [-1,1].
  • Engine: 1. Starts culling decals based on area of visibility on screen after the distance specified on r_decalDistanceFadeStart. Culling starts once decal has r_decalPixelThresholdFadeStart on screen and ends when it reaches r_decalPixelThresholdFadeEnd pixels. 2 - Also cull decals that face normals facing away from player.

r_decalFilteringQuality — wrong

  • Scraped: Displays just the decal id wanted.
  • Engine: 0 - Low (trilinear). 1 - Medium (aniso 2x). 2 - High (aniso 4x). 3 - Ultra (aniso 8x). 4 - Nightmare (aniso 16x)

r_imageAtlasDecalWidth — wrong

  • Scraped: Hight of decal image atlas (in k, must be pot)
  • Engine: Width of decal image atlas (in k, must be pot)

r_imageAtlasForceDropMip — wrong

  • Scraped: print image atlas stats
  • Engine: force dropmip for image atlas resources > 128px

r_initialModeWidth — falsch

  • geschuerft: Default Vertical Resolution on first start ever - Only gets used if r_mode = -2
  • Engine: Default Horizontal Resolution on first start ever - Only gets used if r_mode = -2

r_lightScatteringQuality — falsch

  • geschuerft: Light scattering volume width: 3: screenres / 8 x 128 depth (high) 2: screenres / 16 x 128 depth (high UDH) 1: screenres / 8 x 64 (medium), 0: screenres / 16 x 64 (low). >=1440p uses 0 by default
  • Engine: Light scattering volume width: 3: screenres 8 x 128 depth (high) 2: screenres / 16 x 128 depth (high UDH) 1: screenres / 8 x 64 (medium), 0: screenres / 16 x 64 (low). >=1440p uses 0 by default

r_shadingRateAntiFlickerMotionNorm — falsch

  • geschuerft: Use NVIDIA Variable Shading Rate (VSR)
  • Engine: Normalization in pixels

r_shadingRateDebug — falsch

  • geschuerft: Visualize shading rate in colors: blue - 1x2/2x1; green - 2x2; yellow - 2x4/4x2; red - 4x4; white dot = transposed
  • Engine: Visualize shading rate in colors: blue - 1x2 2x1; green - 2x2; yellow - 2x4/4x2; red - 4x4; white dot = transposed

r_shadingRateMotionSensitivityToLuma — falsch

  • geschuerft: 1/x factor to increase luma sensitivity under slow motion and avoid shimmering
  • Engine: Reduce motion influence in areas with divergent colors

r_shadingRateQualityOverride — falsch

  • geschuerft: Minimum allowed shading rate (0 - 4x4; 1 - 4x2; 2 - 2x2; 3 - 2x1; 4 - 1x1)
  • Engine: 0 - 4x4; 1 - 4x2; 2 - 2x2; 3 - 2x1; 4 - 1x1; 5 - adaptive

r_shadowAtlasTileSize — falsch

  • geschuerft: variance shadow maps
  • Engine: Shadow map atlas tile size

s_loudness_profile — falsch

  • geschuerft: Profile version exceeded support threshold, will be reset by profile manager.
  • Engine: Loudness profile

vt_maxLockedPagesPercent — falsch

  • geschuerft: maximum number of transcoded pages per frame
  • Engine: Amount of physical page pool to lock in percent; -1 = use default, [0..50] = use that percentage

vt_packPageFiles — falsch

  • geschuerft: Lock from coarsest LOD down to this LOD level in the vmtr physical page pool; [0..10] = lock from coarsest(11) down to this mip LOD
  • Engine: Use the virtual texture file name without any suffixes

vt_pageImageSizeUnique — falsch

  • geschuerft: Report the number of explicit pages each frame.
  • Engine: Dimensions of the physical page images. vt_restart after changing this.

Welche Dumps vorliegen

File Invocation Parsed Entries Engine Reports
d01.txt listCvars - help g_ 11 11
d01_0.txt listCvars - help a 225 225
d02.txt listCvars - help pm_ 2 2
d02_0.txt listCvars - help b 65 65
d03.txt listCvars - help ai_ 0 0
d03_0.txt listCvars - help c 145 145
d04.txt listCvars - help com_ 35 35
d04_0.txt listCvars - help d 172 172
d05.txt listCvars - help sys_ 14 14
d05_0.txt listCvars - help e 262 262
d06.txt listCvars - help vt_ 28 28
d06_0.txt listCvars - help f 86 86
d07.txt listCvars - help in_ 11 11
d07_0.txt listCvars - help g 145 145
d08.txt listCvars - help menu_ 0 0
d08_0.txt listCvars - help h 120 120
d09.txt listCvars - help si_ 0 0
d09_0.txt listCvars - help i 206 206
d10.txt listCvars - help anim_ 1 1
d10_0.txt listCvars - help j 29 29
d11.txt listCvars - help rs_ 4 4
d11_0.txt listCvars - help k 33 33
d12.txt listCvars - help af_ 0 0
d12_0.txt listCvars - help l 184 184
d13.txt listCvars - help decl_ 0 0
d13_0.txt listCvars - help m 167 167
d14.txt listCvars - help fx_ 0 0
d15.txt listCvars - help bot_ 0 0
d16.txt listCvars - help aic_ 0 0
d17.txt listCvars - help dp_ 0 0
d18.txt listCvars - help gp_ 0 0
d19.txt listCvars - help vk_ 0 0
d20.txt listCvars - help image_ 4 4
d21.txt listCvars - help net_ 9 9
gdump.txt listCvars - help g 145 145
wolfdump.txt listCvars 304 304

The number of parsed entries and the number reported by the engine must match everywhere; tools/verify_cvars_tnc.py checks exactly this and crashes on any incorrectly handled continuation line.

What is still missing

1 One Cvar is known by name but did not appear in any help output yet. A search text matches as a substring: a name without a single letter from a to m slips through all previous dumps. Run these calls in-game, then run merge_cvars_tnc.py again:

listCvars - help r_
conDump d_r.txt
r_SSR

7 Cvars appear in the help output with an empty description column. The engine itself has no help text for them; another dump does not bring them along, beschreibung remains null:

com_skipInputRouting
com_skipSignInManager
fs_debug
r_disableSteamOverlay
r_particleFadeQualityMultiplier
r_particleFadeQualityMultiplierDurango
sys_lang

Search texts that have never been run

Letters: n, o, p, q, r, s, t, u, v, w, x, y, z.

The search text matches as a substring at any position; a single letter covers a great deal, so a to m are covered. As long as the sum of names matches the number from listCvars, the catalog is complete and n to z would only be a final check. They are worth it if the numbers diverge.

The real gap

The capture was made in a single session. Cvars registered later cannot appear in it at all. Therefore run listCvars again, namely

  • in the loaded level instead of in the menu,
  • with com_enableDeveloperMode 1 already at startup,
  • in a multiplayer session.

If the reported total number then deviates from 304, exactly the difference is missing in Cvars, and help dumps are needed for their prefixes.