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.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/RykoTheDev/Onyx-Steam-Build-Uploader/llms.txt
Use this file to discover all available pages before exploring further.
File naming and location
VDF files live inside your ContentBuilderscripts/ directory. Onyx expects exactly this naming convention:
| File | Pattern | Example |
|---|---|---|
| App manifest | app_<APPID>.vdf | app_1234560.vdf |
| Depot manifest | depot_<DEPOTID>.vdf | depot_1234561.vdf |
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
| Field | Description | Managed by |
|---|---|---|
appid | Your Steam App ID. Must match the filename. | Onyx (setup wizard) |
desc | Human-readable label for this build. Shown in the Steamworks partner dashboard. | Onyx (editable in UI, written before each upload) |
buildoutput | Absolute path where SteamCMD writes build logs and manifests. | Template (edit manually to match your SDK path) |
contentroot | Root path prepended to all depot content roots. Leave empty if depot VDFs use absolute paths. | Template |
setlive | Branch name to set live after upload (e.g. beta). Leave empty to upload without going live. | Manual |
preview | Set to "1" to do a dry-run upload that does not publish to Steam. | Manual |
local | Path to a local content server. Leave empty for standard Steam distribution. | Manual |
depots | Maps Depot IDs to their corresponding depot VDF filenames. | Onyx (setup wizard) |
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.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
| Field | Description | Managed by |
|---|---|---|
DepotID | The Steam Depot ID this file configures. | Onyx (setup wizard) |
contentroot | Absolute path to the directory containing files to upload. Onyx reads this to display the content root in the UI. | Onyx (setup wizard) / manual edits |
FileMapping.LocalPath | Glob pattern of files to include relative to contentroot. * means all files. | Template |
FileMapping.DepotPath | Destination path inside the depot. . means the depot root. | Template |
FileMapping.recursive | "1" includes subdirectories recursively. "0" uploads only the top level. | Template |
FileExclusion | Glob pattern of files to skip. The default excludes .pdb debug symbol files. | Manual |
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
.pdbfiles 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.
FileExclusion lines:
Fields Onyx reads vs. fields you manage manually
Managed by Onyx
appid— read to identify the builddesc— written before every uploaddepotsblock — parsed to list and count depotsDepotID— read per depotcontentroot(depot) — displayed in the depot list
Edit manually in the VDF
buildoutput— must point to your actual SDK output foldersetlive— set the branch name when you want auto-promotionpreview— set to"1"for dry-run testingcontentroot(app) — set if depots use relative pathsFileMappingrules — customize inclusions per depotFileExclusionrules — add or remove file filters