Skip to content

Repository files navigation

DumpSource2

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.

Usage

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.

Output

  • schemas/ - schema classes and enums as headers, per module
  • schemas.json - schemas, convars, commands and entities for SchemaExplorer
  • convars.txt, commands.txt - convars and commands with their flags and help, convars also with their default, range and enum
  • entities/ - 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 module
  • logging_channels.txt - logging channels with their defaults
  • module_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 to unhandled.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.

Compilation

Windows

cmake -B build
cmake --build build --config Release

Or open the folder in Visual Studio.

Linux

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

SDK Configuration

Each 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.

About

Application that offline dumps Source 2 schema bindings and convars/commands for GameTracking purposes.

Topics

Resources

Stars

29 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages