Developed between 2023 and 2026 by HoovyTube with the permission of RedEye (creator of SourceIO), HoovyTools brings full SFM session import into Blender for the first time: shape keys, cameras, sounds and animations, in harmony with SourceIO. Documentation starts from this release; older builds will be documented here over time.
Installing HoovyTools
HoovyTools runs on top of SourceIO. SourceIO loads Source engine models, materials and textures into Blender; HoovyTools rebuilds the SFM session around them. Install SourceIO first, then HoovyTools.
- Install SourceIO:
Edit → Preferences → Add-ons → Install…, choose its zip, and enable it. - Download the HoovyTools
.zipabove. Do not unzip it. - Back in
Add-ons → Install…, choose the HoovyTools zip, then tick the checkbox to enable it. - Open the sidebar in the 3D viewport (press
N). The HoovyTools panel lives there.
Wiring in your usermod
SFM keeps your custom models, materials and sounds inside your usermod and the game folders it mounts. HoovyTools resolves every asset a session references by those same relative paths. Point it at your SFM usermod and mounted game folders and it finds your content exactly the way SFM did, with nothing renamed or re-pathed. If a model comes in missing, it is almost always a usermod path that has not been added yet.
What the import brings across
Point HoovyTools at an SFM session (a .dmx file) and it rebuilds that session inside Blender in one pass:
- Session structure. Shots, clips and the timeline are read and reconstructed in one go.
- Animations. Every bone channel is sampled and baked onto the Blender armature, keyframe for keyframe.
- Shape keys. Facial flexes and flex controllers become native Blender shape keys, animated over the timeline.
- Cameras. The SFM camera is rebuilt as a Blender camera with position, rotation and FOV, keyed as it moved.
- Sounds. Every voice line and sound in the session is placed on the timeline, on the frame.
- FPS-aware timing. Everything is retimed to your scene (for example 24 → 30) so animation, sound and camera stay locked together.
- Non-destructive. Assets keep their original paths and names, so a re-import lands in the same place.
Under the hood: how the import works
An SFM session is a DMX file: a tree of elements that describes the shot. HoovyTools reads it directly (the same format datamodel / dmxconvert operate on), walks the tree, and translates each piece into the closest thing Blender understands.
What gets parsed
- Session data: the clip and shot structure, plus the master timeline.
- Animation data: per-bone transform channels, sampled and baked onto the armature.
- Camera data: the camera transform and FOV channels.
- Sound clips: the game sounds a session references and their frame positions.
- Flex / shape channels: the flex-controller values that drive faces.
Fifteen small scripts, stacked
HoovyTools is fifteen small, single-purpose scripts stacked on top of each other. Each does one thing and hands clean data to the next.
Where Blender stands in for SFM
- Flex controllers → Blender shape keys.
- SFM camera → Blender camera with animated F-Curves.
- DMX sound clips → sound strips on the timeline, on the frame.
- SFM game units and coordinate space → Blender's units and axes.
- Session timeline → Blender's scene frame range and FPS.
The result: your SFM work lands in a modern, far more stable environment, without rebuilding anything by hand.