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: https://www.celephais.net/board/view_thread.php?id=60097
First | Previous | Next | Last
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-------
-----qbsp / tryutils v0.5 ----
input file: testmap
outputfile map.bsp

---loadMapFile---
XXXXXXXXXXXX ERROR XXXXXX
failed to open test.map: 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-------
-----qbsp / tryutils v0.5 ----
input file: testmap
outputfile map.bsp

---loadMapFile---
XXXXXXXXXXXX ERROR XXXXXX
failed to open test.map: 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-------
-----qbsp / tryutils v0.5 ----
input file: testmap
outputfile map.bsp

---loadMapFile---
XXXXXXXXXXXX ERROR XXXXXX
failed to open test.map: 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? 
@Winky 
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. 
Redfield 
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 testmap.map into -----> testmap.bsp This .bsp goes into your id1/maps. Only now can you play the map. 
I MADE THE LEVEL A .BSP FINALLY!!!!! 
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" 
IT WORKED!!! YOU GUYS ARE ALL GENIUSES!!!!!!! 
FINALLY I LOVE YOU ALL YOU ALL ARE THE BEST BOYS!!!!!!!!! THANK YOU ALL SO MUCH YESSSSSSSSSSSSSSSS!!!!! 
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? 
Hmm... 
Don't set .flags or it will override .frags.
I think you might need to set .cnt to 1. 
.flags? 
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_HIERARCH = 2;
float BREAK_NOLINK = 4;
float BREAK_CHECKNAME = 8;
float BREAK_ORDERED = 16;
float BREAK_TRANSLUCENT = 32;
float BREAK_INVINCIBLE = 64;
float BREAK_INVISIBLE = 128;

/*QUAKED breakable_brush (0 0 1) ? KILLALL HIERARCH NOLINK CHECKNAME ORDERED TRANSLUCENT INVINCIBLE INVISIBLE
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.

AUTOMATIC LINKING OPTIONS:
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.

OTHER FIELDS:
translucent - you can see through it
invincible - can't be shot and broken, but will break by linking
-------------------------FIELDS-------------------------
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:

https://i.imgur.com/DVb9QwB.png 
Decompiler 
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:
-demo1.bsp
-village1.bsp
-village2.bsp
-village3.bsp
-village4.bsp
-village5.bsp

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="https://ericwa.github.io/ericw-tools/>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. 
SgtStabs 
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) 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.