BSP tool to just edit start/end map points

Hi guys,

I think I know the answer is no, as I’ve had a look at the tools available for Quake mapping - but just wanted to check in with your knowledge here. All I want to do is edit a BSP file so that I can change where the end of level teleporter will take you (the next map file loaded.)

Essentially, I’d quite like to hack my own custom campaign together for a friend - all my favourite maps that just load in sequence, one after the other.

Is there any way I can do this without decompiling and recompiling a map? I’ve tried to load some of those tools, but I can’t seem to get them to recognize my Quake directory.

Alternatively, is there a launcher tool where I can just chain maps together? Essentially some sort of basic ‘loadmap’ function that triggers externally?


Several ways.
One is to use bsputil.exe (comes with EricWTools) with --extract-entities on a .bsp file. This will produce an .ent file - edit it as text (Ctrl+F “changelevel”) and place next to the map. Quakespasm and derivatives support external .ent files, official engines do not.
Another way is to just rename the map files. A map generally doesn’t care what its own name is. So if “e1m1” exits to “e1m2” but you want it to exit to “mymap” instead, just rename “mymap” to “e1m2”. The only problem is going to be that a lot of single map releases loop back to “start”.
Finally, you could use a hex editor, but that limits you to filenames of the same length. If a map exit pointed to “start” you’ll only be able to use 5 letters for your desired next map. Still, this solves the drawback of the second method.

IIRC this is an option in Adquedit:

Thanks, unnamed hero! That’s great, didn’t realize the extracted .ent files were read by Quakespasm.

Only issue I’ve had when just renaming the map is that the player starts the map in the wrong location (usually floating outside the walls) - do you know why that would be? Is the map loaded along with set player co-ordinates?

The coordinates shouldn’t matter, no.
Does it happen in all engines? Some recent version of QSS had a problem with the player spawning in lava on vanilla E3M3. Try updating, otherwise I don’t know.

It was on QSS, yes - the one pre-packaged with Dwell?

Seems like the bug is fixed in the version included with Dwell.
The problem could be that you’re returning specifically to a map named “start”, there’s a separate “info_player_start2” entity for this and most non-start-maps would have no reason to include it. It should fall back to regular player start, but who knows.
Anyway, you could give more specifics to see if it’s some other engine bug, or we could drop it if .ent files solve the issue anyway.

Just wanted to say thank you - bsputil .ent files give me everything I was hoping for! Happily stitching together my own custom campaigns at the moment.

It’s probably of no interest to anyone, but you can play the Quake 1.5 maps by loading them from Arcane Dimensions, if you’re curious about the layout/structure without the gameplay changes. Some of them are very pleasant ‘small updates’ from the originals with more diverse enemies and breakables.