# advancedfx: A Hook for Directing and Recording Counter-Strike Footage

> Half-Life Advanced Effects is a MIT licensed C++ project that hooks the Source, Source 2 and GoldSrc engines to add cameras, shaders and recording controls for making Counter-Strike videos, with releases tracked against Steam updates. It suits content creators who need shots the in-game recorder cannot produce.

**advancedfx/advancedfx** — Half-Life Advanced Effects (HLAE) is a tool to enrich content creation mainly for the Counter-Strike series.

- Repository: https://github.com/advancedfx/advancedfx
- Stars: 814 · Forks: 117
- Language: C++
- License: MIT
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/advancedfx-advancedfx

## A hook that adds cameras and shaders to the game engine

Half-Life Advanced Effects is described as a tool to enrich content creation mainly for the Counter-Strike series, and it is written in C++. The mechanism is a hook: the project injects into the running game and extends what the engine can do, which is why the repository is organised around separate hook targets. The directory names make the coverage clear. AfxHookSource is for the older Source engine, AfxHookSource2 is for Source 2, which is the engine behind Counter-Strike 2, and AfxHookGoldSrc covers the GoldSrc-era builds. Alongside the hooks sit two tools with their own directories, ShaderBuilder and ShaderDisassembler, which is a strong hint at the creative use case: injecting your own shaders into the game's rendering, and taking existing ones apart to see how they were written. The repository also has a top-level `hlae/` directory, an `installer/`, a `resources/` tree and a `shaders/` directory.

## The VAC warning is the first thing the documentation says

The most important line for any prospective user is a warning placed above the download links. The tool is technically a hack, so the guidance is to use it only for making gaming videos or watching demos, and joining VAC protected servers with it will probably get you VAC banned. That is a blunt statement and it defines the legitimate boundary of use: this is a production tool for offline and demo work, not something to install and then queue. It also explains why the project can exist as open source at all, since the capability it provides is a rendering and camera control surface rather than a competitive advantage. Any evaluation of this project should treat that line as a constraint rather than as boilerplate, because the cost of getting it wrong is an account ban.

## Releases tracked week by week against Steam updates

The release record shows a tight cadence tied to the game's own update cycle. Version 2.192.8 shipped on 2026-10-14, 2.192.7 on 2026-10-08 and 2.192.6 on 2026-09-26, and the latest release page is described as compatible with the latest Steam version. The version numbers are effectively build identifiers that track the engine they attach to, and the project maintains a wiki page listing old HLAE versions for specific CS2 versions for people whose Steam client has not moved. There is also a documented history of pinned older builds: HLAE 2.153.1 from 2024-01-05 is the release with the GoldSrc hook and related tools compatible with the pre-25th Anniversary legacy Steam build, HLAE 2.34.5 from 2017-07-08 was the last release with those tools compatible with Steam before 10 July 2017, and 2.2.21.14 from 2013 goes back to a Steam version from July 2009.

## CMake for the hooks, Cargo for the libraries

The build uses two toolchains in one tree, which is visible in the repository root. There is a `CMakeLists.txt` with a `CMakePresets.json` and a `cmake/` directory, alongside a `Cargo.toml` and a `Cargo.lock`. The Cargo file is a workspace whose members are the directories under `lib/`, using the version 3 resolver, so the shared libraries are Rust crates while the engine-facing parts are built with CMake. Two release profiles are defined and both are tuned for shipping small binaries: `release-tool` and `release-hook`, each inheriting the release profile with stripping enabled, optimisation level z, link time optimisation on, a single codegen unit and panics set to abort. The separate hook profile exists because injected code has different constraints from a standalone program, and the documentation points to a `BUILDING.md` for the actual procedure.

## System requirements and the offline mode trick

The stated requirements are short: Microsoft Windows 10 or newer, the Microsoft .NET Framework 4.6.2 or newer, a genuine Steam version, and, in the project's own words, a lot of patience. The Windows-only constraint follows from the approach, since the tool attaches to a Windows game process. There is also an epilepsy warning, because the software causes fast-changing images and colors on your screen, which is a real consideration for anyone recording long sessions. The most useful operational tip in the documentation is to use Steam's offline mode to avoid retrieving updates that break HLAE during video production. That single line captures the fragility of the whole approach: your tool is compatible with a particular engine build, and the game updates itself underneath you.

## Support is a hobby, a wiki and a Discord

The project is candid about the level of support it can offer. Even though donations are accepted, HLAE is free software and a hobby for most of the HLAE team, so the support available is limited. The documentation suggests reading the Manual or helping each other in the Discord instead. The manual is a wiki carrying FAQ entries, tutorials and command lists, and the Discord is described as live text chat support from team members and community members. GitHub issues are for bug reports and feature requests. There is also a Chinese-language site at hlae.site, run by a third party with one team member involved, and a link to `related-tools.md` for the wider tool list, plus `CREDITS.md` for attribution. A list of related tools in one file is unusual, and it suggests the team sees itself as one part of a production chain rather than a standalone tool.

## The MIT licence does not cover the submodules

The licensing statement has an explicit carve-out. This repository contains the parts of the advancedfx project that are under the MIT licence, and the licence does not apply to submodules. Since the tree carries a `.gitmodules` file and a `deps/` directory, that means the licence you get covers the code in this repository and not the third-party code pulled in alongside it, which typically carries its own terms. Anyone redistributing a build should read the submodule licences rather than assume the top-level MIT terms propagate. The repository also contains a `NOTICE` file and a third-party notices file, which is the sign that the distinction is deliberate and maintained rather than an accident of packaging. Changelog entries live both on the releases page and as XML files inside the download.

## Where the in-game recorder is the sensible alternative

The realistic alternative is to use the recorder Counter-Strike already ships with and film through that, accepting the fixed viewpoint and the visual result the engine produces on its own. The difference in approach is direct: the in-game recorder captures what the game offers by default, while a hook changes what the engine can do, which is what makes free cameras, injected shaders and frame-accurate control possible at all. If your video only needs the normal view, the built-in path costs nothing, installs nothing and carries no ban risk. The hook earns its cost when a shot cannot be produced otherwise, for example a camera move through a scene that the player cannot reach, or a look that requires a custom shader. The rest of the project is the machinery for that: a CLI in AfxCppCli, a shader toolchain, a disassembler, resource and shader directories, and installer scripts that assemble a release.

## Conclusion

advancedfx fits a Counter-Strike video creator who needs free cameras, custom shaders and frame-accurate control that the in-game recorder does not offer, and who works from demo files rather than on live servers. It is the wrong choice if you intend to run it on VAC protected servers, since the project states plainly that doing so will probably get you banned, and it is the wrong choice on any platform other than Windows. Before you start, download the release matching your Steam version and put Steam in offline mode so an update cannot break your session mid-recording.

## FAQ

### Is it safe to use HLAE on VAC protected servers?

No. The project states that the tool is technically a hack and that joining VAC protected servers with it will probably get you VAC banned. The intended use is making gaming videos or watching demos.

### What do I need to run Half-Life Advanced Effects?

Microsoft Windows 10 or newer, the .NET Framework 4.6.2 or newer, a genuine Steam version, and patience. The software also causes fast-changing images and colors on screen.

### How do I find a build of HLAE that matches my CS2 version?

The latest release is compatible with the latest Steam version, and a wiki page lists old HLAE versions for specific CS2 versions. Older pinned builds exist too, including 2.153.1 from 2024-01-05 and 2.34.5 from 2017-07-08.

### Does the MIT licence cover everything in the repository?

No. The licence covers the parts of the project hosted in the repository, and the documentation states explicitly that the licence does not apply to submodules, so the third-party code pulled in through .gitmodules and deps/ carries its own terms.

### What toolchains are needed to build advancedfx?

Both. CMake drives the build of the engine hooks through CMakeLists.txt and CMakePresets.json, while a Cargo workspace over the directories under lib/ builds the shared libraries, with separate release-tool and release-hook profiles optimised for small binaries.

## Sources

- [advancedfx/advancedfx on GitHub](https://github.com/advancedfx/advancedfx)
- [Issues](https://github.com/advancedfx/advancedfx/issues)
- [License: MIT](https://github.com/advancedfx/advancedfx/blob/main/LICENSE)
- [README](https://github.com/advancedfx/advancedfx/blob/main/README.md)
- [Releases](https://github.com/advancedfx/advancedfx/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/advancedfx-advancedfx
