This tool is amazing. Thank you so much for this!
My one wish is to have the option to label each room with a number.
One Page Dungeon
Press Enter to generate a new dungeon, more shortcuts here. All the options are available via the context menu (right-click on the generator).
🃏This generator is a part of Procgen Arcana.
You can use images created by the generator as you like: copy, modify, include in your commercial rpg adventures etc. Attribution is appreciated, but not required. Please consider supporting this project on Patreon☕!
Log in with itch.io to leave a comment.
This tool is amazing. Thank you so much for this!
Try selecting Notes > Numbers in the context menu, probably that's what you need?
Is there any way to pass a modified json file back into this generator? I'm looking for a way to make small adjustments, or even have this tool re-skin something I've generated separately. New to this whole platform so I'm not sure if there's source code available.
No way to do it, sorry, but you can try loading a modified json in one of the editor which support this format.
This tool is great and the generation is really nice. But the design of the graphical interface needs a lot of work. Using only a context menu in an editor program is frustrating. But over all, it is really nice and a good time saver. Thanx a lot.
Well, it's not exactly an editor, it's mostly a generator. UI is a boring part of the project and if I made it for myself, there would be only Enter for building a new dungeon :)
I've been using your maps for a long time now, both as a dungeon master and as a developer for testing our team's tabletop map projection software Infinite Realms.
I recently implemented support for the Universal VTT file format in our app and was wondering if you would be interested in this as well for this generator. UVTT supports light, grid and wall placement information and more. The information is in JSON format and the map image is a base64 encoded string in the same file.
The format is supported by a growing number of map generators and VTTs, so it may be worth a look... ;)
Arkenforge has posted a blog post on the specs, along with a demo file here: https://arkenforge.com/universal-vtt-files/
Yeah, I'm considering adding this, although I haven't looked closely at the specification yet.
I love this generator (and all your others). I was playing with it, and decided to play around with the water level settings a bit. I wondered what it would be like with various water depths indicated (so like, this area is water level 1, that area is deeper, like 5, etc) - I decided to layer levels 1 to 5, so that the smallest area (where depth 1 covers) is 5, the next is 4, etc. Here are my results:
it would be cool if you could include something like this, but even without, this is a really great tool. Thanks for all the cool stuff you make, and especially for sharing it freely!
do you have a preffered commerical credit copy? Link to Patreon? link to your itch.io account? Either way, thanks for all you do.
in the props layer, what does the star in the circle means?
do you plan to make a "starship" branch/fork?
I do not, I'm just not familiar enough with the genre. But I guess some of the maps could work as spaceship plans as they are?
some of them, yes, there is some tags that doesn't quite fit well and others tag that are "missing". also the style is a bit different, I know is only aesthetic but still..
2 of the main difference would that the general shape should be far more compacted and the final map must resemble some kind of "shape" (squared, elongated, triangular...).
Is there any chance for a standalone download? The Itch.Io UI overlaps the top right quadrant of the entire generator unless I set my browser zoom to 75%.
Or a paid tool to let us manually make dungeons using the elements in the generator?
Occasionally I build native versions of my most popular generators (including 1PDG) for my patrons. The last time I did this was some time ago, so the next time is gonna be soonish. But if that UI thing is the only thing that bothers you, you can try the Arcana version of this generator.
I have no plans for making an editor (vs. generator) at this moment.
Awesome project! Thanks for sharing it with us.
Hey, I really want to use these models in MagicaVoxel, but when I drag the file in, nothing happens. I see on twitter that other people have gotten it to work. I can import it as an image fine, but that's just a flat image. I was able to import other .vox files made with different software just fine though. I think perhaps MagicaVoxel has changed the details of their file requirements since you made that export function.
It also could not import your .md or .svg files, on further investigation.
I am using 0.99.6.2 for macOS and it imports dungeons normally for me. I guess it's a pretty old version, but unfortunately I can't test a newer one right now. I'll try to do it a bit later.
I didn't get what is the issue with md and svg files. Where are you importing them?
OK, yup, switched to 0.99.6.4 for Windows, and it works just fine. Not sure what they changed in the more recent release that breaks it.
I am on an M1 Max - Ventura. I can't get the older or newer version to accept the Vox or SVG file. It loads Magica OK but just has a blank screen. Please can you share if there is anything extra you did to get it running on the mac. Thanks
I am on M1 Pro, Ventura and I'm pretty sure I didn't do anything special to make Magica load these vox files (although there was something about moving the folder??? to make Magica start normally). Apparently, there is no newer version to test.
I don't get why you guys keep mentioning svg...
Thank you very much for your work!
My English is not very good, so I borrowed translation software for this evaluation.
May I ask if you are considering adding support for other languages? I can help you complete the Chinese section (in fact, I have made some modifications, but I don't know how to preserve both languages at the same time).
In addition, I hope to add API functionality to directly generate image versions of maps based on website addresses, so that robots can directly obtain maps and send them to the chat software we use.
Hi! Thanks for your message and offer of help, but I'm not planning to add other languages at the moment. I mean, yeah, it would be nice to have support for translations, that would make the generator more accessible I guess. But to do it right, it would require a lot of work and it's not exactly the kind of work I like. Also some parts of the generator (specifically, text generation) are much harder to localize.
could you give us the downloadable file?
That's one of the very few rewards exclusive to my patrons. Didn't build native versions for a while though, since nobody reminded me...
This is great! Hope for adding language support?
Came here looking for chess. Not sure how exactly I wound up here. Seems like a nice community here in these comments. Maybe this project could be used to make alternative chess maps! I think we have some potential there perhaps? I will be leaving this page soon, but before I do that I am compelled to recommend the greatest game of our time: Chess. Give it another go, there are many lovely versions right here on this website! But no matter, I am just a 47 year old man, trying to make the world a better place through chess. Thank you all and have a blessed day my friends.
OP you HAVE to tell me more what do you MEAN custom chess maps? Is that a thing? And if so please tell me more i am so intrigued
I now feel compelled to create custom chess maps and special rules to allow one to use dungeon maps for chess..
this sounds amazing and there goes way too much time down the rabbit hole..
Ok so I don't understand something here. I have the Tags window up and have selected tags I want to use. Then I select generate and it adds additional Tags I don't want. Why is it doing this? Am I doing something wrong?
In 1PDG tags work a bit differently comparing to my other generators (e.g. Perilous Shores). The idea here is that you need to specify only aspects of the dungeon you care about. For example, if you need a totally random dungeon, select no tags. You won't get a featureless dungeon, instead your empty choice will be augmented with a few random tags. If you need a large dungeon, but you don't care water, select the "large" tag and sometimes the "dry" or the "wet" tags will be added. But if there has to be no water, select "dry". And so on.
Love this, made an account just to say that lol
Is there a way to(or for you to implement) a way of "marking" doors/stairs so they remain in the same spot for the next map generation? I'm going to use these for a video game and it would be easier if I can load up multiple maps and have the entrances already aligned. In the end its not really a big deal just a time saver, thanks
No way to do this, other than brute-forcing it (i.e. generating maps untils their doors coincide with marked locations), sorry. I don't know how useful this is for you, but the entrance (the staircase) always has the same coordinates (0, 0).
Would it be at all possible to implement something to manually adjust room sizes?
Sometimes you get a dungeon that's just near perfect but it needs a few little tweaks.
you can upload it into dungeon scrawl and edit everything
That's what I was going to suggest. And Dungeon Scrawl is not the only editor capable of importing these maps.
How do you upload to dungeon scrawl? Dungeon Scrawl does not seem to support the export options.
These look nice, but the contents are pretty random. Gnome with key…man hiring you (while sitting alone in a dungeon)…blood stain (why?).
I had a think about alternative methods, and came up with a new procedure:
- make dungeon (caves or mine)
- allow [elves/ dwarves/ gnomes] to make it a liveable space underground, with libraries, rooms, art, traps, et c.
- have invading [lich/ goblins/ sickness] kill everyone (or turn them undead), and errect some new traps.
There’s a basic python example: https://github.com/Andonome/dungen
Would something like that be possible here?
Hey, sorry it took me so long to reply. It's actually a big topic, so I didn't answer right away to think about it first, and only now I remembered that I didn't answer at all. Here is a list of my thoughts:
- Yes, these dungeon notes are too random, can’t argue with that.
- The generator is inspired by “one page dungeons” and they tend to be like that (because of the format). The idea is that one is supposed to connect the dots somehow to see a “story” behind small pieces of text.
- One of the reasons why it doesn’t really work is the generator was made for a jam and I didn’t have much time to implement this part properly*. After the jam ended, it turned out that people were more interested in the hatching and in the way rooms connect.
- *I did try to make this all more coherent by introducing “themes”. For example, a dominant race is chosen for each dungeon, so if it’s a dwarven dungeon, dwarf npcs are more likely to spawn.
- Another (probably more important) reason is that compelling (even if random) vignettes are needed and text generation is a special skill I am lacking.
- I don’t know python, so I can’t comment on your example, but I encourage you to make it into a full-fledged application :)
- Regarding the approach you suggested, I personally wouldn’t adopt it here. It’s a question of “faking vs. simulation” and I am a proponent of “faking”.
- You see, I believe that if a screenshot (e.g. a map) of a complex system (e.g. a dungeon) is needed, in most cases just “painting” such a screenshot is a better way to make it than creating and running a model of the system.
- Models are harder to implement, fine-tune and debug. Models are prone to getting stuck in a limited number of states including bad ones.
- Of course, you can’t do without simulation if not a still image is needed, but a running thing. Or if a still image is expected to be very closely inspected (e.g. like in Obra Dinn).
As I said, it's a big topic :)
I don’t know how to generate images (or code really - that’s my first python project up there), but if you ever change your mind I’m happy to jump on a project to generate text and such. I’ve not seen your code, but I’m sure what I’ve done is simpler.
Hey! I don't know how to get in contact with you, but I think someone on Amazon is using this generator to make and sell their own dungeon books.
In the footer it says the maps are free for commercial use and even attribution is optional. But yeah, does feel like the author deserves more than credit, these maps are hella cool.
Hi! I was looking for a way to generate these kinds of maps for a roguelike game. They're amazingly organic and feel man-made. Are there any clues about how this was developed on your patreon, or can I get in touch here to ask a few questions about your methods?
Hey, I was wondering if there's an easy way of importing these maps into Godot. Can you point me in some direction @watabou?
You can try parsing exported JSONs. Their structure is very simple, it's basically a list of rectangular rooms (incl. corridors) and a list of doors.
right, it was more of a godot question :D
Right click on the map to export as JSON. In GODOT you can load JSON files just like any text file, then you can work with it as a dictionary in GODOT, which will allow you to place rooms, doors, items, secrets etc... in your game.
These little maps give you the impulse to play new adventures!
I'm trying to switch from squares to hexagons, have you ever thought to add a hexagon option? Straight walls and hexagons means a lot of badly cutted hexagons, we know, but... :)
I'll consider it. I did the opposite thing with caves before - there I overlay maps made of hexes with poorly matching regular grid :)
Amazing webpage, I often use it for my dungeons when playing on Foundry VTT through the importer.
There are two things I think could be huge improvements:
1. Have hard corners automatically have walls that stop line of sight past them. Here is a link to a number of examples where I added the corner manually: https://imgur.com/ghXx6gY
2. Allow the grid to be half as large as it currently is (or perhaps even smaller?) for dungeons that were built by larger than average creatures. Optimally, this would only change the grid size (allowing 4 creatures in each normal square on the map) while still maintaining the placement of walls and doors.
- This generator produces maps, but I have no idea how they are imported in Foundry and how generator-specific map geometry is converted into los-blocking walls (the generator itself knows nothing about line of sight) . You may want to ask the author of the importer you use about those walls.
- In the generator you can enable Layers > Grid > Small tiles to make the grid squares twice smaller. I'm not sure about Foundry, maybe some additional actions are required to make it work there.
have you thought about having an option where doors don't take up a full square/the rooms are flush with each other? either way, fantastic tool and fantastic work! thank you!
I agree that such an option would be useful, but with my current algorithm it is much harder to implement than it may seem.
Any chance we could have an option to produce dungeons on a hex grid rather than a square grid? I know you've done this with a few other random generators, but I don't know how hard it will be to implement here.
Overlaying a dungeon map with a hex grid isn't difficult, but I doubt it will be useful: nothing on the map will be aligned to the hex grid (and there is no way around it because dungeons are generated on a square grid).
Found the answer to my own question. Just had to click around in the right places. Love the generator. Thank you. I am new to this and a little confused about how to get the images that are generated for us. Tried right clicking and checked all links on the page to no avail. Anyone care to share other than printing the screen? Thanks in advance,
If you "right click" & choose "save as PNG" from the drop-down menu. That saves it as a PNG (picture file) in your Downloads folder. In that same drop-down menu you can click on "Notes Mode". This gives you a sub-menu that allows you to change the map so it only displays "Room Numbers". You can then "Save as PNG" & upload or email it to your players, giving them a map they can use but keeping the contents of the rooms a surprise to your players. You should also be able to edit the PNG in whatever picture editing tools you have on your computer, ie. MS Paint, PhotoShop etc. FYI: Once you right-click to get the drop-down menu, you may have to "scroll down" the page to see all the options in that drop-down menu, as the drop-down menu can be quite long. I hope this helps :-)
I posted this on the reddit/FantasyCities...
Would you consider making an editor to create the dungeons? (Non-generated) I know there are editors out there but your work is very polished and feature rich. (You have round rooms!)
Sometimes I think I could make one, but most of the time this idea doesn't seem attractive to me. Editors are all about UI, and making UI is boring and tedious.
BTW, those round rooms are fake. Creating a generator supporting proper round rooms (and also diagonal and arched tunnels) would be a more interesting task :)
In the json format, what parameter is determining whether a door is a front or back door?
Also just a note for you, because in your json file the notes are named "ref", it means the notes part of the json file cannot be read within unity without renaming it before parsing it through, as there is an inbuilt parameter in C# called ref that you cannot override.
Loving the project!
- There is no explicit way to distinguish front and rear entrances in json: they are both "stairs" ("type": 3). In most case they are situated in different rooms and it is possible to check which room's description contains "rear entrance" as a substring. Probably I should introduce a separate door type for back doors.
- That's unfortunate, but I guess (i.e. I hope) it's not too hard to replace all "ref"s with something else before passing json code to the parser.
Nice work watabou. This is a cool update.
I'd like to +1 the request for naming the different doors. That means as a game designer I can use them with more deliberate intent.
Also numbering the rooms e.g. room 1, room 2, room 3 in the JSON would be would be a huge win for me. That way I can programatically do what you're doing in this image and use the custom notes feature to write about each of digital dungeon in my campaign. Pretty please ;)
If you right-click & choose "Notes Mode" from the drop-down menu, you can change the map so it only displays room numbers
Would have to go an extra step to replace all "ref" using C# with the Unity engine, as to parse the json file I have to use a custom class that matches all of the naming conventions, which I can't since I can't name anything "ref" in c#.
I can't replace "ref" because that would break compatibility with applications supporting the current format. I can duplicate it with another attribute ("symbol"?) if it helps.
Hey Watabou, I really like this generator's style. I think it's the best dungeon generator out there currently. You've done amazing work!
I saw on your devlog that you're looking to make a cavegen again. I hope this comment serves as encouragement in your attempts to make that. A cave generator in this style would be a godsend since this is best looking map generator I've seen so far.
i just read your idea on how to do this in Patreon.
Please please please make them compatible. I am importing the dungeon json into a game and I can envisage a version of this where players could move between dungeon and cave.
If there’s anything I could do to convince you not to go hex I’d do it.
Dungeons & Caves make sense to work together and this sounds like you’d be intentionally making them not compatible from the start 🤔
Unless of course the JSON was indifferent and I could use the JSON from hex caves tool to draw the same caves using tiles as I do with the dungeons.
Bro, those caves look sick! My fingers and toes are crossed. Either way love your work. I’m still your number 1 kiwi fan 😎
does this support hexes?
Are you asking if there is a way to display a hex grid instead of a regular one? No, currently it's not possible.
i have a cuestion, meaby a dumb one, but whats the meaning of the cricled star simbol?
A statue or just some "notable" object.
If you go back to some older editions of D&D, especially BECMI; you'll find a "standardised" key/legend of dungeon features that hasn't changed much & should be familiar to "old school gamers". The developer seems to be using a lot of those standard symbols. The "circled star" is a classic. I love it!
how feasible would it be to implement a smaller grid? i love the old school look of 10x10 grids but 5x5 are easier to fit to roll20's grid
dungeonscrawl lets you import .tsv files [e.g. from donjon] for editing; any plans to implement exporting OPD as .tsv ?
Honestly you've certainly done more research on this than me, so I couldn't tell you who else uses TSV, dungeonscrawl is just the editor I've gotten most comfortable with. Thanks for the other editor recommendations, I'll have to check those out!
How would you most appreciate having the work attributed? Map by watabou? Map by watabou.itch.io? The full url? PROCJAM in there somewhere? Inquiring minds want to attribute!
I think the full phrase is something like "Map created in 1PDG by Watabou" but fill free to shorten it as you see fit :) Cheers!
ooh this is perfect for one of my physical games I'm working on!
Hey Oleg! My name is Artur Kurasinski and I am the co-creator of Never Ending Dungeon (NED) which is a tool for Game Masters and RPG players to create maps and adventures using AI. Here is our latest video:
I am a huge fan of your games and the tool you create - I have a question if it is possible to use the One Page Dungeon engine to teach our AI to create rooms more sensibly?
The map app puts the current seed in the URL meaning ctrl+r doesn't generate a new map.
EDIT: nevermind just found out the controls. R only rotates, Enter generates a new one.
Just made an account to tell you how amazing your work is! Love all your DM tools, they are my absolute favourites! :)