Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ZeqMacaw/Crowbar/llms.txt

Use this file to discover all available pages before exploring further.

Every compiled model file (.mdl) stores a version number in its binary header, which tells the engine — and Crowbar — how to interpret the data layout that follows. Crowbar’s decompiler reads this version number automatically and selects the correct internal parser. In rare cases, such as a hex-edited file or an unusual port of a game, you can override the auto-detected version using the Override MDL version dropdown on the Decompile tab.

Supported Versions

The SupportedMdlVersion enum in Crowbar’s source enumerates every version the decompiler recognises. The table below maps each version to its engine family and the games where that format is most commonly found.
MDL VersionEngineRepresentative Games
v06GoldSourceHalf-Life (original), Team Fortress Classic
v10GoldSourceHalf-Life: Opposing Force, Counter-Strike 1.6
v2531GoldSourceVampire: The Masquerade – Bloodlines
v27SourceHalf-Life 2 (early builds)
v28SourceHalf-Life 2
v29SourceHalf-Life 2: Episode One
v30SourceHalf-Life 2: Episode Two
v31SourcePortal
v32SourceTeam Fortress 2 (early builds)
v35SourceLeft 4 Dead
v36SourceLeft 4 Dead 2
v37SourceAlien Swarm
v38SourcePortal 2
v44SourceTeam Fortress 2
v45SourceCS:GO (early)
v46SourceCS:GO
v47SourceDota 2 (early)
v48SourceDota 2
v49SourceCS:GO (updated hitbox format)
v52SourceSource Filmmaker extras
v53SourceNewer Source titles
v57SourceLatest supported variant
The “Do not override” option (the default) tells Crowbar to read the version directly from the .mdl file header. You only need to change this if auto-detection is failing — for example, after a file has been manually edited or reconstructed.

Companion Files

A compiled Source engine model is split across several files that must all be present in the same folder for Crowbar to decompile successfully. GoldSource models are self-contained in a single .mdl file, but some also reference separate texture and sequence-group .mdl files.
FileExtensionPurpose
Model.mdlBones, mesh references, sequences, materials, and attachments
Vertex data.vvdVertex positions, normals, texture coordinates, and bone weights
Hardware topology.dx90.vtx / .dx80.vtx / .sw.vtxGPU-optimised mesh strips and index buffers
Physics.phyRagdoll and collision geometry (optional)
Animation block.aniExternal animation data used by some games (optional)
Crowbar reports a specific error code when a required companion file cannot be found:
  • ErrorRequiredAniFileNotFound.ani file is missing
  • ErrorRequiredVtxFileNotFound.vtx file is missing
  • ErrorRequiredVvdFileNotFound.vvd file is missing
To resolve these, copy all companion files into the same directory as the .mdl before decompiling.
If you extracted a model from a VPK or GMA archive and decompilation fails with a missing-file error, use Crowbar’s Unpack tab first to extract the entire models/ subtree — this ensures all companion files land in the same output folder.

Version Override Behaviour

The version override dropdown is available on both the Decompile tab and the Preview / View tabs. When set to anything other than “Do not override”, Crowbar substitutes the selected version number for the one stored in the file header and applies the matching parser. This is useful when:
  • A file has been hex-patched and its header version no longer matches its actual data layout.
  • You are working with a community-modified build of a game that ships an unusual version number.
  • Crowbar reports ErrorInvalidMdlFileId and you believe the data is actually valid but the magic bytes are wrong.

Build docs developers (and LLMs) love