A C++ Application that offline dumps schema bindings, convars/commands, entities, interfaces, logging channels and module metadata for GameTracking purposes.
See this file in GameTracking on how its used.
Each game has its own build: DumpSource2-CS2, DumpSource2-DOTA and DumpSource2-DEADLOCK. Run it from the game's game/bin/win64 folder (game/bin/linuxsteamrt64 on Linux).
DumpSource2-CS2 <output path>
output path- absolute or relative path to an existing folder where output should be stored
Set the LOGLEVEL environment variable (like LOGLEVEL=debug) for more logging.
schemas/- schema classes and enums as headers, per moduleschemas.json- schemas, convars, commands and entities for SchemaExplorerconvars.txt,commands.txt- convars and commands with their flags and help, convars also with their default, range and enumentities/- entity classes as FGD with their keys, components, inputs and outputs, per module, and datamaps no entity class has as unused base classes (CS2 and Deadlock, inputs and outputs only on Windows)interfaces.txt- interfaces exposed by each modulelogging_channels.txt- logging channels with their defaultsmodule_metadata/- metadata of each module as text, a file per section: Pulse bindings and fingerprints, resource manifests and tool bind targets. Sections that other dumps have are left out, and anything not written as text goes tounhandled.json(Windows only, modules have none on Linux)network/- networked classes and fields of client and server, which the schemas no longer have as metadata.stringsignore- names that GameTracking removes from its strings dumps
If anything fails to dump, it exits with code 1 and schemas.json is not written.
For CS2, convars and commands that workshop maps can use are flagged in schemas.json when csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt is extracted from the game's VPK.
cmake -B build
cmake --build build --config ReleaseOr open the folder in Visual Studio.
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build buildEach game target is built with build_game(GAME, GAME_PATH, SDK) in src/main/CMakeLists.txt. The third argument selects which HL2SDK from vendor/ to link against. Games update more often than the SDKs, so it may be necessary to switch to another game's SDK.