Xash3D FWGS engine
2,771
stars
6,687
commits
C
primary language
Sep 9, 2026
updated
[!CAUTION] Only download Xash3D FWGS from official sources. Third-party builds, "modded launchers", "optimized" repacks and random mirrors are frequently bundled with malware, miners, spyware and credential stealers. We cannot vouch for anything we did not build. Get official binaries only from the releases page.
Xash3D (pronounced [ksɑʂ]) FWGS is a game engine, aimed to provide compatibility with Half-Life Engine and extend it, as well as to give game developers well known workflow.
Xash3D FWGS is a heavily modified fork of an original Xash3D Engine by Unkle Mike.
If you like Xash3D FWGS, consider supporting individual engine maintainers. By supporting us, you help to continue developing this game engine further. The sponsorship links are available in documentation.
.pk3 and .pk3dir support, compatibility with GoldSrc FS module, fast case-insensitivity emulation for crossplatform..ogg) & Ogg Opus (.opus) audio formats support.valve directory from Half-Life to directory with engine binaries.
If your CPU is NOT x86 compatible or you're running 64-bit version of the engine, you may want to compile Half-Life SDK.
This repository contains our fork of HLSDK and restored source code for Half-Life expansions and some mods.
You still needed to copy valve directory as all game resources located there.xash3d.exe or AppImage).For additional info, run Xash3D with -help command line key.
valve directory to a folder named xash in the Internal storage.We are using Waf build system. If you have some Waf-related questions, I recommend you to read Waf Book.
NOTE: NEVER USE GitHub's ZIP ARCHIVES. GitHub doesn't include external dependencies we're using!
If your CPU is x86 compatible and you're on Windows or Linux, we are building 32-bit code by default. This was done to maintain compatibility with Steam releases of Half-Life and based on it's engine games. Even if Xash3D FWGS does support targetting 64-bit, you can't load games without recompiling them from source code!
If your CPU is NOT x86 compatible or you decided build 64-bit version of engine, you may want to compile Half-Life SDK. This repository contains our fork of HLSDK and restored source code for Half-Life expansions and some mods.
cinst python.install if you have Chocolatey.cinst git.install if you have Chocolatey.git clone --recursive https://github.com/FWGS/xash3d-fwgs.Only for 32-bit engine on 64-bit x86 operating system:
$ sudo dpkg --add-architecture i386.aptitude (why?): $ sudo apt update && sudo apt upgrade && sudo apt install aptitude$ sudo aptitude --without-recommends install git build-essential gcc-multilib g++-multilib libsdl2-dev:i386 libfreetype-dev:i386 libopus-dev:i386 libbz2-dev:i386 libvorbis-dev:i386 libopusfile-dev:i386 libogg-dev:i386.$ export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig.For 64-bit engine on 64-bit x86 and other non-x86 systems:
$ sudo apt install git build-essential python libsdl2-dev libfreetype6-dev libopus-dev libbz2-dev libvorbis-dev libopusfile-dev libogg-dev.Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Only for 32-bit engine on 64-bit x86 operating system:
$ sudo dnf install git gcc gcc-c++ glibc-devel.i686 SDL3-devel.i686 sdl2-compat-devel.i686 opus-devel.i686 freetype-devel.i686 bzip2-devel.i686 libvorbis-devel.i686 opusfile-devel.i686 libogg-devel.i686.$ export PKG_CONFIG_PATH=/usr/lib/pkgconfig.For 64-bit engine on 64-bit x86 and other non-x86 systems:
$ sudo dnf install git gcc gcc-c++ SDL3-devel sdl2-compat-devel opus-devel freetype-devel bzip2-devel libvorbis-devel opusfile-devel libogg-devel.Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Install Android Studio (or the command line tools).
Install Python (at least 2.7, latest is better).
Install Git.
Install Ninja.
Install CMake (for some dependencies).
Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Install Xcode from the appstore.
Install Homebrew package manager.
Install build dependencies by running: brew install python.
Clone the SDL2 repo $ git clone --recursive https://github.com/libsdl-org/SDL.git -b SDL2 and compile the iOS framework by navigating to SDL/Xcode/SDL and opening the Xcode project.
Clone this repository: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
xash3d-fwgs directory.waf --help.waf configure --sdl2=c:/path/to/SDL2.waf build.waf install --destdir=c:/path/to/any/output/directory.If compiling 32-bit on amd64, make sure PKG_CONFIG_PATH from the previous step is set correctly, prior to running configure.
./waf --help../waf configure (you need to pass -8 to compile 64-bit engine on 64-bit x86 processor)../waf build../waf install --destdir=/path/to/any/output/directory.To build you should clone SDL from SDL2 branch and HLSDK-portable mobile-hacks branch repositories to 3rdparty folder, after that you should be able to open the project in Android Studio from android directory or manually call Gradle to build the APK.
./waf --help../waf configure --ios --enable-bundled-deps --sdl2 (path/to/SDL2.framework), set --ios-simulator instead of --ios if you want to build for simulator../waf build.build and copy your compiled SDL2.framework there, then add your game dylibs to build/ios/libs/(gamedir)/(dlls/cl_dlls)(You can also run scripts/ios/buildhlsdk.sh instead to automatically create an ipa with hlsdk dylibs)scripts/ios/createipa.sh to create an installable ipaTests are enabled with --enable-tests passed to ./waf configure and can be run with ./waf --alltests.
This builds both standalone unit tests and a separate engine test binary (xash3d_tests) that embeds engine-level tests. The engine test binary requires no game assets.
(top 30 of 87)
C
94.9%
Python
2.3%
Kotlin
1.0%
Xash3D FWGS engine
2,771
stars
6,687
commits
C
primary language
Sep 9, 2026
updated
[!CAUTION] Only download Xash3D FWGS from official sources. Third-party builds, "modded launchers", "optimized" repacks and random mirrors are frequently bundled with malware, miners, spyware and credential stealers. We cannot vouch for anything we did not build. Get official binaries only from the releases page.
Xash3D (pronounced [ksɑʂ]) FWGS is a game engine, aimed to provide compatibility with Half-Life Engine and extend it, as well as to give game developers well known workflow.
Xash3D FWGS is a heavily modified fork of an original Xash3D Engine by Unkle Mike.
If you like Xash3D FWGS, consider supporting individual engine maintainers. By supporting us, you help to continue developing this game engine further. The sponsorship links are available in documentation.
.pk3 and .pk3dir support, compatibility with GoldSrc FS module, fast case-insensitivity emulation for crossplatform..ogg) & Ogg Opus (.opus) audio formats support.valve directory from Half-Life to directory with engine binaries.
If your CPU is NOT x86 compatible or you're running 64-bit version of the engine, you may want to compile Half-Life SDK.
This repository contains our fork of HLSDK and restored source code for Half-Life expansions and some mods.
You still needed to copy valve directory as all game resources located there.xash3d.exe or AppImage).For additional info, run Xash3D with -help command line key.
valve directory to a folder named xash in the Internal storage.We are using Waf build system. If you have some Waf-related questions, I recommend you to read Waf Book.
NOTE: NEVER USE GitHub's ZIP ARCHIVES. GitHub doesn't include external dependencies we're using!
If your CPU is x86 compatible and you're on Windows or Linux, we are building 32-bit code by default. This was done to maintain compatibility with Steam releases of Half-Life and based on it's engine games. Even if Xash3D FWGS does support targetting 64-bit, you can't load games without recompiling them from source code!
If your CPU is NOT x86 compatible or you decided build 64-bit version of engine, you may want to compile Half-Life SDK. This repository contains our fork of HLSDK and restored source code for Half-Life expansions and some mods.
cinst python.install if you have Chocolatey.cinst git.install if you have Chocolatey.git clone --recursive https://github.com/FWGS/xash3d-fwgs.Only for 32-bit engine on 64-bit x86 operating system:
$ sudo dpkg --add-architecture i386.aptitude (why?): $ sudo apt update && sudo apt upgrade && sudo apt install aptitude$ sudo aptitude --without-recommends install git build-essential gcc-multilib g++-multilib libsdl2-dev:i386 libfreetype-dev:i386 libopus-dev:i386 libbz2-dev:i386 libvorbis-dev:i386 libopusfile-dev:i386 libogg-dev:i386.$ export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig.For 64-bit engine on 64-bit x86 and other non-x86 systems:
$ sudo apt install git build-essential python libsdl2-dev libfreetype6-dev libopus-dev libbz2-dev libvorbis-dev libopusfile-dev libogg-dev.Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Only for 32-bit engine on 64-bit x86 operating system:
$ sudo dnf install git gcc gcc-c++ glibc-devel.i686 SDL3-devel.i686 sdl2-compat-devel.i686 opus-devel.i686 freetype-devel.i686 bzip2-devel.i686 libvorbis-devel.i686 opusfile-devel.i686 libogg-devel.i686.$ export PKG_CONFIG_PATH=/usr/lib/pkgconfig.For 64-bit engine on 64-bit x86 and other non-x86 systems:
$ sudo dnf install git gcc gcc-c++ SDL3-devel sdl2-compat-devel opus-devel freetype-devel bzip2-devel libvorbis-devel opusfile-devel libogg-devel.Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Install Android Studio (or the command line tools).
Install Python (at least 2.7, latest is better).
Install Git.
Install Ninja.
Install CMake (for some dependencies).
Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Install Xcode from the appstore.
Install Homebrew package manager.
Install build dependencies by running: brew install python.
Clone the SDL2 repo $ git clone --recursive https://github.com/libsdl-org/SDL.git -b SDL2 and compile the iOS framework by navigating to SDL/Xcode/SDL and opening the Xcode project.
Clone this repository: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
xash3d-fwgs directory.waf --help.waf configure --sdl2=c:/path/to/SDL2.waf build.waf install --destdir=c:/path/to/any/output/directory.If compiling 32-bit on amd64, make sure PKG_CONFIG_PATH from the previous step is set correctly, prior to running configure.
./waf --help../waf configure (you need to pass -8 to compile 64-bit engine on 64-bit x86 processor)../waf build../waf install --destdir=/path/to/any/output/directory.To build you should clone SDL from SDL2 branch and HLSDK-portable mobile-hacks branch repositories to 3rdparty folder, after that you should be able to open the project in Android Studio from android directory or manually call Gradle to build the APK.
./waf --help../waf configure --ios --enable-bundled-deps --sdl2 (path/to/SDL2.framework), set --ios-simulator instead of --ios if you want to build for simulator../waf build.build and copy your compiled SDL2.framework there, then add your game dylibs to build/ios/libs/(gamedir)/(dlls/cl_dlls)(You can also run scripts/ios/buildhlsdk.sh instead to automatically create an ipa with hlsdk dylibs)scripts/ios/createipa.sh to create an installable ipaTests are enabled with --enable-tests passed to ./waf configure and can be run with ./waf --alltests.
This builds both standalone unit tests and a separate engine test binary (xash3d_tests) that embeds engine-level tests. The engine test binary requires no game assets.
(top 30 of 87)
C
94.9%
Python
2.3%
Kotlin
1.0%