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). 
Hello Again Everyone, I'm Back From The Dead, And I Got Questions 
It's been awhile!

I remember coming here when I was just getting back into Quake, and was trying to learn to map.

Anyway, I need some serious help. I've been working on a dm6 remake with modern geometry, and some extra tricks to do for ease of movement. I had to come up with a way to make circular polygons, which turned out great (map features 16 sided polygons for some rooms).

This map is meant for competitive play in ezquake, and so far people have thought I've done a pretty good job. However, there is a problem with it, and it's the performance stability. After a bit of digging and talking to Spike, we identified the issue was overdraw with the entities. This can be proven by going to the worst spot in the map, disabling entities, and watching your fps go way up (tested in ezquake).

When talking to Spike, he told me of Hint brushes. He tried explaining how I would use them to make my map more efficient, but he arguably did a horrible job, and I'm still lost in what I am supposed to do with them, and where to put them.

So, as a final call to help, how the hell do I use hint brushes?

My map:

Ignore the texturing, no one ever uses them anyway in the competitive scene. I used a self discovered way to make circular polygons in trenchbroom, but I'm sure many know how to do it. If not, I will be happy to share how I did it. 
You could also just post a map that uses them effectively, and I can try to figure it out by example. I have some knowledge in how vis portals work, but I obviously don't know enough. 
Can You Post A Top Down Layout Of Your Map 
Hint brushes force a new cut when the compiler is creating vis portals. It won't magically hide stuff at point A from a player at point B, if point A really is visible from point B. However if point A is actually hidden from point B and the default vis portal creation is not recognizing that, then adding hint brushes can help.

In addition to Qmaster's link, here's another:

My little summary (and that link) is going from what I remember about Quake 3... if Quake 1 hints differ in some way then hopefully someone else can elaborate. 
IMO, don't bother with hint brushes until you have established that qbsp is making a bad decision in a particular spot. I guess you could just preemptively apply them and hope it works, but I doubt it will do anything.

First run in Quakespasm with "r_showtris 1" and post a screenshot from the slowest position. Maybe post your fully compiled (qbsp + vis + light) bsp as well.

Also check Darkplaces with "r_drawportals 1" - this will draw the actual BSP portals (the boundaries between leafs), which are what you would be trying to influence with hint brushes. 
I just looked at the map, compiled it, it shouldn't be any slower than the original DM6, the e-poly seem really close to DM6, and the visibility is fine. I'm really surprised anyone would have performance (and stability?!) probs with it, and I doubt hints will help so much (could probably optimize some of the hallways a tad, having the main arena appear a bit later but it really wouldn't change much). 
Some Mapping Questions 
I aggregated some questions regarding how to pull off certain effects. I'd like to use unmodified id1 progs.dat, which makes certain things difficult or impossible, I guess, but perhaps I'm just not aware of some nifty tricks.

- some maps nowadays have transparent grates. I guess this is a new-ish engine feature (QS? FTE? DP?). I haven't had luck googling around on how this works - can somebody point me to some documentation?

- there doesn't seem to be a straighforward way to embed a .mdl in a map with id1 progs.dat - but is there a hackish way?

-I'd like to do an arena fight with a pentagram on the floor (that's the simple part). As the fight progresses, I'd like flames to ignite at the corners of the pentagram. When all five corners are ignited, the player is transported to a demonic realm (teleport or changelevel). As far as I know, light_flame* can not be toggled on/off. Of course, I can put standard light entities there an toggle then on, but then the question remains on how to make the flames appear. Ideas? (if this cannot be done, I can still change the concept to, e.g., have pillars with demonic symbols raise instead at the corners) 
- some maps nowadays have transparent grates. I guess this is a new-ish engine feature (QS? FTE? DP?). I haven't had luck googling around on how this works - can somebody point me to some documentation?
The last color of the Quake palette- that's the kind of funky pale pink one at the end of the last row- is defined as transparent when used in 2D UI/HUD elements, i.e. the main menu or the (in)famous light_globe entity. In engines that support the feature (alpha masking, fence textures, whatever you want to call it), that same transparency is applied to 3D stuff as well- entities and world geometry. It's as simple as using that color in the areas of the texture you want to be see-through, and adding a left curly brace- that's the pointy parenthesis, {- at the start of the texture's name to tell the engine it has transparent bits, similar to * for water or + for animation.

Two things to keep in mind, though- one, textures can only have one leading character so you can't have a curly brace and a plus sign, meaning no animated-textures-with-transparency (probably possible through a really complex set of cycling doors or something, but generally not worth it), and two, the texture has to be used on a brush entity like a func_wall or func_door or else you'll get unsightly grey or hall-of-mirror-effect areas where parts of the world are cut away from compiling and you can see through them into the void. ericw's tools include multiple entities specifically for this purpose (func_detail_illusionary and func_detail_fence), as well as a handy entity field called _mirrorinside that makes those two types of entities automatically have their textures mirrored to the insides of the brush, meaning an infinitely flat, two-sided fence texture (i.e. Doom style fences) is done by just making a func_detail_fence, adding the mirror field, and applying the skip texture to every outside face except the one you put your fence/grate/whatever texture on. 
And in case you mean glass, just add key of "alpha" and a value between "0.0" and "1.0". No quotes of course. 
alright, I will try that. Darkplaces actually runs the map fairly stably, which is another reason why the ezquake renderer needs to be redone. There are plans to do that.

Introducing `-forcegoodtree` helped the performance by quite a bit, but those slow spots are still apparent. I don't feel or mind them, but apparently other players will, and will cause my map to be depreciated.

I can't exactly give data right now, I'm on a trip. However, I will get back to you through email when I do. I will post my fully compiled map here as well.

It does seem to be caused by entities. When disabling them in the renderer, I get a stable 1300 fps around the map in ezquake (AMD card on linux, which is why my performance is lower than usual, others get way into the 3000s and are affected a lot less than me). With them on, I get the slow spots in ezquake.


That is true that the performance is similar between dm6, but one of the things I wanted dm6pro to be is better than the original dm6 in every aspect, including performance. If I'm able to improve it, I will. Also keep in mind that there are people in the competitive community that do notice this stuff, but I honestly think it's a buncha bs most of the time. They all play aerowalk, which has similar "slow spots."

This is also an issue with ezquake, so that's introduced as a problem. Since that's the current engine that competitive players use, I will have to design the map around it. I think it actually may have to somehow do with how inefficient ezquake is at rendering entities, but that's only a theory. It's definitely correlated by my tests.


Again, I will try to get back to you on that.


Thanks for the great initial support, never got that here before.

On the side, do any of you actually like it? I've been trying to get opinions before I hand it up to the higher players. 
Now that's how to answer a question in mapping help. I've used fence textures once before but I just learned how to do it properly. Cheers. 
@Spud And @Qmaster 
Thanks for your comments, this is very helpful! 
Took a peek at that valve documentation, really helped me understand how I actually need to use hint brushes. I doubt they will help, but they might do something. 
When you say that people are complaining about your map's performance, is it "bad performance" in the sense of "only a thousand frames per second instead of ten thousand"? Or is it a performance problem that could actually be noticed without watching an FPS counter? 
newbie question: how do I get so you have to kill/press 2 or more enemies/buttons to trigger something and get it to say "x more to go" 
o nvm I figured out button, through trigger_counter. trying to figure out monsters though 
no wait I'm dumb that's not right 
no wait I'm smart that's actually right 
but I have no idea how to make it work still 
Add a new monster:

"classname" "monster_army"
"target" "t1"

Add another one:

"classname" "monster_army"
"target" "t1"

And another one:
"classname" "monster_army"
"target" "t1"

Then add a trigger_counter:

"classname" "trigger_counter"
"target" "t2"
"count" "3"

Now when you kill the three grunts, the target "t2" will be charched for use, ie a door, a teleporting monster, a light, etc. 
It will be searched for, added to a list, and then all entities on the name will be targeted.

So ya charched I guess, or searchargeted. 
Johnny Law: 
So, it was initially discovered by going around and looking at the FPS counter, however, I was told others would notice it, as well as it being in a key area of the map. 
What Fps? 
Min? Max? Average? 1st quartile?

If your min is 65 I wouldn't worry about it. If your min is 50, meh.
If 40, yeesh no good. 
how can I set a command to activate whenever I boot up the game? I'm using quakespasm and it has z-fighting by default but "gl_zfix 1" doesn't save the property when I close out of the game. I don't want to have to type the command every time I test my map. 
Put it in autoexec.cfg

If you don't have an autexec.cfg, create one in notepad and put it in the ID1 folder or mod of your choice. 
didn't work when I tried autoexec.cfg so I tried putting the command into config instead and that did it 
as someone who's brand new to mapping, this messageboard is a godsend. it's over 15 years old and I can still get helpful responses within a couple hours. that's nuts, and it's why I love quake so much 
I'm in the couple thousands here, lol. Average is 1300, max is 1600, but min is 700 in the fated spot, which is noticeable.


changed my mind about email, lol. Anyway, so I used r_showtris, and all was revealed. standing in particular spots, the middle arena and the armor room were both being rendered for some reason. Some hint brushes in the entrance to this should help, I hope. I think it has to do with the long bridge brush that connects the semicircle to the hallway. 
I Did It! 
The major weird slow spots in my maps are now gone, but there are some that I cant do anything with because they are simply impossible to make any more efficient.

Thanks everyone! 
Well I saw a guy on the Discord chat mentioning it getting down to 4100 fps at one spot. Better throw it all out!!!

Seriously, if anyone is actually concerned about that kind of "frame dip" affecting the gameplay in any way... to me that sounds like "quantum HD gold-plated audiophile cables" level of delusion. I'd be interested to know though if there really is any good reason at all for worrying about framerates (min, avg, variations, whatever) once they are up into that regime. 
I can imagine being concerned about it if you have a brand new PC with high end kit or something along those lines - i'm pretty sure there are still people out there playing Quake on hardware from a decade ago.

It's not about if you can run Crysis, it's about if you can run Quake! 
Hardware from a decade ago is still hardware ten years newer than Quake. 
Idk, It Was A General Improvement 
That was ciscon, he's been helping me test. That spot is unavoidable anyway. Once or if the devs redo the ezquake renderer, I'm pretty sure none of this will be an issue.

Anyway, the reason why I'm making a big deal is that slow spots cause obvious dips that distract from competitive play. It's all worked out mostly now, so that's good. 
Now all that's left to do is make some of my own maps. Prolly gonna suck, I would do better working with somebody else since I'm good at making levels, but not necessarily coming up with them. 
Switching To Trenchbroom 
I've been using J.A.C.K. for a while now since it's the only editor I've figured out how to get working but I want to switch to trenchbroom because it just looks like it's a lot more fluid in editing.

my problem is that I can't figure out how to set up the compiler and stuff. the manual just kind of says "open up the compilation dialogue from the menu" but the compile menu is gray'd out and I can't click it, so I'm not sure if I'm supposed to do something else first or if I did something wrong. pls help pls 
oh.... I searched the internet for over an hour straight trying to figure it out and apparently the only thing I had to do was save the map to get the compile window to be able to open. 
now I'm having some trouble getting it to compile properly. here's what I've got going on
it's saying "no such file or directory" 
Why have you got underscore characters in the parameters?

Like "Program_Files_(x86)" when it should be "Program Files (x86)".

If spaces in the path are giving problems, you can try one of these:
- putting the whole path inside quotes
- using the DOS style shortname for the directory, which is probably "PROGRA~2"
- putting your Quake files in a path that doesn't include spaces 
I was using this guy's tutorial, along with some other one I can't find

and using quotes around the path helped, thanks 
Also hmm it's not clear to me you even need to give that second argument to qbsp at all. But I haven't used that particular GUI so I'm not sure how you really need to set it up; hopefully someone else can chime in. 
OK good to hear you got past that step. :-)

Use the "+" circled in red to add each a new section.

Use the "..." circled in green to add your tools.

Copy the rest word for word.

This is outlined in the TrenchBroom manual. 
I tried filling in the parameters and stuff exactly the way mukor showed but it keeps giving me an error saying the bsp was already in use by another program, even though I have literally no other windows open besides trenchbroom itself

another thing, I tried changing the working directory to ${MAP_DIR_PATH} but it completely crashed TB whenever I typed the first letter 
here's what I've got, let me know if I did something wrong 
it said it failed to copy, so I removed the 'copy files' part and it compiled fine. is that part important or should I just not worry about it? 
Forgot to mention that with that setup you need to start your maps in a directory OTHER than /maps.

I recommend making a folder somewhere near your Quake folder called "Working" or something to that effect.

Do that and you can add the copy part back in. Be sure to add a "Copy" function for the .lit file as well. 
If you still can't get compiling in TB to work please Google Necro's Compiling GUI and use it. It's much more approachable than TBs compiler. I seen people post here often with issues or confusion. You certainly will be up and running very quickly with the GUI. 
If you get TBs compiler working with the copying files, stick with it.

Yeah its a little extra work to get it started, but its definitely worth it. I just compile, open Quakespasm, press up in the console to repeat my last command(usually the map) and bam.

NCGUI will have you open NCGUI. Select your map. Compile. Open file explorer. Move bsp/lit to /maps. Now you can play.

I think people let themselves get intimidated by how setting up the compiler looks like "coding" and they dont even try copying it exactly as shown in the manual. They think they have to decipher some complex language when its literally spelled out in front of them. :P 
You don't need to chime in here dude especially with Dad info. I already said if he still was having issues too. And you are incorrect. I leave NGUI open, save my map and hit Alt-tab the Ctrl+C to compile. The game launches I am in. All the copying is handle by the GUI. I'm not sure who taught you to use Necros' tool.

FyI the compiler UI on TB 2 RC 4 is broken so another reason to avoid it. also the manual in Windows is currently not working on RC 4. There are plenty of reasons people are coming here asking questions. It's not an elegant solution and no, not everyone is comfortable or knowledgeable about paths and shit. 
"bad info"

"FyI the compiler UI on TB 2 RC 4 on OSX is broken so another small reason to avoid it." 
The compiler isnt broken so as its completely unusable. They already got it set up minus the fact they were starting their .maps in the /maps directory.

Maybe if theyre deleting a profile:

Or how if you stop the compiling process earlier, a compiling tool might hang:

But not so broken as to completely discourage its use in favor of another tool that just does the same thing.

Heres a better screenshot with the proper tools shown.

The one i linked earlier shows q3 tools, i think.

The only thing that will be different on yours is where your tools are...and to set that the dots circled in green. 
Jesus man I am giving a newb options here why the last word BS? And you didn't acknowledge you are wrong about Necros' GUI.

Some of us literally don't have to time to research this shit and need something that works out of the box. I'm simply trying to help and get pissed when people relay bad info.

You even started your own GUI ffs.

Peace Muk. Let's help people by giving them options huh? 
yeah, ive tried using NCGUI and couldnt get it to work as seamlessly as I got TBs GUI working for me.

I recommended it to someone and even they couldnt get it working.

NCGUI isnt as intuitive as one would think.


also, my compiler frontend isnt a gui. its a batch file :P and i made it because NCGUI cant compile batches of maps. 
and yes i stand corrected on those point i wrongly asserted. 
Fair enough hombre. 
How is the compilation UI broken on OSX? I know it has problems, but I didn't know it doesn't work at all. 
Compiler Wars? No, We've Got Compiler UI Wars Now... 
All I want for christmas new years is for the TB2 compiler UI to be able to launch engines ;-; 
Damage Riding Func_door Downwards 
I'm currently working on a small set piece with a descending floor, with the floor being a slow-moving func_door.

In Quakespasm I can easily receive damage in certain spots, sometimes being squished withing fractions of a second ("player was squished") despite the func_door having a dmg of 0. There is no obvious obstacle. Same in Mark V.

In Darkplaces everything is fine, but then again DP's collision system works differently.

Is there something a mapper can do to create safe door rides? 
Is your host_maxfps bigger than 72? 
You have to enter the paths to compilers manually in rc4. The "..." Buttons don't work. There was a Git report on this quite a while ago.

I'd.linknto it but I am on my phone and can barely read this text right now.

I don't use OS X any longer. I just bring a pc laptop to work when I can map there on slow days. 
host_maxfps is 72.

Tested also in WinQuake. Same problem, so this is "vanilla".

I'm using ericw-tools (qbsp / TyrUtils ericw-v0.15.11) to compile things. Using hmap2's BSP stage doesn't change anything.

I zipped up .map and .bsp at - can somebody have a look? Just push the button and keep standing there, that's one spot that seems troublesome for no apparent reason. 
Still Squishy 
tried turning the descending floor into a train. Doesn't change the getting-squished problem. Hmmm. 
so, I decreased host_maxfps to 36 and the problems seem to go away. Of course, this is not a solution.

Instead, increasing the movement speed from 25 to 35 qu/s seems to fix/alleviate the problem as well. I guess that the platform has to travel a minimum distance between physics tics to avoid problems. This can be done by lowering fps (host_maxfps) or by increasing the speed.

Darkplaces has the physics decoupled from the rendering fps, so that may explain why DP had no problems.

Does this make any sense to engine devs? 
how do I get a trigger_push (wind tunnel) to push up or down? 
nvm I figured it out 
J.A.C.K Configuration Help Needed 
I have a lot of experience with hammer and its compiler, but I wanted to try my hand at quake mapping

I am having trouble setting up the jack directories and compiling a simple map. I have the free version of jack and quake on steam.

Here's my compile log:

The relevant part I think is the "Token too large on line 6". I tried googling this and it looks like it happens when a map has too many wads, but I only have 2.

Here's the directories I have, I do not know if they are right. 
I believe it is the string of wads having more than 256 characters. E.g. "C:/Path/wad1.wad,C:/Path/wad2.wad,...wadn.wad" where path goes to your steam directory.

I believe ericw's compile tools fix this:

These are the ONLY compile tools you should be using for Quake. 
That fixed it for me, thanks! 
Level Optimization? 
So I’m using the makaqu engine to run a full on game I’m making, but it doesn’t seem to run at a consistent framerate. Is there any command line optimizations that can make it run smoother and use less memory? The one thing that is bugging me is that it says I have a leak in the compiler when there are none! It’s really weird. Can anyone help? 
You'll need to fix the leak and run vis to get good performance. If qbsp reports a leak it should save a .pts file, open this in TrenchBroom or jack, or type "pointfile" in the console in quake to help find the problem. 
I’ll Try That! 
I’ll try to do that when I get home! Thx! 
AD: Swinging Sign 
Could I use a func_train to create a slightly swinging/swaying sign?

Or more precisely, what would be the best way to go about this, if possible?

It's just for ambience, will be coupled with an ambient_custom sound. 
Yes You Can 
You can certainly do this sort of thing with func_train in but it depends on what your vision is. I am picturing say a sign hanging in front of a Western Saloon. The sign will swing back and forth ever so slightly.

You can do this put your 2 path corners very close together, say 8 units. And give it a very slow speed key <40. The problem is there isn't really a great way to make the "rope" holding the sign sway accurately because in reality it would pivot around the point it is secured at. You could ignore this and just make the ropes very small (1 unit) in width so there lack of movement is not as noticeable, or just make the ropes move with the train, but it might look awkward.

I think ORL made flapping flag posts with func trains moving extremely fast over small distance. Its an optical effect.

Or make a .mdl and give it animation frames... 
Also lets you make something hover up and down very slowly for a nice effect, but I think it can only be done vertically. I used them to make some hovering objects in ad_paradise, but again it depends on what type of sign you are picturing. 
wouldn't a hanging sign be better with func_rotate? 
Saloon Mini-Map! 
Func_train can work really well for this depending on what you want. The problem I forsee with a rotate_object is that it typically only rotates one way; a func_rotate_door can rotate back the other way but you need a trigger to do this and switch between the 2 states. This could make it exceedingly complex.

Using a func_train with path corners only 4 units apart and a speed of ten, a made this swaying Saloon sign that is really atmospheric:

Check out this demo map with source:


NOTE: Arcane Dimensions is needed to play this map. I made this in AD but it you can make the func_train in ID1 of course. 
The map is a tiny demo of the func_train only. No exit trigger or anything. So I hope no one gets mad at me:( And I hope this doesn't end up on quaddicted somehow. 
Wow, Thanks A Lot Redfield 
Very cool example map you made for me.

But... I already made that with your single entity func_bob suggestion. Apologies for not posting about it, it was really late when I did it so I just went to bed.

Also, I made a test ambient_custom_loop squeaky sound, placed it centralized to the sign and... all was good.

Thanks again for all the assistance.
- damage_ 
Also, Swaying With Rotation... 
There is the "path_rotate" and "func_rotate_train" entities that may still be the answer, but I didn't figure those out last night.

What I was doing kept screwing up the game(on load player position stuck at path_rotate location and no ability to move, even with noclip!)

If I get this sorted I will post it up. 
Lots Of Options 
There are quite a few ways you could do it I guess. I forgot func_bob can go in any direction with angle key, and this is probably the most efficient way to make a swaying sign. I'm not sure how to visualize a func_rotate_train, as the object itself will rotate between path corners, but if you make it work it would be interesting to see.

Yeah I got carried away with that saloon, I was just going to throw a func_train in a test map and see what happened, but I had this image in my head, and it just kept going. Started making textures and several hours later an insane test map. Best way to answer a question is to make a map. Maybe I will turn it into a little western map one day. 
Is There 
a way to kill Chthon without QC? Telefrag or ridiculous high damage on a trigger_hurt doesn't seem to work and setting the lightning_event its a pain the way this map works. 
Try adding a key|value of th_die|boss_shockc1 to your monster_boss. Then when you hurt it it should die after 4 damage. Not tested. 
Thanks Qmaster 
I tried damaging the guy with a trigger_hurt, a door and myself with Quad rockets just in case and the guy didn't show even pain with that key on him.

What i learnt with all of this is that he cannot be moved with doors as they just pass through him, which is a pity. 
Ah Right 
I forgot that the boss is not technically a monster in the sense that it doesn't use AI normally. It is basically a turret with animations and very special code. Seems like I remember a killable chthon hack somewhere though. You might need to make an info_notnull hacked boss. 
mechtech made a handy map that includes a whole bunch of map hacks for reference here, and a quick glance at the killable Chthon in the map shows it's done with an info_notnull with a bunch of extra fields filled out to match what the boss entity would normally have so it behaves correctly. 
Link Is Dead 
but i found it on Quaddicted. Thanks. 
GLQuake Not Rendering Map Correctly? 
Hey there! So I got my map working and fixed all the leaks, but for some reason, when I run the map in GLQuake, it renders a far off distance like it's clipping! Is ther anyway to increase the drawdistance like in winquake with r_maxsurfs and r_maxedges or is it impossible? Could it be a mapping problem itself? Compiler gives no errors! 
The Real Question Is... 
Why in 2018 does anyone use original GLQuake?

I really want to know! 
Because it's the best engine that comes with the Steam version.

Well, the second best, but the default one.

It's worth remembering that's the out-of-the-box experience, when you're looking for the largest possible quake audience. 
Thanks, I never even considered that. 
To Answer Rizzo 
Download an engine with enhanced limits such as MarkV, Quakespasm, or FTE. 
GLQuake Far Clip Is Hardcoded At 4096 
Thanks guys! Guess I'll have to go with another engine! 
VIS Job Farming? 
I'm new to mapping, i've been using EricW's tools. In regards to the VIS proccess, has there ever been any consideration into farming out jobs over a network? I am sure i'm not the only mapper who has a second PC that is idling alot. I can picture small communities of mappers providing their PC's for VIS jobs. And not just 1 map/PC (that could already be done with some kind of file monitoring script). I'm talking about splitting one bsp over multiple PCs to get the completion time down. It seems with multithreading the individual threads are operating independently anyway once they get their work chunk.. granted i don't know anything really.. just my assumption. This seems to be the biggest bottleneck in dev time. Maybe the couple guys i am in a group with are inefficient mappers but the VIS'ing has taken days and days on an 8 thread i7. It would be cool if network nodes could just be seen as additional threads. 
Detail Brushes 
Should be helping with the vis times. Unless you are building a gargantuan map that rivals Ter Shib in size I can't see VIS taking this long with 8 cores. I vised a bsp2 size map in less than 1 min. on 3 threads with ample use of detail brushes.

Again this could depend on the size and complexity of the map, but if you are new to mapping, you should be using detail brushes on objects like pillars, stairs, loose bricks, small details etc. or else VIS might take days where is should be seconds. 
With func_detail, vis should not be the longest part of the compile any more.

Make sure you are using ericw's tools: 
I saw detail brushes but wasn't sure what to do with them. I'll try that. thanks guys! 
Use Func_detail To Turn Your Map Into Rectangular Areas 
For instance, anything angled, off-grid, small, thin planks, trim, light panels, crates, pipes, broken walls, debris chunks,
trisoup (terrain e.g.) etc. etc. should be func_detail (solid) or func_detail_illusionary (not solid).

This lets vis deal with very simple rectangular areas and drastically speeds up compile times. It also can help you add specific lighting features to some details, such as _phong (nice and smooth shading) on rounded columns or terrain trisoup. 
Aside from wanting to apply phong shading to columns/pipes/whatever (which can be done with standard func_walls as well), if you're willing to eat the compile time instead that seems like going overboard a little with the details. Won't you run into issues with vis not blocking off *enough* due to details making up walls and such and possibly cause poor map optimization and lower framerates on less powerful machines? Not to mention the extra effort of making a solid rectangle area outside of any part of the map even slightly skewed or clipped-'n-vertex-edited. 
Balancing Act 
Depends on balance between CPU and GPU time per frame. Loads of objects to render = long GPU time. Loads of vis leafs to calculate against = long CPU time.

E.g. in a level with 10ms CPU and 20ms GPU, it would help to render less, so yes more leafs could help.

If instead you had 20ms CPU and 10ms GPU, then fewer leafs would help improve performance then func_detail would help.

I honestly don't know what the bottleneck would be or how to check it. 
gpus are quite fast nowadays, they don't really care about a few hundred more quads.
overdraw is still a concern (so you still want your various rooms to be properly sealed with structural brushes to avoid the worst of it), but otherwise if the engine has decent batching then you won't see much of a problem if all the details+pillars+etc are flagged as details.

tbh, its the leafs themselves that are the expensive things. 
I Was Under The Impression 
That in quake, you can't appreciably change the number of leafs with func_detail, only the vis compile times. Has this changed? 
no, you have the leafs whether they're detail or not.
you can't fold leafs using q2-esque cluster stuff, because the bsp format doesn't support it.
and you (usually) can't merge leafs due to the engine calculating a parent leaf - each one must have a single parent node so no multiple routes through the bsp tree (side note: this doesn't apply to hulls 1+2).
so the only way you can merge them is if two leafs share a parent node, have the same contents value, and together form a convex area (such merging can happen recursively so long as those conditions still hold true).

less leafs means fewer marksurfs, fewer nodes, fewer frustum checks, smaller pvs data (and for every other leaf too), and fewer cache misses throughout.

arguably surfaces could be merged into a concave mesh on the condition that there is still 1 truely central vert somewhere.
the geometry works even if they're on different planes, but lighting and texcoords would likely be broken because of it.
whether it would break software rendering, or gl engines that pick the wrong edgevert is a different matter, but hey, most gl engines should cope without realising it. 
Yes func_detail shouldn't create more Leafs 
Engines should be able to recover detail clusters by recursively merging leafs that have the same visofs. This has the benefit of working on released maps and won't risk breaking anything. Once you recover the clusters you could generate lists of faces per cluster, new compact visdata, etc. 
Using Scourge Of Armagon Assets In TrenchBroom 

Longtime quake player, trying to create a custom version of DM3 with some Scourge of Armagon assets for team deathmatch. I used pak explorer to extract the DM3.bsp from pak1 in id1 and was able to convert the bsp file to a .map file, which allows me to then open it in TrenchBroom. I think I get how to recompile this back into a usable .bsp (doing the light/vis stuff etc.), but I'm curious how to actually use Scourge of Armagon assets. I have the add-on pack (it's in a subfolder called hipnotic), but I'm unsure how to use those pak assets in TrenchBroom.

Any help would be appreciated :) 
Cool idea to update Dm3 for SOA. The source for DM3 is available at Quaddicted. So use that instead of a decompiled bsp.
You'll have more luck.

Next, you will want to load up the mission pack fdg in Trenchbroom. I have been searching for it but cannot seem to find the link. But it's out there.

When you have the fgd you will go to the entity tab in TB and at the bottom load external and select that fgd file. After that you should have the entities available to you in the browser. You will also want to load the mission pack as a mod in TB in a very similar fashion. It's on the map tab I believe. 
Triple Post - Woot! 
I might as well pimp a DM level I made that includes a Hipnotic version of the map. It's called Lividus. Maybe you and your pals will enjoy it along with DM3. 
Thank you for the help and taking the time and all the links provided! I managed to figure most of this out through a bit of trial and error and talking to the devs from qrack and fte. Some of those old assets are indeed hard to find!

I still play TDM with a group of oldschool quakers on DM3. Matches on most weekends. I was looking to create a fun tweak of DM3 that would preserve what works about the level for teamplay, i.e. the idea of level/item control without messing up the balance too much.

But due to having played it 9999999 times, I thought adding some SOA assets would be fun. I added the proximity grenade launcher at the opposite side to standard GL, replaced the SNG in the SNG room with the laser cannon, replaced the standard nailgun (useless in DM) with the SNG, and put mjolnir outside by the pent. I feel like these weapons could lead to a few interesting tweaks in gameplay (e.g. setting traps with proximity mines, using laser cannon to blast into areas by bouncing shots, mjolnir to close proximity attack somebody with weapons).

If anyone's curious, here's the first iteration. Requires the hipnotic pack to work (i.e. whatever executable you're using -game hipnotic -hipnotic for command line switch): 
in trenchroom, I made a button and set its target for one door but it opens all doors on the map. what do? 
That means all your doors probably have the same targetname.:D 
will I have to name all of my doors? because the other ones being triggered don't have names 
will I have to name all of my doors? because the other ones being triggered don't have names 
nvm, that just stopped the door from opening automatically. I'm looking at all my entity links and none of them go to the irrelevant doors, only to the ones I told it to go to. 
and it only happens with a button, not the trigger_multiple I have already 
it also triggers doors with different names?? 
Set The Don't Link Spawnflag On The Doors 
that didn't work, but it broke my unnamed door :L 
it's weird, whenever I change any properties on my unnamed door it just totally stops working 
here are my button's properties. maybe it's something to do with the button. 
Please try and avoid the triple posting.

What do the door properties look like? 
O, sorry.
and here are the doors (four doors that sink into the ground) targeted by the button
keep in mind it's also triggering a pair of doors named "d2" 
The two groups of doors are too close too each other.

Add "dont link" to the D2 doors as well. Remove that Wait of 0. just remove the Wait key entirely. No need for it if youre also using the Toggle flag, as far as i can tell. 
oh and do "r_showbboxes 1" in the console and youll see the trigger volumes and such. This should make the problem a bit more evident. 
I've tried adding "don't link" on all the doors.
I did a video just so you can see exactly what's going on.
there are 3 sets of doors, the four downward-moving doors (d1); the doors above d1, which the player gets launched up through (d2); and the unnamed door which is off to the right and there's nothing special about it.

I've tried creating a new single func_door away from the others with no changed properties, and it still opened.
I've also deleted and redone the button to make sure I didn't accidentally change a property.

if it turns out to be something really simple I goofed up on plz don't laugh at me ok?? <:l 
Maybe upload the .map? 
Remove the blank "target" and "wait" from the d1 doors for starters.

But, beyond that...the issue isnt happening for me when I compile the .map. The button only opens d1. I didnt change anything either. 
Ha Ha Hi Hi Ho Ho 
yep that did it! I didn't realize the unnecessary target and wait would do anything. mystery solved, we can all go home now 
no dont go home. go map. 
Are there any good beginner resources around?

GTKRadiant, NetRadiant, and Trenchbroom seem to be the most popular editors, and ericw-tools seems to be the current suggested toolchain for compilation, but all the documentation and stuff I've found seems 
Dang Accidental Post assume that you know what you're doing, which I really don't.

Sorry about the halfpost, interface bugged out. 
Re: 19413/19414: Beginner Resources 
This might help to get you started with the very basics: 
Make Sure And Register 
...for this site so we know who you are. :) Maybe prepare a list of specific questions you have too. We'll be happy to answer.

JACK is also a popular editor for those with Valve/GoldSrc/Worldcraft experience:

I use TB2 and can answer questions. Also Terrfusion on Discord is a good real-time resource as well. 
Nobody Has To Register If They Don't Want To 
and it's not a prerequisite for asking questions. 
It Should Be 
I smell shrimp 
Shit is arguably better than shrimp. 
...was simply a friendly suggestion. Not a demand. You know, to get to know someone in a more personable way? 
Nope, But You Do Have To Register If You Want To Post Abuse 
and it's a prerequisite for trolling (i.e. some form of accountability). 
@dumptruck_ds: Yeah, I get that. :) Of course registering has its benefits, but it should be the person's own choice, and I thought the way you phrased it, it sounded a bit like a demand/pressure/prerequisite.

In any case, my comment was directed more at whoever posted the question in 19413/19414, than at you. People may have various valid reasons for not wanting to register and sign up, and it would be a shame if they feel pressured to register and then stay away completely as a result.

And (re: #19424/Shambler) of course I'm talking about people asking for mapping help, contributing knowledge, etc. and not about trolls/people posting abuse. I can understand the argument there, although there are plenty of people happy to troll and post abuse while logged in anyway. So I'd argue that even then, whether or not someone is registered or logged in is irrelevant: just don't be a troll and don't be abusive. 
can a mod delete / move the above BS into the beef thread?

It would be nice if any visitors coming here wouldn't be greeted with this as their first experience here. 
Would if I could. I think there's no beef here now tho. All good. 
how do I get spike traps to shoot more/less frequently? 
ah nvm, got it (it's 'wait') 
Bit Of A Technical Question Here 
Been trying to get my head around the Valve220 map format.

What's the point of the "rotation" field?

There's a not-particularly-clear description of it on that page, but I still don't get why it's required when you already have two vectors defining the "right" and "up" of the texture.

Possibly related, but in Netradiant, if I do a fractional texture rotation (e.g. 13.6 or whatever), only the integral part (13) gets saved to the "rotation" field in the .map, yet the extra precision is not being discarded, because it's generating different "right" and "up" vectors, compared to if I just rotated it by the integer 13.

It's almost like the "rotation" field is just for show, but why? 
Rotation Field 
It's a cheat. Rather than the editor (JACK or Hammer only) having to calculate the relative rotation of the texture UV space every time it loads a face into a brush, it merely calculates this during save and puts it into the .vmf

At least U think thats what it's for. Old Worldcraft 3.3 needed some hackery if I recall to read it. Whoever did the WC3.3 patch might know for sure. 
That field stores the knob position of the Hammer UI. It's not used by qbsp when compiling the map.

I guess the reason it was done this way is, you can rotate the brush with texture lock on, and this won't cause the texture rotation knob in the UI to change on its own. 
Knobs And Things 
interesting cheers, so it's pretty irrelevant. 
what's a good method to creating arches that match up with the arch textures? in JACK I would use the primitives and CSG but that was funky sometimes and TB doesn't have those functions at all. 
derp. a description would probably be nice:

theres an arch tutorial for Trenchbroom. 
_bounce In Ericw-tools 
Is there a way to control/turn off the bounce lighting specifically on _sunlight and _sunlight2? 
Not At The Moment Afik 
but it's a good suggestion! 
Thank You, Love Your Tools 
Engine Question 
Is there any difference in physics whatsoever between a trigger that was created in the editor as a brush model, and a trigger that was spawned dynamically in the QC? I'm guessing the answer's "no", but wanted to double-check. 
no. either way, solid_trigger is an aabb. the shape you set in the editor is irrelevant, only the bbox extents are meaningful.
so one uses setmodel and then discards the model, the other can just directly use setsize. same result. 
Nice One 
That's the answer I was expecting and indeed hoped for. Cheers :) 
Colored Lighting 
Working on some colored lighting in a map. I had been tinkering around with the Arcane Dimensions stuff, and left those settings on when I originally setup the lights. My lights look really good in AD. Later, when playing the map in Quakespasm with no mod, I noticed the colored lights are pretty crappy by comparison, and I'm not sure if its a matter of settings or if Arcane Dimensions just had a different lighting setup than Quakespasm can do on its own. I feel like there's a setting I'm missing or something, perhaps a rendering setting in the engine I need set in the config?

Shabby Lighting
Screenshot 1 with Quakespasm:
Screenshot 2 with Quakespasm:

Pretty Lighting
Screenshot 1 with Quakespasm + AD mod:
Screenshot 2 with Quakespasm + AD mod:

Bonus Question: Does Arcane Dimensions mod always use the new health and ammo models or is there a way to tell it (in map settings) to use the classic models?

OS: Windows 7 64bit
Client: Quakespasm v0.93.0 x64
Editor: J.A.C.K. 1.1.1064 64bit 
Skip Textures 
I created these for the video tutorials I am working on. Not pretty but you may find them useful.

Link on Quaketastic

Problem Adding Textures 
Hello, I'm having difficulties setting up textures in trenchbroom. I have followed instructions and added Texture compilations WADs, but the textures doesnt show up in the I missing something here? 
Problem Adding Textures 
I noticed I get the following error message when adding a WAD:

Could not load palette file 'gfx\palette.lmp': File not found: 'gfx\palette.lmp' 
Quake path not set? 
click "face" right up screen, aside Map Entity.
texture browser +
Add texture wad set path
Has to be your Quake directory. As Pyro said. 
I don't think there's anything different lighting-wise in AD, or at least there shouldn't be given lighting is baked into the map, and a quick look at the documentation file and configs doesn't show anything. Normally if you're getting issues with colored lighting, it's due to the engine not supporting it so it either doesn't show up at all or shows up as standard white lights, but you've clearly still got some kind of color going on in the standard QS screenshots. I tried replicating it with multiple lights overlapping, different light values/types, etc. and couldn't get that 'colored outline' effect, would you mind uploading the map (and your own compiled .bsp) to see if the same thing happens to others?

Bonus Question: Does Arcane Dimensions mod always use the new health and ammo models or is there a way to tell it (in map settings) to use the classic models?
AD always uses its new models IIRC; there's a couple variants including a metal-sided style based off the id1 boxes (the same way AD includes updated weapon world models, enemy models, etc) but they're normally limited to the base worldtype, being replaced by the wood-sided boxes and health potions in medieval/runic. Glancing at the qc files shows there's a skin_override key available for both health and ammo entities that you can use to force one model or the other though, so give that a whirl. 
Trenchbroom Error / Help 
Hey guys. First-time mapper here working on a, hopefully, exciting map that I'm eager to finish and release. I've been working on it daily for the last 7 days and learning as I go. I'm having an issue, however, that maybe someone could help me with? So the level is coming along and I'm moving into a new section. It's at the end of a hallway and then I'm trying to make a path to the left. Everything compiles right with that new path but when I extend it to make it longer, there is an error compiling. It says "Mixed face contents in leafnode near (835.43 -192.00 72.00)" and I sort of know what that means as I've had to fix those kinds of errors before. Problem with this one is this hallway, floor, etc are not bumping into anything, are connected properly, and all that. There's literally nothing for it to run into so I'm not sure what's happening. Any ideas? 
Error (cont) 
Run into meaning sky and wall, for example. That's where I saw that error before was when my sky was encroaching on some walls. Cleared it right up after editing it a little but this error I'm having currently is really confusing the hell out of me. I don't know why the new section will compile right when it's a small size and then cause everything to screw up when I extend it a few meters down. I've tried building other stuff in that area and it seems that there is a point of no return kind of deal going on. 
It's for Quake 1, if that matters. 
That's usually something you get when you have a face with sky texture touching a face with some kind of liquid texture, or a trigger. Sure there's not something like that going on? 
Yeah, I'm almost certain. I do have a skybox in one section but fixed all the problems there and never had any more issues until this hallway part which is a good distance away from the skybox. I've narrowed it down to the point I can't go past as well and there's nothing in the way whatsoever. If I extend it even one small block it won't compile. Really frustrating. 
Deleted the skybox completely and tried it and still won't compile so can narrow that out at least. 
Oh weird. Fixed it but still not sure why it was a problem. I constructed a little table in the hallway and made a shiny gold necklace on it and used zoomed in lava for the gem part to give it a cool glow. This didn't cause any problems prior either but I just deleted it and now I can keep going with the hallway. Weird. I wonder why it would work to a certain distance and then stop considering the necklace is also away from the place I'm now building. You did help me though. You said "liquid texture" and it gave me the idea to delete it and see what happens. Thanks, man. Woo! Was getting worried for a second. 
Bummer about the necklace though. It looked awesome. 
Maybe with some screenshots of how you've set things up people will have some ideas of what could be going wrong. 
I've had "bad geometry" cause leaks before but never got that mixed face error. It sounds like you had lava just on one face of the brush in this case. Maybe a custom full fright texture would have a similar effect? You can probably use something from the prototype wad here: 
Yeah it's all sorted now anyway so no worries. I'll come back to the necklace when I finish everything and see if it goes through. Are these leaks you mention a major problem? I've seen some leaks pop up during compiling but I'm still able to play the level and all that so I figured it wasn't a huge deal. 
I'm liking those textures. Thanks man. 
Trenchbroom Compilation Question 
Hello, I started to use Trenchbroom and had a problems with compilation so I found some guides covering the newest version of Trenchbroom that lead me on right direction though did'n help at all. So I referred to Trenchbroom's manual pic named "Compilation Dialogue" and my map seems to compile just fine with qbsp.exe. So I tried to compile using other tools, again referring to mentioned manual pic and just don't understand what shoud I type instead of ${CPU_COUNT-1}. Please help 
Could you upload a screenshot of what your compile UI looks like? And what tools are you trying to use? 
sorry I don't know how to upload that. in manual pic everithing that has ${} thingies must be replaced with directory of the game or folder with map and I have no clue what I should replace the ${CPU_COUNT-1} with. In output it tells me: Could not interpolate expression '-threads ${cpu_count-1} mymap.bsp': Cannot subtract value '1' of type 'Number from value 'undefined' of type 'Undefined' 
Just Leave CPU Count Alone? 
From the manual:

CPU_COUNT | Tool | The number of CPUs in the current machine.

Usually we just set path's for compilation. 
Mixed face contents is where you have a mix between the 3 face types in Quake: world, water, sky. Never have a brush with water on kne side, world on another. Or sky mixed with water, etc. 
Triggering Monsters (Quake 1) 
Hey dudes. Me again. I'm trying to set a trigger on nailgun pickup that summons two demons at the end of the room but I'm unsure of how to do this exactly. I've set up a room apart from the map that they'll teleport from but that's about it. I've been experimenting with the trigger functions and just can't figure it out. The manual does not seem to cover this topic and google isn't yielding much. 
Additional Question (not Too Important) 
While I'm here I figured I'd ask another question: is there any way to see how my lighting will work in the editor itself? I have to compile and run the level every time I make adjustments and it's starting to take a while. 
Triggering Monsters (Quake 1) 
For teleporing monsters via trigger once.

1. Make some monsters and place in into "trigger_teleport" brushes. Each monster in separate "trigger_teleport" entity. All teleport entities must have one targetname.
2. Add some teleport destinations - one "info_teleport_destination" for one "trigger_teleport", and connect it one to one.
3. Connect your "trigger_once" to "trigger_teleport" ents. 
Spawn a monster in. (I know you've done some of this but for others:)

How to teleport in a monster upon triggering something:

1. make an area outside your playable level and place your your monster
2. make a brush with the trigger texture that covers the center of the monster.
3. right click and make the trigger brush into a trigger_teleport give it a targetname (i.e. monster1) and a different target (i.e. dest1)
4. place a info_teleport_destination where you want the monster to teleport to give that the targetname of the target in step 3 (in this case dest1)
5. set your trigger (in your case above it's picking up a nailgun) the target of the nailgun should match the trigger_teleport targetname in #3 (monster1.)
6. make sure you keep track of your targetname and targets - it's easy to get these confused. Just remember targets trigger targetnames in other entities

something to note: if you are spawning in two at the same time they need their own info_teleport_destination entities so they can share a targetname and be triggered at the same time but they each need their own separate target. If you use one destination they will telefrag each other! And you may want to add a key of delay and a value of 0.1 to the second monster so there is a tiny delay between their spawns. I recall this solving an issue before so try it if you see problems.

2. there's no real-time lighting preview right now in any of the editors. NetRadiant will show you a representation of the falloff of a light. ericw had hinted he might do an application that does realtime lighting preview at some point. Which would be instantly popular. 
@doomer is correct and I wasn't clear above. Each monster needs its own trigger brush and separate destination but they can share a targetname. Also I think you can just add a target to the nail gun instead of making a trigger_once. But if you wanted the monsters to teleport as you walk into a room then you'd make a trigger brush right click and make it a "trigger_once" Good luck!!! 
Awesome. Thanks guys. I love your levels and you're both big reasons why I started learning Trenchbroom. You guys, Sock, Ionous, Skacky, etc are incredible at this. 
Wow, that's very kind of you. I am currently working on video tutorials for Trenchbroom. You seem to figuring out thing on your own though! The first one will be out early next week. As time progresses there will be some advanced tuts you'll want to check out. I'll post here on fucn with links. 
Beautiful. Got it on the first shot as you guys explained it perfectly. Definitely looking forward to the tutorials. Thanks again, guys. You rock. 
Just To Be Safe 
I made a post about this, but I might have made a mistake with that. Here's what I wanted to ask:

I've been looking for a tutorial on the use of Jackhammer for a few hours now, but I can't seem to find anything. Is there a tutorial out there I can use to see what's up? 
If you can't find any tuts for JACK then you have some options that will get you close.

First, JACK is based on Valve's Hammer editor. You will find tutorials for Hammer out in the wild. There are many similarities between the programs. I believe JACK has more features but I haven't used it too much.

The other option is to use Worldcraft tutorials. JACK is based on Hammer which was based on Worldcraft and many concepts from Quake will carry over.

Good luck and consider trying TrenchBroom 2. I will be publishing a Quickstart video tutorial sometime this weekend (or before) and you may like what you see.

The tuts will be on my YT channel is here 
Artifacts In Q2 Sun/lightmap 
Hello guys, this is my first post here. It's interesting to finally have some reason to post here. I'm following func_msgboard for sometime, following all the cool maps and mods are being born here... Good stuff :)

Anyway, i decided to try something in Q2 engine. Right now, i'm having some problems when using _sun. Compiling with qrad3, i get this result:

it doesn't happen when i compile regular lights only, just when I use Sun... :/ Anyone have some idea? Thanks! 
Ah, Arghrad 
Arghrad solved my problem :D
back to work 
Scaling Models 
Is there a way to scale (prop) models easily? I have downloaded Preach's crane and helipad models from his site, and after placing them on my map in Trenchbroom they look so small, about the size of a cat. Quite endearing, actually. xD

Will I have to resort to some mdl editing in a separate editor? D: Guess I'm going down the deep end of Quake custom content creation, no more simple map making, huh? xD 
I usually just jump into QME here? and scale the model:

Of course, QME sucks ass and tends to mangle models if they look at it funny so... have fun? 
QME likes to break mdls. Should only be used to view models. :( you may get lucky tho. 
Mdl Scale 
Scale is defined by just one float in the .mdl binary file, I think (Can anyone confirm? Does anything else need to be tweaked other than this one float?)

If so, you could be able to just hax0r it with a hex editor. Preach - any ideas? 
Actually it's a vector of 3 floats

you'll probably want to scale bounding radius too. 
Yeah, you only need to change those 4 floats, so a hex editor will do the trick. If you prefer, you can install the qmdl python module then run the following script against the model.

from qmdl.helper import Helper

#read the model file
mymdl = Helper()
mymdl.mdl.scale = tuple ([i*4 for i in mymdl.mdl.scale])
mymdl.mdl.boundingradius = mymdl.mdl.boundingradius * 4
#save again"bigcrane.mdl")

This is multiplying the scale by 4, vary the value as required. 
It Worked! 
Thanks guys, you just keep helping out, no matter what I keep throwing at ya', AND always in a timely manner, might I add! :)

And for your information Preach, I used your script on a newer Python version 3.6.4. 
Adjusting Mdl Centerpoint 
I'm guessing it's model dependent, but I noticed that the larger I made the helipad, the further away the model diverged from the model entity (or is it in this case just a handle?) in Trenchbroom. Is there a centerpoint in the mdl I should adjust? Can it be done with qmdl or should I use something else? 
One of the quirks of the mdl format is that the model keeps the bottom left corner fixed when you rescale it, rather than the centre. If you add a line like

mymdl.mdl.origin = (-64 -64 -64)

after the mymdl.mdl.boundingradius line in the script from the previous point, you can specify the coordinates you'd like the bottom-left point to be at. Play around with the values! 
I figured it would be something like that. Thanks a heap for going through the trouble of helping me out! :) 
No Worries 
It's cool to see someone using it, I worried that it being a python module was a bit off-putting 
Func_train Question 
How to make train move through four path_corners? I named each correspondingly and gave paths corresponding direction. 
I made a sample map linked below. It's pretty easy to do as you'll see.

I made 4 path_corners. t1 - t4 make sure the target/targetnames are correct and that they close a "loop" - that's the part that people mess up on the most.

I don't think you need to specify a direction. I didn't in this case. Sorry for the weird name. Also you can use Quake101.wad or q.wad for the textures in this map. 
Thank you for your help! watched your tutorial on tuesday so thaks for that as well! 
You're very welcome. LMK if you have any requests for tutorials. :) 
Texture Wads 
New to mapping (thanks @dumptruck_ds) and wondering where everyone gets their textures?

For the moment I'm just looking for the default Q1 textures, but it'd be good to know where to get custom textures come from too. 
Here's A Start. 
Texmex will let you open a map/bsp and save as a wad 
Tex Mex 
Does TexMex have a homepage somewhere? Or is it just floating around, no longer developed. 
Looks Like Floating Out There 
Looks Like Floating Out There 
Guessing this one is the one people are using texmex_34 
This is more of an engine question but does quakespasm or vkquake support increasing the playback speed for animated textures using the +0, +1, +2 naming convention?

DP lets you circumvent this with Q3 shaders but i'm just curious if there's a more universal option for having an animated waterfall look smoother 
Not that I know of, but there's a tutorial on Preach's site about using func_wall's on-trigger function (switching texture between two sets) to double the framerate from 5FPS to 10 using two sets of premade textures. 
I Should Add.. 
That the method in the tutorial is a bit convoluted, because it describes how to get the effect in unmodified Quake. It would be much better to achieve the same effect with a simple mod that added QuakeC code to perform the switching between the textures. 
I'm Using Func_illusionaries 
So i guess i'll just deal with the low framerate.

I have another question/problem - I made a huge lift in my map that goes up slowly, it's a door -

It has items on it, but seemingly at random while the player is riding it he will get snagged on it and take damage, and send the lift back down.

Is there any reason for this/workaround? I know i could make it so you ride it down slowly instead of up, but I have to redesign it if i do that. I wanted to avoid using a func_train but if it's some sort of engine problem I'll switch.

I'm using quakespasm btw 
Wait What? 
I switched to a train and the collision does not match up with the position of the train - i tested in quakespasm and vkquake and it's broken in both, but oddly enough in darkplaces the collision of the train is correct

I have no idea what's going on 
Check for an "angle" or "angles" key on the func_train and delete it if there is one. 
I feel like a dope, that was it. Leftover from converting door > train

Check Your Server Fps Too 
Another thing that can cause weird physics glitches, like the one you had with your elevator, is setting the server fps too high in the config (default 72, if I recall correctly). When I use Quakespasm, setting it to 150 still seems to allow everything to work correctly. 
I Actually Kept Quakespasm Running At 72 Fps 
It still would happen. Sometimes the train gets caught too and does a point or 2 of damage but it's alright since it doesn't break the whole sequence 
I had the same stubborn func_plat that caused me headaches to solve.
Glad finding the solution here.

(for the the func_plat head) P: 
Lava Alpha 1 
It's been asked many times, but here I go. There is a worldspawn key to set the lava alpha for that particular level, right? Which one is that, again? 
Meet The "alpha's", Hehe (Hope This Is Correct) 

----- Alpha Options -----

water_alpha(string) : "Water Alpha" : : "Set the transparency of water (ex .70), which are brushes textured with a water(ex *04water) texture. This setting tranfers directly to the other 'liquid' types and teleporters, UNLESS you are using an engine that supports individual 'alpha's' for each(see below). NOTE - Defaults to the players own 'r_wateralpha' settings if no value is assigned."

lavaalpha(string) : "Lava Alpha" : : "Set the individual transparency of Lava, brush solids textured with a lava(ex *lava1) texture. Default inherits the 'water_alpha' setting. If 'water_alpha' is not set then it defaults to the players own 'r_wateralpha' setting."

slimealpha(string) : "Slime Alpha" : : "Transparency of Slime, works the same as 'lavaalpha' except for solids textured with a slime(ex *slime0) texture."

telealpha(string) : "Teleporter Alpha" : : "Transparency of Teleporters, works the same as 'lavaalpha' except for solids textured with a teleporter(ex *teleport) texture."

This works for me and I believe it to be accurate but if it is not, please let me know otherwise. 
I Forgot To Bold This... 
... and it threw me when I was testing:

IF 'water_alpha' is NOT set, then it defaults to the players own 'r_wateralpha' setting."

That means, that to set lavaalpha, it IS necessary to set a starting water_alpha to get the results you desire! 
Sorry For The Empty Post Above 
Is this Quakespasm? Do these work in other engines? 
Yes, Quakespasm. I just assumed it was a QS related question since it was a specific lava alpha question, maybe that was wrong?

I tested with DP, FTE, AD-MOD/QSS etc... I only remember I had mixed results, not the specifics to what each one did upon map load. 
Thanks, But 
I hope I can still set water_alpha 0.5 and lavaalpha 1, transparent water and opaque lava. Will try later. 
Water_alpha Is An AD Feature 
It works on any engine, but only with the AD mod.

Quakespasm and MarkV both support "_lavaalpha" and "_wateralpha" worldspawn keys. These work on any mod includong id1. This is relatively new (last 2 years ish) and not sure if any other engines recognize these keys. 
Really Wish I Could Edit My Post, Grrrr 
I should have used my modified version of Daz's FGD for reference, doh. I forgot the subtle differences.

Which has the correct entry for wateralpha, which is:

wateralpha(string) : "Water Alpha" : : "Set the overall transparency of liquids, default = (1.00)"

This I just tested with stock id1. No underscore needed at all?

Apologies for the confusion. 
Just checked MarkV and QS source, they will both accept underscore or no underscore. 
What About Telealpha For Mark V? 
In my map it's not recognizing it? 
MarkV Doesn't Seem To Support A Telealpha Key 
I think were technical reasons for not doing it.

Mark V has automatic underwater transparency detection (which isn't hard to implement, btw --- I told qbism how to do it and he added it qbism super8).

But the underwater transparency test cannot be applied to all teleporters because a small teleporter might not even materially affect vis.

Recommendation: Add automatic underwater transparency to Quakespasm (you'll like it) and then also remove support for tele-alpha.

Qbism added automatic underwater transparency to super8 because if a map isn't water-vised, honoring the user's r_wateralpha value (unless r_novis 1) is just silly looks horrible.

If you add automatic underwater transparency, you'll never see that ugliness ever again! 
22 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.