News | Forum | People | FAQ | Links | Search | Register | Log in
Mapping Help
This is the place to ask about mapping problems, techniques, and bug fixing, and pretty much anything else you want to do in the level editor.

For questions about coding, check out the Coding Help thread:
First | Previous | Next | Last
And use the Search feature above, func has a lot of info you can find on this stuff. A lot of these questions are answered. And I agree with Muk. Definitely open up those original Quake levels for a lot of tricks.

I am working on video tutorials for Trenchbroom geared toward beginners but they are still many weeks away. 
Looking forward to those tutorials.

Oh, and I am super exited after discovering it's actually possible to use Trenchbroom to make unreal 4 levels with this program somebody made! 
HammUEr is a pretty cool tool. 
link for the unaware: 
A Question About Textures 
When loading a texture wad in trenchbroom you are asked if you want the textue path to be absolute, linked to file etc. What do those things mean? So far I am just using the absolute method but what do those things mean?

I want to make it so that even if the bsp file is played on another computer by someone else the textures (including custom textures) will show up and work properly obviously. 
Once the BSP is compiled, none of that matters. So as long as it's building correctly, you picked the right option. 
To clarify, Quake stores textures inside the BSP file so the WAD path only matters during compilation. 
Sorry To Waste Your Time Yet Again... 
But I did actually google this, but found nothing :/

For some reason textures don't appear to be aligned correctly in game even when they are in the editor. For example if I change the angle of a texture in the editor it will look correctly there, but once in the game it will still be the wrong angle. Whati is causing this?

Oh, and as a gift in return for asking all these questions, here are a few screens from the level I am working on: 
@hakkiran Re:Texture Paths 
The options are related to where your texture .wad(s) are in relation to the map file. Relative to game directory or application file tells it to check within the folder of either Quake itself or Trenchbroom's install folder respectively- if you have your wads stored someplace else, these choices will often fail because it requires going up a level from the starting point and changing folders, which tends to get screwy. Relative to map file is the same thing but relative to where the .map file you're making is saved- this one fails often as well, and will obviously not work if you haven't saved your map yet (i.e. loading texture wads before starting actually mapping), because then you're telling it to figure out a directory path from the texture wad to nothing. Absolute is the full file path to the wad and is the most reliable.

No real reason to pick one over the other if multiple options work- the only place it shows up in-game is if someone uses the edict (or edicts) command, specifically for edict 0 (worldspawn) which will include a list of what .wads were used when compiling the map and their filepaths, like these examples- the first one is id's own E1M1 which uses only their own base.wad and had the file located within their editor's folder, the second one is an example of the full file path showing up if you use the 'absolute path' option. 
Check your tools and editor are up to date.

tyrutils (Tyrann's original, not my fork) required the "-oldaxis" option to be used for qbsp.

TrenchBroom hasn't had any issues like this in quite a while except for this one: which only comes up if you use the "rotation" tool, and even then only under specific conditions. 
How Do I Enable This "-oldaxis" Thingy?

Download some more recent compiling tools and you wont have to use oldaxis 
I'm testing a map, that starts with a warning: 765 efrags exceed standard limits of 640.
The light.log shows:736 entities read, 329 are lights. FindLights: 962 total lights.
I used a lot of lightmaps on a texture in the hope to reduce the lightcount, but it seems to go much too far. I added quiet a lot of new monsters.

While playing I can't reach the end of the map, because of an overload. It looks as if I can't make a room with more than three monsters.

Should I just start removing lights to see what happens? 
Ordinary lights (non-dynamic ones, and ones with no model) don't use up any resources except light.exe compile time, so removing lights probably won't help anything. Removing walltorches will help if you're going over static ent / signon buffer limits, but those would prevent the map from loading at all.

efrags are created when entities span multiple BSP leaves. e.g. the most extreme case: if you made a trigger_once that covers your entire map, and the map has 10k leafs, it would create 10k efrags.

While playing I can't reach the end of the map, because of an overload.
What is the error message and what happens (engine crashes, dropped to console, etc?) which engine? 
I placed a range of secret doors, that were all working independed. When I couldn't make them work on one side without the backside, I placed them all on one trigger_once. So that could be reason.

I can play the whole map (116 ent), untill the last stage, where an overload starts.
The reason is a Launcher_Touch that is in use with one of the baddies. If I delete the monster, another one complains again about its Laser_Touch.

Here are a screenshot and log.
Thanks for posting the log madfox, it turns out that the efrags message is just a warning. The real error which ends your map is "Stack overflow". The rest of the error message shows that the stack overflow is happening inside a chain of triggers.

The simplest way this can happen is that you build a really long chain of triggers which target each other (without any delay):

trigger1 ---targets---> trigger2
trigger2 ---targets---> trigger3
trigger3 ---targets---> trigger4

If you have 10 or more triggers connected in a row the game runs out of space on the stack, and you get a stack overflow error. Add a delay somewhere and it should be fixed

In practice most people don't have ten triggers in a row, it gets too complex to be useful. The other way that it can happen is you create a loop. If you have two triggers that target each other, they go into a loop

trigger1 ---targets---> trigger2
trigger2 ---targets---> trigger1
trigger1 ---targets---> trigger2
trigger2 ---targets---> trigger1

This loop never ends, so you hit the limit of 10 and the error appears. Check your triggers to see if any of them are targeting themselves, or if they are creating a loop of targets. 
Creating Quake 2 Cinematics 
Anyone have any experience with this?

I've successfully created a couple that work fine in KmQuake2 but in other engines they don't render correctly.

Any useful links, tips or suggestions would be appreciated. 
Thanks Preach! 
The map had a teleporter with a loose target.
Still I'm a bit confused, because the WARNING: couldn't nudge light in solid at seems strange as there are no lights at that point. 
Nudge Light 
If you are using light from surfaces, the light tool generates light entities just off of the surface. Could be you have a func_ with a light texture butting against a wall. 
It's safe to ignore that warning. Glad you got the stack overflow fixed! 
Stack Overflow... 
I recently made a map hack using a 'clock', trigger_relays targeting each other but with delay so they would give a trigger output every 2 seconds. I used this, so moving parts of my level would light correctly. 
I Didn't Have Any Errors 
Clarification For Brassbite 
The issue is when triggers target themselves with no delay key set. If you have a delay set them there is no risk of overflow. 
Custom Models Without AD Or Quoth 
Hi everyone!

I found out that Preach has some pretty cool map object models at his website, and I thought about using them as prefabs in my map. I've never stepped into custom model territory before, so I'm a complete newb here; please be understanding. T_T

Ericw told in his post (#18366) that you can use AD's misc_model and Quoth's mapobject_custom to add custom models to your map. But if I want to go vanilla so to speak, is my only option to overcome the model precaching dilemma by going to some QuakeC editing to add the necessary precaching lines?

(I guess it means that then it would technically no longer be considered vanilla anymore, huh?) xD 
Afraid So 
It's not possible to get the necessary models precached without a bit of QuakeC. The good news is that it's basically the perfect "my first mod" exercise.

Download the source code, and open up misc.qc. Add the following lines:

void() misc_model = //we are defining a function
// precache whatever model the mapper stored
// in the "model" key

// apply this model to ourself
setmodel(self, self.model);

Download fteqcc.exe and save a copy in the source code directory. Run it and it will compile the mod into a progs.dat file. Add that progs into your mod directory.

How do you use this entity? You add an entity to your map with the classname "misc_model". Notice this is the same as the name we gave our function. When the game loads a map, each time it creates an entity it looks at the classname of that entity. It then lets that entity runs the function in the QuakeC with the same name, which lets the function prepare the entity for use. 
fte and qss both implement misc_model engineside should the mod (like vanilla) fail to support it. 
How To Move Brushes In-game? 
I am talking about things like lowering walls to reveal traps, or lowering pilars that previously blocked the player. Do I use func_plat for this? Or something else? 
Func_door Mostly, Func_plat For Elevators 
plats tend to be a special-case thing. if you want to trigger something then func_doors generally work better. set the angle to -1 or -2 to have them 'open' upwards or downwards. you can have them toggle too. 
Saving The Environment... 
Hey, trying to make some tree textures here:

So I want to make a tree texture used as a func_illusionary, just like the spider web textures from Daikatana that 'skip' over all of the texture except the web. How do I do this?

I have drawn a tree over a pinkish background and named it {tree this appears to be the same convention as these web textures. How does the compiler interpret the texture and skip the background? I must have missed something because so far the tree is drawn along with the pink wall. Any ideas here?

The transparent parts need to use palette index 255 (bottom right of
And Start The Name With { 
Clear Parts 
Transparent textures in sprites works the same way,
with the pink lower colour in the quake.pal.
So a small sprite for a fagot would look like this
In game it would appear like this, if the progs is changed.

A small and good viewer for editing sprites is Fimg.
I just added to quaketastic, as I couldn't find it there.

Got It! 
Its working now, I also forgot to enable fullbrights in TexMex and it was screwing with indexed colour. It looks ok now, as far as a tree made out of func_illusionaries looks... Hopefully this will be ready for December. 
Couldn't Exec Autoexec.cfg/ Couldn't Spawn Server Maps/test.bsp 
Hey guys i'm new to quake mapping and new to quake in general. I started mapping because i'm really sick atm having a crohn's flare up and tendinitis in my left shoulder. Now I was using this guide
to get into mapping and downloaded trench broom/tryUtils/ne_q1spCompilingGui/quake.wad to start making levels.

well i made a level in trench broom and everytime i try to compile i get the error message "couldn't exec autoexec.cfg" then it says "couldn't spawn server maps/test.bsp" and "3 demo(s) in loop" I really want to get into mapping because i have nothing else to do really in the hospital I heard this is the place to go for help i'd really appreciate it if you guys could help me with this. 
Couldn't Exec Autoexec.cfg/ Couldn't Spawn Server Maps/test.bsp 
Hey guys i'm new to quake mapping and new to quake in general. I started mapping because i'm really sick atm having a crohn's flare up and tendinitis in my left shoulder. Now I was using this guide
to get into mapping and downloaded trench broom/tryUtils/ne_q1spCompilingGui/quake.wad to start making levels.

well i made a level in trench broom and everytime i try to compile i get the error message "couldn't exec autoexec.cfg" then it says "couldn't spawn server maps/test.bsp" and "3 demo(s) in loop" I really want to get into mapping because i have nothing else to do really in the hospital I heard this is the place to go for help i'd really appreciate it if you guys could help me with this. 
Compiled maps (.bsp files) need to go in "quake\id1\maps".
That guide seems to have you place the .map file into "quake\id1\" which is werid. I would just save your .map file in "quake\id1\maps", then after compiling, you should have "mymap.bsp" in "quake\id1\maps". 
Is not needed. That's only if you want to run your own console commands when the game starts (like -developer 1 if you are coding) 
Autoexec.cfg Even More Trouble 
okay so I figured out a bit more of the issue it isn't that quakespasm isn't reading my maps bsp or that the bsp is going into the wrong folder, the issue is that my map is having an issue compiling a bsp.

so I was looking at the n_q2spcompilinggui and it has an option for you to pause after compiling and i did that and noticed that it wasn't even compiling the bsp. This is the error that pops up on the command prompt.
C:\Program is not recognized as an internal or external command, operable program or batch file
the system cannot find the file specifified (it repeats this 3 times and then says press any key to continue)

so the issue is with the bsp tool do you guys know how to fix it? 
Autoexec.cfg Even More Trouble 
oh and right above where it says
in the command line it says
"the system cannot find the file specified
converting map..." 
Autoexec.cfg Even More Trouble 
oh and right above where it says
in the command line it says
"the system cannot find the file specified
converting map..." 
C:\Program is not recognized as an internal or external command
indicates it is a paths-with-spaces issue.

Easiest fix might be to copy your quake install to c:\quake. 
how do i go about copying my quake install to c:\quake? do you mean taking the file out of the steam folder and moving it to... where exactly? 
Installation Problem... 

Because of the error you are getting when trying to run qbsp using necros' GUI I am willing to guess the following:

A) You have not installed the compiling tools on your computer. The GUI is only an interface, you still need to get qbsp, VIS and light tools from the internet.

B) You have installed the tools but did not enter the path into the GUI. Go to Settings, Folder Setup, and select the compiling tools qbsp, VIS and light from the folders they are located in on your computer.

This should solve the problem. You do not need to move Quake out of STEAM just to compile a map. If this does not fix your problem, there may be other issues going on. 
Reply Installation File 
okay so looks like i am a god damn idiot i did have the tools but forgot to specify (which i could have sworn to god i did!) but now i have a new fucking error!

the command line comes up and says

Copying files...
the system cannot find the file specified
converting map...
-----qbsp / tryutils v0.5 ----
input file: testmap
outputfile map.bsp

failed to open no such file or directory
the system cannot find the file specified (repeats this three times)

so I got the bsp part working but now it won't load the map file but at least we got a step closer (i think) jesus man is it this hard to edit quake levels or am i just unlucky lol? 
Reply Installation File 
okay so looks like i am a god damn idiot i did have the tools but forgot to specify (which i could have sworn to god i did!) but now i have a new fucking error!

the command line comes up and says

Copying files...
the system cannot find the file specified
converting map...
-----qbsp / tryutils v0.5 ----
input file: testmap
outputfile map.bsp

failed to open no such file or directory
the system cannot find the file specified (repeats this three times)

so I got the bsp part working but now it won't load the map file but at least we got a step closer (i think) jesus man is it this hard to edit quake levels or am i just unlucky lol? 
Reply Installation File 
okay so looks like i am a god damn idiot i did have the tools but forgot to specify (which i could have sworn to god i did!) but now i have a new fucking error!

the command line comes up and says

Copying files...
the system cannot find the file specified
converting map...
-----qbsp / tryutils v0.5 ----
input file: testmap
outputfile map.bsp

failed to open no such file or directory
the system cannot find the file specified (repeats this three times)

so I got the bsp part working but now it won't load the map file but at least we got a step closer (i think) jesus man is it this hard to edit quake levels or am i just unlucky lol? 
Please only press the submit button once. It will only create spam when you do this.

I strongly advise against launching the map directly from the compiler. First you must determine where your output folder is. Again look at your compiler settings and see where the output folder is. This is where your finished .map goes to. This is NOT where your quake game folder is, and thus you cannot play this map. Now copy your finished map, and paste it into you C:/whatever/whatever/quake/iD1/maps folder. Now you can play your map. Launch quake and type map yourmapname.

This should fix it. 
File Name 
Looking again at your error it seems you have also not specified 2 things:

A) The .map cannot be found. This means you have not specified the correct working folder in the GUI where your .maps are located. Check Settings Folder Setup again to do this.

B)The .map doesn't exist. Check your spelling again, are you sure this file is even on your computer. 
Yeah i keep doing it on accident it's because my computer is slow and I kept accidently spam clicking the submit button sorry about that I looked all over for a delete button i didn't mean to spam up the feed.

okay i did what you said and when i try to launch from quake spasm it says "can't load test map.bsp" (my map name is test map) so i'm gonna tell you guys all the files where i have this gui pointing to.

i have source maps pointed to quake/id1/maps/test map
i have quake engine pointed to quake/quakespasm

working folder is pointed to steamapps/common/quake

output folder is poitned to quake/id1/maps

god i just wish this would fucking work 
Don't Use Spaces In The Map Name 
And dont worry, we've all been there. 
Lemme Try A Differen't Approach 
Is there a way i can just compile straight from trench broom???? 
You Can Do It This Way. 
Manual Compile:
Put qbsp.exe, light.exe, and vis.exe in a folder with your .map file.
Drag and drop .map onto qbsp.exe
Drag and drop the .bsp onto vis.exe
Drag and drop the .bsp onto light.exe
Manually cut and paste the .bsp into your ..../id1/maps or alternatively .../<mod>/maps such as AD/maps. 
No Spaces 
You cannot have spaces in a map name. You must use underscores in this case.

-First: Have you compiled the map without errors? Do you have testmap.bsp ?? You cannot play anything ending in .map Files that end in .map are not maps and cannot be played in Quake.

-You should create a separate special folder for your .map files. NOT in your id1/maps folder. This will create confusion. Only finished .bsp files go in your id1/maps folder.

-Confirm that you can compile into -----> testmap.bsp This .bsp goes into your id1/maps. Only now can you play the map. 
OKAY! so i listened to qmaster and just manually did it and i made the level into a .bsp file now i dropped it into id1/maps now i just need to know what i type into quake spasm to launch the level? 
@no Spaces 
no that is the whole problem whenever i tried to use the stupid gui thing and press compile it wouldn't compile my level into a .bsp it kept giving me error messages what is what i've been posting but i just manually dragged the qbsp and the vis.exe and light.exe and made "lavalevel.bsp" 
If your map is called "testmap.bsp" you would type in the quakespasm console: "map testmap" 
Anyone Here?! :) 
I am making a Hexen 2 (Hexen II (for ctrl-F)) map, and I can't for the life of my figure out the "hierarch" spawnflag.

I have a breakable_brush, and another breakable_brush next to it. In Hexen 2, sometimes by breaking a 'foundation' breakable brush, it will automatically destroy some other breakable brushes... i.e. if you have a breakable stone bird bath, with the foundation pillar and the basin being separate brushes, if you were to break the foundation pillar first, the basin should automatically break too, rather than remain floating in the air. This is what I'm trying to do.

I've made both of my brushes into breakable_brush's (separately), and switched on the HIERARCH flag. I've given them a "thingtype" field, and, as directed by the Help file, I've given them both a "frags" field, where the foundation brush has a value of 1 and the basin has a value of 2. According to the Help file, breakable brushes with the lower value will destroy any brushes that have a higher value.

I tried it, and they each can be broken separately, but breaking the foundation leaves the basin floating in mid-air.

I assumed, then, that's because I need to tell the game "these breakable brushes are of the same grouping". I noticed in the Help comment for the CHECKNAME flag, it says:

"link brushes, but also check the name you place in the netname field. Brushes must then not only touch, but also have the same netname to link"

So I enabled CHECKNAME (as well as HIERARCH), and then added a "netname" field, and gave the foundation and the basin the same netname value. ("tmp")

Still doesn't work. They just break separately, and if I break the foundation, the basin remains floating in the air.

How do I do this correctly? 
Don't set .flags or it will override .frags.
I think you might need to set .cnt to 1. 
Hmm I'm not familiar with the dot.fieldname syntax (.flags?)

I'm using the "BSP" Editor, if that matters, but as far as I know, checking any of the flags (like HIERARCH, or ORDERED), uses/creates the field called "spawnflags" to which then it adds to that value in powers of 2 representing the different flags.

In my case, "spawnflags" field is "2" when I only tried HIERARCH by itself, and 2+8 "10" when I tried HIERARCH and CHECKNAME.

"frags" is a separate field -- If setting "spawnflags" overrides anything set in "frags", then how would one go about doing a "HIERARCH" flag breakable set? I thought the whole idea was to flag a set of rubble as HIERARCH, and then, using different values under "frags" determines which pieces break other pieces. (lower numbers destroy higher numbers?)

Anyway, I tried adding "cnt" with a value of 1 for both the foundation and the basin, but it didn't seem to have any effect. I tried that, with, and without, spawnflags existing.

For clarity, here are my properties of each breakable_brush--

Foundation brush:
cnt: 1
classname: breakable_brush
frags: 1
spawnflags: 2 (tried with, and without)

Basin brush:
cnt: 1
classname: breakable_brush
frags: 2
spawnflags: 2 (tried with, and without) 
Targetname And Killtarget 
I should note, btw, that in my actual scene, I have a grouping of 3+ brushes that can be broken, not just two. If I were to only have two brushes, I could use the: killtarget & targetname combination.

I tried that already, though, and it doesn't seem to chain together breaks. That is, if I tell piece1 to kill piece2, and I tell piece2 to kill piece3 ... Killing piece1 will only kill piece2, but leave piece3 floating there. So it doesn't seem to chain them, which is, I assume, the reason for the HIERARCH and ORDERED functions?

Any ideas? 
I had a quick look at the "hcode" (QuakeC), btw, link here: hexen2source-gamecode-1.5.8.tgz

Not sure if you have the full docs, here is the excerpt from breakabl.hc:

It sounds like you were using HIERARCH mode correctly; were the two breakables touching? It looks like that is required for them to be linked.

float BREAK_KILLALL = 1;
float BREAK_NOLINK = 4;
float BREAK_ORDERED = 16;
float BREAK_INVISIBLE = 128;

Breakable window or wall

You can manually control the heirarchy of breaking by targeting all the brushes you want this brush to break.
If you target a light with this object and turn on the "breaklight" spawnflag, it will turn off that light when it's broken. The light will default to 300 if no lightvalue1 is given.

killall - when killed, the brush will kill all connected brushes
hierarch - link all brushes in a hierarchy. The hierarchy priority is set in the
frags field of each brush. Lower numbers will kill higher numbers. If
brushes share the same priority, they will die at the same time.
nolink - don't automatically link this brush with other brushes (use only manual targeting to link)
checkname - link brushes, but also check the name you place in the netname field.
Brushes must then not only touch, but also have the same netname to link
ordered - like hierarch, except that no matter which brush you kill, the brushes
will always break in a certain order. The order is set in the frags field.
The brush with a frags set to 1 will break first, brush with frags set to
2 will break second, etc.

translucent - you can see through it
invincible - can't be shot and broken, but will break by linking
flag - order number
thingtype - type of chunks and sprites it will generate
0 - glass (default)
1 - grey stone
2 - wood
3 - metal
4 - flesh
5 - fire
6 - clay
7 - leaves
8 - hay
9 - brown stone
10 - cloth
11 - wood & leaf
12 - wood & metal
13 - wood stone
14 - metal stone
15 - metal cloth
16 - spider web
19 - clear glass
20 - red glass

health - amount of damage item can take. Default is based on thingtype
glass - 25
grey stone - 75
wood - 50
metal - 100
flesh - 30
fire - 999
clay - 25
leaves - 35
hay - 35
brown stone - 75
cloth - 35
wood&leaf - 35
wood&metal - 75
wood&stone - 65
metal&stone - 90
metal&cloth - 60
others - 25

abslight - to set the absolute light level


First, thank you guys for trying to help, and I'm happy I found this board and happy that people still mod for these games.

I'm still having trouble with this HIERARCH flag though, and I've taken some screenshots to show exactly what I have. I made a new couple of test brushes to test this with as little unknown factors as possible. The brushes are indeed touching, but I can't help but thinking I need to "group" them somehow with a field, no? How can it know that the foundation must break THAT block on top of it, or, does it iterate through every single breakable_brush in the level, and automatically make the connections in code after determining which ones are adjacent? That seems unlikely to me, but definitely not impossible.

Here's what I have: 
So... I figured I could look up one of those BSP decompilers, decompile a Hexen2 bsp back into a map, and just see how they did it (with the bookshelves, etc)

I tried "debsp.exe" (Has the Return to Castle Wolfenstein logo). That one says you need BSPC.exe in the same folder, so I found that, first. That one reports that it "Is not a valid RTCW map, but it decompiled the BSP into a MAP nonetheless." Except; no it didn't, there is no new map file there.

I tried "BSP2MAP.exe". That one takes a long time to run, and displays promising vertex information scrolling at lightspeed in the CMD window when I try to decompile a BSP map. But then it just gets to the end, tells me how many seconds had elapsed, and there is no map file there. I feel like it's quitting prematurely, or else I would imagine it would report in the CMD log that it had successfully exported a new file.

I then realized you can run BSPC.exe by itself (without debsp.exe), so I tried that. That one reports it attempted, by first allocating some memory, and then reports "ERROR: Odd lump size". No new map file.

Btw, I tried all these on:

I just want to see how their ents are set up. :(

I'm a little confused why these decompilers all failed to create a map file? 
So building a map, its a castle there is so many different paths you could take, iam trying to make the level more of an open sandbox that gradually opens up rather than a linear design.

maybe thiniking hiding 3 orbs you need to destroy to bring down a forcefield on the final area.

would it be so bad if entire side areas were just devoted to getting better weapons?

Maybe hide keys in the map just so you can access the vault or armory for the best secrets.

kinda dont really care about rocket jumps either, if you want to speed run it by all means go for it.

What would you do gameplay wise with a very open ended map? 
The hexen 2 .bsp format is slightly different than quake, I'm guessing that none of the Quake BSP decompilers will work on it. (RTCW is Quake 3 engine which is also different).

What should work is if you grab my Q1/H2 compile tools from <a href=">here</a>. Extract them copy the bsp's to the same directory, and open a command prompt in the same directory, and run:
"bsputil --extract-entities demo1.bsp"

This should generate a demo1.ent file that you can open in a text editor to check out the entities. 
also thinking of coding variables, i had this really cool way of chaining scripted variable outcome events in duke3d via a shooter and breakables that activate when broken.

so you set up a nail shooter, far away of the map, and put breakable brushes in the shooters path, as the shooter activates it will take out brushes in the chain, some are just duds to delay activations, then you add in 2 doors that close / open based on your postion in the level, which will give the variable outcome when one door closes blocking a chain and opens another door with a different script chain with the variable outcome. 
Target And Targetname 
I feel very stupid.

Thank you for that tool - (I actually already had it downloaded today, but was unaware of the extract entities command)

After finding the shelf entities and looking at how they were set up I made the realization:

Previously, since I knew - for sure - that breaking certain brushes in Hexen 2 could, in turn, potentially break MULTIPLE brushes, I automatically assumed that they used the HIERARCH flag. Because there are more than just two ents involved, I assumed the target/targetname combo was inadequate.

I was wrong - Breaking a shelf (i.e. "shelf1"), just targets multiple ents, all with the same targetname ("shelf1").

Oh boy...

So they never used HIERARCH, at least, not in demo1.bsp

I will assume, for now, that the HIERARCH code doesn't actually work, but, if I come across a spot where it is indeed used in-game (which I could now verify with your ent export), then I'll post back here. (Note: ORDERED *does* work, and is used. It can be seen on the bridge in demo1.bsp)

Thank you!

On another note, would that mean I am out of luck on the bsp-to-map decompilers? Even if not to examine ents, I might need to look at how something else was done later on. (I know this can be an iffy subject, but the goal here is only learning, rather than stealing or modifying Raven's work) 
here is example of variable outcomes

if you walk over the yellow qsymbol before the red quake symbol, you will change the outcome, if you walk over the red tile first you will get a different outcome
no external coding, just chain reactions made from stock map tools. 
few overlooked fixes with this new version

depending on which quake symbols you stand on first will decide whether a shambler or vore will spawn.

no external code aside some quoth tools. 
Hexen 2 - Ambient Sounds, Other Than The Listed Ones? 
Another Hexen 2 mapping question --

My level has a mix of physical geometry torches (with i.e. light_flame_small_yellow sitting on top), and the full "model" torches which include the torch itself and the flame all in one model.

For both the full model torches, and the light_flame_small_yellow (etc) versions, their light value can be manually adjusted, which I have taken advantage of.

However, the full model torches emit no sound - only the geometry torches emit the torch sound. (actually, of course, it is the light_flame_small_yellow that is hard-coded to emit the torch sound)

I noticed this while playing single player Hexen II also, and always thought it was weird. The full 3D model torches were dead silent, and the torches creates with geometry + the flame model on top made sound.

Naturally I assumed I can just add a "sound_ambient" and add a torch sound, near all of my silent torches. However, the ambient sounds you can choose from in sound_ambient seem hard-coded too... They don't include all of the sounds in the game:

"soundtype" values :

1 - windmill
2 - dripping, echoing sewer water sound
3 - dripping water with no echo
4 - subtle sky/wind
5 - crickets / night sounds
6 - birds
7 - raven caw
8 - rocks falling
9 - lava bubble
10 - water gurgle
11 - metal
12 - pounding
13 - random moans and screams
14 - creaking
15 - chain rattling

Is there any way I can get around this, and have those silent 3D model torches emit sound also? 
Set key|values:
soundtype | 0
noise1 | "raven/flame1.wav" 
Just place an entity and rename it to FireAmbient.

Be sure to caputalize the F and the A. 
Ahh.....I don't suppose you have seen an error like this before?

Not knowing how to make a blank Entity, the first thing I noticed was that even BSP/geometry has a classname - "worldspawn". I made a new cube, and renamed worldspawn to FireAmbient. The block stayed as a blocked, so I immediately deleted it.

Then I tried the "raven/flame1.wav" method. First I tried it without quotes, then with quotes. Both attempts gave me that error above when I tried to run my map - and since I assumed the problem was those torches, I removed them, but the error stayed. It could be a coincidence but it's probably more likely that I've done something (wrong) that the editor/engine didn't like.

I noticed you can open up the .map file in Notepad, but I couldn't see anything that looks corrupt or wrong, like an "empty" entity or anything, but then again I might not know what to look for error-wise. :( 
And unfortunately I have no backup of the map. I can open it up in the map editor, but I can't run it in game currently 
The engine needs to have the sound precached before you can use it (ya I know why not just precache on the fly, Darkplaces does). Typically something like light_small_flameyellow will precache its flame model and sound. Put one in and see if that helps. Also don't use quotes.

To make any point entity:
Add something like info_null
Rename it to desired function name, in this case, FireAmbient.
Not sure what editor you are using but should be able to edit the entity name regardless if it is in the fgd or not. 
You didn't rename the only brush entity named worldspawn did you? If so, then your map has no actual map. Check the .map in nofepad and see if the top emtity is named worldspawn. Worldspawn is what all the non-entity brushes use. 
Ah! Ya, you renamed worldspawn. Worldspawn precaches all the models and sounds so thats why you have a precache error.

Um, not sure how you did that. What editor are you using?

You may need to in the editor:
Copy all map contents
open a new map

To get worldspawn back. 
We're Back!

I opened it in Notepad again and checked the top/first entity - yes, you were right - the top entity looked like this, in my map:

"wad" "demo1.wad"

I changed it to

"wad" "demo1.wad"
"classname" "worldspawn"

And the map works again :)

The editor I'm using is called "BSP" by Yahn Bernier. To be honest, I like the editor a lot. I haven't had many issues with it until just then. I find it easier to create and manipulate brushes than in Hammer, which I used to use for Half-Life/Half-Life 2, and EXCEEDINGLY easier to create and manipulate brushes than in UnrealEd 1.0, which I used to use for Unreal and Deus Ex.

Normally, in this ("BSP") editor, I click on a thing to highlight it, and I can edit its fields in the properties window on the left, and (I assume) it only changes that single entity. I created a new, floating block, selected only that block, and renamed its classname to FireAmbient. After realizing that nothing happened (the block remained a brick-textured block), I deleted it. Somehow I suppose that messed up worldspawn for the entire map. :)

Here is a shot of the editor:

In the past, I had tried setting up some other editors first, for Hexen II - I know one of them I definitely tried to set up was called QuArK. I couldn't get it set up properly. "BSP" was the only one I finally figured out how to set up for H2. 
I tried to find BSP Editor one day but couldn't find it. Where did you download it?

I just stick with JACK/Hammer. TB2 is pretty cool, though, you should try it.

Did FireAmbient work? 
Also, the "FireAmbient" entity way worked, however, I thought it might be better to use the method you suggested first, to give the actual torch soundtype: 0 and noise1: raven/flame1.wav

That way (with the raven/flame1.wav) didn't seem to work though, is there maybe another field that it needs to play the sound, like a sound_radius or something?

Also, is there any way you could suggest that I learn about all these hidden variables? It seems to me that it's important to know how to modify values beyond what the editor 'wants' you to see.

Thanks again for the help : ) 
Source Code 
I've never actually played Hexen II (looks interesting tho), but the hcc source code contains all "entities".

Each entity is actually just a function name in the code. When a level is loaded, all entities are found and their corresponding function is ran. You probably won't find FireAmbient on any fgd or entity definition file because it was really only intended as a way to quickly add the ambient in the code fotr all the fire lights without as much copynpaste.

Source can be found here:

sound.hc has the code for sound_ambient. 
No joke Hexen 2 is one of my all-time favorite old games. I liked Hexen 1, but I actually have a lot more fun playing Hexen 2. I think it has to do with that in Hexen 1, a lot of the levels/worlds start to feel like abstract ideas rather than actual, physical places. In Hexen 2, you have physical "real" landmarks, like a castle with a drawbridge, a mill, a pasture with trees, a medieval butcher's shop with a meat cellar, etc.

Some levels (like Winnowing Hall) in Hexen 1 had seemingly "real" locations too, but once you get to the HUB in H1, it's like: "This is the ice world" "This is the fire world". They just seemed a little abstract.

Furthermore, in the Quake engine, you can sprint around really fast (at admittedly ridiculous and unfair speeds if you exploit it - there is no stamina bar) and jump and dodge projectiles and stuff.

Most Hexen 2 levels have the format of: Bring you past a locked door, or puzzle that you can't solve yet, and also give you another pathway. The puzzle piece/key being down that pathway, which means you have to backtrack to the locked door after you find it.

Apparently, (I read some reviews) some people hated the backtracking and puzzles aspect of H2. They got frustrated, and either gave up and stopped playing, or cheated to skip past. I never had such problems. I think the first time I beat Hexen 2, I was like 12 and I did it without guides. Some puzzles I never understood the logic for, (there is one puzzle in the Egypt world where you have to align two wheels to constellations or something) but can be solved by guessing and checking.

i.e. A+A no, A+B no, A+C no ..... D+E no, D+F no, D+G "sequence complete!"

And personally I love the art style and enemies of H2. They all look awesome. And just like in Hexen 1, you feel very "alone". There's no NPCs or shops, just you, and a bunch of demons and weird puzzles in creepy locations. 
Core Function Calls? 
So I loaded up all of the .hc files in Visual Studio so that I can easily ctrl+F through all of them at once -

The definition of FireAmbient is :

void ()FireAmbient =
precache_sound ( "raven/flame1.wav");
ambientsound ( self.origin, "raven/flame1.wav", 0.50000, ATTN_STATIC);

Well, I know that I already have "origin" defined in my wall torch (it's automatically there), and I know that that second field is "sound1" which I've added too. I don't know what the 3rd field (0.50000 value) is, but I assume it's either something that controls the radius or volume (or both), and I assume ATTN_STATIC is for sounds that just constantly repeat (not sure), but I know the value for it is "3", but I don't know the field name that it goes to.

So I figured I would just look up the function definition for ambientsound() but it's just like... not in any of the files? And neither is sound(). There are plenty of CALLs to those functions, and the DECLARATIONs are there:

void (vector a, string b, float c, float d)ambientsound = #74;

-- but no definitions.

Btw, placing the separate FireAmbient entities works just fine, but I was hoping to get the ambient sound to work by coming straight from the torch entities instead -- really this is mostly for learning. Now that I know I can look at the code, things are much clearer, and if not for these core function defs missing, I assume I could've found out what those missing fields were. Any ideas? 
Also, just to avoid confusion:

sound_ambient() IS defined in sound.hc. But sound_ambient() calls something called ambientsound(), which is the one I can't find the definition for anywhere. 
After googling a lot I finally found this piece of code in some Quake dev forum post:

ambientsound (self.origin, self.soundpath, self.vol, self.attn);

This would imply that those missing fields (3 and 4) I was looking for were simply "vol" and "attn". Unfortunately when I tried them -- I added "vol" "0.5" and "attn" "3", which are the same values that FireAmbient would use -- I got "VOL is not a field" "ATTN is not a field" in the Hexen 2 console upon loading the map.

Builtin Functions 
They refer to #78, #65, etc. Those are predefined by the engine.

Ah, no, you can't add sound1 to the torch. The torch already has its own function. If you make a FireAmbient entity you'll have to put it next to your torch. 
Darn, well that's just as well, it works nicely that way, but was curious as to how flexible things can get with the custom fields, etc

Thanks once again, I've already learned a great deal in the past few days. I guess I should probably register here by now.

Hopefully this will all result in a new custom mission for H2, but we'll see. I've mapped for a lot of older games before, but mostly I made multiplayer DM/TDM maps, which are admittedly a lot easier to make since you don't need to worry about scripted events, puzzles, AI etc, and are always limited to one single map. 
Some trivia. The guy who created BSP was hired by Valve and has been there for 19 years. So BSP most likely landed him his job there. And I assume he worked on Hammer as he's a tools programmer for Valve.

I've used BSP a little bit here and there. The primitive shapes are very handy. 
That is pretty awesome. I haven't used the primitives much yet. I find the vertex-drag mechanic and clipping plane feature pretty cool.

Vertex-dragging in UnrealEd 1.0 (and even in UED 2.0) is pretty horrid and painful. :) 
Help With Transparencies 
So I've got the Frozen fever...

I'm having trouble with using the alpha key on the blocks of ice in Elsa's castle. For one its really difficult to light them with any consistency. Second problem is much worse, when one transparent brush is in the player's line of sight in front of another transparent brush, the brush behind will "bleed through" the first brush making it invisible.

Look at this image, the ice bridge is transparent, and the crystals behind it bleed through:

It seems like something from the Sega Saturn that couldn't deal with multiple transparenices... This is Quakespams v0.92.2. Any ideas?

Not too happy with how Frozen looks in Quake, but wanted to release this in the Christmas jam. 
Transparency depth is a problem that games can struggle with today even.

Most quake engines don't really handle it very well. 
transparency depends upon the engine, the qbsp, lightmap/surface sizes, texture order, view direction, entity order, etc

if you take the stance that overlapping is bad then an engine could draw transparencies as depth-only, followed by proper alpha blending with depthfunc(equal). This avoids all the above issues(except engine, obviously). FTE uses it for viewmodels and q2 powerups both of which its awesome for, but it'll look much worse where overlapping is actually intended.

you might want to try using separate func_walls for the different parts, as that should be a little more deterministic (instead of only one wall appearing infront, the entire thing will, yay).
Ultimately transparency sucks and you'll get different results in every single engine, so good luck with that.

the other option is to increase the (vertical) distance between the spire and the stairs, avoiding noticeable overlaps that way. 
Elsa's Not So Transparent Castle... 
I didn't realize how cumbersome and complex transparency effects were. Thanks for the info Pritchard and Spike. I do think increasing the vertical distance between the bridge and spire is a good option. Although I don't think an entirely transparent castle is feasible anymore, the bleeding is just too jarring.

I've already started making some new different coloured ice textures as an alternative, and I think it will make the lighting better, with the castle non-transparent, and perhaps only a few bits here and there semi-transparent for effect. Aagh, and it only took a few seconds to make the castle in the film... 
Those stairs are insane. Good stuff Redfield. 
Merge Wads? 
What is the best tool for merging a few wads into a single wad?

I extracted a wad from all of the medieval-themed BSPs in Hexen 2. And since there are some textures shared across those levels, I'd need to overwrite any duplicates. 
I've tried "SLADE3" but it seems to crash when loading the 5th wad, and I could maybe get around that by combining them one at a time and saving the combined wad as I go, but it also doesn't seem to have a feature to remove duplicates. It has a feature to DETECT duplicates, one by texture name, and one by reading the data, but the "Remove duplicate textures" command from the drop-down doesn't seem to work.

Is there a simpler CMD tool that can merge WADs? (and also properly deal with duplicate textures)

I also tried something called SlumpED but it doesn't support H2 WADs 
Re: 19071/merge Wads 
Re: 19071/merge Wads 
Alternative answer: TexMex

1) Open wad (or bsp, automatically converted to wad)
2) File --> Import --> select next bsp/wad
3) Repeat as necessary
4) Profit!

Works great on Wine too. 
Thank you :) I had a little trouble with Wally and being left with duplicate textures still, that's most likely my own fault, but was able to merge wads with TexMex

In case anyone uses this in the future for Hexen 2, the textures will display all muddy inside the tool (palette difference with Hexen2-Quake), but the actual textures are actually fine.

Thanks guys 
Compiling Quake 2 Maps... 
I learned how to compile Quake 1 maps by dragging and dropping the map file into the various different types of compilers. And yet this doesn't seem to work with the Quake 2 compiler tools I found after doing a bit of googling for them. How exactly do I compile Quake 2 maps? Is the process different than for Quake 1 maps? 
Making Complex Shapes In Trenchbroom 
hey guys i was wondering if there are ways to copy geometry from other levels and put them in your level. For example,I wanted to make a arch (like the one from e1m2) and i ended up making a shitty one _here's a pic)
but i can't get any of the arch textures to align to it very well. also does anyone know of any guides on how to make complex shapes with brushes? 
@19077 Trenchbroom Help 
In order to make more than just simple shapes in Trenchbroom it will take a lot of practice and good understanding of both clipping tools and vertex/edge manipulation. Make sure you read and understanding all the keyboard shortcuts for these in the Help Manual.

If you want to see an example of how to make a good arch, I suggest you download this Knave prefab set, which includes the Knave WAD.

Look at the .map to see how the arch is made. I strongly advise you to re-create this arch on your own, using clips, or edge manipulation. Recreate the arch, and then create it again on a different size scale for practice. Make sure you can create this arch on your own, so you can make your own complex geometry.

Aligning the textures depends on if you are using a texture meant to wrap around the curve and/or if you use a texture with bricks on the same scale as each cut in your arch. You need to think and plan mathematically: What is the size of the texture? If it is a 32x32 brick, each cut in the arch should be at least 32 in length so you can fit a brick in appropriately, or each cut should be 64 so 2 bricks can fit, etc. Again, you need to understand the texture allignment tools in TB to play around with wrapping the textures.

Take a look at the .map in the file and practice more. Also you can find .maps in many Quake maps on Quaddicted. 
Basic intro to arches I made last year: 
Quark will easily make your choice for quake1 or 2. As will GtkRadiant do.
The one tricky thing is to make paths to tha compiler and game.
In quark there's a list where you can choose the game. Further it needs to know where the quake2 compilers are.

You can load the compilers here, as well as some more info about q2 mapping. 
One thing that will help is to know that a basic arch is just a semi-circle, and a circle's curves are symmetrical. In your arch, your first part of the curve goes "up 2, over 1" (that might be something like, up 16 units, over 8 units, I can't tell)

That means your LAST part of the curve (at the top of the curve, where it starts to flatten out, needs to be the reverse of that: Up 8, over 16. That should make it look better already.

Another alternative to above is you can start with a large solid block exactly the size of the texture of the arch, and start making horizontal splits/cuts when the arch texture requires that the geometry needs to start bending, keeping in mind that the cuts/distances should be symmetrical

I have not used Trenchbroom which I assume is what you're using but here is what I mean:

1. Block size of arch

2. Split block where bend starts

3. Clip away non-curved part

4. Split arched part horizontally, absolutely as close to the "middle" of the 90-degree arc is, and clip it away. The height and length of that clipped away part NEED to be the same distance. (Unless your arch is intentionally ellipse shaped)

5. Subdivide (horizontally) the remaining blocks another time. Again make sure they are perfectly mirrored and the cuts are symmetrical, you'll see what I mean by color coding in pic. Then clip/vertex-edit them away 
Btw if the 2nd-to-last pic with the color coding isn't super clear, or if numbers are easier than pictures, then, in my arch, the numbers are symmetrical as such:

up 4, over 1
up 3, over 2
up 2, over 3
up 1, over 4

Obviously that's not the only configuration in the world to make a nice arch, but the point is that it's symmetrical (again, unless you're doing an ellipse/stretched arch)

You could have an arch with only 3 surfaces on the 90 degree arch... something like this would look fine too (but lower-poly)

up 3, over 1
up 2, over 2
up 1, over 3 
I already found that site you linked to and I downloaded those compilers. I just don't know how to use them with Trenchboom which is my editor of choice for Quake 1 and 2. 
and I do believe TB is a good editor, you could survive with Radiant.
It has a kind of same way using the view editor.

On the other hand, setting pathways is clearly provided. I think the only thing you need to do is change the Radiant paths with the trenchboom. 
Is May Sound Ridiculous But 
are there any volunteers to beta-test my old map bod.bsp(2008)

some time ago i'm just happened to replay this map, and realize how bad and bland the lighting is
so i decided to rebuild the lighting, while re-building the lighting i've added a couple of new areas, nothing exeptional , just make the map a less corridor feel
yeah the map is still bad and i'm to lazy to fix all of misaligned textures 
Keep Getting Compiler Errors 
Here is a screenshot. What I am doing wrong? 
try removing the bsp file so qbsp is launched with just the map file as a parameter. 
ie delete "stroggbqq.bsp" from the end of the Parameters box.

Also it's odd to have a map extension of .map-compiling 
You probably should've posted in the Screenshots & Betas thread, but sure, I can test your map. Just upload it somewhere for me to download and I'll get to it. 
Still Not Working... 
I changed it to this and I still get an error... 
agreed wrong forum -- but I'd be happy to test out your work 
q2's qbsp has annoying pathname rules (wals instead of wads - needs to read texture sizes even when they're not embedded).
it expects your .map to be in a path equivalent to $someprefix/quake2/$moddir/$somepostfixthatmatchesyourmap
(it'll prefix with the working dir if its a relative path)

you can probably trick it by using a load of /../s after the mod dir. still annoying though. 
What Do The $ Symbols Mean? 
Am I suppose to include them? 
think he's just saying that it's some string name... 
Count me in, see emailbox. 
SetQdirFromPath: no Quake2 in C:/etc is an error warning.
It seems the editor looks for the map.
You made it C:Users.. while I guess it has to be something like C:Quake2baseq2maps
Esrael, Dumptruck_ds, Madfox 
Thank you guys, i have to make some preparations, and let you know, lately today 
Oh Btw 
pay attention to the lighting. as i'm most interested in lighting is it any better than previous version 
Esrael, Dumptruck_ds, Madfox 
can't play test today but will do this evening after work. 
Moving To Screenshots & Betas Thread 
I'll be posting my demos there, so see you there! 
Finding Map Leaks? 
Is there any way to find leaks in your map without having to look for them manually? I remember DoomEdit for Doom 3 having a feature that showed you were leaks are but I did not find anything similar in trenchbroom. 
Both Trenchbroom and JACK have that.
Trenchbroom's is under File->Load Point File. 
Where Do I Find These Pointfiles? 
How are pointfiles generated and where do I load them from? I am mapping for Quake 2 by the way not Quake 1. 
qbsp3 saves it when it detects a leak. It should be in the same directory that it writes the bsp to.

It looks like the Q2 compiler generates a .lin file instead of the .pts that the Q1 tools do. Try loading the .lin in TrenchBroom. 
Almost Got This Working 
Ok I am THIS close to finally having a working map! I was able to get the bsp compiler and vis compiler to work but I am having a problem with the rad compiler. I get this error from it:

#### Executing 'C:\Users\Sveinn\Desktop\quake2compiler\ppro\qrad3.exe'
----------- qrad3 ----------
original code by id Software
Modified by Geoffrey DeWan
Revision 1.04
Compiled for Pentium Pro processors
gamedir set to C:\quake2\baseq2\
reading C:\quake2\baseq2\maps\stroggbbq.bsp

************ ERROR ************
Error opening C:\quake2\baseq2\pics/colormap.pcx: No such file or directory
#### Finished with exit status 1

There is no folder inside my quake 2 directory called pics nor did I find anything called colormap.pcx. I am using the steam version of the game. 
It looks like qrad3 needs that colormap.pcx to be extracted from the pak file.
Found a copy of it online:

try putting that in a "pics" folder in baseq2 
That did the trick the map compiles now! But for some reason it's completely dark and the lights (those green boxes called lights) don't seem to work. Do lights work differently than in Quake 1 (when I made a quake 1 map the green light boxes worked just fine)? 
Regular Texture Interpreted As Clip? 
Is there something wrong with the Daikatana texture "mtn2"? When I texture a brush with it in TrenchBroom, the editor treats it like a clip brush. So far it's the only texture I've found where this happens.

Or is it a TrenchBroom issue? Or something to do with the name of the texture?

Here is an example of what I mean. The brush on the left is textured with clip, the brush in the centre is textured with "mtn2", and the brush on the right with "mtn" (which behaves normally). 
I recall seeing an issue on the Github tracker for something like this. It is an editor bug and at first glance a very weird one.

I think it should be fine in game, if you can stand having it look like that in TB.

Are you using the latest RC? 
Are you using the latest RC?

Yup. I searched the open issues on github before posting here, and couldn't find anything, but I guess I didn't search very thoroughly. 
It's a bug. I looked for an open issue a while back and had no luck myself. It won;t affect your map though. Just annoying. 
Thanks For The Responses, PRITCHARD And Dumptruck_ds 
I submitted it as an issue on Github just in case. 
The "View" -> "Show X brushes" (hint, skip, clip, etc) system was broken in TB2 RC4. This is the same code makes clip brushes semitransparent. It's fixed in git / will be fixed in the next RC. 
Probably a long shot if anyone knows this one-

In Hexen 2, water brushes (or rather, any brushes that are rendered underwater), have this really ugly warping effect. It basically arbitrarily warps the vertices of the underwater geometry around in a wavy fashion, which is a neat idea, but it makes clipping errors and texture stretching.

As far as I know, the variable for this is called r_waterwarp 1. I tried turning this off in the console (r_waterwarp 0), and in autoexec.cfg, but it claims "Unknown command".

I'm a little confused because I tried a couple other vars from the console commands, like "r_transwater 0" should remove transparency on water, but it also claims "Unknown command"

Here are (supposedly) the H2 console commands

Would anyone know why they don't work? I'm using glh2.exe, from Steam 
Ah, ok. Thanks for clearing that up, ericw! 
Pak Extractor On Linux 
I'm pretty sure I've used Pak Explorer via Wine before, but can't get it to work any more. Any recommendations? I'm using Linux Mint 64 bit. 
@ Former_total_newbie 
I think the preferred .pak tool is Pakscape, which I've used with Wine in a Linux distro before. Maybe try that? 
If you just want to rip stuff out of a pak file and are comfortable with Python, I made this module a while back: 
damage_inc: Thanks, that did the trick!

Johnny Law: Thanks for the link. I'm not comfortable with any programming/coding language, but I'd like to be. Made a note of this; I might try to use it later just as a learning experience. 
All righty. :-) BTW if you do install that module, it also installs a command-line utility so you don't need to write any Python code to do simple things with it. 
Noted, thanks very much! :) 
Water Warping 
Here are shots of the 'clipping' with Hexen 2's water warping effect (which I assume, to be related to "r_waterwarp 1")

As you can see it warps around the tris of any underwater geometry. I'm not sure if this was in Quake (Quake 2?) also, but I'd like to disable it. "r_waterwarp 0" in console returns "Unknown command" but I am fairly sure that's the right variable

If no one ends up knowing about this one though then I'll have to live with it :-) 
this ugly warp effect and the fact that r_waterwarp is ignored are both problems in GLQuake as well. It's fixed in a lot of modern quake ports but perhaps not in the Hexen 2 port you are using? 
What does Port mean in this context? I'm using vanilla Hexen II, well, glh2.exe. Back in the day (when I had my disk) I remember there was just a "h2.exe" but the Steam version only comes with glh2.exe 
"Port" as in source port, modified engines made by the community. is the Hexen 2 one I know of. 
I'll have to patch that then, looks like they fixed a lot, thanks : )

I've run into another water-related problem and I'm very confused now. It seems that if your map has leaks, then VIS will not run, and water will look weird -- That is, it will look weirder than it is normally supposed to look. It will be 100% opaque instead of transparent, and you can see other parts of the level if you look into the water... Pictures work better here:

The water is definitely not supposed to look that way. It's 'supposed' to look like this:

A note -- whenever the water appeared opaque like that, that was an indication that my map had leaks. I was fairly sure I didn't have any... but I slowly 'chunked off' entire parts of the map with giant wall chunks, and deleting any lights, etc that would've been outside the map, to try and find where the leak was. I eventually enclosed the entire map with new, giant brushes, enclosing the large map to a single hallway -- made a test water brush, and it still didn't look right (which means VIS isn't running, I guess)

I thought, then, maybe my map file is corrupt, and I made a new map. Single room, 6 sides, 1 light, 1 playerstart, no leaks, little barrier in the corner with 1 water brush inside ... that's the room pictures in the first three screenshots. Water STILL looks incorrect. What is happening here?

I should reiterate that this wasn't happening before, and water looked transparent and looked totally correct (aside from the vertex manipulation warpy effect of the engine). I'm baffled as to how this could still be messed up on a brand new map? 
Screenshots 2 and 3 look like a map that were QBSP'ed and VIS'ed without transparent water support - the vis data is culling stuff beneath the water surface when the player is above, because it thinks you can't see under the surface, but the engine is using transparency so you can see through and it looks glitchy.

The fix is to run QBSP with transparent water support. I'm not sure which tools you are using but check the docs for a "-transwater" command or something like ythat. If your tools don't have it my quake compiling suite does by default: ; it supports hexen 2 with the -hexen2 flag added to qbsp.

but I slowly 'chunked off' entire parts of the map with giant wall chunks, and deleting any lights, etc that would've been outside the map, to try and find where the leak was.
This works but there are easier ways; TrenchBroom and JACK can load the pts file which should draw a path that goes through the leak. I think you can also load the leak in the engine with the "pointfile" command (in Quake at least). 
"I'm not sure which tools you are using but check the docs for a "-transwater" command or something like ythat. If your tools don't have it my quake compiling suite does by default: ; it supports hexen 2 with the -hexen2 flag added to qbsp. "

To be honest, I'm not sure. I'm using that editor called BSP and - I had used it before long ago on my old computer, but when I tried to install it more recently on my new computer, I had forgotten how I got it all set up to actually work (error messages, missing files etc), and couldn't get it to run. So I just copied the entire folder over from my old computer on a flash drive. The point being that I'm not sure if the compile tools were downloaded separately or what, can't remember, but they are Bat files called Fast.bat, Full.bat, Leaktest.bat, Novis.bat, Relight.bat, Super.bat. I only have a general idea of how it all works and I usually just run Full.bat and then copy the created .bsp to my H2 folder to test it ingame.

The weird thing about the compiler not supporting transparent water is that...well... it WAS, before. I have no idea why it isn't now. In fact, "r_transwater" isn't even a valid command in the H2 console, and I'm unsure of where I could've accidentally turned off a setting like this, since the build files are just Bats that I run from a drop-down from the editor. :[

The easiest thing for me to try first (I only thought of this now), is to re-copy over my BSP editor files, so I'll try that first. 
I suggest using Necros' compiler GUI and Ericw's tools instead of those batch files that came with BSP. You will just have Nercos' GUI running in the background and alt tab to it when you want to compile.

The GUI is the easiest way to compile maps and it's extremely customizable. I recommend reading the entire web page before using it: 
MSVCR120.dll MSVCP120.dll 
GUI program wants these. I have them, but nowhere that I put them it seems to like?

I tried:

same directory as Compiling GUI
directory of .map file (source)
directory of .bsp (output)
directory of the utils (qbsp, vis, light)

(I needed these dlls before for using bsputil, but putting them in the same folder as bsputil solved that) 
Disregard that, sorry. This was a problem of 32- 64- mismatching. The DLLs I have mentioned in the above post, are 32-bit, because other tools that required them were 32-bit. My OS is 64 so I downloaded 64-bit of eric's tools, thus it didn't recognize the DLLs existing. Whoops. :) 
..And for some good news..

The water transparency is correct again now! The GUI+eric's compilers worked out

Thanks, guys.
I KNEW there wasn't a leak, man!

I have no idea why transparency suddenly disabled itself in the pre-packaged qbsp.exe/vis.exe/light.exe that came with my "BSP" Editor, and I will probably never find out either. The next thing is probably to download Hammer of Thyrion but I think I'll work on the map for a while first. :) 
Glad you got it working. take a look at *waterskip in the qbsp readme of eric's tools. if you put that texture on every surface but the top of the water - it really helps with weird water effects. 
Hmm, I used TexMex to add a *WATERSKIP texture to my wad and put it on all the water brush surfaces, aside from the top surfaces - but I still get the wavy vertices for any underwater geometry. Maybe a Hexen 2 specific problem? Or is there something else I need to do?

They worked, though, in the sense that it was still water in-game, and they were invisible - that is, the sides of adjacent water brushes were invisible - but they were actually invisible before, also. 
The "wavy" water is a in-engine feature. Not related to textures. 
My bad, what did you mean earlier with weird water effects being addressed with *waterskip? 
Bad choice of words on my part. What I should have said is that *waterskip can make using water easier and cleaner overall. When you jump in a pool of water you should not see the boundary of the brushes under water. A lot of mappers avoid this by making the brush bigger. Bust sometimes you cannot do this. Much easier and cleaner to use the skip workaround. 
To tell you the truth, I was expecting what you say to happen - originally - when I built my map for the first time. Since I had used the same water texture for all sides of the water brushes, I had wondered if those side faces would be visible in-game. (I do indeed have adjacent water brushes)

It turns out those faces weren't visible though, and the water looked normal (normal aside from the translating vertex effect) - though I'd imagine this may be something dependent on the compiler used (?)

Good habit though. I remember using a "CAULK" texture for basically every brush surface, other than the visible ones, when I was making a map for Return to Castle Wolfenstein in Radiant. 
Custom Monsters And Weapons? 
Anybody know where I can find custom monsters and weapons for Quake 1? I googled it but the only links I found where dead. 
In Mods 
it is your main bet. Go to Quaddicted, search for the ''weapons'' or ''monsters'' tags and when you have found some that you like ask the author if they can be freely used or not.

Apart from the big mods there is only a handful with more than two or three enemies or any new weapon. 
On Quaddicted 
idgames2 archive will have lots of custom mods and weapons...

Quaddicted is one of the few places that it still exists. 
Checkout the Keep mod. It has a very very large amount of custom monsters because I've added in enemies from mods all across the Quake community. Code qc source is provided if you want any particular enemies. 
Need Help With Custom Textures 
I have some textures I want to use in Quake but they are in png format and not in a wad file. I used slade to create a wad file out of them but I just got an error when loading the wad in trenchbroom.

If I have png images I want to turn into usable textures how do I do this? I play my maps in quakespasm or darkplaces so I don't care about vanilla compatibility. 
make sure you wrote a WAD2(quake) and not a WAD3(halflife).

also note that quake's textures are tiny. a high-res png dumped into a wad will be a pain to map with, assuming your editor doesn't reject the 'excessive' size.
remember: 1qu = 1 texel.
(engines will repeat replacement textures on the same boundaries as the low res textures, so if you set up the size of your wad images to be the default size for your texture in quake units then you won't need to rescale images or deal with the lightmap seems that can result from that.)

and make sure that your wad images don't end up with undesired random fullbrights, because those suck. 
About The Pgn's 
I am not using very large textures. I am using these:

Originally they were intended for Doom but I figured I could use them for Quake as well.

And how do I safe a as wad2 instead of a normal wad? When I choose "safe as" I only get the option to safe as a wad file and don't see any other alternative. I am using Slade3. 
You can find wad files with those textures already made for q1 at Quaddicted:

thanks for that mate! 
Quake2 Loadbrush Error 
Hey, newbie in custom mapping
Trying to test my first quake2 test map .bsp and I get this error when launching KMQuake2

CMod_LoadBrushModel: maps/experiment1.bsp has wrong version number (3468 should be 38)

I know that the issue is texture related. the map has one texture, tried to change it. Does KMQ2 load the textures from pak0 or someplace else? Maybe i need older version of the Q2textures .wad?
Compiled it with tyrUtils.

can someone please HALP! 
Not texture-related. You used the wrong compilers, Tyrutils are not for Quake2. Q2map.exe is what you need, or some newer modified ones like these, for example: 
Rectangular Prism 
So guys I use trenchbroom for map editing and i was wondering how do i make a rectangular prism?? is there any guides on how to build more complex shapes in trench broom such as prisms? 
The Trenchbroom manual is literally (not hyperbole) the single best Quake related manual you will ever see. It will show you amazing things like vertex/edge manipulation etc. (what you need in this case) Just look for the help menu item. That will launch the manual. Kristian used to have a version online but I don't think it's up any longer.

Seriously take a 1/2 hour of your time and take a read. And FYI I have to refer to the manual quite often and forget or miss things... this it what manuals are for and the dev took the time to write it for YOU. 
Clip It 
Use that clip
Give the brush the nip
When a problem comes along
You must clip it!
If the brush is too long
You must clip it!
When something's going wrong
You must clip it!
Now clip it!
Into shape
Shape it up
Get straight
Go forward
Move ahead
Try to detect it
It's not too late
To clip it!
Clip it good! 
U just won func!! 
i went threw my trenchbroom file and i found the manual but all it is are gifs i don't really understand what theya re showing me there isn't just a writtten guide somewhere? 
It's a written guide, open it from the help menu inside TB 
dude thank you so muchy man i love the quake community you guys are not condescending at all and are so helpful man thanks a bunch my dude. 
dude thank you so muchy man i love the quake community you guys are not condescending at all and are so helpful man thanks a bunch my dude. 
Making Solidity Optional In Custom Models 
Thanks, Preach, for helping me make my first mod with custom models! :) If I finally finish my next map, you can be sure to be in the credits!

I also found out how to make the models solid, by adding the following line to the misc_model function:

self.solid = SOLID_BBOX;

and by adding the appropriate "mins" and "maxs" keys for the entity in the map editor.

But I was wondering if there was a way to allow the mapper to decide whether he wants the misc_model entity to be solid or not (without making two separate misc_model functions, where one is for solid models and the other for non-solid).

First I tried to do it by removing the above line from the code and adding the key "solid" to the custom entity in the map editor, with the value "SOLID_BBOX".

It didn't work, so then I thought that maybe I'd have to rephrase the code into something like

self.solid = (code that reads a key from the entity with the desired SOLID_NOT/BBOX etc. value, and then outputs it);

Am I getting somewhere here, or are my intuitions just plain amusing to you seasoned QC coders? xD 
Mins And Maxs Unnecessary? 
I tried to circumvent the problem by setting the mins and maxs values far away from the map to place the bounding box far away from the entity, but it didn't seem to work. I guess Trenchbroom issues the bounding box to the model from the entity definition file?

Are the mins and maxs keys completely unnecessary then?

Should I just solve the problem by placing skip textures inside the models that I want to be solid? That way I could also have the models cast shadows. 
Whoops, I meant brushes with skip textures. You probably knew what I meant, but just had to make sure. 
SOLID_BBOX is a macro that just gets replaced with the number 2. In your level editor, assign one of the numbers below to solid.

From defs.qc:
float SOLID_NOT = 0; //nonsolid
float SOLID_TRIGGER = 1; //trigger
float SOLID_BBOX = 2; //brush entities
float SOLID_SLIDEBOX = 3; //monsters
float SOLID_BSP = 4; // the world

All of the ALLCAPS variables get replaced by the number or string they represent.

Mins and maxs I believe are automatically generated from the model size and shouldn't be necessary. 
Slidebox Is Interesting 
I've toyed with the idea for using it for ice or even as a type of player freeze brush since it prevents jumping. In my Keep mod I have a func_slidebox that can let you do that. 
Although what QMaster posted will work, you can make it a bit more user-friendly using spawnflags. This will make it so that mappers can switch between solid and not using a tickbox. The code you want is something like:

if(self.spawnflags & 1)
self.solid = SOLID_BBOX;
self.solid = SOLID_NOT;

The part in the bracket checks if the first spawnflag is ticked, and the second line only happens if that is true. The fourth line only happens if the box is not ticked, because of the else keyword.

If you want to use a different spawnflag (maybe for another feature), it's worth knowing that the boxes are numbered in a surprising way:
and so on, doubling each time. So if you want the feature to be controlled by the fifth spawnflag, you would change the condition to

if(self.spawnflags & 16)
E1m1 Door 
So is there a tutorial/.map file I can shamelessly copy paste from to get the horizontal opening doors from e1m1? The base style ones. Seems like very complicated brushwork. :[ 
You can get the original map sources here: 
Newbie Question 
just started making quake maps using J.A.C.K. a couple days ago and for the most part I've been able to figure out stuff on my own, but I'm having trouble with func_trains. I'm trying to trigger an event where a platform with a monster on it rises up from the floor but using func_train isn't working the way I want it to. I created a trigger to move my platform) from corner 1 to corner 2 but whenever it reaches corner 2, instead of stopping, the platform just disappears and gives me an error with a bunch of information abut the train.

I'm wondering if there's another method for this kind of thing or if I'm just doing it wrong? 
Have corner 2 target corner 1 but use "wait" "-1" to stop it permanently. 
awesome, thanks 
You really should learn by doing it. It's really not that hard and you'll learn a lot about whatever editor you are working with. Hint: use the clip tool.

Copy and pasting brushwork is weak (unless it's for a Speed Map and you've done the same creation before, which I think is fair.)

Challenge yourself, when you succeed you'll be a better person. 
How To Clip A Base Door 
...using Trenchbroom. 
I missed a brush (see if you can find what I did wrong) but hopefully you'll figure it out on your own. 
How To Clip A Base Door Revised 
Sorry for all the posts - this is a revised video.

I need some coffee. 
Fullbright Textures In Trenchbroom 
Just started mapping a few days ago, and have become hopelessly addicted. Oops. I can't figure out how to make a fullbright texture. is there a way to do so?

Thanks in advance. 
why do items placed in the editor sometimes not show up in-game? like I'll try to place two ammo boxes next to each other but when I boot up the game one of them isn't there. 
Theyre too close together. Move them apart and theyll both load. 
You don't make textures in TB actually. You can create textures in Wall or TexMex and most likely QuARK.

General info here: 
It's also possible to make any texture technically fullbright by turning the brush it's applied to into a func_wall and using the necessary (and usually compiler-dependent) entity fields to make the func_wall still cast a shadow and be lit properly on the other faces, but have the one face you want ignore lighting and display at a constant brightness.

Granted, this is only really a solution for smaller details (computer screens, gauges, eldritch runes, etc) as turning giant parts of an actual wall into func_walls so you have holes going everywhere is generally not a great idea for vis time and framerates. 
AD Func_breakable Via Trigger 
I made func_breakable to the my AD map, then connected trigger to it. Breakable object has breaks by trigger, but also player can make breaks it by his weapons.

How to make a ban for the break object by the player's weapons? I can make greater health value (eg 65000), but is there any other way? 
Set the spawnflag to 2 (= nodamage) so player can't damage it. 
More Questions - Make A Brush Give Off Light? 
After some though, I realized that making the texture fullbright isn't the solution to my problem. I need to make the brush (some lava) give off light.

Is there a way that this can be done? 
Haven't tried this functionality myself yet, but ericw's compilers seem to support this kind of surface lighting : (check bottom of the page.)
Not sure if it'll work right with a large surface. 
Thanks mate. 
I Really Need Help With This.... PLEASE 
Okay so I have a room that is going to turn of all the lights once u pick up the key. Then it will teleport 3 monsters, every 3 seconds from 3 different spots until it has teleported all 9. The lights wont come on until you kill all 9. The problem is, the first 3 monsters teleport in just fine... yet the next 2 pairs teleport in at the exact same time... even though I put a delay of 3 seasons on the relays. They teleport in after 3 seconds, but the 3rd wave instantly teleports in and doesn't delay for some reason- instantly killing the 2nd wave. Any ideas guys? 
Did you accidentally set the third triplet of trigger_teleports to have the same targetname as the second set? Also, uploading the .map file often helps people diagnose what's going wrong. 
I'll Take Guesses In ALLCAPS Below 



target|wave3 (SHOULD NOT BE wave2)
delay|9 (SHOULD NOT BE 6)

Maybe? Hard to tell without the .map file. 
Ad - Particle Effects 
So the stock misc_particle effects available in the AD fgd are usable in the sense that Quakespasm/Mark V will see a particle style effect, and Darkplaces/Quakespasm Spiked will see a Darkplaces style effect.

Each predefined defined misc_particle has a corresponding Darkplaces style effect that will be seen in QSS/Darkplaces. However, if you make a particle_template and create your own effect using various particle sprites, is there any way to see this effect in QSS/Darkplaces?

It seems the only thing I can do is attach a dpp_name (eg. DPP_ITSPORTALSIDE) and substitute a Darkplaces effect for my custom effect. The custom particles will not appear in Darkplaces or QSS. This is what I did in ad_paradise.

Is there any way to see a custom particle effect in QSS or Darkplaces? 
Entity State System In AD 
I tried to use AD's entity state system in my map for disable (NOT remove from world) and later re-enable func_plat. But I get a not working func_plat already when I starting the map (before the player touches the trigger, which disables the my func_plat) :( And removing all added enititirs couldn't help to fix it problem.

How to right use state system for disableenable func* enities. 
If your func_plat has a targetname, it needs to be triggered first. 
Thanks. I enabled the flag "start lower" and it worked, 
Bah, To H*ll With It... 
@#19191, I will answer my own question:

No you can't see a custom particle style effect in QS Spiked or Darkplaces. Unless through the action of some obscure cvar I don't know about.

In this case it is pointless to use the particle_template system, as probably no one will see the effect. With the release of QS Spiked and the popularity of Darkplaces, I consider it a worthless novelty to use this effect.

Just going to go with the included particle effects that work across all source ports. Back to mapping... 
Impact Of Texture Scaling On Lighting 
Since I'm no texture artist I try to use textures from an online source which start really large(1024X1024}. If I convert to the Quake palette and then shrink down to 128X128 they of course look like poop. But 256X256 is often doable.

Thing is, then in the editor I have to adjust scale by .5(X and Y) to get back to 128X128. I've read that scaling up is bad but scaling down also has an impact on the lightmaps correct?

My questions are: How detrimental/noticeable is this to gameplay and is there a way to have the lightmaps not affected by texture scale? 
Depends On How You Want It To Look 
It might not look too bad if your scale is something like 0.75, 0.5 should be noticeable. If, however, all the textures in your level are scaled to 0.5, then you are fine.

Half-Life 2 used all the textures scaled to 0.25. Wierd huh?

Not sure if lightmaps would scale down with texture gut instinct is no. 
A texture scale of 0.5 also doubles the lightmap resolution; they're linked by a hardcoded ratio of 1 "luxel" (lightmap pixel) : 16 texels.

The other side effect is qbsp chops faces on a smaller grid as you lower texture scale. e.g. on large surfaces, a texture scale of 0.5 will create 4x as many faces (2x on each axis) compare with texture scale 1. You can see this with r_drawflat 1 or r_showtris. 
Thanks For The Replies 
Title says it all ;) 
Does this mean you could get better resolution lightmaps by scaling all of your textures to say, 0.5 and them doubling the texture resolution?

Someone should make a tool to do that automatically. I'm sure having way more faces is no problem for even semi-modern GPUs. 
More Faces? 
1. on surfaces with tiled textures, do the faces get broken up to a 1:1 texture ratio such that for every repeat of the texture there are 2 tris? In otger words, a 10 times tiled texture on a large wall, for inatance, has 20 tris minimum?

2. Are faces sharing textures technically submeshes or part of one total mesh fir the level?

3. Does each texture require a separate mesh (VBO I suppose) sent to the GPU? 
1. AFAIK the reason surfaces are split up is to do with the internals of the software renderer and how it blends the lightmap and texture (the surface cache). It's not about texture repeat; one tri/quad/etc. can span multiple repeats of the texture both in software and GL engines.

2/3. I guess it depends on the engine. What Quakespasm does is store the vertices / texcoords / lightmap coords of all BSP faces (main map + submodels + external .bsp files) in one VBO which is sent to the GPU at map load time. To draw a face, it sends the indices of the vertices that make up the triangles that form that face. These are grouped into batches of texture and then lightmap texture. They are separate draw calls, I'm not sure whether these are considered meshes. 
Re: #1

Large surfaces are divided every 240 texels in each direction by qbsp. I think this is because 16x16 is the max size of a lightmap, and if you put a sample at t=0, and another sample every 16 texels, the 16th sample is at t=240. 
unlike vanilla, quakespasm should allow -subdivide up to 1984ish.
fte+dp go up to 4080ish.

such sizes can hinder lightmap atlasing, so its probably best to keep them somewhat sane in size.
this is especially true for weird shaped surfaces where much of the block isn't actually used - more divisions doesn't always mean more lightmap data. that said, if you've a lot of 256*256 texel surfaces and you're targetting at least qs then bump the subdivision size by a little, to avoid those 256*256 surfaces getting split into 4 separate surfaces. 
Trying To Understand The Grid... 
Maybe some or all of these questions are laughably basic, but I don't know the answers and I'd like to.

--> Is it important always to stay on-grid in Quake? (I don't mean as a rule of thumb or as a general guideline for newbies, but really always.)
--> If so, why exactly/ If not, then when is it important?
--> And does it apply to modern compilers and engines, or is it something that is (partly?) related to the limits of the original compilers and engine?
--> And does it apply to e.g. detail brushes as well as worldspawn?
--> What is the practical difference between on- and off-grid brushes when compiling and when playing?
--> And finally, what does staying on-grid actually mean? Is it that each brush has to have all vertices on-grid, or is it enough if e.g. four out eight vertices are on-grid? Is it relevant whether brush faces pass through points of the grid? 
early exporters always rounded coords to the nearest unit. modern stuff doesn't really require that, but legacy and all that... probably your map editor has an option in its export settings. note that rounding could uglify various maps...
the vanilla qbsp truncates on load, rounding towards 0 instead of to nearest.

rounding verticies to the grid also means you can avoid floating point precision problems that result in micro-cracks and associated leaks that prevent the map from being vised, in such a way that can be horrible to track down.
this also goes for axial surfaces too, of course.

rounding verticies is one way to avoid excess texinfo entries in the final bsp. note that this is really more of a size thing than any real performance issue. note that this is only really an issue with 'valve' map files. quake's vanilla texture alignment stuff sucks enough that they'll all get merged regardless.

note that constantly converting from/to verticies and planes will accumulate inprecision. rounding avoids that.

the engine itself doesn't really care if something was on or off grid - it can bug out regardless. The engine internally uses 1/8th precision for standard networked coords (though recent engines have [optional] support for full floats). either way, the server physics is always full floats.

so yeah, the only real issues are
1) accumulation of inprecision.
2) cracks (which have many other causes, so why care?). csg carve sucks anyway.
3) old editor/qbsp compat.

or something. I'm really just making this stuff up as I go. Here, have a pinch of salt. 
From a purely design viewpoint: Its good practice to stay on grid. I'd say a majority of us build on grid but there are some out there who dont. MFX's ad_swampy has a lot of off grid arches. 
The engine internally uses 1/8th precision for standard networked coords (though recent engines have [optional] support for full floats). either way, the server physics is always full floats.
The weirdest glitch I saw due to off-grid was in ad_swampy and due to this.
An item_health was dropped to the floor (which happened to have an off-grid Z height), then going through the 1/8th precision network moved the mdl into the floor. The mdl rendered black as a result, because the traceline to sample the lightmap started underneath the floor. 
Apparently I've Been Doing It Wrong 
I've been mapping for around a month now and I just remembered what levels are supposed to look like when you noclip out of bounds. they should look like this but mine looks like this
I honestly have no idea what that's called (if it has a name) or if it's even important yet but I'd like to know how to do it. 
Check Those Corners! 
You've got a leak in the level someplace and qbsp isn't doing its job properly. Basically, the 'play area' of your level isn't completely sealed by the geometry and you've got a gap someplace allowing the playable area to 'leak' to the outside void. This makes the compiler unable to tell what parts of the level should be cut away (normally brush faces facing the void are removed, leaving only the inward-facing ones that the player will see), and it'll cause vis to not work properly so the larger the map gets, the slower it will run.

Just looking at that screenshot, an immediate leak is right in the middle, where the double doors are (assuming you've already made them func_doors)- entities don't seal the map, only solid geometry, so until you build an enclosed area past that doorway, the map will leak. 
Could You Dumb It Down A Shade? 
Thanks, spike, ericw and mukor for your responses to my questions.

There's a lot in Spike's answer I didn't initially understand and I had to look up a few terms. I think I have a better grip on it now, but there are still a few technical terms I don't understand, despite searching around on the internet. In particular, the part that ericw also quoted,
The engine internally uses 1/8th precision for standard networked coords (though recent engines have [optional] support for full floats). either way, the server physics is always full floats.:

What is "1/8th precision"?

What are "standard networked coords"?

What does "server physics" refer to? (As I understand it, the client/server thing is central to how Quake works, but it's all completely mysterious to me at this point; I don't understand what clients and servers have to do with single player Quake.)

Embarrassingly, I'm not even clear on what "full floats" mean. As I understand it, integers are numbers like 1, 15 or 123, with no additional fractions, whereas floats are numbers like 1.05 or 1/4, etc. (not entirely sure if I understood that correctly, though. I tried reading up on floating point arithmetic, but it was like trying to read a foreign language).

If someone could shed some more light on the above, I'd be very grateful. 
1/8th precision means that the coords are multiplied by 8, rounded, and then networked (as shorts). This is what results in the 32767/8=4096 +/- maximum bounds.
This is often described as 13.3 fixed point precision - 13 bits above 1 (including the sign bit), and 3 bits for precision below 1.
or in other words, there is a precision of 1/8th quake unit over the vanilla network protocols. that's what's meant by 'standard network coords', because its the lowest common denominator.
note that vanilla rounds coords towards 0 (because integer rounding truncates). whereas a couple of engines round to the closest value instead, because its slightly more precise. yay differences.

server physics is stuff moving around serverside. all the logic in nq is serverside, so there's none of the 1/8th rounding stuff going on.

'full float' means that it just uses 32bit single-precision ieee floats without any annoying extra rounding.
[side note: many gpus support 16bit half-float types nowadays, because gpus are cheap]
note that floats concentrate their precision around 0, the further away your coord gets from 0, the less precise it gets. They're weird in that they're expressed as an exponent, with 1 raised to the power of 8 (signed) bits, then multiplied by 23 of the remaining bits, with the final bit being used for sign. Which is annoying, because it means floats have -0 as a separate value from +0. Of course, the actual logic behind them is typically irrelevant, just remember that any time the exponent changes then the precision that can be expressed also changes.
Whereas 13.3 fixed point has linear precision, and within the 16bit confines of the inner map, floats will still have more precision than can be displayed, so yeah, you won't notice any issues, but the qbsp might if things are non-axial. 
Laymans Terms 
Floating point numbers are essentially numbers with decimal olaces. When people talk about precision, they're talking about how mamy decimal places are stored by the computer.

The more places you store, the more work memory required etc, especially with older computers this could really affect performance, so Quake and other performance focused applications would store as few places as possible to get by.

The side effect of this is that you lose data by reducing the number of decimal places you store. That means that movement is (very subtly) less precise and, in the case of level compilers, data could br thrown away compared to what was actually in the source file.

Hope that helped a bit, and wasn't too incorrect. 
and since no one directly commented on this "I don't understand what clients and servers have to do with single player Quake."

Quake single player is still played on a "server". My guess is this is because of coop. 
Thanks For The Responses 
Spike, thank you for once again answering very extensively. I'm struggling to understand all of what you wrote, because it introduces several terms and concepts I'm not familiar with at all, but I've read it a few times now after reading (and trying to understand) Wikipedia entries on the respective terms and concepts, and it's slowly starting to make a little bit of sense. Unfortunately I have no background in programming or coding, which would make things easier to follow.

PRITCHARD, thanks, that helped a lot.

mukor, thanks, I kind of figured that it's something like that, but it still doesn't really make sense to me. In what sense is the "server" a server, and what is the "client", when you're playing on your own and unconnected to any network?

server physics is stuff moving around serverside. all the logic in nq is serverside, so there's none of the 1/8th rounding stuff going on.
So where is the rounding happening, if everything is serverside? Sorry, I'm not sure if my questions make sense. I'm really having difficulty understanding all of this. 
Client/Server Architecture 
There are certain parts of Quake that are managed by the "server", and so even when you're playing offline what is happening is that the game launches a server inside of itself to handle all of those components, and then the client "joins" its own server.

I'm not sure exactly what parts of Quake are and aren't server side, but movement definitely relies on the server, for instance. The client is basically in charge of rendering and not much else, actually.

I think the game is built in this way to reduce workload for the developers, as it saves having to duplicate work that was already done. It's harmless to run a server inside of the client - it even comes with benefits like "listen servers", where the client's internal server is opened up to the internet and other players can join without you needing to run a separate application.

I may have rambled a bit this time but hopefully I have rambled correctly... 
Server runs the main game.
Clients connect.
All games are ran with a "server" due to design for coop.
Server handles stuff like physics, positions, velocities, monster kills, etc.
Client handles rendering of monsters, particle effects, HUD, etc. Anything that shouldn't be sent over a network (mostly). 
Yeah, and most (probably all?) networked co-op games are built in a similar way. Like you say, there's no harm in building a game this way even if its singleplayer sessions use the same framework since latency is non-existent on a locally hosted game.

There's probably a nice flowchart out there somewhere from a Carmack or Abrash talk that breaks down exactly which parts are on the server and which are on the client in Quake engine games 
"There's Probably A Nice Flowchart Out There Somewhere" 
Thanks for the tip! I think I've found it.
Here is the text that goes with it:
Quake’s 3-D Engine: The Big Picture by Michael Abrash.

Going to have to read that very carefully; hopefully it'll clear several things up for me.

Thanks for your responses, PRITCHARD, Qmaster and Blitz. 
From Savage X 
New Monitor, New Colors

Posted by SavageX [] on 2017/11/30 19:49:12

Hi there,

I got a new monitor - nothing fancy, just a more "professional" (nicely adjustable pivot/height/angle) 24" Dell office thingie with an IPS panel, switching from an old 19" monitor with a TN-panel.

The colors happen to be much more vibrant/deep (not surprising - it's an IPS panel) - however, Quake looks much darker overall compared to what I'm used to. That's nothing that can't be "fixed" with an adjusted gamma setting (and I may end buying a colorimeter to properly adjust the monitor), which can give me nice, vibrant colors and a dark/light contrast I consider proper.

For me, this raises following questions, though, which are not strictly tied to my particular setup:

- As a player, are there any rules of thumb as to how Quake is *supposed* to look like? Is there any point beyond "just adjust it to your liking"?

- As a mapper, how can I make sure the lighting in my maps are okay for a wide range of recipients? My current strategy would be "adjust the display settings until the base game looks good. If my own maps look good with these settings as well, then everything should be fine".

How do you guys deal with such issues? 
On the second point, I think if you're confident of your colour accuracy, you should adjust your settings to make sure the base game looks good and then base your lighting on that. That doesn't hold true if you're using a bad monitor, as you might end up making maps that are too dark because you cranked the brightness. 
Do A Survey: What Brightness Setting Do You Use? 
I always have the brightness all the way down or one tick higher than lowest. On occassion I'll have to raise brightness for a particular custom map, but most of the time I enjoy the gloominess.

I may be biased since bright lights hurt my eyes anyway. 
r_gamma 4
r_intensity 2
r_overbrightbits 100
r_vertexlight 1
r_picmip 100 
r_gamma 4
r_intensity 2
r_overbrightbits 100
r_vertexlight 1
r_picmip 100 
Relatively sure they were talking about Quake 1, not 3. I've wondered a similar thing myself and haven't been able to find a good answer; personally I left everything at default except gamma which is at 0.9 (no idea what the default here is, assuming 1 but that's nearly dark enough you have to squint on my monitor) but sometimes raise it up because every map is a bit different. Any lower (brighter) and most maps including id1 become a lot lighter than they probably should be, although I'll admit I haven't fiddled with the contrast cvar introduced with Quakespasm 0.93. 
Is it possible to turn a light on and then off again (without custom progs)? 
Or rather, how does one do it? Because I just remembered that at least one of the maps in this pack does exactly that. 
You mean just toggling it on and off? Give it a targetname and trigger it with a button/relay/trigger_once/whatever, works the same as a door or anything else you can activate. 
Thanks, Spud 
Oh, that seems fairly simple. It didn't seem to work the first time I tried, but I probably made some silly mistake somewhere in my setup. Thanks! :) 
Forgot to add, it'll only work if it's a standard light ('always on' light style): in vanilla Quake, a switchable light is its own 'style', so you can't turn on/off a light that uses anything but 'always on' (style 0), i.e. strobe, flicker, or candle. 
Thanks For The Extra Info! 
I'm guessing it doesn't apply to light entities that include a model, right? As in, you can't switch a light_flame_small_yellow on and off ... or can you? 
Unfortunately not, the two you can toggle are standard light and light_fluoro (the one that goes bzzzzz- turning off the light doesn't turn off the sound). You can check the qc file that includes lights ( to see those are the only two that support it; notably this means that aside from the lights that include models, the light_fluorospark entity also can't be toggled, despite being the same thing as _fluoro except it goes 'fzz-tzzt, fzt fzt fzt' instead of 'bzzzzz.'

If you really need more options, IIRC the Quoth mod/entity pack includes a bunch more options for entity states including lights. 
Thanks very much for clarifying.

If you really need more options, IIRC the Quoth mod/entity pack includes a bunch more options for entity states including lights.

Thanks, I assumed Quoth/AD/Rubicon2 would open many more possibilities, but I'm deliberately sticking with id1 for the time being. 
You could place the light_flame_small_yellow and give it a light value of zero. Then next to it have your switchable light entity. Easy hack. In vanilla those don't flicker so no one will ever notice. 
I guess the sound *will* still play... duh. However, you could fake it by having an inaccessible area nearby with a light_flame_small_yellow "motivating" the sound. Think of a crack in a dungeon wall that spills a sliver of light on the floor. That kind of thing. 
Thanks For The Tip 
That's not exactly the kind of scenario I'm going for at this point, but I'll keep it in mind for future reference. In the mean time I think I've found a different solution ... but I need to play around with it some more. 
Mcache 2047 
anyone got any tips for lowering the number reported by mcache? My Christmas Jam map won't load in anything except Darkplaces right now (yuck) :(

I suppose I should reduce the number of breakables in the map, but that almost seems a shame... So any tips? 
does darkplaces's "mcache" command print the list of models like QS's?
The ones with a "*" prefix are submodels of the main bsp, i.e. func_ stuff in the main map. The other things in the list will be the unique mdl's and sprites precache by the map.. so e.g. if you remove all monsters that use a certain mdl, it should free up a slot in the list.

Can you merge any breakables that are close together?

If you use any func_illusionary / func_wall that don't need any scripted behaviour, switch to func_detail_illusionary / func_detail_wall, which don't use up models. 
mcache isn't a command that works in DP.

I merged a lot of breakables, saved several hundred entries. I'll see how I go getting through the rest of the map, there are a lot of func_illusionary brushes that i could convert if need be. 
Several hundred!??

You could potentially combine all func_illusionaries into 1....except then they would probably always be drawn instead of culled. 
Looking forward to seeing all these breakables!

You could potentially combine all func_illusionaries into 1....except then they would probably always be drawn instead of culled.
func_detail_illusionary are pretty much perfect for this, the only downside is they tend to increase leaf/node count, because they're part of the main bsp just like func_detail. It's only really a problem if you're trying to fit in standard BSP format and are near the limit.

func_detail_illusionary will also have the best rendering performance (as they're identical to other world polys), and 100 separate func_illusionary's the slowest. 
I did look into func_detail_illusionary but it casts a shadow, which makes it unusable in a few of my cases for this map.

Unfortunately the breakables aren't that interesting - just crates, like I did for my Noir Jam map. Interestingly despite all the breakables the mcache for that map was <1000. 
Ah, right.. for it to not cast shadows you need to be on the latest version of my light tool. I'm still working on the bug you reported, sorry it's taking so long 
Bsp Limits 
Wait so do brush entities not count towards the limits for verts, tris, etc.?

Is the limit per "model"? 
brush entities do count towards the overall .bsp file limit, but func_wall vs func_detail will have different resource usage because the func_detail has to slice up the map geometry that it is overlapping (leafs/nodes, faces). 
Colliding With Quake's Collision Method 
On my current mapping adventure I'm creating an outdoor map with terrain-esque features. I find that in Quakespasm and Winquake I get stuck when walking over that edge:

All fine in FTE and Darkplaces. Map compiled with the awesome ericw-tools. All brush vertices on integer coordinates.

I'm pretty sure a random vertex manipulation should resolve the issue and I guess this is just a side-effect of how Quake handles collision (I think FTE and DP basically have their own ways of doing things there).

Is there a lazy way to resolve such issues reliably other than pushing vertices until things are resolved?

BSP and .map source: 
That's A Pretty Common Issue 
It can even happen out of nowhere after a compiling in areas where nothing has been changed since several compilings before.

Move some vertex around a bit and that will disappear. 
Yeah, I already fixed it - once you discover such problems a workaround does seem to be mostly trivial. Just wondered if this is an indication that I'm doing something wrong or if this is just some charming oddity of Quake in general. Looks like it's the latter and I shall embrace the madness Quake awakens in our hearts and minds.

Glad I'm testing with multiple engines, though ;-) 
If one is mapping using trenchbroom on an unsaved map and TB crashes, is the map lost?? 
Ive found them hiding in C:/users/MYNAME.

You're A Lifesaver! 
this is just some charming oddity of Quake in general

Yes, and that's why there is not much terrain in Quake custom maps, and one of the reasons there is none on the official maps. 
niccce. happy to help, drow! 
Higher Resolution Lightmaps With FTEQW? 
I'm using ericw-tools to compile my maps but the lightmaps always look like shit. They are too blurry. Is there a way of increasing the lightmap resolution? 
you can do it on a per entity basis by adding an '_lmscale' field set to eg 0.25
on the command line you can use '-lmscale 4' with ericw's light util.
I'd also recommend the '-bspx' light util argument, if only so that you don't need the external lits.

alternatively compile it as a q3 bsp via q3map2 (using q1 ents still so that mods don't break). A _lightmapscale field set to 0.25 or so for that, I believe. this'll give you a few more options that are not available with q1 bsps.

that's the theory, anyway. note that each of these have different results when viewed in other engines. 
There's a good chance I inadvertently broke one of _lmscale/-lmscale/-bspx since I haven't tested them since Spike contributed the features, but a ton of other things have changed since then. If that's the case, there are old releases available at: and feel free to file a bug.

Anyway I would +1 using q3bsp. AFAIK all of the _lmscale/-lmscale/-bspx options will produce a q1bsp that only looks right in FTEQW. 
iirc the per-entity _lmscale + -bspx will generate redundant data for engines that don't support it.
obviously other engines will get inferior lighting, but it should at least otherwise work (unless you use -novanilla for smaller bsp sizes, in which case other engines will glitch, but shouldn't crash).

I really ought to add this stuff to QSS too, same as many other things. 
QSS now supports lmscale too, in case anyone cares. 
Q3bsp... But... But... Lightstyles? 
Won't you lose lightstyles by going q3bsp? I always considered that a feature-gap that might have a sound technical explanation (*) but just robs single-player maps of a simple way to make things appear more dynamic and dramatic.

(*): I guess lightstyles just don't go well with the light-grid, but then I'm not a fan of that anyway because its size just balloons quickly as you extend map dimensions unless you lower the resolution so much you could just as well sample from the lightmap. 
the rbsp variant (and derivatives like fbsp) supports lightstyles (4 per surface, like quake).
and yes, 4 styles per lightgrid node too (it uses some compression scheme).
FTE supports them (if you've custom shaders then lightmap passes need to be first due to format weirdness), but dp doesn't.

(side note: it might be nice to calculate model lighting for the centre of each leaf, and interpolate between those, using surface data in place of neighbouring solid ones.)

even with q3bsp itself, you can get lightstyles with rtlights.
alternatively you can get quite creative with custom shaders. 
The problem with q3bsp is that i can't use TrenchBroom and Radiant is pathetic. :( 
Can you provide a screenshot of the light/shadow situation?

In Quake (when not going to q3bsp) it's pretty much not possible got get sharper shadow/light contrast than shown, e.g., on - all one can achieve is to make sure you don't get ugly stairs by using some advanced light options (in my case, for final compiles I use -extra4). 
The problem with q3bsp is that i can't use TrenchBroom
Does the compiler not accept q1 map format?

You could use the -convert flag on my qbsp (see ) and hook that in as a compile step. You can convert vanilla q1 map to q2 (which I think q3bsp compilers accept). Or, valve to brush primitives, etc. 
In Quake (when not going to q3bsp) it's pretty much not possible got get sharper shadow/light contrast than shown
There is the "scale your textures up 2x and use texutre scale 0.5" hack that gets you higher resolution. Downside is it causes more qbsp subdivision of your level so the faces still fit in Software Quake's surface cache. 
2X Texture Size With .5 Scale 
Downside is it causes more qbsp subdivision of your level...

Would QS/QSS have any issues with that?

I don't think I asked this specifically in a previous post, if it has been answered already my apologies ;) 
It makes a mess of linear filtering.
Replacement textures should at least fix that, but anyone using the default settings+textures will find it looks a bit ugly.
Software renderers will have less mipmaps available (this also affects fte's r_softwarebanding).

note that you can also double the -subdivide qbsp arg too which will reduce the subdivisions needed.
QS supports up to (128-1)*16-precision. glquake actually supports up to (18-1)*16-precision.
FTE/DP/QSS(now) support up to (256-1)*16-precision. However that doesn't mean you must use lightmaps that big, as it kinda makes a mess of the lightmap allocator resulting in excessive wasted space, with more texture switches/batches (doubling won't hurt much though). 
11 posts not shown on this page because they were spam
First | Previous | Next | Last
Post A Reply:
Website copyright © 2002-2017 John Fitzgibbons. All posts are copyright their respective authors.