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
I know it is a bit of a creep, but I've been rumbing into the QTest file and I wondered if it would be possible to get access to the progs.dat.
As there is no progs.src the file bounces off as soon as I try decompiling it.

For what it is worth, I would like to play some SP maps in it, but there is no way to reach the bsp files as they all are in a different shape.

I know it's a silly question, but I just have that old fashion feeling how it would look like to add all given monsters in a usefull way.

Now it is just a stand-alone for DM with a rather broken way to use the entities. 
I use Quoth2 for my new map. How can I make a pendulum using info_rotate? 
qtest's .dat format is slightly different. from what I recall, the opcodes are mostly the same, it gains line number info, but it also lacks information about which variables are locals and which are not. if you were to adapt a qc decompiler, it would just end up treating all locals as globals. I don't think there'd be much else of an issue in tweaking a decompiler though.
however the bsp format is different too.

iirc, TimeServ made some tweaks to FTE years ago in order to run qtest's .dat paired with bsp29 maps. Whether that still works (and whether the map's entities have changed too) is a different matter. It doesn't support qtest's bsps (issues with surface triangulation), and I have no idea about the hud. Its also not software rendering. 
Thanks Spike! 
The qtest progs.dat is 312kb. I don't think there is a monster.qc included, as a small comparisment showed.

I took the first test1.bsp, which is "the place of the two deaths". In the original Id dm I placed some monsters, and then took both bsp files. With Texpath I could add the monsters to the test1.bsp file, but it immediately gave the "higher than 311kb buffer" warning.

So I think there is only info about weapons/ammu/health and deathmach players.

I tried decompaling with proqcc.exe -dec progs.dat but it ends up with "Error opening defs.qc".
No idea how to use FTE for decompiling.

@digs - Maybe not what you want, but here's the
doe pendulum qc. Maybe that helps, but it's not rotating. 
Thanks, but I do not want to use any additional scripts. I thought that this is possible in the limits of the chosen mod. It's a pity if this is impossible 
Do you want to add Qtest features into a mod? What does it have that you want?

Let me know where to download it and I can add it into Keep for you. Which reminds me. I never did add in some of your stuff. Would you mind if I did? No reason to leave a mod behind. 
It's certainly possible to create a pendulum using the rotating entities in Quoth, where are you getting stuck? 
I looked through the description of all the rotations, but did not find how I can do it. I do not even know where to start. I thought that you could force the door to open and close, but it only seems to open or just close. She can not return to the position in which she was 
All Aboard The Train 
You might want to look at using the func_rotate_train class as a controller, instead of the func_rotate_door. It's more complex but has the flexibility to do what you want. I'll see if I can put together an example map. 
@spy- thanks for the link, I'm registerd at but this has slipped off my attention.

@Qmaster- It was just my curiosity while playing Qtest1. I wondered why there were these monsters while they were not used. As I made a remake for the serpent, and a shield Ogre from the prequel screens, I thought it would be nice to make some Sp maps for it with the original monsters.

For what I seen in the q1test of Mega lol, he added the original quake monstes into the dm maps. My concern was to keep the authenticity of the original qtest, eventually added with a shield ogre. 
Hold Your Colour

Start by running pendtest.bsp in Quoth, observe the pendulum slicing. Notice how you can collide with the flat of the blade without taking damage, but it slices into you when you stand in the path of the rotation.

There's a lot going on to make this one object work, so follow this guide while looking through the map files in an editor to get an idea of how it works.

   External Models
The new idea (and the one that requires Quoth rather than plan Hipnotic) is to create the rotating entity as an external model, and then reference that model from the main map. This avoids the need to use an info_rotate entity (which historically made the rotating entity hard to texture and light correctly).

Take a look at the file first. You can see this just contains the brushes to make the physical, visible pendulum. Two things are important to note here
1) The brushes in this map are assigned to worldspawn, not part of an entity
2) The metal pivot at the top of the pendulum has been aligned exactly with the point '0 0 0' in the map. This point will be the centre of rotation for the object

Although I've been lazy in this test map and skipped lighting, another benefit of this file is that you can add lights to it. This lets you create lighting that looks reasonable at every angle the pendulum swings to.

The last thing to find out is how the external model is included after it's compiled. Open up in the editor. Normally, the brushes for a rotating object would be made into a "rotate_object" entity. In the case of an external model, we add a point entity to the main map with classname "rotate_object_point"; if you look at the example in pendtest, the key "model" "maps/pendulum.bsp" shows the format to specify the external model.

The Controller
Each rotating object in hipnotic requires a collaboration between a visible "rotate_object" entity, and a second entity which controls that visible entity. In this case, we are using a using a "func_rotate_train" to control. The targetname field on the visible entity links to the target field on the controller. The other keys we set on the controler are the noise it makes, the obituary text, and the damage it inflicts - 10hp is probably a bit low for such a huge chopper, but it is a test map.

The Paths
A rotating train needs a series of path entities which describe the sequence of rotations. For the back and forth rotation we want, only two "path_rotate" entities are needed. It's important to note that lots of different behaviours are possible at each step on the path, depending on the spawnflags used. In the example map the following are set: Angles & Stop rotate & Speed sets movetime

The first flag is the key to how our rotation works - we are stating that the waypoint specifies an angle for the object to face at the end of the movement (as opposed to setting a rate of rotation). "Speed sets movetime" is a bit of a convenience, it lets us say that the rotation must take 1 second directly, rather than having to calculate a speed of travel that makes the rotation look sensible. Stop rotate is cosmetic, it just adds a very short pause between each swing.

There's some subtlty to the angles chosen here: '410 0 0' and '-50 0 0'. The important thing to know is that after each step of the path completes, the angles of the object get normalised to the range 0-360. For example: after travelling to '-50 0 0', the angle is transformed to into '310 0 0', meaning that the object rotates forward to get to '410 0 0'. If we specified '50 0 0' instead of '410 0 0' the object would rotate the long way round, which is NOT what we want.

Finally, note that the path_rotate entities target each other to form a loop, while the "path" key of the func_rotate_train links it to the start of the path.

The Movewalls
The movewalls are needed to give the blade collision. All of them are given the same targetname as the original rotate_object, so they are moved by the controller in the same way. For demonstration purposes I've applied the "visible" spawnflag and an alpha value of 0.5 so that you can see what they're doing in the demonstration map. This spawnflag is very helpful for debugging, but in a final release can be turned off again.

There's also an argument to be had over the "damage on touch" spawnflag. On the one hand, I like the fact that you can touch the flat of the pendulum without taking damage, but on the other hand, you only get pushed if you get hit by the edge of the blade but aren't trapped by the walls on the other side. Perhaps just setting this flag on the end movewalls would be a good compromise. 
thank you very much for such a detailed answer. I am a little depressed that I will have to use an external bsp for my pendulum. I wanted to use only one file. I tried to replace the rotate_object_point with the rotate_object. But when I move the pendulum to a point other than zero, my pendulum starts to shake. But for rotate_object_point all works well. Probably have to use this method.

Thanks again 
All In One File 
The method doesn't RELY on the external model, it's just the simpler way of doing it. If you're set on having one file, you can refer back to the CZG tutorial, in particular the first paragraph. You need to make sure that you've included an info_rotate to mark the centre of rotation (instead of positioning it at '0 0 0'), and ensure that you've set the targets/targetnames up as CZG writes.

I have often though it would be useful if there was a way to take an external BSP model, and embed it into a BSP map, as if it had been a brush entity. Either compiler support for merging BSP models in when compiling the main map, or some kind of extra tool to run afterwards. If there was a BSP library for Python I'd have a go... 
I added info_rotate to the object and now it works well with rotate_object. Thank you! 
Help With Sound In Quake 1 Mapping 
I need help, I'm very new to mapping and was wondering, how to add sounds to my sky. You know that familiar sound of quake's sky. I use trenchbroom and tried to search on the internet, but couldn't find any info or tutorial on how to do it. Thank you guys in advance. 
I think you just need to run vis to get that? (make sure the map is sealed too) 
yeah run vis to get the automatic ambients for sky,water,slime,lava 
also more info on texture names & sounds here: 
Funny How This... 
stuff comes up when i am working on the exact tutorial that covers this info! 
Yeah I asked this on your latest video @dumptruck_ds, it's because of your videos I came to this site to begin with. Looking forward to more of your tutorials. And to everybody else, thanks for the info. 
Great news. Well this is the place to come for any Quake questions. I guess I need to do a more in-depth compiling tutorial soon. That would have helped. Welcome! 
hello everyone

In terms of performance, is it better to have several sky brushes or a single big bush? Let's say I have a wall with 3 windows; should I make three individual brushes with the sky texture or a single big brush with the sky texture behind the wall?

It makes absolutely no difference, type r_showtris 2 in the console in game to see how your brushes are turned into triangles. 
Alright, that's good to know. Thanks! 
Just started mapping for Quake 2 and I wanted to know if you guys recommend any command line tools for:

1) bsp, vis, rad. Right now I'm using qbism/q2tools-220
2) creating wad's from PCX?
3) creating font textures?
4) creating skies?

Also, is there any documentation for special Q2 textures like there is for Q1? 
Welcome. There aren't as many q2 mappers around these parts. A few. But don't take the silence personally.

Have you visited tastyspleen? 
Not Really Mapping Help...

Those images that look like they are from Deluxe Paint, the ones with the grid, where are they from?

I tried google image search and did not find anything. I reckon at some point Romero released some stuff like this, similar how he did with Doom.

Does anyone have a link to this?

Would be much appreciated. :) 
Ericw's Tools And _mirrorinside 
Here's a conundrum for anyone familiar with ericw's tools' extra options:

_mirrorinside (part of the extra options added by qbsp) causes any default brush entity to act as a sort of clip brush, which allows players and enemies to both see and shoot each other through it regardless of what faces are visible or textured with what, but can't be walked through. This applies to both stationary func_walls as well as func_doors (and I assume any other brush entity that acts similarly) and obviously illusionaries as well, which act normally (can be passed through). Any entity that requires being shot (i.e. buttons with health set) become inoperable due to all gunfire passing right through.

It's not listed in the readme anywhere that _mirrorinside should only be used on illusionaries and similar entities, and it does properly mirror the exterior to the interior of any brush entity, so I assumed all was good, but now I realize something's kind of fucky. Interestingly func_details are not affected by this- i.e. a func_detail_wall remains a solid wall that can be neither shot through nor walked through- which makes sense as so far as I can tell one of the main purposes of _mirrorinside is making truly flat fences and similar using a detail brush and making every side but the one you want skip, thus mirroring the one that's left. Just not sure if this is a bug or undocumented behavior, given _mirrorinside seems pretty experimental to begin with- can provide an example .bsp and .map if needed. 
Editing Md2 Model Headers 
Hi everyone, I'm trying my hand at Quake 2 modding and I was hoping someone here could help me out.

So far I'm trying to use Blender, I installed scripts for importing .md2 files but I'm struggling because the .pcx skins aren't supported by Blender... I converted them to .tga but I can't change the .md2 file's header to use the converted skin instead... :\

Any recommendations would be welcome. 
if you can't rename the pcx, rename the tga instead and hope the reader goes by contents instead of some random part of the filename. 
It didn't work, but meanwhile I did a lot more tests and I think I understand what's going on a bit better.

I still can't get the skins to show up in Blender, but I guess that's just because they have poor support for old model formats. I could get it to work in Misfit Model 3D, but I'd still like to have a way to explicitly edit the md2's headers, which I couldn't do with anything so far.

BTW I love your work! You did a great job with FTE, it's already my favourite port for Quake 2. The only reason I don't use it more is because it's still a bit unstable on my system. 
VIS Question 
Should I run VIS each time I compile? I noticed that it still looks "vised" without running it and even new geometry doesn't stick.

P.S. there was a place on a map, that got a hole after VIS. But after I compiled it without VIS the hole was gone. 
firstly, never embed fence textures into the worldmodel. tools can't cope with that yet.

in theory, vis is purely an optimisation. in practise there's a few sideeffects like avoiding excessive network bloat or insignificant stuff like checkclient returning world instead of the qc then using a traceline that's doomed to failure.
In the grand scheme of things it doesn't really matter all that much, but be sure to vis before release. 
Map Music 
In regards to Quake's music, I hate it. Hence I do not have it installed and do not ever bother with setting a track number. But I want to know how to best make my maps for a broad audience.

1. What happens if worldspawn doesn't have a track number set?

2. Which track is the most, er, generic and best suited as a default track? (Ya ya conflicted opinions incoming)

3. Is it possible to set a track number to null so that no cd music plays such that I can play my own scripted music sequences from ambient_generics (think Half-Life style)? I have a certain project that I would like to make more immersive through ambient sounds, triggered music events, and eerie silence in places. 
In regards to Quake's music, I hate it.
Absolute heresy. Get the cross and torches.

1. What happens if worldspawn doesn't have a track number set?
The track number will default to 0, which doesn't exist and so won't play anything. Some ports will print an error message in the console when this happens, i.e. Quakespasm with external music enabled prints couldn't find a cdrip for track 0
Vanilla will continue playing whatever track it was already playing. QS will stop completely. Or in other words, its engine-specific behaviour so good luck with that one...
You can be anal about it and get some mod to send a 'cd stop\n' stuffcmd, but that takes away the user's choices and doesn't really matter that much anyway. 
See void() ExitIntermission = in client.qc ... for a example.

WriteByte (MSG_ALL, 2); // <-- Set this --- Track number
WriteByte (MSG_ALL, 3); // (unused in Quake engine)

I would set SVC_CDTRACK to 0 replacing WriteByte (MSG_ALL, 2) to WriteByte (MSG_ALL, 0) to stop music.

It's the best you can do and would work

I think track 0 should mean no music. All of the original Quake maps have cdtrack set.

Trying to stuff cmd music commands is evil. Engines shouldn't permit it.

Case in point: If you want to be jerk, stuffcmd "cd eject" every frame. 
I agree, stuffcmds can be pretty evil when used wrongly:

"showpause 0;save quick;cd eject;pause;pausable 0\n"

Stuff dat. No really please don't. Everyone should backup their cfg file. 
Well if you don't like the default music you can package your own. If you worry a lot about copyright you can just go on youtube and search "royalty free (insert genre here)", Teknoaxe makes some decent quake style tracks, I am thinking abouy using one of their songs for a map I am working on 
Numbered tracks need to die, at least for new content. If the server stuffcmded 'cd loop $world.sounds\n' instead then a) it would be functionally the same as svc_cdtrack. b) the field could be parsed specifically and replaced with an actual string.
This would avoid conflicts between maps picking the same track number, and allow mappers to be explicit about the music's filename extension.

This assumes that noone tried 'streamlining' an engine by stripping out compat, and that noone failed to support faketracks properly... 
99 sound tracks ought to be enough for anybody.

Is numbered tracks perfect? No.

But svc_cdtrack works and is Quake compatible.

There is not really a meaningful problem to be found here.

/One opinion 
Unless You Are Trying To Go Full Ambient No Music Or HL2 Style 
But I think just using track 0 is simplest. Turns out I've always done that so ha! Thanks guys. 
Connecting Maps 
I made two small seperate maps with availabe doors.
In Quark6.6 I make a copy of one map.
Then I load the second and paste the first one.
II made sure the maps are on grid and close tight to eachother.

When I try to enter from the first to the second,
there is no visible bar but, I can't get through. 
Rogue clip or skip brush? Some bounding box in the way? What if you delete the brushes around the map transition? 
I have no idea where to search. I remembered I have met the error earlier. Then it were misaligned brushes.
In this case all brushes are on grid.
Have you actually snapped all brushes to the grid? This is important especially when working with Crocodile Dundee-type of editors like Quark.
Also be sure to use up-to-date versions of the compilers, not the old ones that come with Quark. These for example. Using them, the map leaks, but it appears the corridor in question is accessible. Might be some odd floating point/degenerate brush issue.. 
Found It 
The Axe_Ogre would not walk over gaps of 32 units. I left in a microbrush on the floor.

Why won't the Ogres cross 32 units?
They are big enough I think so. 
Monster movement code uses hull 0 instead of hull 1 or 2 for checking the floor. This means any small gap deeper than step height will be a barrier to monster pathfinding. 
It's The Same AI Code For Little Guys And Big Bads 
Ai J Ai 
Will find myself in Gulliver once I reach Hull.
I have to tag that movement code better.:P 
Which tool do you guys use to create sprites for Q2? How can i create an sp2? 
Anony Mouse 
Quake1 uses FirmG to handel sprites. It has a lot of output extentions. Don't know if you can view q2 sprites with it. Quaketastic has a Firmg 0.2 under tools.

I'm not familiar with q2 sprites. It seems there's a program called:
Quake 2 Sprite Builder, but I couldn't find it. 
I could really use a cli tool for that. Can't find anything, though. :( 
if all else fails, just use a hex editor.
the format is basically trivial.
{magic="IDS2", version=2, numframes, {width, height, xoffset, yoffset, char pcxname[64] }[numframes] }
Yeah, sort enough to be able to commit to hunam memory, apparently.

Its the kind of format that should have just been a text file all along - hence .shaders being used for sprites in q3.

(q1 sprites are more complicated and also directly embed the pixel data. I don't recommend trying to hex-edit those...) 
Floating Powerups 
Anyone know how to make floating powerups in Quake 2? maybe there is some sort of brush I can set to collide with the powerup but not the player? Thanks 

I have a problem with path_corner.
Can not use the "event" property. I set the "event" in the patch_corner, but when the func_trian leaves this point, there is no event. Is this the right name for the property? 
Make sure you have the full Quoth 2.2.patch from here

I have last version 2.2 
If you have latest 2.2 patch or full then it should work. Make sure the event has a unique targetname. Wait key will also work on newest version 
Yes, the event has a unique targetname. But still does not work 
If other quoth stuff is working try reinstall 
Event Bug 
Do you have "wait" set on the path_corner? The page you linked says that event isn't compatible with that (it's really more an acknowledgement of a bug than a design decision, but still). 
Maybe a silly question, but how do people get it so that textures on faces that aren't parallel to the grid don't stretch? 
I use Valve mode to prevent that. You can convert to Valve format by using Eric's tools and you can also choose the format when creating a new map in Trenchbroom (drop down menu on bottom right when selecting the game for which you want to make maps). 
Ah, the map format thingie. Thanks. Guess Valve is useful for something these days. 
No, "wait" not set 
See The Map 
Hard to say what's going wrong without seeing the map itself then, email it over to me and I'll take a look... 
Pardon me! I use my own utility for select a portion of the map and this utility changes "target" to other name.

I try simple compile and it works correctly.

Sorry once again! 
Trigger Problems 
Got a real bad trigger problem in my first map.
When I come to the middle of the game and have passed some triggers the others are all fired. Doors are opend things are working without activation?

Any idea to this? 
Trigger Problems 
Got a real bad trigger problem in my first map.
When I come to the middle of the game and have passed some triggers the others are all fired. Doors are opend things are working without activation?

Any idea to this? 
Targetnames Vs. Targets 
It's easy to get these mixed up. Double check everything. And what editor are you using? 
Trenchbroom 2.

The only idea I have is to give every trigger a targetname. Could this help? I checked some targets before and they all have different names so I can't imagine why they should be activated when one target begins with cave_ and another with sink_. 
No reason to give triggers a targetname unless you want another entity to trigger it. So that might make things a bit confusing.

Without seeing the map it's really tough to know what is up. If you'd like me to take a look I can this evening.

One suggestion is to create a new test map and re-create each target/targetname one by one there to ensure your map isn't somehow corrupted and to double check you are following the right logic in your setups. 
Doesn't "everything has fired" normally happen when you set a trigger with a blank target field (as opposed to no target field)? Check for that. 
@ Dumptruck_ds And PRITCHARD 
Thanks for your help guys!

After giving every trigger and button a targetname the problem doesn't come back. It seems that wathever triggerd the problem, giving a name to these objects avoids other triggers to activate them or there targets.
And yes there was a trigger with no target and only a killtarget so I fixed that.

Looking forward to upload a full playable beta in a month when fixed the last issues. 
wtf is trenchbrooms problem, the first time i run it i import the q2 texture wad, it works fine, now it wont work at all, the necros gui will not launch, nothing wants to work anymore wtf has gone wrong, ive even reinstalled it and it wont even regonize that q2 wad anymore. 
Theres a lack of information and an abundance of attitude in that post. Please try posting again and correcting these 2 things. 
I dont really know what else there is to explain, i goto materials add the wad, and no textures load, I've tried different wad files and nothing.

and the thing is it worked the first time i booted trenchbroom, just add the wad, not much else to it, and it worked but when i exited and started again it just will not load wad files anymore

is there some reg files i can delete? 
To clarify, youre attempting to load textures for Quake 2? Quake2 doesnt use wads so youre confusing the issue a bit.

I set Q2 up and got it to work. Closed and restarted TB, still works. Did you perhaps make changes to the quake2.cfg in your trenchbroom/games folder? 
No just a quake 1 map using the q2tex00.wad, Ive used it before

only log message i get is

Could not load palette file 'gfx\palette.lmp': File not found: 'gfx\palette.lmp' 
all sorted, just had to reinstall it a few times, no idea what its problem is still. 
providing that error message wouldve been a massive help :D

you must have done some changes in your quake/id1/gfx directory that got rid of the palette. 
20 posts not shown on this page because they were spam
First | Previous | Next | Last
Post A Reply:
Website copyright © 2002-2018 John Fitzgibbons. All posts are copyright their respective authors.