A community-driven filmmaking mod for the Source engine.
This software is in early production as development was recently reset.
- Director's Cut Github
- Director's Cut Discord
- Director's Cut YouTube
- r/DirectorsCut
- Director's Cut on X (Twitter)
- Director's Cut on Bluesky
- Director's Cut on Valve Developer Wiki
-
Prerequisites:
- Director's Cut requires Source SDK Base 2013 Multiplayer to be installed on Steam.
- Director's Cut is currently only available for Windows.
-
Installation:
- Download the latest release from the releases page.
- Extract the
directorscut
directory to yoursourcemods
directory.- For example,
C:\Program Files (x86)\Steam\steamapps\sourcemods\directorscut
.
- For example,
- Restart Steam and launch Director's Cut from your library.
-
Testing:
- When in-game, open the Director's Cut editor by pressing
Tab
. - Open sessions by clicking
File
>Open
.- SFM sessions must be converted using the following command:
dmxconvert -i session.dmx -oe keyvalues2 -o session_kv2.dmx
- Test sessions are located in the following directory:
C:\Program Files (x86)\Steam\steamapps\sourcemods\directorscut\elements\sessions
- SFM sessions must be converted using the following command:
- When in-game, open the Director's Cut editor by pressing
-
Information:
- Director's Cut is in early development and may contain bugs.
- Please report any issues you find on the GitHub issues page
- The timeline does not have any mouse controls yet, please use the keyboard controls below.
- Right clicking does not work for any context menus yet.
- The element viewer and inspector windows are unstable and may crash the game.
- Loading a map must be performed through the console using the
map
command. - Saving a session may result in SFM no longer being able to open the file.
- Keyboard controls are not locked on a per-window basis yet.
-
Team Fortress 2 Content:
- While Director's Cut is compatible with Team Fortress 2, content does not work out of the box.
- Only the 2007 retail versions of the maps are supported.
- SFM-exclusive models (such as in
tf_movies
) are not supported. - TF2 character models may have issues with their materials.
- See
gameinfo.txt
for a rundown on how support was added.
- Director's Cut:
Tab
to toggle the Director's Cut editor.
- Timeline:
Space
to play/pause the playback.Ctrl
+Space
to play in x2 speed.Shift
+Space
to play in reverse.Alt
+Space
to play from the start.
Left
andRight
arrow keys to move the playhead by one frame.Up
andDown
arrow keys to move the playhead to the start or end of the current shot.P
to lock the timeline view to the playhead.=
and-
to zoom in and out.
- Primary Viewport:
W
,A
,S
, andD
to move the camera.Z
andX
to move the camera up and down.Shift
to move the camera faster.Ctrl
to move the camera slower.
-
Prerequisites:
- Director's Cut requires Visual Studio 2022 to build.
-
Building Director's Cut:
-
Cloning the Repository:
- Open a command prompt and run the following command:
git clone https://github.com/KiwifruitDev/DirectorsCut.git
- Open a command prompt and run the following command:
-
Creating Visual Studio Solution:
- After cloning the repository, run
mp/src/creategameprojects.bat
to create the Visual Studio solution.
- After cloning the repository, run
-
Building the Solution:
- Open
mp/src/games.sln
in Visual Studio and build the solution.
- Open
-
If you would like to implement the Director's Cut animation system into your own mod, please note the following changes and files required:
mp/src/vgui2/vgui_controls/PropertySheet.cpp
void PropertySheet::OnDragFailed(CUtlVector<KeyValues*>& msglist)
- Pages can now be dropped out to create new
ToolWindow
instances without requiring a tool factory.
- Pages can now be dropped out to create new
void PropertySheet::OnPanelDropped(CUtlVector<KeyValues*>& msglist)
- Pages can now be dropped onto existing
ToolWindow
instances without requiring a tool factory.
- Pages can now be dropped onto existing
mp/src/game/client/c_baseanimating.cpp
CStudioHdr *C_BaseAnimating::OnNewModel()
void C_BaseAnimating::BuildTransformations(CStudioHdr* hdr, Vector* pos, Quaternion* q, const matrix3x4_t& cameraTransform, int boneMask, CBoneBitList& boneComputed)
bool C_BaseAnimating::SetupBones(matrix3x4_t* pBoneToWorldOut, int nMaxBones, int boneMask, float currentTime)
- Allow dynamic bone positions and rotations to be set.
mp/src/public/tier1/KeyValues.h
KeyValues::~KeyValues();
- Allow
KeyValues
type to be derived from.
- Allow
mp/src/game/client/directorscut
- This folder contains all of the Director's Cut code. You must either include each file through VPC or otherwise add them to your project.
mp/game/directorscut/materials/vgui/directorscut
- This folder contains all of the Director's Cut VGUI materials. These files must be included in your mod's game directory.
mp/game/directorscut/resource/directorscut
- This folder contains all of the Director's Cut resource files. These files must be included in your mod's game directory.
Any changes are welcome through pull requests, I would really appreciate any help with this project.
Please feel free to submit any issues you find as well.
Some parts of the code in Director's Cut is AI-assisted using GitHub Copilot.
Director's Cut shares code from the following projects:
Please view thirdpartylegalnotices.txt for more information.