Skip to main content
Valve Data Format (VDF) files are the build manifests that SteamCMD reads when uploading your game to Steam. Onyx generates these files automatically when you run the setup wizard, but understanding their structure helps you customize builds, add depots, and troubleshoot upload failures.

File naming and location

VDF files live inside your ContentBuilder scripts/ directory. Onyx expects exactly this naming convention:
App files that do not match the app_<integer>.vdf pattern are silently ignored. If no apps appear on the Onyx main screen, verify the filenames in your scripts/ folder.
Your ContentBuilder directory should look like this:
ContentBuilder
builder
content
output
scripts
app_1234560.vdf
depot_1234561.vdf
depot_1234562.vdf

App VDF structure

The app VDF tells SteamCMD which depots to include, where to write build output, and metadata about the build. Onyx generates this file from a template during setup.
app_1234560.vdf

Field reference

The desc field is the only app VDF value Onyx modifies after initial setup. Whatever you type in the build description field in the UI is written to desc immediately before SteamCMD runs.
To add a depot after initial setup, add a new entry to the depots block and create the corresponding depot_<DEPOTID>.vdf file. Onyx will detect the new depot on the next launch.

Depot VDF structure

Each depot VDF describes what files to include for one depot, and where those files live on disk.
depot_1234561.vdf

Field reference

Changing FileExclusion

The default exclusion rule (*.pdb) drops Windows debug symbols, which are large and unnecessary for players. You may want to adjust this if:
  • You ship a Linux build where .pdb files don’t exist (the rule is harmless but you can remove it for clarity).
  • You want to exclude additional file types, such as editor metadata or source assets.
  • You intentionally ship debug symbols for a developer branch.
Multiple exclusion rules require multiple FileExclusion lines:

Fields Onyx reads vs. fields you manage manually

Managed by Onyx

  • appid — read to identify the build
  • desc — written before every upload
  • depots block — parsed to list and count depots
  • DepotID — read per depot
  • contentroot (depot) — displayed in the depot list

Edit manually in the VDF

  • buildoutput — must point to your actual SDK output folder
  • setlive — set the branch name when you want auto-promotion
  • preview — set to "1" for dry-run testing
  • contentroot (app) — set if depots use relative paths
  • FileMapping rules — customize inclusions per depot
  • FileExclusion rules — add or remove file filters