Assets 7


This code base is now deprecated and will be referred as "Old Engine".
In contrast, "New Engine" is new code base based on latest upstream Xash3D release.
Old engine will be fully maintained and supported until new engine first stable releases.



  • Engine: new strobing implementation from @fuzun. For details, see PR #353.
  • Engine: secondary master server, yay! Thanks to @jeefo for hosting.
  • Engine: -safegl command line switch(see 515438c)
  • Engine: string pool statistics for 64-bit platforms.
  • MainUI C++: servers sorting by name, players, ping, etc.
  • MainUI C++: cancel button in player introduce dialog.
  • MainUI C++: add touch acceleration settings, now it is easy configurable
  • iOS: logs now printed to system log also.
  • iOS: 64-bit support
  • iOS: iOS 6.x support
  • SailfishOS: early initial support.


  • Engine: fix command escaping. Now rcon and commands with quotes work correctly
  • Engine: fix window maximizing on SDL
  • Engine: fix 16bpp on windows
  • Engine: r_vbo_dlightmode is introduced. Set this cvar to 1, if you're experiencing visual glitches with VBO world renderer and dynamic lights.
  • Engine: Possible RoDir glitches with mods and case-insensitivity.
  • Engine: Disabled PIC by default for x86 to reduce overhead.
  • Engine: fix crash in touch code after changing game.
  • Engine: fix possible UB with wrong touch_linear_look values
  • Engine: game.cfg now renamed to gamesettings.cfg to not confuse old half-life libraries
  • MainUI C++: fixed ConnectionWarning dialog, was broken in 0.19.1 release
  • MainUI C++: fixed incorrectly showed 9999 ms ping when server responds in next frame after quering.
  • MainUI C++: maps.lst is regenerated when new map is downloaded.
  • MainUI C++: fix final credits rendering
  • MainUI C++: fix font fallback, now will not crash with missing font and load bitmap font
  • Android: gamepad code fixes.
  • Android: tutorial code rewritten, APK is slightly lighter again.
  • Android: resolution changing improvements.
  • Android: fix possible hangs and crashes in retrieving external files path.
  • Android: fix vibration

@a1batross a1batross released this Mar 31, 2018 · 158 commits to master since this release

Assets 5
  • Android: Due to possible copyright issues, game is now inverted by Y axis
  • Added world VBO renderer: faster BSP rendering
  • Added engine-side bump mapping. Requires VBO renderer enabled.
  • Added RoDir feature: possibility to use game data from read-only storage
  • Added FileSystem API: internal filesystem is now exposed to custom DLLs. Used in filesystem_stdio_xash experimental project.
  • Added simple software screen strobing for monitors with high update frequency(thanks to @fuzun)
  • Added software gamepad deadzones control
  • Engine now use mainui_cpp for game menus by default
  • Added ui_renderworld cvar to render world in game menus
  • Added game connecting and HTTP downloading progress window
  • Added mouse autodetect code for evdev
  • Added TGA icon loading for SDL2 version
  • Added PulseAudio property, so engine now properly named in volume control software
  • Added touch emulation for client-only touch menus
  • Added macro XASH_INTERNAL_GAMELIBS for platforms that does not store game libraries in game resources
  • Added resource list caching
  • Added ban by IP and XashID(introduced in 0.19)
  • Added multiple master server lists
  • Added Auto-downloading dependencies, enabled by default only for Visual Studio
  • Added Menu API extension: pfnGetModeString to get list of available video modes
  • Added -daemonize command line argument to POSIX style daemonize, useful for servers
  • Added systemd unit(thanks to @the-swank)
  • Added possibility to set password on server
  • Added command and cvar restriction flag to don't allow server break user's configuration
  • Added nonlinear look feature for touch screens
  • Added r_underwater_distortion cvar to control underwater distortion level.
  • Added userinfo penalty time to ignore userinfo spamming(too fast model or name changing).
  • Added SDL GameController API support. Old Joystick API can be accessed with "-sdl_joy_old_api" command line argument.
  • Added command line arguments for setting dimensions/fullscreen mode(thanks to @x6herbius)
  • Added update notify
  • Added XashDS builds for Fedora/CentOS/openSUSE and ArchLinux in our OBS.
  • Update mpg123 library from latest original Xash3D
  • Fixed "disconnect" message being accepted from third-party server
  • Fixed BloodSprite code, now it matches GoldSrc
  • Fixed CL_IsThirdPerson crash.
  • Fixed changing world model through pfnSetModel
  • Fixed crash on pfnWriteString(NULL)
  • Fixed crash if client dll uses prediction data in rendering on first frame
  • Fixed possible userinfo key and value overflow and losing important userinfo keys
  • Fixed recursive basedirs
  • Fixed compability with GoldSrc monitoring protocol(thanks to @elektrovolk)
  • Fixed possible game freezes during domain name resolution, it's now done in separate thread
  • Fixed build with NanoGL and gl-wes-v2 for CMake
  • Fixed rare cut of few bits in CL_WritePacket
  • Fixed: "speak" & "spk" commands use VOX for text
  • Fixed: VGUI now respects hud_scale value
  • Fixed crash when GL_EXT_compiled_vertex_array is not available(thanks to @CecilHarvey)
  • Fixed CenterPrint if hud_scale is enabled
  • Fixed lag compensation, now it completely works
  • Fixes for interpolation, to match GoldSrc behaviour in some cases
  • Fixes for AMXModX compability(thanks to @the-swank)
  • VGUI support DLL is now potentially cross-platform
  • MIPS BigEndian: added partial support
  • amd64: improvements in string_t handling
  • Android: added links opening support
  • Android: added game installation guide
  • Android: added experimental feature to change game resolution(use with caution!)
  • Android: suggest switch to RoDir, if storage is read-only
  • Android: fixed shellcode in evdev code
  • Android: custom cs16client builds don't allowed anymore
  • Changed EntTools behaviour. Game DLL can use enttools command names, if enttools is disabled
  • Debian/Ubuntu: proprietary VGUI and support DLL moved to separate package libvgui
  • Removed experimental On-Screen keyboard support
  • Removed hardware gamma support
  • gl_allow_mirrors is disabled for GLES targets
  • s_combine_channels renamed to s_combine_sounds
  • s_combine_sounds is now disabled by default, due to breaking stereo sound.
  • Other minor fixes

@a1batross a1batross released this Apr 1, 2017 · 813 commits to master since this release

Assets 8


New big release of Xash3D FWGS.


  • Synchronized with Xash3D build 3366.


  • Emscripten & iOS support.
  • Network protocol extensions:
    • NET_EXT_HUFF(cl_enable_compress): Packet compression. Useless.
    • NET_EXT_SPLIT(cl_enable_split): Splitting packets larger than cl_maxpacket value. Enabled by default.
    • NET_EXT_HUFFSPLIT (cl_enable_splitcompress): Packet compression for splitted packets. Enabled by default.
  • Simple NAT bypass(enabled with sv_nat/cl_nat). A chance to make a public server.
  • Multiplayer client identification, input devices and version reporting
    • To toggle mouse navigate to Configuration->Touch->Touch options and click to Ignore mouse.
    • To toggle touch navigate to Configuration->Touch->Touch options and click to Enable.
    • To toggle gamepad navigate to Configuration->Gamepad and click to Enable gamepad.
    • To allow or disallow some type of input device, you can toggle sv_allow_mouse, sv_allow_touch, sv_allow_joystick, sv_allow_vr and sv_allow_noinputdevices to disallow clients with undefined input devices(old engine, for example).
  • Compile-time backend system, which lets porting to different platforms easier.
  • Mobility API extensions:
    • pfnGetNativeObject gives you a "native" object of current platform. For example, "JNIEnv" on Android.
    • pfnSetCustomClientID for setting custom client ID in user-agent.
  • Two overbright modes are implemented. Toggle with gl_overbright <0/1/2> cvar.
  • Scripted Sequences implementation(used only by Counter-Strike: Condition Zero Deleted Scenes).
  • mp3 command implementation
  • Optimized command/cvar/command alias searching.
  • net_graph implementation
  • s_lerping cvar toggles sound interpolation formulas. 1 for standart linear interpolation, 2 for cubic interpolation.
  • sv_forcesimulating cvar to force world "live" even if server have no players(thanks, @the-swank).
  • con_fontscale for console font scailing.
  • Transparent items in menu, like scroll lists.
  • Server error messages in messageboxes.
  • CP1251 support. (Place CP1251 fonts.wad to your game directory)
  • Blood Stream is re-implemented again to match GoldSrc.
  • localinfo support(for AMXModX, thanks @the-swank).
  • RCon Redirect support. ("redirect N" command, where N is number of next sended lines)
  • Enabled sound resample support in SDL backend.
  • Added help by -help command line argument.
  • Added "maps" command implementation. (thanks, @fuzun)
  • Android: proper mouse support through NVidia SHIELD mouse extension. .
  • Android: Write test on engine start. If write test has failed, app asks user about different game data location.
  • Android: Google Play Games support. Not used yet ;)
  • Android: Xash3D FWGS is now runs as a Service. To run background server, you need to enable android_sleep (Multiplayer/Customize/Adv. Controls/Pause in background(android)).
  • Windows: Properly working m_ignore.


  • Client-side player interpolation.
  • Server PMove respects client's prediction settings and does not sends extra sound.
  • Workaround for Stupid GLES Bug.
  • Safe config writing.
  • Transparency and color in studio model renderer.
  • FFADE_LONGFADE flag support in ScreenFade engine message.
  • Unicode's way to work changes. HUD text are interpreted as UTF-8 only if hud_utf8 is set to 1. This fixes some russificators.
  • Fixed server crash on player disconnect(pvPrivateData == NULL).
  • Fix connect to servers with different delta.lst.
  • Fix connecting to servers with different messages lists.
  • Fixed starting server with +map arg.
  • Fix wav loading.
  • Fix crash when cannot open log file.
  • Do not unload server library (fix metamod and some bots crash).
  • "status" command formatting (thanks, @FreeSlave)
  • Linux: workaround for proper fullscreen(with video mode changing).
  • Linux: touch support.
  • FreeBSD & OSX: fixed http downloader
  • Linux & OSX: Autodetect gamedll_linux and gamedll_osx name
  • Windows: touch controls with unsupported client dlls(without unified input extensions).
  • Android: evdev(root only) mouse support improvements.

This is a probably last major release with current protocol. Newer versions will be using another, non-compatible protocol.

Arch Linux, Debian and Ubuntu packages avialable at OBS: Xash3D FWGS and Xash Dedicated Server

@mittorn mittorn released this Sep 13, 2016 · 1239 commits to master since this release

Assets 8


  • Improve multiplayer performance
  • Do not send unregistered messages to not spawned clients (fix svc_bad's on connect)
  • Include cp1251 and cp1252 fonts (switch by con_charset)
  • Fix work on case-sensitive filesystems
  • Fix solid corpses on client (imporve predict)
  • Add .scr files parser
  • Ignore listenserver.cfg left by old xash3d
  • Gamepad triggers now act as buttons, so can be set through default binding process
  • Improve menu

All release links are broken now, please download it here:

@mittorn mittorn released this Aug 13, 2016 · 1298 commits to master since this release

Assets 7


  • Re-Added: rewritten gamepad support.
  • Re-Added: rewritten sound effects, DSP.
  • Added: server ping in Internet Games/LAN Games section of menu.
  • Added: build identification, such as: fork build number, build os, build architecture and commit.
  • Added: gamepad GUI configuration. NOTE: this will not work in cs16-client, until it's not be updated.
  • Added: multiplayer model preview now rotating by mouse and keyboard.
  • Added: Sys_Warn: show messagebox non-critical, but important errors
  • Fixed: transition animation. Backported from cs16-client menu branch.
  • Fixed: broken keyboard if Xash3D built with SDL2.0.4.
  • Fixed: FindEntityInSphere behaviour
  • Fixed: common bugfixes.
  • Fixed: improved studiomodel renderer.



  • Added: MinGW support, partial 64bit support
  • Added: Advanced crashhandler


  • Finally ported.


  • Added: native EGL backend.
  • Added: native OpenSLES sound backend.
  • Added: gamepad backend.
  • Added: certificate check in release builds.
  • Added: new icons!
  • Added: new launcher design!
  • Added: game directory picker
  • Added: autoupdater.
  • Now available at Google Play

NOTE: All 64-bit builds are experimental, only half-life supported, may have bugs with save/restore


@mittorn mittorn released this Apr 28, 2016

Assets 3

MinGW32 and MSVC6 binaries
Crash Handler and pdb debug information (WinXP+)

Assets 3

Use cl_charset and con_charset cvars
con_charset switches charset of displayed font (only cp1251 is valid now)
cl_charset switches charset of all strings in engine. Use utf-8 for new servers and cp1251 for compatibility mode