How to Use Jigsaw Blocks to Make Custom Randomly Generated Structures
Vložit
- čas přidán 22. 05. 2024
- Roguelike dungeons, randomly generated houses, villages, jigsaw blocks are a powerful, underutilized building tool. This tutorial will teach you how to use this little-known block as well as how to generate random structures through the use of a custom template pool (kinda like a table of contents, but with randomness).
0:00 "Intro"
0:12 "Step 1: Rooms"
- /give @p structure_block
2:38 "Step 2: Connectors"
- /give @p jigsaw
7:48 "Step 3: Custom Template Pools (Table of Contents)"
- Template Datapack: www.planetminecraft.com/data-...
- Rename NAMESPACE folder to a short name (only using lowercase and underscores)*
- Rename TEMPLATEPOOL JSON file to a short name (only using lowercase, numbers, and underscores)
- Inside the TEMPLATEPOOL file rename NAMESPACE, TEMPLATEPOOL to their respective names
- Also inside the TEMPLATEPOOL file rename STRUCTURENAME to the name you saved in the structure block
13:36 "Step 4: Jigsaw Settings"
14:52 "Step 5: Generate!"
- Updated for 1.19 (Check reason below) - Finished example datapack (Does Not Contain Structures!): www.planetminecraft.com/data-...
Advanced Info!
- Sideways jigsaws only connect to other sideways jigsaws and vertical jigsaws only connect to other vertical jigsaws
- Your structure files are saved at Your_World/generated/minecraft
- You can copy these into the datapack from PlanetMinecraft inside the your-title-goes-here/data/NAMESPACE/structures/
- If you copy your structure files you must update their location inside the TEMPLATEPOOL JSON file and replace the minecraft:STRUCTURENAME with NAMESPACE:STRUCTURENAME
- You can also prefix connectors with your namespace (i.e. talon:walkside) just make sure to change it everywhere and save it in the TEMPLATEPOOL JSON file
- Jigsaws have super cool logic when using block states. If you define a directional block state such as oak_log[axis=x] the jigsaw block will apply this before rotating the structure meaning the oak log will always be facing the correct direction
- Block states are found by pressing F3 and looking on the right side of the screen
- Block names (for the Turns Into setting) can be found by pressing F3 + H and hovering over the correct block
- You can actually set one of the structures in the template pool to be empty so the structure will occasionally not generate anything
- The Billys (cats) generated with structure did generate randomly but they all kept the Silent:1b tag I gave them, so entities do keep some tags they're saved with (the normal tags affected by spawn will be randomized)
- A more complete definition of levels is that it defines the length of a path. A single path can branch off into many other paths as well as double back on itself creating far more than seven total structures. This means the more jigsaw blocks a single structure has the more branches that structure will create and the larger the final product will become.
World Download: www.planetminecraft.com/proje...
1.19 Error Solution: • 1.19+ Jigsaw Block Err...
Edit for 1.19: World and finished datapack have been updated for 1.19. Due to some changes the template pool file had to be split for more consistent generation. Basically, you need one template pool file per exclusive connector name. So in the world the green, orange, and purple room all had the walkside connector, but the cat structure did not. So I put the cat structure in its own template pool file and updated the structures saved in the world. It makes no difference how many template files you have so if you get the no starting jigsaw found error consider adding another template pool file for any exclusive connector names.
Advanced Jigsaw Generation Control Tutorial: • Jigsaw Generation Cont...
Naturally Spawn Jigsaw in World Tutorial: • How to Naturally Spawn...
I put as much info as I could in the advanced section, but if you still have more questions ask them, and I'll do my best to answer each one.
Ending Music:
"Pamgaea" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0
creativecommons.org/licenses/b...
Not an official Minecraft product. Not approved by or associated with Mojang.
Chapters:
0:00 "Intro"
0:12 "Step 1: Rooms"
2:38 "Step 2: Connectors"
7:48 "Step 3: Custom Template Pools (Table of Contents)"
13:36 "Step 4: Jigsaw Settings"
14:52 "Step 5: Generate!"
#JigsawBlock #RandomlyGeneratedStructuresInMinecraft #Talon2863 - Hry
*FAQ (Frequently Asked Questions)*
*Issues:*
*- My jigsaw won't generate. How do I fix it?*
This can be caused by the smallest mistake. You'll need to debug your target pool and structures to discover why it's not working. See the debugging section below.
*- Does this work in Bedrock? (Or console? Mobile? Windows 10 Edition?)*
Unfortunately, no. The jigsaw block exists, but there's no way to set a target pool (which is required to generate a dungeon). Even add-ons cannot fix this. Only the developers of Bedrock can change this.
*- Does this work in version 1.X?*
It works up to 1.18 with no changes. 1.19 and above require some small changes I show in this video: czcams.com/video/Cf0d7IRGyTY/video.html
*- What is Selection Priority and Placement Priority?*
New generation controls added in 1.20.3. You can leave them at zero with no issues or watch this video to learn about them: czcams.com/video/cmH9PajUP30/video.html
*- I got the error: no starting jigsaw ROOM_NAME found in start pool TARGET_POOL.*
This is an error from 1.19 and up. I address it in this video: czcams.com/video/Cf0d7IRGyTY/video.html
*- I got the error: empty or non-existent pool.*
This means your syntax (the order things are in) is wrong in your target pool file. You'll need to debug it. See the debugging section below.
*- I got the error: Missing key in ResourceKey[minecraft:root / minecraft:worldgen/template_pool]: ResourceKey[minecraft:worldgen/template_pool / TEMPLATE_POOL:POOL_NAME].*
You may have renamed the template_pool folder, which will cause errors. Make sure you only rename the template_pool.json file. (Credit: knighy64)
*- I got the error: something is wrong in line X column Y.*
This means your syntax (the order things are in) is wrong. Go to line X column Y and work your way backwards until you can figure out the mistake. If you need some ideas of what to look for, see the debugging section below.
*- I'm confused about connectors (name and target name).*
You can think of target name like a flyer for a lost dog. It's the instructions on what to look for. Name is like the actual dog, and the generation is like you taking a flyer and then looking for the dog until you find it.
*- I'm confused about the rarity of rooms.*
Think of rarity like raffle tickets instead of a percentage. The more you put in, the better chance you have of getting that result.
*- I got two folders named your-title-goes-here.*
This sometimes happens with zipped folders. Remove one of the your-title-goes-here folders so your file structure looks like WORLD_NAME/datapacks/your-title-goes-here/data/NAMESPACE
*- I got a warning about using experimental settings. Did I do something wrong?*
No, everything's fine. Just click "I know what I'm doing."
*- The datapack I downloaded didn't work.*
To simplify the template datapack, the structure files were not included. There is a world download that contains everything here: www.planetminecraft.com/project/jigsaw-world-from-tutorial/#tab_image_gallery
*- My structures folder is empty.*
See "Can this work on a server?"
*Additions:*
*- Can you make dungeons naturally generate?*
Yes, but it's advanced. Video here: czcams.com/video/7R612D4zXDA/video.html
*- Can you go over the max of seven/make an infinite number of rooms?*
Yes, but it's advanced and it tends to collide with itself. You'll have to design the logic yourself using command blocks.
I would start by putting a marker armor stand in each structure and then running the /place command on any armor stand that is all alone (since jigsaw rooms that spawned next to each other would have two marker entities in close proximity)
*- Can this work on a sever?*
Yes, but you'll need to move your structure files. First section of this video describes how: czcams.com/video/7R612D4zXDA/video.html
- Simply copy the structure files from SINGLEPLAYER_WORLD/generated/NAMESPACE/structures
- Make a new folder called "structures" inside your datapack so it looks like SINGLEPLAYER_WORLD/datapacks/DATAPACK_NAME/data/NAMESPACE/structures
- Paste the structure files into the new folder
- Copy the datapack contained in the SINGLEPLAYER_WORLD/datapacks folder
- Paste it into the MULTIPLAYER_WORLD/datapacks folder
- OR upload the datapack to your respective server host (not all of them accept uploaded datapacks)
*- Can I make a dungeon without a datapack?*
Technically yes, but I don't know how. You would have to design the command block logic yourself and use the /place command to set each individual room based on that logic.
*- Can you activate jigsaws automatically?/Generate a specific structure?*
Yes, very easily. Just use /place template minecraft:ROOM_NAME ~ ~ ~. You can also do the whole dungeon with /place jigsaw NAMESPACE:TARGET_POOL CONNECTOR_NAME 7 ~ ~ ~.
*- Can you guarantee one room spawning at the end of the dungeon?*
Yes, using fallback pools. If you specify a template pool for the fallback key in the TARGET_POOL file, then when the dungeon finishes generating but still has open connectors, the fallback pool will be used to close those connectors. (Credit: griglog1309)
*- Can you make rooms not collide?*
Technically yes, but I don't know how. My guess is that this is super advanced because you would have to design your own command block logic to do a ton of checks before placing a single room.
*- Can you have multiple pools in one namespace?*
Yes. I demonstrate it in this video: czcams.com/video/Cf0d7IRGyTY/video.html
*Debugging Steps To Try:*
- Double check if your structures work by themselves. You should be able to summon each room individually using /place template minecraft:ROOM_NAME ~ ~ ~
- For each room you'll want to double check each jigsaw block has the correct "Name" and "Connector Name"
- In target pool file double check that all "{" have an opposite pair (this has caused me problems many times)
- Make sure all commas are in the right place (such as after each room)
- Make sure there are no unnecessary commas (there should not be one after the last room in the list)
- Make sure all the names and file locations are correct
*If you have additional questions, comment below.*
could you potentially make a structure generate automatically in a mod
You can do basically anything you want in a mod if you know how to code it.
Shouldnt you pin this so people will see it
@@rshtg2019 Thanks, I thought I had pinned it. Must have pinned something else by accident. (although the number of duplicate comments has stopped so I think some people did find it fortunately).
I made a structure with jigsaws but it generates same structure over and over in coordinates i selected.
Your dungeon is like a McDonald’s play space.
Haha, yeah, it's very colorful.
LoL 😂
That's exactly what I was thinking
Lol XD
😂
this is the only good jigsaw tutorial in existence, I greatly appreciate it
Haha, glad you like it.
Yeah, I couldn't find any tutorials when I was looking this up, so I figured might as well make one of my own.
Yes, This Is The Best Jigsaw Block Tutorial I Could Find On CZcams.
Please, i beg you, explain. After i followed almost every step it just made 7 copys of 1 structure in 2 sides. Level was 7, and the structure was walkside. It just doesnt generate anything else
Hey guys!
It notices you can make your own structures using Villages, Pillager Outpost and Bastions as base.
Some days ago, I saw a comment saying you can't generate custom structures without overwriting vanilla ones.
I decided to check if it was true and a I noticed NO.
You can make new structures!
If you want to make them spawn in some Biomes, you have to add the start pool of the structure in the Biome JSON.
I hope this helps ;)
True but it's worth adding that currently those structures can only be the type of Pillager Outpost, Bastion Remnants and Villages, so using these presets in biomes that already use those (a village in desert for example) will override the default village and prevent it from spawning (it's most likely a bug of 1.16.5 since i saw a bugreport some sime ago on bugtracker). So implementing new structures need to be used in biomes that don't normally have those type of strucutures - for example village type structure in mountains, swamps, oceans, etc.
Can i spawn my structure in a cave?
@@AA-10n With the right parameters, yeah
Now you don't need Villages or Bastions.
So now you can put structures in any Y level, or even a range of Y Levels.
Backrooms
OK i admit it was a *BIT* clunky to follow at first BUT I got the hang of it pretty quickly and this is LEGIT the best jigsaw tutorial in existence that I've seen thus far. I'd love to see a smoother updated version, but for now this STILL works, good work
up until now, I could only find videos telling me a very vague description of the jigsaw block or straight up saying they have no clue how it works. When I find your video, I was super happy to find someone who actually knows how to use it and how to teach others in a in depth tutorial, so thank you!
Haha, yeah. That was the whole reason I made it. Information on it was so scattered and unclear. I'm glad it was able to help you!
OMG..... this tutorial is amazing! You explained things very well, the colored rooms were very easy and good examples, and your voice is pretty calming~
I remember spending SO much time creating a custom floating island dungeon. I wish I knew about this beforehand!
Now I will be able to attempt and put all this knowledge to use and.... recreate the whole thing... and hopefully make it even better~ 😅
Great tutorial! Tank you so much for making this! 🥰💖
You're welcome! I'm glad it was so helpful!
Thank you so much for this. Doing json custom biomes etc and this is a really good starting point for me in custom structures. Still not sure how to implement them in the biomes but that’s the next step
You are very welcome. Yeah, I'm with you on the custom biomes. They seem really powerful and interesting.
ive been doing work on mc for as long as its been around, & jigsaw blocks were always a huge pain in the ass to try to understand, so thank you, this really clarified a Lot & is a great jumping off point to learning some of the More complex parts of it.
You're welcome! Glad it helped!
You are a *brilliant* teacher. Thank you so much for this! The datapack part was so well explained.
Thanks! I'm glad it made sense to you!
Absolutely legendary tutorial, you've def earned a new sub! Thanks so much :)
Thank you!
It's amazing that the sculpture blocks made available as data packs.
Yeah, I think it was a great move to add more creativity into the game.
Hi :D Thank you for your explanation ! I didn't understand with the others tutorials, and yours allowed me to understand
Awesome! Glad it helped!
thank you! i was making a custom medival structure and almost every time the roads wouldnt generate. very helpful and probably the best tutorial someone could find :)
Awesome! Glad you figured it out!
Best jigsaw tutorial the only useful one on youtube and i needed only 3 rewatches to understand it :D
Thanks! Haha, sounds like me when I was trying to learn this stuff.
Yeah i watched your special survival video :D
i had to watch it three times too lol
Great. Now we need a tutorial on processor lists.
This tutorial was very cool man. I really wanted to duplicate the backrooms and make different levels. This is very helpful and useful. You deserve more subs
Thanks for the kind words!
The best jigsaw tutorial so helpful :)
The only video I’ve found that helped me understand how to use jigsaws better! Nice work!
I saw in the comments there have been a few changes. Have you made a video covering them/Will you make one in the future?
Thanks! That's a good thing to hear!
I have not made a video covering them yet. I don't intend to remake this video, but I may make either an addendum or an advanced video that would cover some of the changes (such as how the second template pool file works). However, I don't have a date set for that yet, so it could be some time before that video comes out (especially with 1.20 looming in the distance).
@@Talon2863 Ok! The addendum video would be good for such a few changes. Thanks for responding!
this would be awesome to make a map where a maze is randomly generated.
backrooms
Technically after spawn it wouldnt be random anymore since some chucks around You load and well u know
Maybe if u go to unchecked chucks it may work
Very good tutorial and very good video! You should have way more subscribers than you currently do!
Thank you very much! I appreciate the kind words!
You sound so happy teaching people stuff!
Haha, I am!
"Even the cats are randomly generated its PURR-fect"
Good pun right there
Great video! This is exactly what I've been looking for. Quick question though. At the end of the video, there are three different structures that get generated with the target name walkside. Did all of those need to be saved with separate names with the structure block and defined in the templatepool.json file?
Yes, they are each a separate structure file and a separate entry in the templatepool file. The shared walkside target name is effectively to get it to randomize what room it chooses to place.
You're a great teacher man, thank you!
Thank you! That means a lot!
Well I learned this alone, but the video made me understand better, so, thank.
You're welcome.
This was super super useful! thank you!!
Glad it helped!
Great tutorial, thx man! I have a question: Is it possible to have multiple targets in a jigsaw block? Also, do you know how to use fallback pools? Thanks!
Talon this is so cool like you said not much info but great tutorial
Most youtubers would explain what a jigsaw block is, and how it works, but not how to use it. Nah, this video is the best one.
If only people knew how they work on bedrock too.
They're effectively missing functionality on Bedrock, which is a bummer. There's no place to define the pool and what rooms to include in it, and they don't seem to have that ability in Bedrock add-ons either, which may be because it is still an "experimental" feature.
You are the exact person I was looking for. Thank you! Btw, do you save the jigsaw inside a structure block?
No prob, happy to help!
Yes, the jigsaw is saved inside the structure block.
Very well done tutorial! Thanks!
Appreciate it. Glad you liked it!
@@Talon2863 Yeah, the tutorial is both very straight forward and well-explained.
...yet I can't get it to work in my world, but that might be because of Minecraft's updates. 😅
It says: "Reloading ResourceManager: vanilla" (so my datapack is missing)
When I have the datapack-folder in the "datapack"-directory, Minecraft demands a ZIP-file. When I zip it and delete the unzipped folder, it demands an unzipped folder. If I have both, there are no errors, yet it still says "Reloading ResourceManager: vanilla" without my datapack.
Is there an update of this tutorial? Or could you help me, please? Thanks in advance, even just for reading this. :)
Nvm, i got it working! I don't know exactly what was wrong, probably a typo... Now I'm looking forward to create my own complex structures! :)
Awesome!
Nice tutorial, thanks ! ^^
No problem, glad you liked it!
this was so helpful thx!!
No prob!
Super good tutorial, easiest/clearest one by far. Just one little question, at 15:12 you wrote something for the target pool AND the target name, what effect does that have on generation?
Glad it made sense.
Target pool is the pool of rooms it will randomly pull out of when generating a connecting room. Target name narrows down the list given by the target pool to only jigsaws with the targeted connector name.
So in practice if you have a jigsaw with talon:pool in the target pool and walkside in the target name, the jigsaw block will access the talon:pool file, then out of those it will pick all the rooms that contain walkside in at least one of their jigsaw blocks (specifically in the name field of their jigsaw block), and finally out of the narrowed down list of rooms it will randomly pick one to generate.
Hopefully that clears things up a bit. 😁😁
@@Talon2863 Yeah I think I understand, thank you! All this stuff is super exciting to know, I'm really excited to put it all into use, it's like wizardry Haha
2 years and you’re still answering questions. I respect that. Great tutorial, by the way!
its always the small channels youcan rely on...
Im having an issue where it only generates if the nbt files are in the native minecraft generated file but the generation structures are defined in the datapack json file.
Very great tutorial!
I didn't understand one thing: is the "target" property necessary when providing a "target_pool"? If so, is there a way to allow multiple targets? Example: i have a room with a jigsaw, and it may connect to a tunnel or a room to a jigsaw named "room_joint". If i want to configure multiple ones, i have a feeling i might run out of blocks where i can put jigsaw blocks for specific connector configurations
Technically the "target" property in the jigsaw block is not necessary. In fact, a great way to dead end is to make a room that does not include the target name (so that room can be found, but it can't find any other rooms).
As far as multiple targets, the best way I know how to do that is just give each room you want a chance to find the SAME connector "name" (second option in the jigsaw block).
So to go with the example, if you have a main room with a jigsaw, you could set the target name (third option in the jigsaw block) to be "pathway". Then you would set the target name for the tunnel as well as the room_joint room to both be "pathway". This would mean there would be an 1 in 3 chance for the generation to pick the main room, tunnel, or joint room (and you could refine the chance in the target pool template file if you're feeling advanced).
In addition, you could also remove the "name" (second option in jigsaw block) from the main room so the main room wouldn't generate a second time (it could find other rooms, but not be found itself).
Hopefully that helps a little bit.
_I subbed today great channel!!!_
Thanks so much!
I finally figured out how to do it. The main thing I wish you woulda said is that you HAVE to have a pool for the connectors that find the structures
Oh, I thought I did make it clear. My apologies. Glad you figured it out in the end!
This was initially how I ended up learning about jigsaw structures in Minecraft, and I found it really cool. But I'm trying to make one for a mod, and I can't get the structure to generate through a jigsaw block. I put the structure files in the folder and defined all of them in the .json, but nothing happens when I hit generate. Did I do something wrong?
Best tutorial I have found that actually describes exactly how to use structure/jigsaw blocks.
Any update for 1.19.2? Got structures saved and jigsaw blocks set but I can't get any structure to generate. Watched the tutorial and checked everything about 6 times!
It still works in 1.19.2, just checked in my world. However, I was getting errors when using a lone jigsaw block. What worked for me was loading in one of the rooms with a structure block and then running the jigsaw from there or using the /place command. /place jigsaw TEMPLATE_POOL CONNECTOR_NAME 7 ~ ~ ~
Thanks for the reply. Were you standing in a structure when you ran that command? I got 'billy' to work using that command but everything else fails to generate. Got a basic understanding on how the blocks work but difficult to find any clear information/videos relevant to current versions that actually work 'as intended'.
Edit: Updated world and finished datapack files for 1.19.
I was able to get it to work inside and outside a structure. For reference I was typing /place jigsaw talon:pool walkside 7 ~ ~ ~. It sounds like you were using the "template" subcommand potentially? The "jigsaw" subcommand is what generates the whole thing, "template" is the same as loading something with a structure block.
After some testing I discovered some inconsistencies. The order it functions in appears to be different than previous versions. Rather than looking for an appropriate connector first it rolls a room (or maybe an individual jigsaw block, hard to tell) and then checks whether the connector exists for that room (or jigsaw block?). If it can't find the connector it fails of course. A simple solution for this would be to have a separate template pool file for each different connector name, that way it's guaranteed to find the appropriate connection piece.
And in addition if you're using the datapack and structures from the video the "billy" room is weighted to be the most picked, and it doesn't have the walkside connector, so if that was the connector you were trying in the command or in the jigsaw blocks it was probably failing more often because of that.
The other thing I noticed was that the jigsaw generation seed appears to be location based. What this means is if the command fails you should move 10 blocks away or so and try again and you may get different results. I had it fail roughly 30 times in a row when I didn't move, but only fail once or twice when I moved 10ish blocks each time. Same applies to using a jigsaw block apparently.
If it's still not working that leads me to suspect a syntax error in the template pool file.
This was actually really helpful, deserves a sub from me
Glad it helped!
Thanks great tutorial!
Glad it helped!
This is an amazing tutorial. Thank you so much! Quick question: is there a way to automate the generation of the Jigsaw blocks? Like a button or redstone signal that generates your dungeon, or even a way to do it on load?
Thank you! So redstone and commands are unable to automate it. I believe it's possible to do it on load if you included the dungeon in a custom biome (or dimension) datapack, but I haven't tested that myself.
@@Talon2863 Hm interesting to know. Thanks for the reply. One more thing: do you know if its at all possible to *guarantee* a certain room spawns only once in the pool? Like for example a boss room that has a 100% chance of spawning, but only once?
I love you it does help sooooo much!!
Awesome!
Greate tutorial! Short question: I believe there is a limit how large you can make a single structure, but maybe there is a way to make giant structures? Like a hundred rooms. If anybody has an idea that would be greatly appreciated!!
Thanks!
There is a way that I tested in my let's play, but there's an issue with overlap. Basically you just save a marker armor stand in the structure and run the place command from them. The dungeons will overlap each other, but you can make it infinitely large this way.
A slightly worse solution (depending on the goal) would be to just make bigger structures with more branch points (although there is a limit to the size of the structure that can be saved).
Extremely helpful
Glad it helped!
Great video!!!
Thank you!
Thank you for this tutorial, but it is a bit short in bases. If I well understand, you create a single pool. But if we want for example, a yellow corridor, that can target a purple corridor, that can target an orange corridor, we need to create two different pools (one for the yellow->purple corridor and one for the purple->orange corridor) right ?
Actually I don't get how your green corridor can be generated, cause they're mentionned nowhere in the pool.
Yeah, it's a pretty hefty topic, I wish I could've gotten more in.
Your two-pool solution would work, but the connectors would be easier to work with (and only require one pool). In the yellow corridor it would have a jigsaw (name:yellow | target:purple) you would then have an purple corridor with two jigsaws, one would be for connecting to yellow (name:purple | target:yellow), and the other would be for connecting to orange (name:purple | target:orange). And finally the orange would have a jigsaw that purple could connect to (name:orange | target:purple). This would all work with a single pool.
Sorry about the confusion with the green corridor, I added it in later. I just showed those ones as examples, not as the finished product.
@@Talon2863 Okay that makes more sense, thanks !
Great video. Everything was explained perfectly. I just have one question. When do you fill out the PoolName box? I've seen people leaving it empty and I can't understand why
So jigsaws work in a forward order meaning each one searches for the next one. So you can make a room where its only purpose is to be FOUND. The Pool Name only applies when it is searching for a different room.
An example would be a hallway that you want to only go one direction. You could leave the Pool Name empty on one side and include it on the other so it could only generate in one direction. You would also need to modify the connector names appropriately as well, so leave Target Name empty on the side to be FOUND, and leave Name empty on the side that is SEARCHING.
@@Talon2863 So you can't use pool name to a part thats just meant to be found
Basically, yeah.
"Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode" may be on the server,
Just reduce the weights in the pool file to a maximum of 150
it says to mine is Unable to detect structure size,Add corners with mathing strusture names that was says and a trie it so many time its annoying now like what this dosent work ughhhhh
This help so much thank u
Glad it could help! 😁
Amazing tutorial! One question, didn't really understand the purpose of the end point Jigsaw block that you placed at 6:25 , If you wanted there to be no generation at that point, wouldn't you just not place a jigsaw block there? Or is it to stop the generation from taking place in the same spot two times?
It was to illustrate the directional control you have. The structure wouldn't generate downwards through that, but because it has a "Name" it can be found and therefore the structure can generate upwards into the purple room. So basically it was a one-way jigsaw block.
THANK YOU VERY MUCH!
Happy to help!
Hey, this is a really great tutorial! I have a few questions though 😅
1.) Is there a way to generate these rooms only in a certain direction so that they don't cross into any unwanted territory
2.) Is it possible to activate the generation remotely? (i.e. without clicking the 'generate' button?
Thanks!
1.) Not directly. You can get clever with the room design potentially, but it would be tricky. Maybe like only make connectors that go in a certain direction and don't go to the side or something, but there's no built-in way to control this.
2.) Not without generating a new world. This is the biggest flaw with jigsaw blocks right now in my opinion. Technically you can automatically generate it within a biome, but that requires messing around with terrain/biome/dimension generation. If you don't mind generating a new world you could modify some default biome files to get it to automatically generate there. Let me know if you're interested in doing in that way and I can describe it.
@@Talon2863 Huh. I'll have to play around with stuff 😂 thanks!
@@Talon2863 so does this mean that in a super flat world, I could create my own biomes in a way? I want to create an infinite ikea (scp 3008) that generates using jigsaw blocks and goes on forever.
@@eclipticarcher6008 So no and yes. The jigsaws are limited in how many rooms they can make. However, there is a bunch of custom biome settings you can mess with in a datapack that gives you the abilitiy to create tons of custom biomes. I don't have a tutorial on this topic, but I have experimented with it in the past and made a separate dimension with a couple biomes in it, so it's definitely possible. I would recommend looking up a custom biome tutorial.
For 2 i think you may do a workaround doing block checks for entire structure when loading to find the jigsaws and then with some function wizardry simulate the jigsaw itself by replacing it with load structure block with the same structure name inside and activating it...but thats hard and probably not very efficient
Thanks i dont have minecraft but i learned millions of things about minecraft before but i tried roblox and it removed all of my memorize of minecraft thank god i know half of minecraft things cuz im learning it and thanks that really helped me
i know this was a long time ago but i had a few questions, 1 is there a way to make it search for multiple rooms and just randomize it? 2 is there a way to make it stop after a certain number of rooms in a range like limit to to 5-7 rooms but at random? and finally is there a way to make it check if the room being placed would run into any solid blocks and stop it from overriding the dungeon its currently creating? thanks so much for the tutorial, i appreciate it
Technically the answer to all your questions is yes (although I don't know how). But you would need to combine command block logic with the /place command rather than relying on the jigsaw block logic.
Personally, I would start by putting some tracker entities in each room, and go from there.
THANK YOU MAN
No prob!
Can you give us the data pack the example you create in your video to better understand how it works please (sorry for fault its google translate)
Absolutely. The description is updated with the link, but I'll put it here too so it's easier for you to find. www.planetminecraft.com/data-pack/finished-jigsaw-datapack/
thank you very much
My brain immediately suicided when he exited Minecraft to continue the tutorial.
very helpful
it stop working and it keep's falling with the red text
awesome video my friend :)
Thank you! :)
What is the purpose of separate structure files/pools? I can't figure out if they have any impact on my structure generation
Thank you so much! This is so clear and thorough! I'm glad I found it.
Glad it helped!
@@Talon2863 :)
When I tried to boot up the mod , it found the mod pack but ignored it. Any ways to fix? And if you need to know, it said “Found non-pack entry ‘C:\Users\[myname]\AppData\Roaming\.Mincraft\saves\Furrets Playpen\datapacks\your-title-goes-here-e1220’ , ignoring”
Hi this is a great video! I just want to know is there any way to make this bigger? Because I find it a little small.
Yeah, I'm with you there, it'd be nice if they could be a lot bigger.
There's two potential ways to make it bigger.
One would be to structure the rooms in such a way that it creates more branching paths (like having a super long tunnel that has like 8 jigsaws branching off that one piece).
Another way would be to simply set a new jigsaw at the end of the generated structure and manually resume it so the structure can continue. And that way you can keep repeating it until it's large enough. Just make sure you get the jigsaw in the same place as it would be in the room with all the same settings or the connection point might look a little weird.
does the new rooms automatically rotate? or if a structure is built facing north, it always faces north?
Wonderful explanation! It was this video that made me understand how to use jigsaw block. It's a shame it took so long to find this video. Thank you so much for making this video. By the way, in order to let more people learn from your videos, I would like to move your videos to bilibili, a Chinese video website, and translate it into Chinese. I will mark the reprint information and link to this video, and I will not receive any income from the repost. Please reply to me if you agree. Thank you very much again.
Glad it helped!
Yes, since you're willing to include the reprint info and link to this video, I'm fine with you adding it to bilibili. And I'm sure the Chinese community will appreciate your efforts as well.
thank you ! I will translate it as soon as passible@@Talon2863
Hello and thanks again for the video. It's really a great tutorial, step by step for everyone to understand. I've finished translating the video and uploaded it to BiliBili. I can't wait for you to see the video but my link can't be sent, so I'm sorry you may not see my translation@@Talon2863
No worries. I can't understand Chinese so it's all good. I just hope it's helpful for everyone on BiliBili!
This is obviously useful for everyone (๑•̀ㅂ•́)و✧
AMAZNG TUTRORIAL but i have a question, how can i make it so that these naturally generate like villages? is it possible?
I'm not familiar with exactly how, but I believe it's possible to either modify the village structures or to make a custom biome datapack and then have your structures generate naturally in your custom biome.
Me and my friend have started to make a backrooms minecraft game and we want to try make it procedurally generated like the actual backrooms. This should help us out so thanks!
wow your actually so underrated!
Thanks!
Hey, i followed your tutorial, but this thing pops up: No starting jigsaw minecraft:mark found in start pool talon:pool, can you please help?
for some reason when i load it up, even if the datapack is on, it just doesnt work. does anyone know why this could be?
On the error logs, it has been saying 'no starting jigsaw minecraft:walkside found in start pool talon:pool' any ideas
Very cool tutorial, it helped a lot! But I have one question, if the room has jigsaw blocks with no name, this room is the start room, so I can't create it by "place" command? If I can't do it, how I can check my jigsaw structure?
By using the name in the structure block (not the jigsaw block). They look similar and it's easy to confuse which is doing which thing, but the structure block has the name you use with /place. The name in the jigsaw block is effectively a connector name rather than an entire structure name.
Can you help i am trying to generate it but it says in the console: Empty or none existent pool
So good
thanks!
No prob!
im trying to make my structure so whenever it stops generating a hall there will allways be a wall at then end anyone know how to do that?
Hey, great video - but I got a question. Idk if I skipped it somewhere in the video - but how to make them spawn randomly in selected worlds?
Also, when saving - does the jigsaw block needs to be in the save file, or is it fine to place the jigsaw after the structure block save?
I didn't put that in the video because frankly, it's complicated. You basically have to create a custom dimension (which involves a bunch of different files) and set the dungeon in the "starts" section of the file in worldgen/biome. It is technically possible, but it's been so long since I've done it (before 1.17) that it may be different now, so you'd be on your own.
If you're still curious, check out the vanilla worldgen folder here: github.com/slicedlime/examples
That's slicedlime's repository and you can use it as a sort of template in making your own dimension (you can use the default dimension and make slight modifications) to generate the dungeons naturally.
Is there a way to customize mob spawning within the bounding boxes as well (like nether fortresses)?
Sort of. Structure blocks can copy entites as well as blocks, but there's not built in spawning mechanic. You could also potentially use command blocks to make your own spawning and have that stored inside the bounding box.
why I get error that there is something wrong in line 6 column 2 altought it is the same tha at the video?
the server i play on has a maze event that generates real time. i have been wondering for weeks how they make it and now i know.
Nobody:
Talon's hard drives: literal half of the solar system
lol
Can you mention the structure name for green, purple, and orange structure?
I want to match it with the pool, i was confused to define elements of the pool to which stucture.
Purple is upstairs1, green is corner, and orange is center.
this is very informative, but i wish you described what any of the namespaces meant. like what is a pool? how would i describe it so i know in the future what it is, and to stay organized.
So namespace and pool are two different things.
A namespace is effectively an organizer. It's kinda like an address for your datapack. It helps Minecraft not mix up datapacks if you have more than one installed and it lets you find your own maze, functions, whatever quicker even if you had many datapacks installed just by prefixing the thing with YOUR_NAMESPACE:maze_room1 or YOUR_NAMESPACE:your_function1.
A pool is like a bag of marbles. Each marble is one room. So when you generate a dungeon, Minecraft is reaching into the bag of marbles and picking out one marble each time.
Time to make a dungeon!
Jigsaw usage with pools were a black magic to me before, but it's so simple now! Do you happen to know if adding jigsaws to vanilla structures like end_ship or ruined_portal would work? As in expanding them or remakind them into complex dungeons or something.
This is a super good question!
Yes, it's definitely possible. You can load the structure in (for example minecraft:end_city/ship), but then I would save it as your own custom structure just for ease of access. And then you can do the whole process as normal.
The one tricky thing with this is knowing the path to the vanilla structures. If you have 7-Zip you can right click on the jar file in .minecraft/versions/VERSIONNUMBER and then open an archive. This won't damage or mod your vanilla saves, but if you're worried you can make a copy of the jar and open the archive elsewhere. Once the archive is open you go to data/minecraft/structures and then all the structure files are in there. So for example there is an end_city folder and then a ship.nbt inside that, so in the structure block that would be minecraft:FOLDERNAME/NBTFILENAME.
Hopefully that helps.
Thank you very much, I learned jigsaw block as well as debuging my datapacks. I always deleted some part of it and checked if it works and repeated it many times 🤣🤣🤣😫😫.
Hahaha, yeah debugging is a super useful thing to know. Glad it helped!
i cant get mine to generate. I've put all the names in the datapack and checked the debug log and everything seems in order but when i hit generate on the jigsaw it wont do anything.
It's difficult to know remotely what the problem is. So I'm gonna give you a few things that you can try and hopefully one fixes it. Assuming that the target pool is good and the debug log isn't popping up with anything I'm gonna guess it's something in-game.
- First check that you're sliding the Level slider up in the starting jigsaw. The jigsaw block doesn't do anything without that.
- Make sure that the target pool is spelled right and that the connectors are spelled the same in the starting jigsaw block as with the saved structures.
- Also I would make sure your structures are all saved in their latest version. It's a simple thing, but one that's easy to forget.
- You could also check the connector names and target names that you have for each room. It's possible it can't connect the way you have it now.
- You'll also wanna make sure you don't have any up/down jigsaws trying to connect to sideways jigsaws since that won't generate.
- It would also be a good idea to follow the logic of the jigsaws through generation. So if your starting jigsaw has a "target name" of firstroom then make sure there's a jigsaw with a "name" of firstroom for it to connect to (and try and consider the other ones with a "name" of firstroom as well). Then continue to logically connect the jigsaws together ("target name" to "name) as if you were generating the structure yourself. This can help you find dead ends or places where the structure will never be able to connect.
@@Talon2863 i got it working i forgot to make the generating jigsaw block to target my hallway. thanks for the help
Awesome, glad it's working!
Hey I've read through your comments and have tried your recommended solution of loading the structure with the /place command, but it gives the same error as if I were to try and use the jigsaw block, (the "no starting jigsaw _____ found in start pool _____")
I am in 1.19.1 btw
After messing with it a bit more, I can only sometimes get it to load in a second structure, while the first has no issues loading in constantly now (still doesn't work with /place though)
Any input would be appreciated, and if you need more info please let me know. I am a bit sleep deprived writing this so I wouldn't be surprised if I left out a key detail lol
Thanks
Edit: Updated world and finished datapack files for 1.19.
After a bunch of testing they appear to have changed a few things including the order it picks the room.
- Basically it's picking the room first and then checking the connector (instead of finding the appropriate connector first and picking from only those rooms). So most of the time it's probably picking a room that does not have the correct starting jigsaw and then the whole generation fails based off of that. This can be solved by making a separate template pool file for each connector type (if you're using the video datapack you would just need a separate one for the "billy" structure) and then updating the jigsaw blocks accordingly.
- The jigsaw generation seed appears to be location based, meaning if /place gives that error in one location it may work just fine in another location. And same for jigsaw blocks (which isn't how it used to work in previous versions).
- I honestly have no idea why the second structure is only generating some of the time. It's possible something is off in one of the jigsaw blocks or in the template pool file or it could simply be the same error as above.
- As far as using the /place command make sure you're using the connector name so /place jigsaw TEMPLATE_POOL CONNECTOR_NAME 7 ~ ~ ~. If you're using the video datapack this is what I was using that worked: /place jigsaw talon:pool walkside 7 ~ ~ ~. Keep in mind that because of the location based seed (I think?) you might have to move around a fair bit to get the command to go through.
Ok, I followed your instructions step by step and I think I didn't anything, but when I'm right generates even just one room the puzzle block do nothing. Where I could do wrong?
I'm gonna try to make my own Nether Fortress with this.
That could turn out pretty cool. 😄
I attempted to follow this in 1.18.2, but whenever i try to generate it says "empty or non-existant pool".
perhaps mojang has changed some stuff?
it gives me this error (No starting jigsaw minecraft:room found in start pool cherry:blossom) even tho i put the files into the structures folder of the datapack
Do we have to used the pools for the jigsaws to work?
i think in the later versions something breaks. im doing this in 1.19 and when i load up the world it tells me there is an error with something in the data pack. and asking me to open the world in safe mode.... help lol
ok so if im correct and if i understanded this. name is for a normal name. targe name is if it cant or can get targeted. Or does it mean that it onl searches for one with that name? (sorry if my question doesnt make sence)
Target name is what it searches for. Name is how it gets found.