How to make CS2 edit - eirisocherry/cs2-editing GitHub Wiki
Video tutorials
Showcase: https://www.youtube.com/watch?v=6zw0TgrEIAs
1st part (basics, campath, misc):
2nd part (reshade, streams, scripts):
HLAE (editing tool)
>>> Installation
- Download the latest .zip version: https://github.com/advancedfx/advancedfx/releases/latest
- Create an empty
HLAEfolder and extract archive content to it
>>> Usage
- Open HLAE.exe
- Go to: Tools -> Developer -> Custom Loader
- Adjust custom loader parameters
Program Path: ..\Counter-Strike Global Offensive\game\bin\win64\cs2.exe
Launch options: -insecure -console -language english -afxDisableSteamStorage -sw -w 1920 -h 1080
-insecuredisables VAC
-consoleenables console
-language englishsets game language to english
-afxDisableSteamStoragedisables Steam cloud storage, to prevent your normal config settings getting overwritten when using a custom config folder forHLAEwith theUSRLOCALCSGOenvironment variable
-swwindowed mode
-w 1920 -h 1080resolution (resolution sides must have even numbers or you will have problems with recording)
DLLs to inject: ..\HLAE\x64\AfxHookSource2.dll
Environment variables: USRLOCALCSGO=<PATH_TO_MVM_FOLDER>
If you set the variable, HLAE will generate game configs inside the specified folder and start using them instead of the main game settings
All the changes (graphic settings, new binds) will be applied to those generated configs
It means HLAE won't affect the game settings that you have when launching the game without HLAE
- Disable all anticheats (ex: faceit anticheat) and all antiviruses (you can keep windows defender turned on)
- Launch the game via HLAE by pressing
OK
Join HLAE support server: https://discord.com/invite/NGp8qhN
>>> How to update HLAE
- Launch HLAE
- Go to: Help -> Check for updates -> Check now
- Press
Update available!button, it will redirect you to the https://github.com/advancedfx/advancedfx/releases/latest
- Download the latest .zip version
- Close HLAE
- Extract archive content to the 'HLAE' folder you created earlier with replacement
FFMPEG (video recording)
-
Download FFMPEG (
ffmpeg-<version>-full_build.zip): https://github.com/GyanD/codexffmpeg/releases
Extract archive content to..\HLAE\ffmpeglike this:

-
Install K-Lite Codec Pack (standart): https://codecguide.com/download_kl.htm
It's a good video player that can play almost every video/audio without any issues -
Install these codecs to be able to import them into video editing software:
Ut Video Codec (.avi): https://www.videohelp.com/software/Ut-Video-Codec-Suite
Quicktime Codec (.mov): https://support.apple.com/en-us/106375
My configs
- Download the configs: https://github.com/eirisocherry/cs2-editing/releases
- Extract them to
..\Counter-Strike Global Offensive\game\csgo\cfg - Adjust
_reset.cfgto your needs, so you can reset the game settings at any time - Adjust
_core.cfg, set output recording folder, bind types etc
- Join the game
- Type
exec _coreandresetin the console - Play a demo
playdemo <demo_name>
Demos folder:..\Counter-Strike Global Offensive\game\csgo - Activate editing config by typing
fe - Read the pop-up menu to learn more about the config
- Join the game
- Type
exec _coreandresetin the console - Play a demo
playdemo <demo_name>
Demos folder:..\Counter-Strike Global Offensive\game\csgo - Activate editing config by typing these commands one by one
exec_async _ffmpeg
exec_async _streams
exec_async _core
exec_async _editing
exec_async _editinginfo
- Read the pop-up menu to learn more about the config
Notepad++ (handy notepad): https://notepad-plus-plus.org/downloads/
Sounds (SFX)
- Download Source2Viewer: https://valveresourceformat.github.io/
- Open Source2Viewer, go to
File -> Openand specify the..\Counter-Strike Global Offensive\game\csgo\pak01_dir.vpkfile - Right click the
soundsfolder and pressDecompile & export - Output=sound, press
continueand specify the output folder you want to extract sounds to - Wait till exporting is finished
cs2_sounds_export.mp4
Tutorial: https://www.youtube.com/watch?v=sZ1bdfBcKwM
Reshade
- Follow the guide: https://github.com/advancedfx/ReShade_advancedfx/wiki
- In custom loader [Browse ...]
<reshade_folder>\dxgi.dlland place it belowx64\AfxHookSource2.dll
Streams
>>> 4k resolution without 4k monitor
Junior.fx splits the screen/resolution into 4 pieces:
1920x1080 recording outputs two small 960x540 videos (960x540 resolution is way too small)
3840x2160 recording outputs two 1920x1080 videos (1920x1080 is good, that's why you need to set your resolution to 4k)
-
Go to
NVIDIA Control Panel > Manage 3D Settings
SetDSR - Factorsto4X,DSR - Smoothnessto0%and hit [Apply]

-
Go to
NVIDIA Control Panel > Change resolution
FindDynamic Super Resolutioncategory and set resolution to 4k (3840x2160)

-
When you done recording the game, go to
NVIDIA Control Panel > Change resolution
FindPCcategory and choose your native resolution (1920x1080 in my case)

I don't have AMD, but i know it has similar feature, try searching something like How to enable AMD Super Resolution on youtube
- Open HLAE.exe
- Go to: Tools -> Developer -> Custom Loader
Multiply your current resolution by 2 (i had -w 1920 -h 1080, 1920x2=3840 1080x2=2160, so i set -w 3840 -h 2160)
>>> Perfect 3D tracking (cam_main.cam)
- Open _core.cfg and add
camerastream to your streams preset

Join the demo, typefeto activate editing config and do the recording
- Download HLAE CamIO To AE script: https://github.com/xNWP/HLAE-CamIO-To-AE/releases/latest
Install the script by movingHLAE-CamIO-To-AE-Cam_2_0.jsxtoC:\Program Files\Adobe\Adobe After Effects CC <version>\Support Files\Scripts\ScriptUI Panels - Create a new composition for your recording (composition fps must match recording fps)
- Go to
Windowand openHLAE-CamIO-To-AE-Cam_2_0.jsx

Press [Import HLAE CamIO], choose your recordedcam_main.camand click [OK]

After importing the camera, switch its properties keyframe interpolation from linear to hold (select all keyframes, right click, toggle hold keyframes) otherwise your tracking will be inaccurate
- Done! Now you can add 3d layers/objects and they will be perfectly tracked
camio.mp4
>>> Campath auto-save and load (campath.xml)
- Open _core.cfg and add
campathstream to your streams preset
- Create a campath and record a cinematic
- Go to the take folder
- Copy
campath.xmland paste it to the game folder..\Counter-Strike Global Offensive\game\bin\win64 - Load the campath by typing
mirv_campath load campath.xml
>>> [Outdated] How to record depth using (Reshade)
- Install reshade
- Download
junior.fx: https://drive.google.com/file/d/1Q1N6ctyhJJeUcbMZSNeeXieprOcjH8jj/view?usp=sharing
Placejunior.fxto<reshade_folder>\reshade-shaders\Shaders
Junior.fx creator: https://github.com/jooonior
- Enable this reshade effect and adjust its parameters:
Far Plane: 50
Present type: Grayscale
Dithered (checked)

- Open
_core.cfgand switch recording preset toutTrueSplit(don't forget to save changes) - Type
fein the console to apply changes - Do the recording
- Enjoy your depth
>>> [Outdated] High precision depth (Reshade)
- Install reshade
- Download
junior.fx: https://drive.google.com/file/d/1Q1N6ctyhJJeUcbMZSNeeXieprOcjH8jj/view?usp=sharing
Placejunior.fxto<reshade_folder>\reshade-shaders\Shaders
Junior.fx creator: https://github.com/jooonior
- Enable this reshade effect and adjust its parameters:
Far Plane: 50
Present type: Full RGB

- Open
_core.cfgand switch recording preset toutTrueSplit(don't forget to save changes) - Type
fein the console to apply changes you made in_core.cfg - Do the recording
- Install AE_tl_math (after effects plugin): https://github.com/crazylafo/AE_tl_math
- Set AE project to 32bit and import rgb depth
- Apply tl_maths effect and press SETUP
- Paste the following glsl code and hit APPLY:
vec3 outputRgb;
// Get depth from RGB data.
float val = inputRgb.x * 256 * 256 + inputRgb.y * 256 + inputRgb.z;
val /= 65535; // 2^16 - 1
return vec3(val);
- Add the video to render queue (ctrl + m)
- Export as EXR sequence
- Import back to AE and set the framerate of your original rgb depth