CST Counter-Strike Tools GitHub

CS2 metadata tooling

Reliable CS2 metadata for real tools.

A focused dumper plus matching SDKs for developers building around generated Counter-Strike 2 metadata. Produce stable JSON, keep generated files organized, and consume the same contract from the language you already use.

5 output formats
4 SDK targets
1 JSON contract
cs2-dumper live output
$ cs2-dumper --output-layout by-file-type

client.dll
  dwEntityList       resolved
  dwViewMatrix       resolved
  C_CSPlayerPawn     schema parsed

output/json/offsets.json
output/json/schemas/client_dll.json
output/metadata/info.json
SDK lookup snapshot.offset("client.dll", "dwEntityList")

Workflow

A small pipeline with clear ownership.

01

Dump

Run the external dumper against a local CS2 process and generate offsets, interfaces, buttons, schemas, and metadata.

02

Store

Keep output grouped by file type so automated consumers can target the data they need without parsing generated source.

03

Consume

Load the JSON contract from Rust, C, C++, or .NET, or run the dumper directly and consume stdout JSON.

Repositories

Use the repo that matches the job.

Integration

cs2-dumper-sdk

SDKs for reading dumper output and embedding lookup behavior in tooling without duplicating parsers.

  • Rust crate
  • Header-only C and C++ packages
  • .NET project and examples
Open repository

Output contract

Readable files, predictable paths, low ceremony.

Downstream tools should depend on the JSON output layout rather than internal dumper code. That keeps integrations smaller, easier to audit, and less brittle when the dumper implementation changes.

offsetsoutput/json/offsets.json
interfacesoutput/json/interfaces.json
buttonsoutput/json/buttons.json
schemasoutput/json/schemas/client_dll.json
metadataoutput/metadata/info.json

Why this exists

Tooling should feel boring in the right places.

The repos are intentionally narrow: one project generates the data, another makes it easy to consume. Clear boundaries make updates easier to review and integrations easier to keep working.

Stable paths Automations can find data without guessing.
Language coverage Use generated metadata from native or managed tooling.
Release first Download builds or compile the Rust workspace yourself.
Audit friendly Small surfaces and plain output contracts.

FAQ

Common starting points.

Which repository do I start with?

Start with cs2-dumper if you need fresh generated data. Use cs2-dumper-sdk when your own application needs to consume that data.

What should integrations parse?

Prefer the JSON output under output/json and output/metadata. Generated source files are useful, but JSON is the cleanest contract.

Can the SDK run the dumper?

Yes. SDK consumers can load an output directory or run the dumper and parse stdout JSON without requiring generated files.

Where are binaries published?

Downloadable releases live in the cs2-dumper repository releases page.