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: http://www.celephais.net/board/view_thread.php?id=60097
First | Previous | Next | Last
Thanks! 
I mean a higher refresh rate in your monitor. You' know it if you were as you need to set it in the engine in this case anyway. I ask about refresh rate because I searched here and that error was mentioned before in a thread elsewhere. I have no idea what could cause that so grasping at straws. :) 
Thanks 
No, just 60Hz
Thanks for the help, maybe it was a once off. I'll release as beta and see if anyone wants to test the map and see what happens. 
Re: Undead Fiend Head 
Hi Sir_Random, was the fiend mid-leap when the exploding box went off? Possibly it leapt into the box and set if off? I have a theory that you might have tumbled upon one of the many bugs that arise in the standard exploding box QuakeC code. 
Hi Preach 
It may well have been mid-leap, there was a lot going down at the time with ogre grenades and hell knight fire raining down :)

I haven't looked at the relevant code, but I'm surmising that when the Demon was gibbed it somehow wasn't flagged as dead, so the engine was still treating it's head as a walkmonster and trying to animate it. 
Now..where Was I 
One of the aspects of monsters dying in Quake which matters here is that the only real reason they don't continue attacking is that their think function gets reset by the death animation, so they never re-enter the ai loop. There's no other safeguard against a dead monster carrying actions out.

My guess of what happened is this:

Fiend leaps into the barrel and starts running Demon_JumpTouch
Demon_JumpTouch inflicts damage on the barrel
...The damage explodes the barrel
......The barrel explosion kills the fiend
..........The fiend turns into a head gib
Control returns to Demon_JumpTouch, which then sets a think function on the head gib, putting it back into the monster ai loop.

You might worry that this could happen in other situations, like if a grunt shot a barrel, blew it up, and died in the resulting explosion, would it also become a zombie? The answer is no, because army_atk5 sets a think function before it inflicts any damage. In fact, almost all monster animation functions set the think function before they take any action.

Demon_JumpTouch is an exception because it's a touch function that can triggers ai functions, and does so in an unusual order. The fact that the fiend was a head gib might have caused it to find one of the paths through the function that set an ai function (not all of them do).

Having gone on about Demon_JumpTouch so much, you might expect that the fix should be located there. But actually the traditional fix in QuakeC mods is just to add a short nextthink delay to the explosion of a barrel. This fixes whole other categories of bug - like multiple barrels exploding at the same time and resetting each other's radius damage loop. It also prevents the explosion interrupting other code, such as Demon_JumpTouch - which is especially confusing when the monster might change from alive to dead during the interruption! 
Thanks Preach 
I suppose a Fiend never encounters an explobox in original Quake, so there's not much chance of spotting that oversight in testing. I'm more familiar with idTech 4 & 5 (Doom 3, BFG) and there are plenty of anomalies in that code too :) 
@Preach 
This thing also happens with zombies?

I'm asking because there's a warning in the readme file of "The Pillars of the Damned" map that says "If you activate one of the crushers while a zombie is lying on the ground that zombie can only be killed by splash damage"

And this is what it looks like when i played (the bug shows at 09:30)

https://www.youtube.com/watch?v=udyyohmHvZc&t=570s

It's the same bug, or is something else? There's a way to fix this in progs.dat so it won't happen again? 
Zombie Vs "Zombie" 
Afraid not Tribal, where I said zombie in that post, I really meant "zombie". I was using it as shorthand for monsters affected by Sir_Random's bug - monsters that continue acting after the player has killed them. Any resemblance to actual zombies is entirely coincidental.

I don't think your bug is related, because the bug is triggered after the zombie is already "dead" on the floor, not at the moment of dying. It sounds like the engine tries and fails to restore the collision hull to the zombie when it stands up inside a BSP object, but I can't tell you more than that... 
@Preach 
Thanks anyway :) 
Trying To Get Started Mapping, Little Help With Compiling Probs? 
Hi All, long time quake player, thinking about my first quake map.

Hi Im looking into making my first quake map.

Im having problems understanding why qBSP runs on my map but vis and light doesn't run.

I dont understand why it finds my QCompileTools folder just fine for qbsp, yet it wont do the vis and light right next to it in the same folder?

I'm using necros compile gui

Im very new to all this and this in particular is really confusing me, so I hope you can help, and if the soltion isnt obvious I could post the compiler output.



I hope you can help and Best wishes! 
First Question 
Is qbsp.exe creating a bsp in your maps folder?

Next, if not we'll need to see the .log folder that is created in the working directory. 
Hi Dumptruck, Great Youtube Vids By The Way. 
Hi,

Yeah I get the bsp, it runs, Fullbright and with geometry disappearing.

Here is the compile

------------------------------------------
Copying Files...
The file cannot be copied onto itself.
0 file(s) copied.
Converting map...
--------------QBSP--------------
---- qbsp / ericw-tools v0.18.1 ----
Input file: FirstQuakeMap01.map
Output file: FirstQuakeMap01.bsp

---- LoadMapFile ----
*** WARNING 06: No info_player_deathmatch entities in level
2700 faces
450 brushes
2 entities
28 unique texnames
452 texinfo

Opened WAD: D:/Projects/Texture Archive/texturedownloads/base.wad
Opened WAD: D:/Projects/Mapping/MyTrenchBroomQuakeMaps/id.wad
Processing hull 0...
---- Brush_LoadEntity ----
450 brushes
425 planes
---- CSGFaces ----
2700 brushfaces
3205 csgfaces
3025 mergedfaces
---- SolidBSP ----
3886 split nodes
1749 solid leafs
1840 empty leafs
298 water leafs
0 detail leafs
0 detail illusionary leafs
0 detail fence leafs
0 illusionary visblocker leafs
20722 leaffaces
19774 nodefaces
---- Portalize ----
2138 vis leafs
2138 vis clusters
5477 vis portals
---- FillOutside ----
*** WARNING 10: Reached occupant at (1504 -144 312), no filling performed.
Leak file written to FirstQuakeMap01.pts
---- MakeFaceEdges ----
---- GrowRegions ----
Processing hull 1...
*** WARNING 10: Reached occupant at (1504 -144 312), no filling performed.
Processing hull 2...
*** WARNING 16: Texture __TB_empty not found
---- WriteBSPFile ----
Wrote FirstQuakeMap01.bsp
923 planes 18460
23094 vertexes 277128
3886 nodes 93264
368 texinfo 14720
19774 faces 395480
5626 clipnodes 45008
2139 leafs 59892
20722 marksurfaces 41444
79088 surfedges 316352
47598 edges 190392
32 textures 346812
lightdata 0
visdata 0
entdata 216

0.469 seconds elapsed
Peak memory usage: 69414148 (66.2M)
--------------VIS---------------
---- vis / ericw-tools v0.18.1 ----
running with 8 threads
testlevel = 4
LoadBSPFile: 'FirstQuakeMap01.bsp'
BSP is version 29
LoadPortals: couldn't read FirstQuakeMap01.prt
No vising performed.
-------------LIGHT--------------
The file cannot be copied onto itself.
0 file(s) copied.
The file cannot be copied onto itself.
0 file(s) copied.
The system cannot find the file specified.
Press any key to continue . . . 
2 Issues 
1. You have a leak in your level so VIS will not run.

2. Light will not run if you don't have any light entities in your map. If you do, then I am not sure why it isn't running. Double check the path in the GUI to light.exe Maybe it's incorrect?

Also it's a good idea not to have spaces in any of these tools paths or for your wads etc. But that's not the issue above. 
@AM 
Open the .pts file in your editor, you should see a dotted line leading you to the leak so you can fix it. 
Okay 
sorting the leak means vis will now run,
it makes a prt file, does this go in the same dir as the bsp when loading it into quake?

I put some light entities into the map, and now when I try to compile, it gets to light, and crashes.

light.exe system error
The code execution cannot proceed because embree.dll was not found. Reinstalling the program may fix this problem.

I see the flame of the wall torches, but there is no light. still fullbright textures.
Strange. Light.exe is in the same place as the other 2 compilers. 
 
PRT files are just for use with the compile tools. The Quake executable doesn't need it.

The prebuilt builds of ericw-tools require (and come with) embree.dll. Try reinstalling it: https://github.com/ericwa/ericw-tools/releases/ 
AM 
re: light crash

You are missing the MS Visual C++ files. TB and ericw tools use 2 seperate libraries. Go to the site and look at the link right under the blue download button.

https://ericwa.github.io/ericw-tools/

Also plz watch my troubleshooting video which will help you with leaks.

https://youtu.be/kFd-D46OCrg 
Above Should Read 
"you might be missing" 
Sounds Good. 
which of the 3 should I download?

vcredist_arm.exe

vcredist_x64.exe

vcredist_x86.exe

Im using 64bit windows 10 
 
vcredist_x64.exe 
Still Getting The Embree Message After Vcredist_x64.exe 
I downloaded and ran vcredist_x64.exe only. It didnt ask me for a destination when I ran it so I dont know where it puts those libraries. My projects/mapping is on my D drive whereas windows system files are on c
could this be an issue? 
@AM 
When you extracted the ericw-tools-v0.18.. zip there should be a "bin" folder containing an embree.dll as well as the various .exe's. Maybe just confirm you still have the embree.dll because copying just the qbsp/vis/light.exe to a separate folder would cause the "embree.dll not found" error.

I downloaded and ran vcredist_x64.exe only. It didnt ask me for a destination when I ran it so I dont know where it puts those libraries.
Yeah this is fine, it's part of Windows so it gets installed globally somewhere.

One last thing there are 2 packages of the tools, -win32.zip and -win64.zip. The -win32.zip requires vcredist_x86.exe and the other one requires vcredist_x64.exe. I should probably spell this out more clearly :) 
It Works Perfectly Now =D 
beautiful moody quake lighting.

Yeah it all makes sense now, I think I moved the .exes thinking it would be ok. I put them where they should be and everything is fine.

THANKS SO MUCH 
 
Wait what....why would you need separate .dll's for the compile tools? Did something change? What's embree? 
Trenchbroom Custom Model Display (.fgd File) 
Hello! In my progs I have misc_model entity which places custom models into maps. It has a parameter "model", which contains the path to my model in folder (for instance progs/v_shot.mdl). It works fine, but how should I set my .fgd file to display this custom models in Trenchbroom? Is it possible to do somehow? 
Reyond 
It is possible. I have an improved version of the fdg for progs_dump that has this feature. Here's the bit you need to add to the fgd:

model({
"path" : model,
"skin" : skin,
"frame": frame
}) 
 
Sorry for being so stupid, but I have never worked with .fgd files before. I have this in my .fgd file:

@PointClass base(Appearflags) size (16 16 16) color(30 150 35) = misc_model : " Place your custom model"
[
model(string) : "Path to your model"
]

Trenchbroom sees the entity in the entity list, bit it can not display the model when i wright the path to it. Where exactly should I add your piece of code so the model could be seen?

P.S. I tried to add your piece of code but got an error. I have downloaded fgd from your drobpox but I still can not sort out how to use fgd files. Thanks for helping me! 
Thanks To Dumptruck_ds 
Thank you so much! I found out how the misc_model is made in your fgd file and this worked for me:

@PointClass base(Appearflags, Target, Targetname) size(32 32 16) color(255 128 0) studio({ "path" : mdl}) = misc_model : "A point entity for displaying models"
[
mdl(string) : "Model Selection (ex progs/model.mdl)"
frame(integer)
first_frame(integer)
last_frame(integer)
speed(integer) : "Speed" : 10
angles(integer) : "set 'angle' to 0 if this is used"
 
Studio is the key bit here 
Is It Ok To Just Add The RL On Skill 0 ? 
I'm trying to balance my map for skills, and I'm wondering is it ok to just add the RL near the start for easy skill? Or would that be viewed as lazy?
It just seems harder to remove enemies and still keep the map exciting. 
Uh.., 
Depends on the game-wise developpement you tend the player to behave like.
A RL at the start makes it easy to clear path for almost the hardest monster, so then it depends on the ammo, health and armour you supply.

At the other hand with the weakest weapons you can build up a steady monster count that balances on to a harder fight at end.
Don't forget that several knights can make a player already uneasy to fight.

So an easy skill won't say an easier fight IMHO.
Or start with no weapon, there's an easy hack for it. 
Thanks Madfox 
Thanks, I do have a build up of monsters, geared at Normal/Hard. I guess I'll just change/remove some monsters for easy. I wanted to keep the ambush/crossfire situations, but I guess not many play on 'Easy' anyway. 
Sir_Random 
Don't forget that you can do more than just take away monsters on easy -- you can also replace them with weaker monsters that only spawn in easy mode.

For example replacing a vore with an ogre, or a shambler with 3 knights. 
@metlslime 
Thanks, that's what I'm going to do. 
 
It would be an interesting challenge on its own - a map where the # of monsters decreases with skill, but the overall challenge still increases. 
Suggestion: Progression, Plan Your Encounters 
Start with your ideal hardest level.
For each "encounter" consider the next logical easier encounter to step down to for Normal, then Easy. Either placement change, cover addition (e.g. func_wall post, crate), lower health or lower damage per second enemy swap out, or fewer enemies.

Gets fuzzy if you have near constant encounters but if so maybe pacing is needed on lower difficulties, longer timespans between encounters rather than one long continuous encounter with no breathing room between enemies (e.g. Nightmare).

Weapon-changeout/early-add is good, but remember how it will affect pacing, better weapons earlier = shorter fights = more time between encounters which can make for lower percieved difficulty. 
Qmaster 
I did make it for Normal/Hard, with a few strategic Nightmare monsters and I got great feedback from jcr who made demos in Nightmare. His play style is more aggressive than me so it was good to see the map played at pace and it seemed fairly balanced for him.
I just need to rework some battle areas to suit fewer/weaker monsters without making it toooo easy. 
Difficulty 
I think resisting "easier is just fewer monsters" design is the right way to go. There should be fewer monsters, just not many fewer, because too few is just plain boring. We're all Quake Experts after 20 years of this, so I think anyone playing custom maps on Easy in 2018 is doing so because they're doing it on a lunch break or a stolen evening away from the kids, and not because they can't handle more than one fiend at a time. Maybe we should think of it more as 'higher investment.' Besides, Quake gives you tons of unappreciated variables that you can tweak by skill, both obvious and subtle.

- Armor makes Quake significantly easier. More reds and yellows, more often, effectively extends the player's survivability in a given fight by hundreds of HP. More Greens, or stretches without armor at all, shrink the until-death buffer to little more than the player's current health. If you do want to keep the same monster loadout on all three skills, give the Easy player several Red and Yellow armors and the Hard player only one or two Greens. They'll feel like completely different games.

- Adding a vote for weapon pickups coming earlier or later. On Easy, the next big weapon might come before the next big encounter so the player can kick ass with it, on Medium it might be placed within it so the player has to engage to grab it, and on Hard it might only come as a reward after beating the fight entirely without it.

- Greater monster variety leads to more ways the player can be attacked at any one time, requiring juggling more variables to avoid damage and find the safe place to be standing at any given millisecond. A shambler and a vore together are harder to handle than a pair of either. Variety also raises the chances of infighting, however.

- The angles that enemies are presented from makes a difference. In front of the player is easier, flanking is harder, behind is bordering on unfair depending on circumstances. Below the player is a turkey shoot, eye level is straightforward, and monsters up high have a distinct advantage.

- Quantity of resources matters, of course. Bigger medkit pools clearly make the game easier, plentiful rockets can be splashed around while rare ones are only for emergencies, etc. Nail weapon DPS is higher than SG/SSG DPS and so on.

- Frequency of resources matters too. A steady drip lets the player feel secure, but isolated bursts create situations where the player has to stretch himself to get to the next 'island'. Depending on where he makes his errors, he might have to stretch pretty hard (eg those 'quicksave with 5 health left' or 'shambler axe dance or bust' moments). Feast-or-famine item placement can induce mild stockholm syndrome, leading to more positive reviews :)

- Unless you're using a lot of Enforcers, maybe provide all players an early Lightning Gun and simply vary the cells provided, as a way of dealing more or fewer 'get out of jail free' cards.

- Don't forget that the difficulty spawnflags are present on every entity. If you're using monster closets, vary the locations of the ambush triggers. Have the Hard ambushes happen when the player is in the worst possible position, and give them a leg up or more warning on easier skills (or even leave the closet open on Easy so there's no surprise at all). You might even duplicate the doors so you can set different 'speed' keys per skill, so the harder ambushes are an instant pants shitting and the easier ones are more like a countdown until the monsters come out, complete with early warning aggro sounds. Doors can be temporarily barred behind the player on hard skills while he is free to retreat from a fight on easier ones. Falling into a pit can be a mild backtracking inconvenience on easy skills but death by spikes on harder ones. How much room is there between nail shooters in this hallway? With careful use of triggerable lights and skill-specific trigger_relays, you can even use light and darkness against the player differently.

Getting crafty with what you change between difficulty levels can give you ideas for entire encounters, although don't rely on that too much for interest, because any given player is probably only going to experience one such permutation and thus won't realize the need to appreciate how different it is from any others. 
@Lunaran 
Great suggestions above. I may steal this and create a "gameplay" video based on it and a few other posts. This is an area I struggle with and just two or three of these suggestions would have have a big impact on any map. I know some players hate "back spawning" monsters but I think if you use them sparingly as an easy task after a more challenging encounter they can be effective. 
Ammo Science 
Here's a method I've been using. It's really rough, and time consuming without a custom progs to do it for you, but it can be a helpful way to ground your estimates.

A box of:
25 or 50 nails = 225 or 450 damage
20 or 40 shells = 440/880 dmg
6 or 12 cells = 180/360 dmg

6/12 rockets are harder to judge because of 1) splash damage and 2) zombies, but let's say every rocket is 180dmg, for 1080/2160 dmg per box.

Total all the ammo you provide in the map (add 25 shells for the starter ammo, add 2 rockets per ogre and 5 shells per grunt and so on), and that's the max amount of hit point damage you are giving the player to deal. Total the starting health of all the monsters, and compare the two numbers.

Researching id maps and popular custom maps reveals an average 'custom' of about ~3:1 on Easy, ~2.2.:1 on Medium, and ~1.7:1 on Hard. the id maps are generally above that curve (4/3/2:1), and custom maps tend to fall below it(2.5/2.0/1.5:1).

Careful cheapskate shot-counters can finish a map with a ratio of about 1.3:1 ammo DP:monster HP, but most players will have to resort to the axe at some point and will complain of shortage. RPGSP1, which was greeted by universal reviews of "good but I ran out of ammo at the end" still had a ratio on skill 2 of 1.4:1 DP:HP.

There are lots of outliers to these curves, though, because so much of it comes down to how the level design enables the player to *use* the weapons, as well as exploit infighting, choke points, etc. Do rockets get spent one at a time on individual zombies or can they be used to gib crowds of knights for maximum ROI? or are they useless against herds of shamblers?

It also matters when the player gets the ammo. Ammo the player doesn't pick up or can't use is effectively not present in the map at all. Does it come too late to be used when it was really needed? does it come too early and get skipped? or partially wasted when picked up by a player who's already nearly maxed and getting too much at the wrong times? How much of that ammo is in secret areas? 
I Can't Add 
20/40 shells * 24dmg/shell = 480/960 DP per box 
 
also quad damage placement 
Glad To See I'm Not The Only One 
Right there with you buddy. I once made a mod that outputs my health, shells, nails, etc to the console once per minute. Then I graphed it for my favorite levels. Made sort of an S type curve and tends to plateau with plentiful supplies of ammo towards the end but health still only hovered around 40 to 75. 
BUT 
I always come back to this: to heck with the numbers, make it fun. 
Of Course 
I cannot caveat enough that such measurements are of little exact use. It's good for ballparking it and discovering "oh shit I'm way off" and don't trust it more than that. 
Quake 3 Patch 
Hello! Does anybody know if there is a special utillity for converting .obj to quake 3 patch? Also, where can I find any documentation about q3 patches? 
-- 
Or use a model! 
Help? One Teleport To Much. 
Hi!
Have a problem with my map that I don't know how to fix.
After finnishing all and testing, in the first room, a black rectangle appears on the floor with the sound of a teleport. I can't remember that I made one and even can't find it in the editor.
Is there a way to search for things in trenchbroom or other ways? 
GunSgt 
I would go to the spot in the map in TB and "drill down" to see if there's a brush embedded in that spot in the map. IIRC you hold control + mouse scroll wheel to drill down your brush selections. Of you can hide the floor brush to see if anything is below it. 
@dumptruck_ds 
I haqve deleted the floor and theres nothing. I've also been going downward if theres something below. Also nothing. I have no clue? A bug? I've posted the map on screenshots and betas. 
 
in game:

"r_showbboxes" will draw white outlines around all entities, this will confirm there is an entity there. (NOTE: i don't think this shows static entities)

(alternate: set "r_drawentities" to 0 which will stop drawing all entities, including static entities -- another way to confirm this is an entity)

"edicts" command will list all entities in the console, problem with this is that brush entities all have the origin of 0,0,0 so you need to look at absmin/absmax or something to figure out which one is the one you are looking for. (hint: condump this to a file since it's easier to read in a text editor.) 
@Dumptruck_ds 
THANKS!

With r_shobboxes 1 I found a brush that moved somewhere and made me trobles ago. Deleted it and that was it. Bohh! Thank you so much!!!
Hope you're doing fine and find some time to play my map.

Best wishes!

GunSgtHighway 
Thanks Metlslime 
:) 
@Dumptruck_ds 
Haha! :D Thanks for assistence! :D 
Func_insidevolume And Func_pushable 
Is there any documentation on these two AD entities? I can't find them in the ad_v1_70P1_documentation.txt, and I can't get the func_insidevolume to detect the pushable and send an output to a func_door, even though I have the "pushable" flag checked. 
IIRC.. 
These were added/modified very close to release. Probably why no information.

Did you open the "test_pushable" map to see how to set it up? 
For A Simple Setup It Goes Like This: 
1)Create a brush then --> tie to entity > func_pushable, no other parameters needed.

2)Create second brush then --> tie to entity > func_door, then give the door a name Ex: "PushableOpens".

3)Create your last brush and --> tie to entity > func_insidevolume, give it a Target(fully inside) of: "PushableOpens". Uncheck all flags but Pushable.

Tada!

Now I don't remember the specific conversation with sock but there was concern for this: "Name of target(s) to trigger when something is FULLY INSIDE the volume (fires every 0.1s)."

Namely, the constant firing. I think that's why there's more complex setups for these. But you could select "Only ONCE" for "wait", for the func_insidevolume if that will work for you?

hth's 
 
Or if it does do constant firing, just target a trigger_relay set to once. Only have the trigger_relay target the actual door.

My guess is it has to do with needing the pushable fully inside rather than just touching like a trigger. 
@19956 And @19957 
Thanks! You hit the nail right on the head - I did not know the pushable had to be completely inside for it to work. Did a few more tests and it worked exactly as it should.
I'm a bit annoyed that pushables, that doesn't move, don't block gasshooters but this allows me to do a workaround for that. 
@Spipper 
You could use Target2 also, which is when a pushable is "partially inside" the volume ;)

Also, I'm a bit confused on the pushables that "don't move" comment? Maybe you mean when you are not pushing them? 
@Spipper Nvrmnd 
I tested it. Yeah, pushables are not solid to the gasshooter at all.

Seems an isolated case, versus the other trap types I tested('nades, spikes etc). Prolly not that hard to "fix". 
Messages In Quake 
Hi. Do someone know if there's a way to create longer messages than one line? and maybe change its colour? 
Reply To GunSgtHighway 
Yes, you can just move to another line by adding \n.
Just like this. “Hello, this is my message \n how do you like it?”
In game it will be seemed like this:
Hello, this is my message
how do you like it? 
@ Reyond 
Thank you very mutch! 
Message Color 
Color is possible in Darkplaces but you only use normal white or orange (bold) in all other engines like this:
\bImportant Message!\b\nNotice, thank you for noticing\n this notice.

For Darkplaces or QuakeLive engines:
The color codes are as follows:
^1 = Red
^2 = Green
^3 = Yellow
^4 = Blue
^5 = Light Blue
^6 = Magenta
^7 = White

E.g:

^4BLUE TEXTBOOK\n^7Normal white message. 
Skies 
Does anyone know where to find some good sky textures? I looked through most of the wads on Quaddicted's wads section but only found a few skies, none of which matched what I was looking for. 
Enjoy 
Skyboxes 
 
Thanks OTP. And GunSgtHighway, although I should've clarified I was looking for old-school style sky textures rather than skyboxes. 
Buttons, Info_notnull And Spawnflags 
Hi!

I'm getting crazy on this.
Is there a way to turn for example lights on and of or turn it on with two buttons and turn it off again? Thought I can handle this with trigger_relays or an info_notnull but I have no coding practise. Is there a tutorial or a manual for coding, spawnflags,...? 
 
turn lights on and off -- give light(s) a targetname, give button that matching target, make sure the button has a wait that is not -1.

same lights with two buttons -- if you want either button to do it, just give both buttons the same target value.

same light with two buttons, where you have to press both -- both buttons have wait = -1, they both target a trigger_counter, which triggers the light. This setup is not repeatable.

two buttons that you have to press both and then the light turns off and then you press them both again and it turns on -- a complicated setup with logic gates probably. 
@GunSgtHighway, Metlslime 
Not sure if this exactly what Sgt wanted, but here's a light that requires pressing two buttons (order doesn't matter) to be turned on or off. The buttons stay depressed until the other is pressed at which point the light toggles and they both reset. Demonstration here, bsp and map here. As metlslime suggested, it's done with some logic gates, a setup that could be cleaned up a lot by someone more skilled with gate optimization who doesn't rely on babby-mode spike shooters like I do, or just using a custom progs set, not to mention fixing up the timing on the button and trigger resets a bit. 
@metlslime And Spud 
Thanks for answers.

What I want to do is to put a little more riddles in my maps.
Means I made three buttons. Two of them have to be pushed for activating something, the other on sets them and the activating thing back to zero and you can push them again.

I don't know if quake supports this logic things with IF and THEN. But hopefully there might be a way. @Spud I'm hoping to find time today or tommorow to check your map out. Big thanks anyway! 
A Non-Gated Community 
Quake doesn't support that kind of logic internally (at least, not in terms of what one can normally use in the map, other than predefined setups i.e. "open door if player has key, else don't open door"), but you can use the various entities to make physical logic gates including if, then, all sorts of and, nand, and so on, and combine them all to do all sorts of tricksy logic stuff that you'd never expect to be possible. Some of them involve other types of map hacks (info_notnulls and InitTriggers and so on), but the most basic form just needs a spike shooter trap, a door, and a button- a simple if gate. From there everything spirals outwards, and you can even save a couple entities/edicts by using further hacks in the gate itself.

There's some great reading material to be found around, including the QuakeWiki entity pages and the QuakeC source, but here's a couple offhand:
New Logic Gate Design (2013) and part two of the same article,, along with Logic Gates for 2017, all hosted at the Tome of Preach, a most excellent site run by Preach that's absolutely chock-full of crazy map hacks. Those articles primarily focus on gates themselves; there's a number of other pages on the site that go into detail about specific hacks, some of which require gates, others that don't.

Not coincidentally, the last page above also links to a relatively ancient example of the aforementioned trap-shooter logic gate in Quake 2, penned by metlslime, whose post is a couple paragraphs up, and whose thread we're posting in, not to mention whose board we're posting on. Maximum respect to the old guard for figuring this stuff out years ago so us noobs don't have to.

The Teaching Old Progs.dat New Tricks thread is an enormous and fantastic source of information and hacks for the vanilla (id1) codebase, many of which aren't collected anywhere else and some of which are only discussed in the thread in throwing-science-at-the-wall form, but would be refined and used by mappers months or even years later. Ctrl+f is your friend, and sometimes stuff shows up in other threads like this one instead; if that thread doesn't have it, I find just Googling "topic or hack you're looking for here" site:celephais.net often works very well.

Lastly, dumptruck_ds (whose videos relating to Trenchbroom you've likely seen once or a dozen times) created and runs a Quake mapping help/discussion Discord channel along with a number of long-time or experienced mappers, if you're into the instant-response* type of help. You can't say how fucking awesome someone's newest screenshot or mod might be, though, because apparently we aren't all consenting adults there.

*instant response may be less than instant depending on time of day and interest level of whoever's online 
@Spud 
Wow! That helps!Thanks!
It's realy hard to get into that stuff no matter what you find in the web as long as you find the links between informations and understand how to use it.
Thank you very much!

PS.: No instant reponse guy. Have a Job to do too. :) 
@Spud Twobuttons.map 
Thanks for the map. Checked it.
Thats a lot to learn. :)

Best wishes. 
Similar Hack 
Here's a similar hack which is specifically about toggling lights. There are five different lights in the example, so it's a bit more complex that what you were after. But there are some useful things to bear in mind here.

https://tomeofpreach.wordpress.com/2018/02/22/five-statues-challenge/

I should also mention that I wouldn't treat the 2013 logic gates as an alternative to the 2017 article - the 2017 method is better all round because it fixes a bug, is easier to integrate using copy-paste, and supports an unlimited number of output on a single gate. Upgrade your map today! 
@Preach 
Thanks!. Thats an good to read tutorial!

Think I got it slowly.
So I have to transfer my If/Then-diagram to a gate model where every gate simulates an 0-1 status that will be activated by a target_shooter pointing on an info_notnull that does the action? 
Trenchbroom Help 
it's been a pretty long while since I've started on a new map in trenchbroom, but when I run the compiler it looks like there's no .bsp for the map. I've had this problem before but I don't remember what to do.

here's what it says:

#### Executing 'C:\Program Files (x86)\Steam\steamapps\common\Quake\bin\light.exe coldwiz.bsp'
---- light / TyrUtils v0.15 ----
running with 4 threads
************ ERROR ************
Error opening coldwiz.bsp: No such file or directory 
Skizzle 
Many times this is an issue with spaces in the path names. I see you are using TyrUtils so that could be it. ericw tools are the next "gen" of TyrUtils. I highly recommend you use them. https://ericwa.github.io/ericw-tools/

And in general just check all the paths in your compiling configs. 99% of the time that's is the issue. 
Triggering Console Variables At Runtime 
Hi, deving a map for AD mod with rusty hands.

How do you trigger console commands (or change cvars) within a map at runtime? Triggers, timers, etc.
In this case I want to alter the worldspawn "_gamma" value.

Searched various boards but couldn't find or understand how. Is it possible without altering .qc?

Thanks in advance. 
Look In The Manual 
For stuffcmd. Not sure AD has this but probably does.

People are wary of abuse so be careful. 
Stuffcmd 
What's the nastiest, most malicious thing a jolly japester can do with this? I'm genuinely intrigued.

Sounds like a good Jam idea: "break someone's PC with stuffcmd lol". 
Well 
Allegedly this used to be a thing:

apparently the Quake engine lets you overwrite the game data with savegames should you be enough of a moron to call your save “pak0.pak”, a bug that seems to hail all the way from the original release eighteen years ago

But I can't reproduce it in QuakeSpasm... maybe for the best. 
Trololol 
Well that's a good one. 
Not Down That Road.. 
..yeah, better stick to fog triggers. 
The Road To Hell Is Paved With\nsave Pak0.sav 
Fitzquake-derived ports (at least QS and Mark V) are smart enough to add a .sav extension to the end of whatever filename you enter, even if it already includes a different one, so it won't let you overwrite any files other than existing save files. Other ports and versions do not do that, however, meaning that you can indeed overwrite .pak files with savegames in Winquake... and Darkplaces. Oh yes.

I actually fiddled with this on my own a little while back to see what exactly can be done in that vein with vanilla console commands, and the answer turns out to be "not much." Most cvars that allow you to stuffcmd (map, save, load, etc) will either interpret directory-modifying characters as part of the normal folder or filepath or are intentionally set to ignore such commands, e.g.
save foo/bar.sav (a subfolder) will spit out
ERROR: couldn't open.
and
save ..foo.sav (a parent directory) will throw up
Relative pathnames are not allowed.
and
save ./foo.sav (the same directory) will expel
Saving game to <Quake directory>/./foo.sav... but will write the save file to the normal directory, making the ./ showing up misleading.
game, which isn't present in the original engines, will auto-reject anything that isn't a single directory name, not a path.

So you can overwrite .pak files in your game's base directory and not much else and that's only if you're using a outdated or shitty engine, but what about loading files? Again, nearly everything is locked down- map will load maps from subfolders, but not in parent ones. Everything else will give the same errors (primarily the relative pathnames one) except the exec command, which does allow directory changes in every port I've tried. Not especially interesting, but it does allow it, e.g.
exec ../quoth/config.cfg while playing in id1 will function and return
execing ../quoth/config.cfg
This (obviously) also works for the quake.rc stored within vanilla or mod .pak files. All the above limitations still apply to whatever's written in those config files, though. You can also string multiple ../ segments to navigate to two, three, and so on folders up.

So, food for thought: someone more malicious and skilled than myself can probably find some nasty way to write to system files outside of the Quake directory, and Darkplaces sucks. I didn't test the various extra console stuff in AD and similar mods, but I doubt they left any serious holes open. 
SM189 - Doom 
Sorry for likely asking a repeated question, but in regards to SM189 being:

"Progs: id1, because I feel it's too soon for another modded pack after the last speedmap/halloween jam/xmas jam."

Obviously Id1 .dat entities etc., yet are these vanilla jams intended to run w/out mod engines?

In this case I'd want to use alphas textures, eg. window/crossbar alphas contained in the various doomtex wads. Is there a restriction on the added functionality these mod engines provide? (alpha, fog, increased limits..)

..also, where the HELL should it be submitted?? 
Hi. 
Obviously Id1 .dat entities etc., yet are these vanilla jams intended to run w/out mod engines?

Yes, but almost everybody uses QuakeSpasm, so it's fine to consider a target engine.

..also, where the HELL should it be submitted??

Package the .bsp and the .lit if it exists in a zip file, upload to your file sharing service of choice cough and post in the speedmapping thread.

Alternatively catch me on the Quake Mapping Discord
Thanks A Bunch! 
"Hmm, not enough ash.." *stirs mortar 
4 posts not shown on this page because they were spam
First | Previous | Next | Last
Post A Reply:
Name:
Title:
Body:
message
question
exclamation
idea
flame
noflame
error
skull
beer
moon
pent
rocket
sheep
pacman
pig
cheese
worldcraft
gauntlet
crate
pitfall
pimp
smile
cool
sad
frown
oi
yay
tongue
evil
wink
neutral
q1
q2
q3
ut
hl
cs
doom
dkt
serious
cube
Website copyright © 2002-2018 John Fitzgibbons. All posts are copyright their respective authors.