A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

FTE miscellaneous Q&A

Q: Is it possible to override an mvd’s embedded CSQC w a different csprogs.dat? A: Yes. [Spike: “rename you csqc cache dir. the engine will fall back on your local csprogs.dat”]. So, in AGR’s case, rename: ‘C:\AGR\fortress\csprogsvers’, to . . . → Read More


Q: How can I change the font/characters that CSQC drawstring() uses?Q: how can I change the font/characters that CSQC drawstring() uses? is that just conchars? A: (eukara) Nope. there is a global float called drawfont. You change it, but first you have to allocate some fonts. Make a definition for e.g. [code language=”c”]var . . . → Read More



Bodygroups (“GEOMSETS”) for dummies (draft)

StepByStep: FTEs terrain editor (draft)

Absolute beginners guide to setattachment (draft)

Absolute beginners guide to _pext_infoblobs (draft)


======== THIS STUFF KINDA WORKS ======

Quake in a browser

Manifests and Running FTE in a browser

Running and compiling an FTE server

(draft)Absolute beginners guide to Skeletal . . . → Read More

Understanding Player Angles by Spike

Jul 24 2021

user wiggles the mouse – this updates csqc’s view_angles global. client generates a periodic input frame – this updates csqc’s input_angles global (also updated by getinputframe etc… as well as every frame because dp compat) that gets sent to the server – which is shown in the ssqc’s input_angles global (yay . . . → Read More

Bodygroups (“GEOMSETS”) for dummies (draft)

Background reading (different mods, but intro to the same/similar concepts):

Garrys mod: How to create Bodygroups for Models by The Devils Own

Source Filmmaker (SFM): [MMD to SFM] How to create bodygroups (using Blender) by Dusk

Underhell mod for Half-Life 2: BODYGROUPS by Mxthe

Spike: fte refers to bodygroups as geomsets, and allows you to change them via . . . → Read More

AGR FTE mychanges.patch

[code] Index: server/sv_ccmds.c =================================================================== — server/sv_ccmds.c (revision 6306) +++ server/sv_ccmds.c (working copy) @@ -1310,7 +1310,7 @@ if (((penalties|delta) & (BAN_MUTE|BAN_DEAF)) == (BAN_MUTE|BAN_DEAF)) delta &= ~(BAN_MUTE|BAN_DEAF);

– if (penalties & BAN_STEALTH) + if (delta & BAN_STEALTH) delta = 0; //don’t announce ANY.

if (cl->controller) Index: server/sv_main.c =================================================================== — server/sv_main.c (revision 6306) +++ server/sv_main.c (working copy) . . . → Read More

FTE skyrooms for dummies

[UPDATE: 28 Sep 2021: Updating to latest TrenchBroom helped fix errors in scaling to 0.0625, and now 1/16 scale works!! This page needs a rewrite, but for now, just follow METHOD 2, and use 0.0625]

[UPDATE: 28 Sep 2021: 1/4 shrinkage works, but 1/8th, or 1/16th is still *off* (maybe due precision errors in . . . → Read More

Blender 2.8 (draft)

NOTE: Nodes (where you edit textures) are now found under “shader editor”, NOT “texture node editor”. (wasted 15 mins on that one)


Latest mdl exporter.


Inter-Quake Model format development kit


Q: Surely theres an easy way to convert the 2.79 blend files (done w blender renderer) to use the old . . . → Read More

How to do skingroups w Blender->mdl


[OMC: this is GOLD, and it MUST be archived!!]

by Aleksander Marhall


Before You start, I recommend You to import some existing MDL file first. This way You’ll understand skin/material concept better

Every skingroup is represented as one material on a mesh. You can have multiple skingroups and each skingroup can have multiple skins inside.

In most cases, . . . → Read More

Absolute beginners guide to IQMs


[UPDATE October 2021: This tutorial was salvaged from the (now dearly departed I tried to format it so it looks ok here, there are still some formatting errors, but hey – the info is ALL HERE!]

[UPDATE August 2019: Blender 2.8 is here, so ‘things have changed’. I’m still figuring it out, . . . → Read More

StepByStep: FTEs terrain editor (draft)



PREFACE Spoike has made an addon for FTE called csaddon.dat which contains some VERY promising features. One that intrigues me is the terrain editor. I’ve seen some amazing shots of VAST landscapes, and would like to make a massive map featuring a landscape like . . . → Read More

Absolute beginners guide to setattachment (draft)


Spoike  setattachment just sets tag_entity and tag_index fields, right? OneManClan — 03/26/2021 no, i didnt know that Spoike — 03/26/2021 and that stuff like this: float robot_torso_bone_number = gettagindex(self, “torso”); vector robot_torso_origin = gettaginfo(self, robot_torso_bone_number); is just wrong gettaginfo(self,0) would be more accurate there. OneManClan — 03/26/2021 0? Spoike — 03/26/2021 or gettaginfo(self.tag_entity, self.tag_index); would be what . . . → Read More

Absolute beginners guide seamless level switching (draft)


Mar 27 22:12:26 <OneManClan> 1. Is there any way in 2019 FTE to do the ‘seamless levels’ thing, eg like HalfLife, where the next level loads as you go around a corridor?Mar 27 22:12:26 <OneManClan> 1. Is there any way in 2019 FTE to do the ‘seamless levels’ thing, eg like HalfLife, . . . → Read More

Absolute beginners guide to _pext_infoblobs (draft)

How can players have their own avatars? . . . → Read More

Absolute beginners guide to decals

Decals are a type of particle. In the code they are defined as “type cdecal”.

1. In Gimp, make a new image, size 256×256 (or 64², 128² etc), advanced options->fill with background color, and start drawing your decal. Alternatively, if you already have an existing image: layers-> “add alpha channel”, and delete the areas . . . → Read More

Minimal AttackersGoRed map requirements

Make your map. Position an info_player_start, and info_intermission somewhere. Copy the text below, and paste it at the bottom of your *.map file Reload map, and move the entities from ‘0 0 0’ to where you want them, and adjust their angles.  Compile


// identify map as TF map { “classname” “info_tfdetect” “origin” . . . → Read More

skyboxes for dummies (draft)

Note: If you name your shader ‘the name of the default sky’ it will be on ALL sky1 (ir whtever its called) maps


“A skybox is loaded using either the “loadsky” console command”Jul 26 02:16:50

<OneManClan2> ( 26 02:17:12

<OneManClan2> …’loadsky’ (at the FTE console didnt do anything)Jul 26 02:18:39

<OneManClan2> ah ezquakwe . . . → Read More

how to make in-game monitors 2019


1. make a monitor_screen.jpg texture (which is the size of the screen in the brush) MUST BE POWERS OF 16!

2. Put a white pixel in the top left (0,0), and bottom right (1,1) of the image


3. make the ‘tv’ brush, and give it the `monitor_screen.jpg texture.

4. make the . . . → Read More

how to watervis maps


To A: be able to see (above water) entities when you’re underwater, and B: be able to see underwater entities when you’re above water.


Make maps/newfolder copy foo.bsp there download and from:


and put them in your /maps folder


4. at cmd: “bsp2prt foo.bsp”


5. “vis.exe -show -level 4 foo.prt”

(You . . . → Read More

pointerstat explanation (and case study) (draft)

STATS are variables sent to CSQC by the server to each client, and normally contain information about themselves (their own localplayer). ie as a player, they usually contain information about you, your health, ammo, armour, etc, so they can be displayed in your HUD. But what if it’s a multiplayer game, and you want your . . . → Read More

AGR with q3bsp

OneManClan> but i woke up w an insane idea.. 01[14:54] <OneManClan> … to get over the other major thing holding AGR develpment back 01[14:54] <OneManClan> (aside from my own difficulties grasping simple concepts!!) 01[14:55] <OneManClan> anyway, i have a question which I us making me nervous just askign it because if the answe . . . → Read More


mellee doesnt help w disarm [FIXED] sgs didnt fire on flag carrier (invis?) lost contact w sold2 [FIXED] sold doesnt resume walking beat after enemy contact Sold does weird flyign through air thing town4 respawns arent random dropped flag freezes midair for a second before drop SG firing animation when not firing spy hack . . . → Read More

Absolute beginners guide to Q1 models

Awesome site 1: Tome of Preach

Awesome site 2: Phillip Nahratow


Quake in a browser

get the 4 files + pak upload them to your web server

for better peformance use gzip and Etags


alt tab fucks up your mouse

only works w firebox



<Spoike> firstly you need some html that creates a canvas. <OneManClan> yea, like that horrot game w the screaming woman <Spoike> . . . → Read More

Making an installer w your custom exe

Rename the FTE.exe “YourModname.exe” Make a favicon/*ico image file (the icon the exe uses) for your mod, and use something like resource hacker to edit FTEs default one. Make a default.fmf (test) file as follows:

FTEManifestVer 1 // leave this as is UPDATEURL // where to get updated fmf file GAME Quake // . . . → Read More

Absolute beginners guide to map compiling

1. qbsp 2. vis 3. light

Connecting, running and compiling an FTE server


svn up // update

svn diff // show the differences

svn log -l30 // shows the 30 most recent commits

svn update -r 5300 // reverts to revision 5300

m-dbg DEBUG

m-rel release

$ make makelibs -j4 FTE_TARGET=win64 && make m-dbg -j4 FTE_TARGET=win64

more info here.



while true; do

# . . . → Read More

Absolute beginners guide to sending clients pk3s

The full title of this tutorial should be “Absolute beginners guide to getting FTE clients to automatically download the files they need, while allowing older (non-CSQC compatible) clients to connect without crashing”. Or “How to make a modern Quake engine (CSQC, shaders, particles, iqms etc ) compatible with older clients, so that they can . . . → Read More

Absolute beginners guide to dimension_*

foo |= D_SOMETHING; // setting foo -= foo & D_SOMETHING; // removing if(foo & D_SOMETHING) // checking

x = denotes ‘it doesnt matter’ 0000 0000 1111 1111 // default / initial settings

// deafness // writebyte effects are sent with global: dimension_send 0000 0000 0000 0001 //or if its an entity making the sound: . . . → Read More

Absolute beginners guide to pk3s (draft)

By using precache_ functions, and making sure the files are on your server, clients will automatically download the files below.

Files which Quake (FTE) automatically sends to clients. 1. models (*.mdl) / precache_model() 2. iqms (*iqm) / precache_model() 3. the iqm’s image files (*tga, *.png, *.jpg) / precache_pic() 4. particle scripts (*.cfg)  /particleeffectnum() 5. . . . → Read More

Absolute beginners TF map making by Grimm

copied from hereTF Map Making Tutorial[ Back – Home – D/L Tutor ]The Team Fortress Map Making Tutor. v1.1by: grimm [502]


0.0 New Since v1.0

1. Basic intro

1.1 Introduction 1.2 File Listing 1.3 What is TF? 1.4 How do I make a TF map?

2. Entity specifics

2.1 Tool & trick of . . . → Read More

Absolute beginners guide to sprites

WHY use sprites (*.spr files)?

To maintain compativility with ezquake, otherwise use tga.



How do I make a sprite?

Gimp ->  new image (rgb is ok) To access the transparent color (color 255) you need to use the Quake pallette: Windows->dockable dialogs->Pallettes right click anywhere on the list . . . → Read More

Absolute beginners guide to textures

HOW DO I MAKE A TEXTURE (to put in a wad)? 1. make a new image in GIMP, dimensions = powers of 2 (eg 64×64, 128×128, 256×512)

2. select Image->mode->indexed and select the Quake pallette. This limits your colours but they will match in-game ‘by default’.

3. If you want transparencies: Layers (ctl+L)-> right . . . → Read More

StepByStep: Normal Mapping


Brilliant tutorial:



Q: whats missing from theis shader code? (trying to add a normal map onto a texture): Feb 04 04:29:58 <OneManClan> Feb 04 04:30:38 <OneManClan> is it a path problem, or a shader code problem? Feb 04 04:31:51 <OneManClan> the texture is called ‘passfield_brick’ . . . → Read More

(draft)Absolute beginners guide to Skeletal Animation

QUICK START GUIDE (Dec 6th 2017): // 1. Assign the iqm to entity foo(to give foo a .modelindex) setmodel(foo, name_of_current_vwep);

// 2. create the skeleton object if (!foo.skeletonindex) foo.skeletonindex = skel_create(foo.modelindex);

// 3. fill foo’s skel w the poses from the iqm skel_build(foo.skeletonindex, foo, foo.modelindex, 0, 0, 0, 1);

// 4 delete the skel . . . → Read More

FTE Classes example

/************** EXAMPLE CODE ************* ///// THE DEFINITIONS class FooParent : entity {

// constructor void() FooParent = { dprint(“I am a FOO\n”); };

virtual void () WhereAmI = { dprint(“In FooParent\n”);



class FooChild: FooParent {

virtual void ()WhereAmI= { dprint(“In FooChild\n”);




FooParent e = spawn(); e.WhereAmI(); FooChild e2 . . . → Read More

Absolute beginners guide to particles

1. If you want your new particles to be available for ALL mods, make a directory c:/quake/id1/my_particles. If you want your particles to be only available for YOUR mod/s, make a directory c:/quake/yourmodname/my_particles.

2. In it, make a text file called new_explosions.cfg 3. Write your particle (lets call it ‘super_explode’) like this:

r_part super_explode . . . → Read More


To create an array of pointers.

1. Create a type of variable called a ‘floatptr’:

typedef float *floatptr; // a pointer to a float

2. Make it a .field (ie all entitites get one … BUT… ONLY the entities which need an array get memory allocated for one!)

.floatptr route_table;

3. Entity foo needs . . . → Read More

Absolute beginners guide to (CSQC) hats

PREFACE DISCLAIMER: I’m still figuring all this out, and I barely know what I’m doing, so apologies in advance for any inaccuracies in the following ‘beginner friendly’ explanations. Rather than have this sit on my hard drive until it’s ‘perfect’ (ie never), and since the following method DOES ACTUALLY WORK, why not have . . . → Read More

Absolute beginners guide to shaders

[Update July 2015: added extra commands to help w debugging in notes section]

[BIG FAT DISCLAIMER: I’m a beginner to this, so I *barely* know what I’m doing. I’ve checked with Spike and GB (thanks HEAPS guys!!), so if the following is wrong, it’s not insanely wrong. I’ll be constantly editing this page as . . . → Read More

Debugging w FTE


Poking and watching variables emulating ping using addr2line intentional crashes for analysis unintentional CRASHES – The Stack Trace Using GDB How to run multiple clients on one machine


1. set sv_cheats to ‘1’

2. To get a complete list (dump) of current entities, (as well as globals) with all their . . . → Read More

StepByStep: Realtime lighting

What DO I need? 1. latest fte  2. Download the latest csaddon.dat, and put it in \id1 3. Put your *.map file in \id1\maps 4. wad file ?

1 run quake 2 single player -> new game 3 load your map file “map foo” 4 bind x toggle ca_show

when youre finished editing, hit . . . → Read More

StepbyStep: Changing the Plaques

edit conchars.png and put it in \Quake\id1\gfx


fonts, conback, icons [17:33] yeah, thats all fairly easy stuff [17:34] not to downplay his accomplishments. he’s done some really great work, and his art is great 01[17:34] ive been reading i3d posts for YEARS and have no memory of any discussion on changing fonts [17:34] . . . → Read More

skeletal animation by Spike




in theory, just create a skeletal object compatible with your model, set up the various frame fields on your entity and then call skel_build. then do it again with a different range of bones. yes, this means you need to ensure that your model editor does not re-order bones and stuff . . . → Read More

StepByStep: Spoike Notes: CSQC iqm animation


pose: a single static position of a model or iqm

frame: a set of poses


NOTE: mdl’s are set up differently.

Each pose has its own .frame. To run a mdl animation, you change frames. eg

rockrun1 is a frame consisting of one pose

rockrun2 is a frame consisting of one pose

. . . → Read More

Idiots guide to CSQC by Spike


This little document is a little primer on CSQC for people that have no understanding of it. The reader is expected to have an understanding of SSQC basics (entities, globals, functions, prototypes, fields, etc). As I am the primary author of FTEQW+FTEQCC, I am biased towards it and its feature set. I will . . . → Read More

StepByStep: Shaders on skins

color a whole skin

The making of the skin 1. Open the skin you’re going to use in Gimp/Photoshop 2. make sure you’re in rgb mode 3. make an alpha channel 4. select the area you want to affect 5. paste it into an alpha channel 6. save as tga 32 bit 7. put . . . → Read More

StepByStep: FTE’s ezquake HUD

Spike: <<< win32 plugin: win64 plugin: you need to use the same arch as the engine, or you can just install both on account of the arch being part of the filename. no, I don’t recommend using sdl builds at all in windows (fte+sdl is really just a mac thing).

just place . . . → Read More