Skip to content
Xash3D FWGS engine. Rebooted fork since big Xash3D 0.99(1.0 is not yet) update.
C C++ Python Objective-C Shell Batchfile
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Documentation engine: implement platform-unique library naming Jul 1, 2019
common engine: don't include windows headers, as they globally included by p… Aug 8, 2019
contrib contrib: generate me an IDE project instead of updating it manually e… Jun 6, 2019
engine engine: android: fix EGL context create error condition Oct 11, 2019
game_launch game_launch: fix build on windows Aug 8, 2019
mainui @ 26fc03f wscript: proper default showing in help Oct 11, 2019
pm_shared Legacy protocol compatibility (cl_legacymode) Jan 25, 2019
public public: fix implicit fallthrough Oct 4, 2019
ref_gl wscript: fix ref_gl linking Oct 11, 2019
scripts waifulib: fix including system includes Oct 11, 2019
vgui-dev @ f556626 readme: add note for debian/ubuntu prerequisites, add vgui-dev as sub… Jun 17, 2019
vgui_support wscript: proper default showing in help Oct 11, 2019
.editorconfig editorconfig: initial add Jun 11, 2019
.gitignore scripts: enable deploying vc2008 project Apr 8, 2019
.gitmodules readme: add note for debian/ubuntu prerequisites, add vgui-dev as sub… Jun 17, 2019
.travis.yml travis: use r20 for softfp build Oct 11, 2019 readme: sligthly update contributing guidelines Oct 6, 2019 readme: wording Jul 6, 2019
waf engine: ref: remove redutant continue, return false in case of failed… Oct 11, 2019
waf.bat waf.bat: fix strange ERRORLEVEL bug May 23, 2019
wscript waf: upgrade to latest waifu Oct 11, 2019

Xash3D FWGS Engine

Build Status Discord Server

Xash3D FWGS is a fork of Xash3D Engine by Unkle Mike with extended features and crossplatform.

Xash3D is a game engine, aimed to provide compatibility with Half-Life Engine, 
as well as to give game developers well known workflow and extend it.
Read more about Xash3D on ModDB:

Latest release build:

Latest development build:

Fork features

  • HLSDK 2.4 support.
  • Crossplatform: officially supported x86 and ARM on Windows/Linux/BSD/Android. (see Documentation/ for more info)
  • Modern compilers support: say no more to MSVC6.
  • Better multiplayer support: multiple master servers, headless dedicated server.
  • Mobility API: allows better game integration on mobile devices(vibration, touch controls)
  • Different input methods: touch, gamepad and classic mouse & keyboard.
  • TrueType font rendering, as a part of mainui_cpp.
  • Multiple renderers support(OpenGL, GLES, Software)
  • A set of small improvements, without broken compatibility.

Planned fork features

  • Virtual Reality support and game API
  • Voice support
  • Vulkan renderer


  • Before sending an issue, check if someone already reported your issue. Make sure you're following "How To Ask Questions The Smart Way" guide by Eric Steven Raymond. Read more:
  • Before sending a PR, check if you followed our coding guide in file.

Build instructions

We are using Waf build system. If you have some Waf-related questions, I recommend you to read

If you're stuck somewhere and you need a clear example, read .travis.yml and scripts/build*.sh.


Windows(Visual Studio)

  • Install Visual Studio.
  • Install latest Python OR run cinst python.install if you have Chocolatey.
  • Install latest Git OR run cinst git.install if you have Chocolatey.
  • Download SDL2 development package for Visual Studio.
  • Clone this repository: git clone --recursive
  • Make sure you have at least 12GB of free space to store all build-time dependencies: ~10GB for Visual Studio, 300 MB for Git, 100 MB for Python and other.


NOTE FOR USERS WITH X86 COMPATIBLE CPUs: We have forced build system to throw an error, if you're trying to build 64-bit engine. This done for keeping 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!

  • Enable i386 on your system, if you're compiling 32-bit engine on amd64. If not, skip this

$ sudo dpkg --add-architecture i386

  • Install development tools
    • For 32-bit engine on amd64:

      $ sudo apt install build-essential gcc-multilib g++-multilib python libsdl2-dev:i386 libfontconfig-dev:i386 libfreetype6-dev:i386

    • For everything else:

      $ sudo apt install build-essential python libsdl2-dev libfontconfig-dev libfreetype6-dev

  • Clone this repostory: $ git clone --recursive


  • ArchLinux users are lucky enough and there is a xash3d-git AUR package for them.


Windows(Visual Studio)

  1. Open command line
  2. Navigate to xash3d-fwgs directory.
  3. Carefully examine which build options are available: waf --help
  4. Configure build: waf configure -T release --sdl2=c:/path/to/SDL2 --prefix=c:/path/to/any/output/directory
  5. Compile: waf build
  6. Install: waf install


  1. Examine which build options are available: ./waf --help
  2. Configure build: ./waf configure -T release --prefix=/path/to/any/output/directory (To compile 64-bit engine on 64-bit x86 processor, you need to pass -8 also)
  3. Compile: ./waf build
  4. Install(optional): ./waf install


  1. Copy libraries and main executable somewhere, if you're skipped installation stage.
  2. Copy game files to same directory
  3. Run xash3d.exe/ depending on which platform you're using.

For additional info, run Xash3D with -help command line key.

You can’t perform that action at this time.