.:Xash3D Engine:.

Custom Gold Source Engine build from a scratch

Unkle Mike (aka G-Cont, aka Дядя Миша) - main developer
HLFX.ru & CS-Mapping.com.ua forum members - help, support, testing

CortexReaver, nemyax - English translation

Xash3D Engine has been tested for compatibility with many of Gold Source games and MODs. At this moment it should provide you an ability to successfully complete almost any existing singleplayer Half-Life mod without compatibility problems. Some mods can be not totally compatible, if they are too hardly modified or using some very specific or unstable features of Gold Source engine. Also multiplayer part of Xash3D engine is not fully completed yet because of lack of some important information and hidden source codes of Gold Source engine. So in most cases multiplayer mods should work good in a local or a LAN game, but some features can not work or work not exactly as under Gold Source engine. Check a detailed list of tested mods and a list of tested maps in "Features" section. A full list of Xash3D Engine features is also there, plus a guide on how to get work Half-Life and its' mods under Xash3D (in English and in Russian).


Since Xash3D is a Half-Life compatible engine, then all the innovations below will be given in comparsion with GoldSrc engine.

Basic limits.

Xash3D limits are not just higher than Half-Life ones, they also can be tuned in gameinfo.txt file.
- MAX_EDICTS is 600 - 4096 (versus 900 in Half-Life).
- MAX_TEMPENTS is 300 - 2048 (vs. 500).
- MAX_PARTICLES is 1024 - 8192 (vs. 4096).
- MAX_BEAMS is 64 - 512 (vs. 64)
Careful limits reduction can save RAM in mods which don't need many edicts. Also MAX_EDICTS parameter is broadcasted from server during a multiplayer session, it adjusts clients to new conditions automatically.

Other limits.

These limits are engine-hardcoded and can not be tuned by user.
- MAX_VISIBLE_PACKET is 512 entities (256 in Half-Life).
- MAX_MODELS is 2048 unique models (including sprites and bmodels)
- MAX_SOUNDS is 2048
- MAX_SENTENCES is 2048 (1534 in Half-Life)
- MAX_USER_MESSAGES is 191 (128 in WON Half-Life)
- MAX_TEXTURES is 4096 (2048 of them can be used for VGUI)
- MAX_MESSAGES is 2048 (1024 in Half-Life) (quantity of messages in titles.txt)
- Maximum size for indexed textures is 4096х4096 (vs. 512х512 in Half-Life)
- Maximum size for true-color textures is 4096x4096.

Limits for bsp-models.

- MAX_MAP_MODELS 1024 (256 in half-life)
- MAX_MAP_LEAFS 32767 (8192 in half-life)
Note: other BSP-model limits are specified by compiler tools and don't depend on the engine.

Realisitic lighting values on server.

Xash3D allows to get more accurate value of current lighting level, because it considers lightstyles and their current values. The player's lighting is taken directly from renderer and considers all lighting types, including entity light and dynamic light.

Improved decal save.

Half-Life supports decal save only on world surfaces and very rare on doors, elevators and other moving models. Xash3D saves decals on every brush model. Decal transition between levels is also maintained (implemented in Half-Life, but doesn't really work).

Entity patch technology support.

This technology allows to load entities from external .ent script file. This script can be produced by the external ripent.exe application or by engine's facilities by typing the entpatch command. If the command is entered when a map is loaded, a new entity patch will be created.

Various map formats support.

Xash3D supports following BSP-map formats: Quake 1, Half-Life, Half-Life Blue Shift. Besides, Quake 1 external bmodels are supported (medikit and ammo models). Note: it is recommended to play Quake 1 maps in Deathmatch Classic mod to prevent stuckness of player because of the difference between hull's sizes of Half-Life and Quake.

Hot resource precaching support.

Xash3D allows to precache models "on the fly" that helps to avoid nasty PF_PRECACHE_ERROR. Also Xash3D doesn't crash if a model or sound wasn't found.

Reliable changelevel.

Before switching to a next map Xash3D will analyze its state (without unloading the current map) and decides whether correct changelevel procedure is possible. In case of any error in a next map the engine will signal about it in the developer's console, and the changelevel will be aborted. The error message also contains troubleshoot tips that can make level designer's life easier, because such errors are most difficult to diagnose and fix.

Built-in credits.

To display credits and exit the game after, run the pfnEndSection command with oem_end_credits argument. The credits code is placed in menu.dll and can be changed by user at his discretion.

MOVETYPE_PUSH physics is more stable.

Xash3D entities behave more stable on moving platforms and don't shift away on sharp turns.

New MOVETYPE_COMPOUND physics type.

It allows to tie one entity to another, taking into account movement and rotation of the former entity. You can see an example in SDK - a crossbow bolt that correctly attaches itself to func_pushable, func_rotating, func_tracktrain and other brush models.

Console autocomplete support.

Xash3D has a powerful console autocomplete system that allows not just print command lists, but also describe all of them during the search. For more comfort you can type "makehelp" in the console, and the engine will generate help.txt that contains the list of all commands and variables with short descriptions. Map, movie, background track, cfg script, save, weapon (give command), sound (play command), game directory names input is also assisted by the autocomplete feature.

No parent directory restriction.

Most Quake engines are restricted to the parent directory with specific name, which doesn't matter when you make mod, but very uncomfortable when you make total game conversion and therefore replace the parent directory. Xash3D doesn't restricted to specific folder, and the parent directory is defined by the launcher. This way you can make your own game that doesn't depend on Half-Life.

Dedicated server has the autocomplete feature now, your command history can be saved.

Dedicated server has the autocomplete feature now, your command history can be saved.

Background maps support.

Background map is a map to be displayed as a menu background. You could see them in Half-Life 2. Xash has a simplier background map system - it doesn't depend on unlocked chapters (because original Half-Life has no chapters system) and it chooses the background map from the list. This list file must be named as chapterbackgrounds.txt and placed in scripts directory (if you don't have such directory, then just make it). Every list's entry is separated by new line. You can use any playable map as the background, but better don't use maps where player starts in a moving train, because it won't look good.

Lightstyle interpolation.

Turned off by default. Doesn't work with short sequences like switching on and off the light. It smooths light animation very well on long slow sequences like SlowStrobe or SlowPulse. Note: FPS rate may suffer from this option.

luma glowing textures support (Quake-style).

You can see such textures in original quake maps as glowing fields on a texture. Because this feature is caused by the Quake pallet's special features, the engine enables it for textures that have Quake or Quake2 pallet. This pallet is saved well after the simple conversion of wad2 files to wad3.

Improved model and sprite lighting.

Improved model lighting includes per-bone lighting from static and dynamic light sources, and it also includes correct model lighting on every stage of long sequence execution, when model goes far enough from its real location. The best example is forklift.mdl Sprite lighting is a correct lighting of all sprites that is rendered in additive mode and had "alphtest" during the compilation. For example, blood decals uses the world lighting and doesn't glow in darkness. Both sprites and models don't just use the world lighting, but also consider lighting of the closest brush model if there is one.

Player model display in the menu.

Instead of a usual player image you can see his 3D model in the menu and track all changes right on-the-spot.

Image RSS Feed Screens
XashXT: custom build. Parallax & Water shot 2. XashXT: custom build. Parallax & Water shot 1. XashXT: custom build. Grass test. Shot 3

Hi, all. There are some new information about the project. Currently the official (by Unkle Mike) work on development of Xash3D/XashXT has been slowed down for an indeterminate time, for the reason that another work has been started. Unkle Mike decided to switch his efforts on development of the new engine, XashNT. This engine will be a further continuation of Xash3D/XashXT, with a support of most usual modmaking tools, but now it will be much more farther from GoldSrc even before. It will be totally independent engine, intended exclusively for creating of new games. It will not support any of already existing Half-Life mods. Its' code will be totally rewritten.

The code of a rendering system will be based on GLSL (OpenGL Shading Language), this will make the new engine faster. New renderer will support all popular modern graphics enhancemets, as bump, parallax, water effects, daytime changes etc. Client/server part of code will be revised for better optimization. Also, with a refusal from support of GoldSrc now it will be possible to implement a fully working multiplayer system. Other planned features are: new map format (with a support of huge spaces, env_cubemaps and other things), new game physics (probably now without using of PhysX), extending of GoldSrc model format (old models will be supported too, but new models will also have some advanced features, as ragdoll etc.). Entity system for a first time will be the same as in XashXT.

When a pilot version of XashNT will be ready, a closed beta-testing will start. Members for CBT will be chosen personally by Unkle Mike (probably most of them will be only active game/mod developers, who already have appropriate projects based on Xash3D+XashXT and ready to move on the new engine, or skilled enough to experiment with it). If you have any ideas for the new engine, you are welcome to tell about them in the following thread (the forum is on russian, but you can use english easily):

Update from September 25, 2015:

Xash3D Engine has been updated to the build 3153 (experimental), which is available now in Downloads section! Latest stable build 3030 is also there. And don't forget about XashXT which is ready for your pleasure too (by the way, it have to be updated in the nearest future to feat of some new features of the experimental build).

Xash3D Engine v0.97, experimental build 3153 (with extras)
Xash3D Engine v0.97, build 3153 (with extras)
Xash3D Engine v0.97, stable build 3030 (with extras)
Xash3D Engine v0.97, build 3030 (with extras)

XashXT v0.65 rev.1 (Xash3D mod & toolkit)
XashXT v0.65 (Xash3D mod & toolkit)

If you a new with Xash3D, please, check this manual about proper installing of the engine. XashXT should be installed in a same folder with the engine, as addon/mod for it (with its' own executable - xash.exe).

P. S. Useful information about compatibility of Xash3D and different singleplayer Half-Life mods and maps is in The list of tested Half-Life mods and in The list of tested Half-Life maps.

Xash3D Engine build 2664 and XashXT v0.65 rev.1 are released

Xash3D Engine build 2664 and XashXT v0.65 rev.1 are released

1 year ago News 0 comments

Greetings! This spring brings to us another double update of Xash3D Engine and Xash Mod, they are both already awaiting for you in Downloads section :)

Pre-Alpha Footage

Pre-Alpha Footage

1 year ago Secret Operation®: Guardians 0 comments

Little teaser from Technology Preview. Сontains footage from the first build of the game. And we still need modelers, texture artists and codders.

About The Project and We Need a People

About The Project and We Need a People

1 year ago Secret Operation®: Guardians 5 comments

New game, new approach... Our little team make new action game on XashXT! The game is scheduled single player campaign, multiplayer mode, cinematic scenes...

Xash3D Engine build 2402 and XashXT v0.63 are released

Xash3D Engine build 2402 and XashXT v0.63 are released

2 years ago News 0 comments

Hi, folks, a next build of Xash3D Engine (2402) and new version of Xash Mod (XashXT v0.63) are avaliable for download. As usual, there are some new features...

Xash3D is a custom Gold Source build from a scratch. Xash3D overcomes obsolete Gold Source engine's limits and provides for you a new quality of gaming experience and modmaking capabilities, for example: higher limits for bsp-models, studiomodels scaling...
Add game Games
Xash3D Android

Xash3D Android

2 days ago Released Apr 1, 2015 First Person Shooter

Fork of Xash3D engine that ported to Android. Allows play Half-Life out-of-box.

Meanwhile in Russia

Meanwhile in Russia

2 weeks ago TBD First Person Shooter

Welcome to the Skolkovo Research Facility. If you are here by accident, please kill yourself immediately as possible. This complex - top secret and strictly...

Secret Operation®: Guardians

Secret Operation®: Guardians

3 months ago TBD First Person Shooter

The development of an entirely new Secret Operation. With the new engine, and a new approach. This project is a large scale, compared with the previous...

No Name

No Name

4 months ago TBD Third Person Shooter

This game is in early development and it is a common clone of GTA. If you would like to help, please contact me -kyp1998.

Paranoia 2: Savior

Paranoia 2: Savior

5 months ago Released Feb 25, 2015 First Person Shooter

Paranoia 2 Savior — first-person shooter in the style of survival horror, which is unfolding in a secret underground laboratory facility somewhere in...



10 months ago Released Dec 5, 2014 Arcade

Добрый-Бобрый, лол. С вами балабер, а это КОТРА: Зубодробительный экшн где вы играете...

BOOM: Anatoly in Time

BOOM: Anatoly in Time

1 year ago Released Aug 5, 2014 First Person Shooter

BOOM is returned :) Play this game and you узнаете, what is the PAIN! You play the BOOM when Boom plays YOU!



1 year ago TBD First Person Shooter

You will know a chilling story about misterious incident, which was happened in the middle Russia in 1994. Closed city Sverdlovsk-900 was abandoned and...

Xash3D : Half-Life : Enhanced

Xash3D : Half-Life : Enhanced

3 years ago TBD First Person Shooter

Played Half-Life? Wanted more? More Gore? More Explosions? If yes - Welcome to Half-Life : Enhanced on Xash3D engine which provide extended limits and...

Post comment Comments  (100 - 110 of 389)
Justus200 Sep 9 2014 says:

Hi, I have a problem with the func_screenmovie entity. I use a ambient_generic for the sound of the movie, but there is a problem to run both synchronously. If the player is standing at the movie brush and the ambient_generic and the movie is started, everything is fine and the sound is synchronous, but when leaving the hearing range of the ambient_generic, the sound stops at the last heared position and the movie continue in the background even if the player is far away. Coming back into range continue the sound playback at the stopped time, but now it is no longer synchronous to the movie. The "play everywhere" flag is no option, I am afraid. Is there a way to solve this or can't it be done without rewriting the moviesystem?

P.S. Now that the new renderer is not so far away anymore, I was wondering, will the first version be 100% XashXT compatible? Will the normal Half-Life still be 100% supported or must be everything coded from scratch if you want monsters, weapons and so on? I spend a really long time on coding the XashXT SDK and hope I can merge my new code and changes with XashNT. Besides the new features, I really would like to have a lot better performance to use effects like mirror and shader water already in XashXT in common.

P.P.S. Is it normal, that the player flashlight (XashXT) boosts the epoly count into the roof when activated? It seems my epolys are doubled if the flashlight is on. I only use HD models so this is even more a reason i would like better performance. In some cases the flashlight alone produces over 100000 epolys. The normal HL flashlight do not increase the epolys. Is this a bug or the "paranoia" flashlite feature?

+1 vote     reply to comment
Justus200 Sep 9 2014 replied:

Thanks for the answers. I will do some tests with the movie feature.
Even if released next year, I am very interested in XashNT and really hope it will be fully compatible (with the today XashXT) and all old file formats will be supported too. It would be sad if all my work was for noting on release day of the new renderer and I must start from scratch.
Keep up the good work.

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Sep 10 2014 replied:

You will be able to release this work under Xash3D anyway. But I'm pretty sure, that you'll have no problems with porting your of work to XashNT too. The main idea is to make all old stuff potentially compatible, it only will need some work for adaptation. Just save all the sources of your work for the future.

+1 vote   reply to comment
Justus200 Sep 10 2014 replied:

Thank you. Then I am reassured. It is not only the code, but models, maps, sprites, textures etc. I was worried about.
I'm looking forward to follow the progress of XashNT.
If you look at Xash so far, it can only be fantastic.

+1 vote     reply to comment
Justus200 Sep 10 2014 replied:

I almost forgot, I had another question. I have a strange bug with env_projector. If on a map, there is a strange graphic glitch box on the left side in the hud (looks like 2-3 camera screens of my view). This occurs even on the official testmap. The glitch is only visible if in sight of the entity and if turned on. Is this a bug, or am I using the env_projector wrong?

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Sep 10 2014 replied:

Are you using modified opengl32.dll together with XashXT? If yes, it's a problem of this dll. This is its' reaction on dynamic lighting in XashXT. It doesn't support Xash properly and can cause other glitches, depending on its' settings and videocard used.

+1 vote   reply to comment
Justus200 Sep 10 2014 replied:

Ah, ok. I'm using QeffectsGL for anti aliasing and SSAO (bloom is deactivated and activated in XashXT's build in feature).
I will decide later if this entity is worth it or if I skip it in my maps.
Thank you for all the help and time.

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Sep 10 2014 replied:

Enabling SSAO in this plugin causes totally black screen on NVidia cards with recent drivers. And you may have significant performance drops because of this dll when using specific lighting effects (including possible issues with XashXT flashlight). Of course, you still can use it for your own needs, but there can be problems if you want to share this with other people. Also, you can set anisotropy directly in Xash3D using gl_anisotropy cvar.

+1 vote   reply to comment
Justus200 Sep 10 2014 replied:

My main PC is a powerful gaming system with a nvidia 780GTX and my second computer has a nvidia 670GTX with latest drivers and no black screen issues. I used this dll from the start with Xash3D and besides the env_projector bug now, I never noticed any problems so far, but what you said makes me think.

After some tests with and without the dll, I can not confirm a performance hit. My main system can handle my test environments easy with 60fps, even at over 350000 epoly's, but what are "bpoly"? The other values with r_speeds 1 active are clear, but I do not know what bpoly stands for. If these rise above 60 with many epolys together, my framerate drops. There are only a few spots with these high bpoly values and only if I look in the right angle. The strange thing is, there is in most cases nothing but simple walls in view. In a old mirror testmap I got over 800 bpoly and my fps dropped to 25-30. Removing the opengl dll have no effect on the fps in these cases. For now I made the custom opengl dll optional just in case, but keeping it for further tests in my workversion.

The gl_anisotropy cvar I already use since the beginning in my userconfig. What i meant was Anti-Aliasing also known as Multisample (smooth edges of 3D objects). This is not by chance already supported by Xash3D too?

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Sep 11 2014 replied:

Specific lighting on a map can cause performance drops, especially with bloom enabled. But your specs are high enough and you can have no problems with this. Multisampling is not presenting in Xash3D options, as I know.

+1 vote   reply to comment
Qwertyus Creator
Qwertyus Sep 9 2014 replied:

Well, no one tested this video/sound sync issue before. So you can only experiment with this on yourself. Possibly adjusting of some entity settings will do the trick. Or make this event timed (to disable both video & sound after some time) or something else. What about XashNT, I think it will be possible to move your project on it from XashXT, because the list of entities will be the same. But XashNT is not so close for its public release, as I can assume. And about flashlight. In XashXT flashlight produce a dynamic lighting on objects, that's why it causes a perfomance drop. It should be possible to disable extended lighting via cvars, as I can remember.

+1 vote   reply to comment
ciba43 Sep 9 2014 replied:

About the XashNT part of your message:

As I understood, XashNT will be a something even more different from GS and it compatability will not be the main thing. The Devs will make it, so it would run better, faster and have more additions. XashNT will be similar with Xash3D, but it will be whole different beast.

+1 vote     reply to comment
hikkiccino Sep 2 2014 says:

I was wondering if the team will port Xash source code to VS2010/2013.

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Sep 9 2014 replied:

It will barely happen now. Only if someone except Unkle Mike will do it.

+1 vote   reply to comment
Ryuq Aug 31 2014 says:

Is there's way to compile XashXT source with cygwin? Downloading VS is nearly impossible for me...

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Aug 31 2014 replied:

The only way to compile with another program is to rewrite the code itself.

+1 vote   reply to comment
Ichiman94 Aug 30 2014 says:

Anyone having red lighting/"fog" problem with Intel graphics can be fixed by disabling (setting it to zero) either option in opengl.cfg:

It worked for me with only setting gl_sgis_generate_mipmaps to zero. I have an Intel G41 Express which is considered ancient by now, but it does its job well.

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Aug 31 2014 replied:

Very useful, thanks. Can't test it myself, but maybe this helps for someone.

+1 vote   reply to comment
Justus200 Aug 21 2014 says:

Hi, I am almost finished with the coding part of my modding base (based on XashXT) and thought it would be nice to make a enhanced Half-Life with my new effects, monsters and weapons too. On my tests I noticed a critical crash bug with XashXT (even unmodified). The HL chapter "on a rail" (starting with c2a2) crashes the game on every map. With help of the "entpatch" command and deleting entities, I managed to find the problem in the "path_track" entity. If there is a "altpath" defined, but the target does not exist in the map, the game crashes. After some trial and error, I was able to fix this bug by myself this time, even without real C++ knowledge. Maybe it is useful to Uncle Mike, although Xash ist final.
On server side open up "pathcorner.cpp" and near line 127 replace this:

m_paltpath = CPathTrack :: Instance( pTarget->edict() );

...with this:

if( pTarget )
m_paltpath = CPathTrack :: Instance( pTarget->edict() );

I hope this helps and is the correct way to fix this. My tests where all perfectly fine with this.

+1 vote     reply to comment
Qwertyus Creator
Qwertyus Aug 21 2014 replied:

Hmm, looks like it's XashXT v0.65 error. There was no such bug previously. Thanks, this can be helpful.

+1 vote   reply to comment
FoxyThePirateFox™ Aug 6 2014 says:


+2 votes     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Xash XT Group
Send Message
Official Page
Release Date
Released 2011
Engine Watch
Track this engine
Community Rating



89 votes submitted.

You Say


Ratings closed.

Highest Rated (3 agree) 10/10

Very good work,Uncle Mike.

Jun 19 2011 by red-bear

Lowest Rated (3 agree) 1/10

The writers of this engine don't care about copyright at all. The engine is riddled with valve code, some from the hl sdk, possibly some from the hl2 beta leak... Bottom line, it's illegal.

Note: this review was written on 12/29/13, and may not reflect how the code is later...

Dec 29 2013 by Danfun64

Embed Buttons

Promote Xash3D Engine on your homepage or blog by selecting a button and using the embed code provided (more).

Xash3D Engine Xash3D Engine
Xash3D Engine
4 of 746
Last Update
2 days ago
227 members