About | Downloads | Screenshots | Demo | License | Resources
Latest Revision: 6202 - 2022-03-01
Current Release: 6202 - 2022-03-01

Read Me

AfterQuake Package

AfterQuake is the easy way to start your Quake experience (on windows, anyway).
Simply download the zip, extract it somewhere, optionally throw in pak1.pak if you have it (recommended, but vital only for singleplayer), and play!
AfterQuake is intended to cater to pretty much anyone - if you don't want any of the high-res textures you can simply disable the relevant packages inside the downloads menu.
Note that to simplify the AfterQuake package, it is suitable ONLY for running Quake or QuakeWorld.

Engine-Only Downloads

Engine-only downloads are for purists that know more about what they're doing (or people who just want to manually update afterquake with smaller downloads).
You can simply copy the binary into your existing quake/quake2/quake3/hexen2 directory and run it - it only needs the gamedata in order to run (except for quake2, which also requires a third-party-mod-specific dll/shared object for singleplayer or server functionality).

QuakeC Compiler

Documentation for the compiler's syntax and features can be found here.


Note that while the 32bit and 64bit builds are basically equivelent, you may still find you wish to use the 32bit build on account of 3rd-party libraries that are generally not available for win64 - this is especially true for Quake2 mods.


If you're getting crashes with a stack trace involving XIFreeDeviceInfo, you may find that using -noxi2 on the commandline will disable the unstable library in question.
FTE does have direct support for Wayland now, but it is still experimental so will be enabled only through explicit choice (renderers can be configured via the menus), or if x11 fails to init.


I am unable to support MacOSX myself. Public builds (using SDL) are instead built by a 3rd party (AKA a guy named, Tuna!), but this generally means that their versions lag behind quite significantly.
You may be able to compile your own.


Android builds are currently rather crashy, but at least they can work with the right settings. Hopefully this'll get fixed eventually.
Either way, touchscreens kinda suck, so don't expect to use it for much more than a qtv/demo viewer, unless you have some bluetooth keyboard, mouse, or gamepad.

Quake / QuakeWorld

Quake and QuakeWorld are FTE's primary focus. Much time has been spent getting the engine to transparently handle the distinctions between the two such that it no longer matters what branch you're trying to play, FTE will just work, and in a way that is the best of both worlds.

Quake 2

The vanilla quake2 gamecode is specific to 32bit windows, and has a bug that causes saved games to fail with ASLR etc.
For this reason, replacement gamecode can be installed via the downloads menu, and will be used in preference to the baseq2 gamecode when installed. This gamecode is from yamagi quake2, so it fixes the saved game issue and is thus useful even on x86.
FTE uses the vanilla API so mods mods should still work if they're compiled for your cpu+system. FTE still does not provide gamecode for the mission packs.

Quake III Arena

FTE has support for running Quake3. The mission pack is not supported at this time, and this also means that mods are likely to not work.
To run, simply place fteqw.exe into your quake3 dir and then just run it.
FTE is unable to connect to punkbuster-enabled servers, and general network connectivity is not well tested (see: mods).
Thanks to Quake3's preferential use of qvm files instead of dlls, there is not normally any issue with operating system / cpu type.

Hexen, Two

FTE has support for both Hexen2 and its mission pack (Portals of Praevus). Just place fteqw.exe into your hexen2 directory and run it.
Note that FTE is not network-compatible with other hexen2 engines, at all. Most mods and maps should work though (its mostly just a glorified quake mod). For best results use the missionpack - it has numerous fixes for bugs in the original's gamecode.

Virus Scanners

FTE is a large project, with lots of networking code and lots of older versions still available. Unfortunately, this means that there's a lot of interesting code that scanners can find false positives inside.
While I cannot promise that my code is bug-free, what I can say is that there is no malicious intent in my code, and I am not aware of any in third party libraries.
In terms of privacy, the engine does phone home (via https) in order to check for updates. The only information reported to the server is to identify the exe build type+version, this is not used for telemetry.
The website uses a self-signed certificate at this time. This is required to prevent dns takeovers being able to replace binary updates (as happened with fteqw.com), but unfortunately is not specific to the update system at this time, resulting in scary warnings about untrusted certificates.
If you're having troubles connecting to this site (I'm not going to ask how you're reading this) then submit a complaint to your malware scanner provider (or just disable its spyware-like network sniffing).

Making And Releasing Content

For developing new content, I'd recommend adopting a package-first mentality - place your various data into .pk3dir subdirs. Then you can just compress the finished content of those directories into pk3s for release.
To distribute your content, you can ask users to use 'pkg addsource https://urltoyourserver/foo.txt' ('pkg remsource https://foo' to remove it again, 'pkg sources' to list active sources). You can then update foo.txt to push updated versions (or additional packages), you can find an example package list here. To release a standalone mod, you should include a default.fmf file with your data. This file provides filesystem and rebranding information, information for the default package source, as well as a list of packages that the user will be nudged towards installing (if not already installed).

Mapping Features

Limits: Worldspawn Keys: Fallback Entities (used when gamecode does not support them): Fallback Entity Fields: