StudioMDL++
Jump to navigation
Jump to search

Note: Garry's Mod is currently not supported.
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
Type
Model compiler
Distribution
Freeware
Website
Download
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
-nodx80option to not emit.dx80.vtxfiles - Added
reversecommand for$sequence - Added
posandrotoptions tomatchcommand for animations - Added
copycommand for animations - Added basic
if/else/else ifconditionals to animations - Added default argument support to macros
- Added new
$endmacroterminator for macros, allows omitting\\ - Added numeric input support for $contents
- Added better warnings for invalid bounding boxes in animations
- Added
-noremapto disable sequence remapping with existing models - Added
to calculate bounding box from specified mesh only$bboxmeshname 1 meshname 2 ... - Added
$setvariable- similar to$definevariablebut can override a previous variable - Added
gmtimeoption for $sequences to flag as synced to UTC time- Note: this requires mod support
- Added check for overflowing cmdlists
- Added
-cullanimsparameter to remove unreferenced $animations- This can significantly reduce file size on large animation sets such as thirdperson animations
nocullparameter 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 withoffsettoken - Missing bone name in
$weightlistis now a warning instead of error - Raised maximum amount of bones in the SOURCE mesh to 1024 (the output bone limit is still 128)
$collisionmodelandreplacemodelno 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
$renamebonenot 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 Yerror - 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.vtxoutput
Supported games
StudioMDL++ currently supports the following 64-bit Source SDK 2013-based games:
External links
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||