Skip to content
Tim Mcguinness edited this page Apr 24, 2026 · 3 revisions

Tools

The VTX repo ships three first-party tools alongside the SDK libraries. Each is independently buildable via a CMake option. See Getting Started, CMake options.

VTX Inspector (GUI)

An ImGui-based visual inspector for browsing replay files. Open a .vtx file and step through frames, expand entities, drill into properties, watch bone transforms, and diff across time.

Requires OpenGL.

dist/bin/vtx_inspector.exe

Typical uses:

  • Debugging a capture that looks wrong.
  • Eyeballing what a new schema actually produces.
  • Scrubbing through an incident to find the frame where things went sideways.
  • Teaching someone what a VTX file contains.

VTX CLI (headless)

A JSON-based command-line inspector designed for scripting and AI-agent consumption. No GUI, no interactive prompts, just structured input and structured output.

dist/bin/vtx_cli.exe --help
dist/bin/vtx_cli.exe --json-only

Supported commands include:

  • open / close: file lifecycle.
  • frame: load a specific frame.
  • entities / entity: list and inspect entities.
  • property: query a property by key.
  • buckets: enumerate bucket contents (entity / bone / events / stats).
  • types: list property types.
  • diff: compute a diff between two frames.
  • track: follow an entity across frames.
  • search: find entities / properties by name.

Use this when you want to:

  • Feed VTX state into a language model or an automated pipeline.
  • Batch-process a directory of replays (stats extraction, data cleaning, training-data prep).
  • Wire VTX into tooling in a language other than C++, such as Python scripts, Node tools, or shell pipelines.

The JSON protocol is deterministic and stable enough to consume from outside processes.

Schema Creator

A GUI tool for building and maintaining the schema.json file that the writer consumes via WriterFacadeConfig::schema_json_path. A schema declares the entity structs, their properties, property types, and the bucket layout the recorder will group entities into.

dist/bin/vtx_schema_creator.exe

Typical flow:

  1. New Schema: creates an empty document with a default bucket list.
  2. Add a struct (e.g. Player), then add properties to it. For each property pick a typeId (Int32, Float, Vector3, String, ...), a display name, and a category.
  3. Map structs to buckets in the Buckets window so the writer knows where each entity type is stored in a frame.
  4. Validate: the tool flags missing types, duplicate names, mismatched bucket mappings, etc.
  5. Save: produces a JSON file you point the writer at.
  6. Evolve: loading an existing schema captures it as the baseline. Changes are diffed against the baseline; saving "as next generation" bumps the version and refuses to proceed if the diff contains breaking changes (removed fields, incompatible type changes).

A concrete schema ready to drop into the writer is samples/content/writer/arena/arena_schema.json. Open it in Schema Creator to see the output format.

Samples

The repo ships a samples directory with example writers, example readers, and sample replay content:

See docs/SAMPLES.md for the full tour.

Clone this wiki locally