This article's documentation is for anything that uses the Source engine. Click here for more information.

StudioMDL++

From Valve Developer Community
Jump to navigation Jump to search

English (en)Translate (Translate)
This article or section is a stub. You can help by expanding it.
Developer(s)
Initial release
Dec 11, 2025
Stable release
Sep 11, 2026
Operating system
Windows
Type
Model compiler
Target engine(s)
Source
Distribution
Freeware
Download

StudioMDL++ StudioMDL++ is a community-made modification of Source's StudioMDL developed by ficool2.

Differences

  • Significantly faster compilation
  • Significantly improved loading speed of SMD files
  • Supports compiling unlimited number of vertices and materials
  • Raised maximum output file size to 32mb
  • Added AppID mounting in gameinfo.txt
  • Added -nodx80 option to not emit .dx80.vtx files
  • Added reverse command for $sequence
  • Added pos and rot options to match command for animations
  • Added copy command for animations
  • Added basic if/else/else if conditionals to animations
  • Added default argument support to macros
  • Added new $endmacro terminator for macros, allows omitting \\
  • Added numeric input support for $contents
  • Added better warnings for invalid bounding boxes in animations
  • Added -noremap to disable sequence remapping with existing models
  • Added $bbox meshname 1 meshname 2 ... to calculate bounding box from specified mesh only
  • Added $setvariable - similar to $definevariable but can override a previous variable
  • Added gmtime option for $sequences to flag as synced to UTC time
    • Note: this requires mod support
  • Added check for overflowing cmdlists
  • Added -cullanims parameter to remove unreferenced $animations
    • This can significantly reduce file size on large animation sets such as thirdperson animations
    • nocull parameter can be added to an $animation to disable culling
  • Added warning if duplicate variable is defined via $definevariable
  • Added error if duplicate macro is defined
  • Weight for "activity" is now optional, defaults to -1 if not specified
  • Made offset optional for $attachment, can be explicitly defined with offset token
  • Missing bone name in $weightlist is now a warning instead of error
  • Raised maximum amount of bones in the SOURCE mesh to 1024 (the output bone limit is still 128)
  • $collisionmodel and replacemodel no longer require explicitly providing extension name
  • Unused materials are now removed from the final model (i.e. part of $animations or collision model only)
  • Macros now fallback to $definevariables if not found in macro parameters
  • Implemented new rules for bone collapsing that prevent unexpected behavior, see below:
    • If bone is marked by $alwayscollapse, its always collapsed no exceptions
    • If bone is assigned to a vertex at any LOD, dont collapse
    • If bone is used as a hitbox, don't collapse
    • If bone is a $definebone, dont collapse
    • If bone is used in an animation, dont collapse
    • If bone is procedural, don't collapse
    • If bone is part of ikchain, don't collapse
    • If bone is used as $attachment, don't collapse
    • If bone is used as $bonemerge, don't collapse
    • Otherwise, collapse
  • Fixed $renamebone not affecting the collision model
  • Fixed crash if source bones limit is exceeded
  • Fixed crash if blank bodygroup was used with $staticprop
  • Fixed crash if source mesh had too many vertexes/faces
  • Fixed swapped variable names in missing control bone X for procedural bone Y error
  • Fixed bogus animation data being printed in console
  • Reduced default weight culling from 5% to 0.01%
  • Removed limit for max number of meshes and animations
  • Removed .sw.vtx output
Note.pngNote: This is used for DirectX 6 and 7 feature levels, which have been unsupported since Source 2007.

Supported games

StudioMDL++ currently supports the following 64-bit Source SDK 2013-based games:

Team Fortress 2 branch Team Fortress 2 branch (x64 only)
Team Fortress 2 Team Fortress 2
Counter-Strike: Source Counter-Strike: Source
Day of Defeat: Source Day of Defeat: Source
Half-Life 2: Deathmatch Half-Life 2: Deathmatch
Note.pngNote: Garry's Mod is currently not supported.

External links

Navigation