hey guys! i’d like to know if it’s possible to make my jigsaw structure have start height type of uniform, but so that the structure would generate solidly in ground, for example, my little dungeon structure, and sometimes it generates floating in the cave, since it has uniform generation, but i don’t want to add bury terrain adaptation, since i want the player to still be able to find the structure, so that it would stick out a bit, not completely surrounded by blocks
#World Generation General
1 messages · Page 11 of 1
10,001 messages!
my last message was 9998 which has personal significance
is it possible to modify the vanilla cave generation? like making a custom cave biome that spawn everywhere in the overworld that replaces the vanilla cave generation,
You can generate custom structures looking like cave underground
that would be very bad for performance, loading structures all over the overworld will case alot of lag
You could look in this
https://discord.com/channels/523663022053392405/1324376503848275980
This has vanilla biomes and features
And if it has related to caves, you could edit them
Also oh
You can look into this wiki
Cave carver features allows to modify cave generation @lyric olive
thanks! i will be using that to make the whole world dry, no water in caves or in the overworld.
o lmao ok
I noticed that the border box places blocks that don't match the biome to create the terrain underneath the jigsaw-generated structure. How can this be fixed?
I don’t think we can control what “terrain_adaptation” uses. As far as I’ve noticed and are aware of it just uses blocks from the biome that part of the adaptation is in to build the adaptation.
Torturing q.noise()
The middle one with lines of blobs was an effort to display how NOT random q.noise() is if you really try.... Perlin noise has some issues but the inventor's own Simplex improvement on it was patented until a few years ago, so Minecraft would still be using Perlin.
Also i learned today you can make fractals with features too. It's a really powerful system that can potentially be quite performant.
Only problem is chunks load in random order which makes some algorithms difficult.
Thanks to Ciosciaa for his noise mapping pack, very handy.
Also thanks to coloured concrete blocks, what a champ. ETA: and my phone for agreeing to render 17 chunk distance.
Also yes, q.noise() STILL doesn't vary by seed 🤯 ... it's the same for every world. But it can be salted with randomised coordinate offsets at least.
Something else I (re)discovered today is that temp variables in features just don't seem to go away? They can be passed around to thousands of chunks and incremented etc. The Molang documentation says this is for performance reasons but they will scope these variables as soon as possible - hope not - probably they wrote that years ago.I haven't thought of a good use yet seeing as the unpredictable chunk load order (incl rendering to the user being in a different order to the server processing) and lack of arrays puts a bit of a kibosh on a lot of ideas. Maybe some way to record significant feature placements and then calculate distance, direction from them and make placement decisions for another feature....???
I'd love to see any examples of uses like this.
Wow
I couldn't seem to get rid of aquifers, maybe you will have better luck. I did get rid of underground water filled caves, so that's most of it. Also, if you want to get rid of water in the ocean you need to suppress the vanilla generation of its waterlogged vegetation, as it leaves water behind when you place air.
Amusingly, water can be placed in the Nether... it's a horrid brownish sort of colour, very appropriate. (You just can't use a bucket, it will evaporate.) Flowing water continuously flowing and shrinking back from instantly drying hissing sponges is very entertaining (at least for me).
Sorry for late reply. v.r is not frequency, it is amplitude. v.var controls frequency here. By multiplying the coordinates by 0.5, you are halving the frequency, meaning the noise will tend to vary over distance twice as slowly.
Statistically no matter what values you feed into q.noise(), it will always be about half the time above 0 and half the time below it, and more often in the middle of the value range than at the extremes near -1 and 1, you can't change the "shape" of the probability distribution with the input, only how quickly the result varies over distance.
Once you get the noise value from q.noise(), you can multiply it by v.r like you've done. It stretches out the results returned, eg if v.r = 50, then you will get results from -50 to 50. If you have a value range to test within, like 10 to 20, it will be true more often if v.r is small rather than large.
I wasn't thinking crystal clearly when I said you could use a random function in iterations to place things a fixed percentage of the time or not at all, obviously that works, but the scatter feature also can place a feature with scatter_chance percent of the time, and also you can choose within a coordinate extent how the distribution placement for the number of iterations should be spread, gaussian, uniform, etc
Noise is just a useful way to get a random value out, using a pair of inputs predictably derived from the current feature world coordinates, that is going to be fairly similar in value to another noise query with inputs close in value to the previous inputs. That way features operating at world coordinates close to one another can have similar output values, such as "high", and then ones further away will be "low", so high values and low values are clustered. This creates mountains and valleys, bamboo clumps, contiguous biomes, things like that - noise is extremely handy for making realistic terrain chunk/block by chunk/block, using predictable rules, so that ones close by are similar to one another, without needing to talk to those other blocks/chunks. This is what features do. Frequency changes how quickly this similarity changes when you move around the world.
the overworld is already dried, besides the caves, instead of making each biome dried, ill just add one single biome that is completely dried replacing all of the vanilla biomes beside rivers and oceans (these will be vanilla but dried) i will try adding some biome stuff to make some volcanos and such,
ill try to get rid of the ore generation as well, or at least modify them to make diamond spawn more often than ever and overall materials will spawn way less often, like more diamond than iron,
overall, lots of work for me.
sounds fun! (to play)
i read that nether cave features do work in the overworld and remove water (and netherack), maybe this would actually get rid of some aquifers? no idea.
ill try saving time by making the vanilla trees unable to generate in the overworld
i already have a custom biome replaced every single vanilla biome, like minecraft:cherry_grove to molted:cherry_grove so how can i stop the vanilla tree generation in the custom biome?
by removing a specific tag or something?
Not an expert on the breadth of this topic, but I've had success stopping (or changing) tree placement by altering the vanilla feature rule files for them. Most of these files can be found in the BDS download, including in some quite deeply nested directories. Occasionally there's other vanilla feature rules available that aren't in there that you could ask around for if you need.
I mean, you're stopping ore generation so maybe you know this? Since there's vanilla rules for those too.
modifying the base tree codes will make the saplings not working right, like the tree u will get will not be a thing,
unless if u modify the feature rules of the tree
Right, not sure what you mean, so that's the limit of my knowledge.
where u can stop it from being generated but still work the same as vanilla
It's annoying we can't place a lot of vanilla features. I feel I did it once successfully.
i have made this simple frozen age addon:
https://www.curseforge.com/minecraft-bedrock/addons/frozen-age-dlc
that just replaces all vanilla biomes with a custom one
that did not prevent the trees from being generated, but it did prevent structures like villages or desert temples from being generated
the molten age one will be alot, alot harder than this, since no animals will generate in the world, or either wood or water
i tried making all biomes hot and doesnt generate with grass or water, but caves still have water
and tree's still able to generate normally
so, could u help me by making one biome generate without any trees or water? while i work on the burned wood stuff
along with a custom cactus that u can use to extract water,
in this world, u will live in seeds or sliced cactus, since seeds doesnt generate, u have to mine the bones of dead animals to get some bone meals to get some seeds, u might be able to make bread using the bone meals but u could also eat the seeds itself
I was today years old when I discovered that you can place features on flat worlds!! (As well as jigsaws!) Even noise-based terrain works! It just needs to be done via commands & function files or script!
Also there's a handy big list of vanilla feature rules and features that work with the /place command ... https://learn.microsoft.com/en-us/minecraft/creator/commands/commands/place?view=minecraft-bedrock-stable
Cant use the command version via script
But yes, it's pretty cool HOWEVER
Sorry, I haven't really done biomes yet.
/place featurerule at least in the scripting version does not respect the coordinates.
Dimension.placeFeature() ? Well... that sounds like a bug that hopefully should get fixed...
Can't wait to find out what else is janky about this.
/place featurerule is definitely giving the right coordinates with my tests. In the x and z direction, but it will do its own thing with y. I haven't tried q.heightmap() with flat worlds yet, hmm.
*As in, it will use the feature rule's y level. Unless it's temp leaked or something, idk.
Does q.scoreboard only work in an entity context? If not, I guess that's a way to dynamically feed variables to features.
Wait, I did do a test where the feature rule remembered the temp value from the last time it was called by /place.
What a lovely technical discussion!
I just ran this test (on a flat world) which confirmed for me for this at least that the coordinates and noise were being respected.
I ran this command while in each chunk, and got continuous noise. /place featurerule noise_color_map:color_map_rules ~~~
Hello, I'm in the process of creating my first village using the Jigsaw structure system. I've watched Java tutorial videos and followed them, but there are some things that don't exist in Jigsaw Bedrock. I have a few questions
What should I keep in mind when creating a village with jigsaw structures?
How can I prevent houses from being concentrated near the center (village well) and instead want them to be evenly distributed?
And what is the optimal placement of jigsaw blocks on the village road?
I can't help you with jigsaw questions at this time, but if you haven't seen it, you might want to look at Poggy's example village generation pack: https://discord.com/channels/523663022053392405/1392526246142808095
- There is a bug ingame rn where terrain matching features can overlap rigid ones so village streets may overlap houses until it’s fixed.
- That shouldn’t really be a problem because of how roads work
- Inset into the road in the middle on the end. For houses then along the side of the road
Can we edit vanilla ore features?
I believe so
The vanilla pack I've been looking at doesn't have the feature rules exposed
Use the bedrock dedicated server software
The feature and feature rule files are in it somewhere
Thanks
What is bedrock dedicated server software
Well that was a giant waste of time..
There is only 2 feature files and none are ores
There is way more last I checked
Otherwise you can unzip the apk for android
@silk spire I found all the ore features in the BDS when I unzipped it
Every month someone makes the same dev post posting all the vanilla features.
I searched for ore in the dev resources channel and found nothing related to ore features
The second one is two years old
The first one is over a month old at least
Did MoM change ore distribution?
No idea and I don’t care, if someone wants the ore features specifically then they can have them there
Im just pointing out that it already existed contrary to what you stated.
there are literally hundreds of feature and feature_rules files in there, but you need to find them all.
(in the BDS zip)
you've downloaded it before to get the vanilla feature rules
So wait if I wanted to change how ore generates would I need to void original definitions and make new ones?
Try to make them spawn on flat ground using dimension_padding
how dimension_padding is used in that case :0?
I've never done world gen stuff before so couid anyone point me in the right direction
It prevents pieces from being spawned within certain ranges from the height limits of the bottom and top of the world
You can use them to force the structure into flatter areas
Yeah
Do I have to go through every biome file...?
No just remove the part of the feature rule that spawns it
The “distribution” part I think
This is how much code it takes to properly age copper doors using processors. Nearly 2000 lines of code.
.........
Heroic effort. I haven't started on jigsaws in any depth yet (𝑺𝑶𝑶𝑵™) but I can see that the data-driven model here has some serious weaknesses when it forces you to take this brute-force combinatorial approach.
If you didn't generate this with a script, kudos on your sanity.
Last of us
Nah that’s a lot of copy and paste
Bro what all the things we can do with processors
A lot of things but changing blocks into other ones is the main thing.
Where can i see what all it does
wiki.bedrock.dev
But there is only 3to4 types
Oh ok
Writing documentation for the /place command rn
Especially the elusive /place jigsaw one
Nice waiting to see
Smokey didn’t want it, your gonna have to use the MS docs ones
Now working on documentation on how to modify or overwrite vanilla structures
Wow can we do that since when i want that more that anything
Only trail ruins and trial chambers
Oh i thought very structure
But i have idea tell me will it work
If i change the tag of plains
Plains village will not spawn so can i make my own village to spawn there
how dimensional_padding works?
It’s dimension_padding, bridge auto fill is wrong
It’s a number that tells the structure how close it can get to the world height limits before being forced to be cut off
but why still works?
...Damn, reporting results of experiments, I tried really really hard to temp leak from /place feature to naturally placed features, but the values are just not carrying across. I'm not surprised the Molang temp variables with the same names appear to treated as being in separate domains here, but I was hoping they would be a bit more widely scoped as I'm even using the same feature files with the same Molang variables...
Why am I doing this? Because I'm trying to find SOME way to influence naturally placed features at runtime in response to player actions or for consistency across loads. Assign variables such as a q.noise seed. If anyone here has managed to do it, I haven't seen it yet but if you're willing to share, please let me know!
I feel like I've tried everything. Anything about the state of the world that you can change at runtime doesn't seem to be available because it's entity specific or entity's dimension specific (or item or particle or client only). Even time of day. Pack setting is client specific. Can't change phase of the moon or world timestamp. None of the context variables or (other) hardcoded variables seem to apply. Can't change any blocks in a loading chunk dynamically (afaik...)
Any ideas? Am I missing anything obvious I should try?
t.LEAKY (below) only leaks its value to other naturally placed feature instances, not those called per-chunk with /place (true, I have not tried script but I'm willing to bet it is exactly the same). I tried using the input y value as a parameter with /place, which works to change the output of the same feature depending on whether it is explicitly called with /place or not, but it doesn't influence the feature without /place, it just defaults. Using /place with feature rules doesn't change this either.
I'm down to manually placing features instead, for each just-loaded chunk, by making a dynamic bitmap in script to keep track of which chunks have had or should receive manual placement, as the players move and cause chunks to be loaded around them. I think manually placed chunks are always saved to the world file, in which case this bitmap could be stored across loads. This system would be necessary for features distributed across flat worlds anyway as features are not placed automatically. (q.noise does work on flat worlds btw)
I feel I can't be the only one to try to implement this though, not after 4 or 5 years of features. I mean, a lot of people want Bedrock flat worlds with repeating ores and villages and points of interest.
This would also work for jigsaws.
Of course, if Mojang wants to enable auto-placement of features/structures/jigsaws on flat words in the meantime, that would be just lovely. And some way to dynamically influence feature auto-placement.
so hmm
first time doing these things and
my minecraft cant load the fucking feature
like
when its going to generate
it crashes
lol
sending code pics
here
yes the biome code is set to forest cuz i was testing to see if the problem maybe was biome
or iterations so i dropped them
severely
Please, no screenshots or photos!
Screenshots are hard to read, and photos even more so. This is especially true if you are using bridge or another tree editor, as this format obscures the JSON format.
We can help you best if you copy and paste your code here, or send it directly as a file.
kinda didnt understand what to put on the y axis so just put some random thing
any suggestions what i should change?
q.heightmap(v.worldx, v.worldz)
In jigsaw structure gen, how can I excluse the sea surface from the world_surface? I mean I want to spawn structures starting from the bottom of the ocean but world_surface includes the sea_level as surface
can a processor change the jigsaw block content? I want to reuse structures but change the pool inside the jigsaw in that structure
Not afaik.
for some reason, after i update to the latest version, i cant export structure anymore because it says my device doesn't support that
Is it a bug or is it just me?
What device are you on?
Mobile can no longer export.
Mobile
Damn thats very unfortunate
I know right? It's affecting a lot of people. There IS a way to get the structures but it's not easy.
Assuming you are on android, you would have to get one of the file managers that gives you access to the world files (iOS does by default), and then install one of the programs that lets you extract mcstructures. I have not yet heard of any compiled Android apps, but I do know there is at least one code library that will extract them (possibly more).
If you're happy to install the python interpreter on mobile, assuming you haven't already, you can use this to get the structures out. https://github.com/destruc7i0n/extract-mcstructure
A couple of challenges: it depends on the old amulet-nbt module version 2.x, but the current version is 4.x, so if there's any probs with conflicts, you'll have to install extract-mcstructure in a python virtual environment with amulet-nbt 2.x.
There's also a dependency on amulet's leveldb-mcpe library. extract-mcstructure has provided their own compiled binaries for this including an .so one for Linux and Unix like systems which are generally what people run python etc in on a Linux/Unix environment app on mobile. However you may run into problems and this .so file won't work for you (it didn't work for me on iOS but android is less restrictive and more likely to be compatible). The disclaimer in the code is:
# linux, compile your own .so if this errors!
lib_name = "libleveldb.so"
A lot of people develop on mobile, or just play and build on mobile and wish to export their structures, and it is SO annoying to have this functionality (and the resource pack with a patch for the functionality) disabled by Mojang. The code in the vanilla JSON-UI says it's disabled because it's pocket edition, where mobile doesn't have a file picker but that's absolutely not true.
I just got the solution tho
There's a web that can extract structure from mcworld
Save your structure first, then upload the mcworld here, then download them
Amazing! Will be testing this then recommending to others as the other way is a lot.
Also, tell me if you encounter this problem too
At first i think its because the feature, but i tried another structure and its working fine, so i think its because of the converter
Tell me if you have any news bout it

guys is it possible to add randomized loot on jigsaw?
Anyone here good at world generation stuff?
I'm trying to make the ocean deeper. how? I have no clue..
I want to modify the ocean height And make it look deeper. I also want to generate caves in the ocean. Basically making the ocean a bit realistic.
Hope someone can help me with this
Use this link
Okay, so this ridiculous decoration was done just with the desert biome file - apparently you can decorate the surface of biomes with simple noise-derived shapes without using features! The minecraft:surface_material_adjustments component is what does it and there's an example of use in the minecraft:hell biome file.
{
"materials": {
"top_material": "minecraft:magenta_concrete"
},
"height_range": [ "variable.sea_level - 100", "variable.sea_level + 50" ],
"noise_frequency_scale": 0.031,
"noise_range": [ -0.03, 0.03 ]
},
{
"materials": {
"top_material": "minecraft:lime_concrete"
},
"height_range": [ "variable.sea_level - 100", "variable.sea_level + 200" ],
"noise_frequency_scale": 0.05,
"noise_range": [ -0.34, -0.3 ]
},
Pretty sure one of the mountain biomes uses that for calcite
Right! I know there's a overworld biome with long snaky stripes like this, I wonder if it's done similarly... going to check.
...Not sure which biome I was thinking of but there's 17 biomes which use this noise, mostly for blobs but some for stripes.
custom jigsaw structures can place vanilla stucture templates and connect to their jigsaws but they won't generate their jigsaws
Bro i want thses small structures to spawn in my jigsaw but where to place jigsaw on them
Where to place the jigsaw bro
I used this to make my plains biome
The vanilla savanna mutated biome uses it too
Nice!
place it in the base, and put jigsaw blocks on the ground of your structure facing up
Thanks i found out
Is it possible to generate custom structures depending on the distance to structures of a different kind? I'm having issues with my custom jigsaw structures
with structure sets yes kind of
we don't have exclusion zones on bedrock just yet though
[Addon][error]-Cannot determine which pack manifest to use: Multiple manifests found at the same directory level in the pack's folder hierarchy.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/campsite.json | Failed to parse the Minecraft Document JSON: Invalid encoding in string.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/campsite.json | Failed to parse jigsaw structure template pool 'worldgen/template_pools/pillager_camp/camp/campsite.json'.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/pillager_camp.json | Failed to parse the Minecraft Document JSON: The document root must not be followed by other values.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/pillager_camp.json | Failed to parse jigsaw structure template pool 'worldgen/template_pools/pillager_camp/camp/pillager_camp.json'.
[Json][error]- -> start_pool: Missing referenced asset minecraft:pillager_camp/camp/pillager_camp/campsite
[Json][error]- -> elements[7] -> element -> location: Invalid asset path vpillager_camp/paths/path/path8
[Structure][error]-[[Jigsaw Structure]] couldn't be constructed, no pool named minecraft:pillager_camp/camp/pillager_camp/campsite
@subtle plinth sry for pinging i pinged you because your r king Jigsaw i don't why these errors r coming can you pls tell me how
its possible to generate anyway a piece that can replace blocks from another piece in jigsaw structures?
due to block replacement with other piece, some pieces are not generating, how can I force to generate anyways?
Why not apply the same processor to all pieces?
no,no I mean you know when a piece "impact" with another it doesnt generate?
I want to force generate it even if replace another piece blocks
I have no idea what this means.
I don't know how to explain it...
Let's say a structure piece is generated using a jigsaw block, when another piece is generated too close to that already generated piece, and the engine detects that the sizes overlap, the second piece isn't generated to avoid breaking blocks of the first generated piece. I want to force generate the 2nd piece even if override a part of the first piece
Not possible unless you use terrain adaptation.
I cant find any documentation about this in bedrock.dev or learn.microsoft
The structure set json does not have any properties like that
[Addon][error]-Cannot determine which pack manifest to use: Multiple manifests found at the same directory level in the pack's folder hierarchy.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/campsite.json | Failed to parse the Minecraft Document JSON: Invalid encoding in string.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/campsite.json | Failed to parse jigsaw structure template pool 'worldgen/template_pools/pillager_camp/camp/campsite.json'.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/pillager_camp.json | Failed to parse the Minecraft Document JSON: The document root must not be followed by other values.
[Structure][error]-Loading Jigsaw Structure .json files | Jigsaw Structure Template Pool .json file worldgen/template_pools/pillager_camp/camp/pillager_camp.json | Failed to parse jigsaw structure template pool 'worldgen/template_pools/pillager_camp/camp/pillager_camp.json'.
[Json][error]- -> start_pool: Missing referenced asset minecraft:pillager_camp/camp/pillager_camp/campsite
[Json][error]- -> elements[7] -> element -> location: Invalid asset path vpillager_camp/paths/path/path8
[Structure][error]-[[Jigsaw Structure]] couldn't be constructed, no pool named minecraft:pillager_camp/camp/pillager_camp/campsite
Anyone know why these r coming
Yeah, in order to prevent structures from spawning next to each other then you need to put them in the same structure set
Bro can you reply to this pls
just got custom vaults working on worldgen
custom loot table and key item for them
apparently editing the nbt data is how you do it
Does anyone know how to reliably change the "mystructure" namespace when saving a structure? Seems like half the time it just reverts back to "mystructure" even when I save it with a custom namespace in the structure block.
It is based on the folder
You should store it in structures/namespace/your structure.mcsutrcture
Ah I see, thank you!
Does anyone know where I can get alllllll of the features and feature rules? I know I can get some from the minecraft folder, but it doesnt have all of them..
The ones in the xbox games folder is all of them.
okay:)
where is that located...?:D
#announcements message
ah nvm i just found it sorry
does ANYONE know what this pattern of water generation is from..? I have successfully removed MOST features and block generation but there are a few things that keep showing up including this..
Is it a consistent pattern? What biome is it?
its consistent.. I think its from trial chambers actually...
I am not sure what biome tbh I dont have an addon that tells me that...
Think that’s the trial chambers
I think one of the entrance ways has water like that
frikkkkk
You should be able to overwrite it if it is the trial chambers because we can edit its template pools
oh snapppp, ok, idk how to do that but that is goooooood news. I was also wondering if anyone knows if the shipwrecks are a feature..?
they are structures.... ughhhhhhhh
Is there any way (addon, script, or custom solution) on Minecraft Bedrock to automatically record all blocks placed by players across the entire world, without defining regions, and later restore only those player-placed blocks after regenerating the chunk that I deleted?
hello, i'm new to world generation, anyone have the vanilla magma feature/feature rules and such.
Been trying to add some custom block on top of magma block in ocean biomes, the best bit was to make iterations like 2000-5000 with search feature and i think i'm doing it wrong, is there a better way than this?
shipwrecks are hardcoded structures iirc
you can find how to edit template pools on wiki.bedrock.dev
the code for trial chambers isn't public but it's almost identical to java
Also you need to find what structure piece is generating that water to edit it
Quick question, does anyone know how to get a single_block_feature to respect the enforce_placement_rules parameter while also being offset one block into the ground using a heightmap offset (Such as "y": "q.heightmap(v.worldx, v.worldz) - 1") ?
I can either get the feature to bury itself into the ground with enforce placement rules set to false, or get it to respect the parameters if it's above the surface, but not both for some reason. For clarity, I'm trying to use this single block feature as a proxy for other features to spawn on top of, by having it attach to the sides of specific blocks that are typically a part of the terrain.
might be one of these, i found them in the vanilla 1.18 bp
found a feature rule as well
Thank you!!
np
I've not been able to find the structure piece responsible for that water on minecraft.wiki. Maybe the water is just hidden or maybe it's not from a trial chamber but I can't think of any structure that could be making that water pattern
there is water in patterns in trial chambers but none in that pattern from what I've seen
Wait a secXD I can just make another world with the same seed and turn off the bp that deletes everything and go to that locationXD
yeah
Does anyone know why my r not placing correctly somepath block r coming up
its overwriting the grass because you used /place to place it
it won't do that when naturally generated
Oh ok
Does anyone know Why does the path spawns upper the structure?
It’s a bug
So we can't fix it now?
Nope
Is there a specific block trait that the tree feature uses for rotation when it generates the trunk?
mystery solved.. trial chambers... i guess the worldgen is replacing the blocks that are waterlogged and not getting rid of the water.... anyone know how i might be able to fix that...?
you should be able to remove that piece of the structure from generating
that appears to be trial_chambers/corridor/end_2
oh snapppp, that would fix this pattern.. but it is also doing the same thing for any shipwreck... can i put anything in the "may_replace" section of the single block feature that allows it to replace the blocks and the water that is waterlogging them...? (not just asking you @subtle plinth if anyone has any advice that would be MUCHHHH appreciated....)
mad helpful, thank you
shipwrecks are hardcoded iirc so im not sure if it is possible to remove the water from them
I would recommend just not generating the structure in the first place rather than just preventing one piece.
the shipwreck or the trial chambers..? The shipwrecks are the bigger problem at this point..
try placing this file in this folder path rootbp/worldgen/template_pools/trial_chambers/chambers
the file should be called end.json
we can only prevent trial chambers and trail ruins from generating rn
The Trial chambers.
well the waterlogging problem is reallly messing with the shipwrecks mostly. if anyone can think of a fix hmu. this is killing me
ty
wait @upbeat barn how tf do i keep the trial chambers from generating.. just edit the template pools to be empty..?
No the structure file.
Set it to generate in a non existent biome.
we cant edit it
I tried a bit ago
blank the start pool
or the structure set if we can
this didnt work.. I got rid of the commented section, that wouldnt do anything would it..?
the commented section shouldn't have been making anything anyways as the computer wasnt reading it
thats what i figured..
it might be incorrect because we dont have access to the vanilla trial chamber files so we have to guess using the java ones
you might be able to generate a trial chamber using /place structure minecraft:trial_chambers ~~~ true true and figure out what jigsaw block is placing the water
ahhhh ok, i did that, found it, but now how can i access the jigsaw block....? haha im new to this stuff.. i mostly script..
Last I checked we could.
wait so i could keep the shipwreck from generating too...???
i just tried recently to add parched to the trial chambers but alas i set it up and 20 trial chambers later and zero change was done
its like a crafting table, right click it
you have to be in creative though
ah, im in spectatorXD
also you have to look for jigsaw blocks pointing inwards towards this (#1067870310055022672 message) piece and connecting to one that appears in it
then you need to find the target pool of that jigsaw and thats the identifier of the template pool placing it
hold up.. im dumb... i put it in the wrong folder.... trying again now...
What did you do?
pool aliases
I added parched to them
I copied the jigsaw block settings from normal spawners then copied them to a new setup and nbt edited the spawner to spawn parched and added it to the trial chambers pool aliases and copied the settings from the bogged
it did throw content log errors for the biome filters though so i assume it was reading the file
i also can imagine that we woundn't be given access to editing it until spawn_overrides comes out to us because trial chambers use it
Ok that file did fix the problem.. ill have to think of something for the shipwrecks...
the template pool?
yeah, i just acciddentally put it in the wrong folder...
ah
Happy new year!
On another note, is it difficult to design a building and then have it naturally generate in the world?
And another thing, is it possible to create an automatically generated city?
it depends on how large and random it is
yeah
Mmmm
Can I do it on mobile or do I absolutely need a PC?
I wanted to create a dystopian world generation, with abandoned buildings, destroyed cities, and other elements like rocks or dungeons, etc., but I have no idea how to do it.
you probably can do it on mobile but it would be very hard
You could certainly do most of your development on mobile, but to export the structures (this could be done in one go) you would either have to use a PC or get a hold of the mobile world files (easy on iOS, difficult on Android) and either ask a friend with a PC to export them as .mcstructure files, use a website that apparently takes world files and extracts structures (someone was linking to one on this channel a few weeks ago), or run one of the libraries from github on mobile that can extract structures from world files (bit difficult as afaik they all need to be compiled and this is fiddly on mobile). A Realms free trial or subscription is also another way to get world files and relocate them to PC.
Other apps to develop addons work on mobile via websites: Bridge, Blockbench, Snowstorm, probably others.
Probably different but I've been trying today to get custom parched spawning and it's not been working for me. Did you try any other entities? (I did and THOSE worked.)
But we do another thing also we can use two minecraft in one phone. one minecraft in old version to build and export and another in latest version to test so we don't need to ask others help
Oh that will work on android? That's great for those who have kept an older copy.
Ye it works i am using this method now
yall, is nether glowstone a feature?
also.. how can i narrow down which feature is throwing this error..?
[FeatureRegistry][error]- WORLD NAME | | no valid version passed by the caller or found in the input
dang its slow in here today... I also was wondering, i am trying to make certain 'structures' generate simply as one block, or a small structure file. can i do that for anything other than trial chambers and trail ruins?
Does anyone know why two trees r spawning very close
No I got the parched spawner to work, I placed the structure using /structure and it spawn parched just fine
Yeah I think so
I think that means it’s missing a format version
sick, thanks, do you by chance know how i can make the trial chambers only generate one small custom structure..?
Yeah you can it’s start pool
What's the trick to get a block to tick in placed features? Specifically, I want lava to flow after I place it.
How to solve this
can anyone help me with making trial chambers one block generations...? that would be MEGA sick.. I am trying to use bedrock.dev and the vanilla trail ruins docs as reference but i am having NOOOOOO luck... i will credit you when i release my addon..?
(1.21 skyblock)
Is it possible for an addon to detect when a block becomes air and replace it dynamically based on Y-level and biome (including modded blocks/plants) to simulate world generation in already-generated chunks?
If not, what are the main technical limitations preventing this?
should be able to be done with scripting, idk about otherwise
For jigsaw blocks what happens if a jigsaw block cannot generate something because there is already another structure in its way? Is there like a feature in jigsaw block for such cases?
Imagine a block is destroyed, either by mining or an explosion. The addon checks:
The Y-level (e.g., surface, underground at Y=16)
The biome (e.g., desert, forest)
Then it automatically fills the empty space with “logical” blocks:
Underground (Y ≤ 16): mostly stone, some iron, rare diamond, maybe modded ores
Surface (desert biome): mostly sand, some sandstone, occasional cactus or modded desert plants
The same logic could be extended to respawning structures dynamically: if a temple or fortress is destroyed, the addon can place a new one elsewhere in a valid biome.
This simulates natural world regeneration in already-generated chunks without touching player builds.
It tries to place a smaller piece in the template pool but if it can’t then it searches through the template pools assigned fallback pool to look for a smaller one. The fallback pool is also called when the max depth is reached.
To get notified of the explosion event and handle the blocks around it, you would need scripting. It could scan and use logic to replace as you've said. Structures would be a little trickier.
The script COULD potentially use features to restore the chunk to how it should look, either with running the place command or using the placeFeature method of the Dimension class. (Though avoiding user builds would have to rely on some assumptions about location/block type.) Probably overkill.
I'm guessing some servers are highly powered / modded enough to constantly save areas of the world to restore them if necessary.
...Okay, so multiface feature seems to be broken?? and snap to surface only seems to work for ONE surface in the height range even trying multiple iterations, using multiple placements in aggregate, sequence etc. We are just supposed to handle this manually?
...okay nvm I GUESS I'll have to do that. Obvs I want to place grass/dirt on ALL stone surfaces here.
How hard can it be? 🤪
how can I call a template pool from another template pool? in jigsaw structures?
Actually surprisingly easy, honestly.
Random plants and trees can be added with randomly setting the snap to surface range for diff features to diff heights in diff places
yyyy
But I need to rejig the shape, been looking at actual farlands screenshots
As you go down the column, if it's air, place air. Otherwise if the last one was air, place grass. If the last one was grass, place dirt (1). If the last one was dirt (1) place dirt (2). (A couple of random modifiers). If the last one was dirt (2), place stone. If the last one was stone, place stone.
is this going to be an addon that just brings the farlands closer
I guess so. I woke up this morning to someone posting a farlands screenshot and thought: let's simulate it. Then it kind of turned into: oh well let's make it an actual Thing. So I guess it could be a nice easter egg to add in to a survival server for any player that goes far enough in any direction (not 12.5 million, could be way closer)
cool
Currently looking at ACTUAL farlands postings about "Java integer overflows" and "lattice discontinuities" and my eyes are crossing a bit, but I'm trying to understand what's actually going on (to get more accurate glitches haha). I have too many half-finished projects already!
https://discord.com/channels/523663022053392405/1457493236368277657 anyhelp would be great, im stuck and ive tried everything i can think of
Hi, I have a question.
I don't understand how they make it so that a structure with chests spawns loot that I want.
For example, an abandoned house, and I want items like a village or something to appear, but I want to choose what.
you can edit the nbt data of the structure file using nbt editors or mcbe esssentials loot tabler thing or you can use jigsaw processors
Use this link to givd your custom loot table
In case anyone needs it and is unable to convert it easily, I just posted a zipfile of all included 1.21.131 vanilla structures converted to mcstructure (ruined portals, villages etc)
https://discord.com/channels/523663022053392405/1457564472976609290
Doesn't include jigsaw files. You have to make those yourself.
anyone knows a good tool to create jigsaws with a UI?
Supernova uploaded vanilla trail ruins jigsaw files from an old APK: #1067870310055022672 message
Poggy made a pack that generates vanilla-like Plains villages with jigsaws: https://discord.com/channels/523663022053392405/1392526246142808095
Try Editor mode.
Can anyone tell why void blocks r spawning with my structure
Welp. I can't do structures or jigsaws anymore.
"Export operation not supported on this platform"
When it worked without any issues for years.
Who made this stupid decision?
Yeah it got removed from android because of google being google and restricting it I think
They shouldn’t be
I didn't know Google "owned" my downloads! But in all seriousness, that's really dumb.
Yeah
I think it was for me security purposes or something
Probably a bunch of bs
how you guys place pieces inside a piece with jigsaws? for example if I have an big empty square room and I want to place interior furnitures or decorations with jigsaws
Ye but its spawning what to do
Does anyone know if minecraft:overworld_generation_rules still work? When I used it I got an error saying it has been depreciated
Can I make Custom Biomes?
Yes, starting from Preview 1.21.80.27, use the minecraft:replace_biomes component.
Please refer to the MS Docs for more information.
@bitter fog
I did use that but I can't get the noise type to work (eg a custom Biome that replaces the plains with extreme noise just follows the replaced biomws generation)
You cannot modify the terrain shape with replace biomes.
The documentation is confusing, as you used to be able to until worldgen dramatically changed behind the scenes. Mojang probably have left it in because they would like to enable it again at some stage.
You have to manually use the Molang q.noise() query or manually calculate noise another way, in conjunction with features, in order to significantly reshape the terrain - and then manually add biome elements back in with more features. This all can be fast enough to run in an addon if it's coded well, but it's definitely more to learn/do than changing biome file parameters.
What you get if you make geodes tiny. Cube™️
Can anyone give me any structure template pls because my structure is not spawning but errors r coming second if it's spawns with void blocks i don't what wrong
Saw that custom nether biomes were possible in a preview version but couldn't find out which one. Is that now on stable, or is it still in preview?
Preview.
Nvm, isn't there a tool that can see the NBT data of the Minecraft world? I'm going to just pull saved structures from there at this point.
FINALLY
someone know thy the cutsom biomes generation is slower? or have lag?
What is this
Do overworld_generation_rules currently work or is that an old component? Trying to replace the river transformation stuff, but it doesn't like identifiers in the biomes
its broken iirc
And overworld height is that too? It seems to have an effect imo but others have said it doesn't work (?)
im not sure
Ah yeah did some extreme difference in the noise params and seems to do nothing that's frustrating
Thanks though
OH MY GOSHHHH
That means we could finally have (more or less) seed based q.noise()!!!
q.noise()-based worldgen that is consistently different across worlds!
I'm not sure what they mean by "level seed based fraction" but I'm guessing it almost certainly means you get a subset of the seed number that makes it significantly unique enough to be different. (The chance of a full seed being randomly chosen twice is 18 quintillion to one, so a smaller subset/fraction of that seed would also be very unlikely to be the same as another.)
How could this be used to make q.noise() unique? Use it/derive from it to create a consistent offset for coordinates. Add this number to v.worldx, v.worldz, even v.worldy if used.
As far as I can tell (please correct me if I'm wrong, I've done a bunch of tests on this) there is no point in using an initialised random number, because in features used with feature rules you CAN'T save this random number or any data across loads, and you can't access dynamic data like a pre-set random number from scripting or temp leaking from anywhere else, and it only works on unmodified unloaded chunks - it needs to be hardcoded into the data, making this addon using this code always produce the same q.noise() pattern with every world (apart from some limited response to the current biome and shape of the world around the active chunk).
So getting hold of a unique number reliably derived from the seed is a way to randomise everything you do with feature rule worldgen (doesn't even have to be with q.noise() ), so that worldgen is consistent across loads, across chunks for the same world, but different in different worlds.
Doesn't work. Legacy of the old biome system where you could. Mojang may implement it again which is why they've left it like thus.
Is it possible at all to make locator maps for custom structures similar to treasure maps or the filled maps villagers trade? If so, how would I begin?
Yeah
Use the explorer map loot function and set the destination to the identifier of your structure.
Thanks!
I think I figured out what the use_expansion_hack field in Java is used for
Helloo, anyone got a file/zip for all the vanilla structures and features and feature_places or something, like i wanna add some structure to the underwater cave probably nearby to magma block😅
I changed the to 0.4 it does not spawn and when i change it 0.5 it spawns so much can anyone to what to do
Check #1072983602821861426
What did you change from 0.4 to 0.5? iterations? If so, have you defined scatter_chance?
Is it working now?
what's the solution to structure template feature not being able to summon entities? doing it manually is not possible for my use case as everything has to be done at generation-time
Can you use jigsaws?
the structure feature has to generate at certain spots based on info that is only calculated after some other features have ran
i could technically set a temporary block that will tick, summon the entities, and remove itself afterwards
but dealing with offsets/rotation will be a bit annoying
https://github.com/Supernova3695/nova_bedrock_wiki/tree/patch-9 a revamp of the biomes page on wiki.bedrock.dev is underway
No i changeed the numerator to 6 and denominator to 10 but still spawning a lot am i doing anything wrong
That's 6 in 10 chunks, or 60% of chunks, is that too much?
iterations should be a whole number. 0.4 is rounded to 0. 0.5 is rounded to 1.
iterations means how many times placement is attempted per chunk (when that chunk is selected by scatter_chance to run).
Chunk is 16x16 on the terrain, from bedrock to sky.
60% scatter of chunks for large structures is too much. If you want 5% of chunks, you can also write it simply as "scatter_chance": 5,
Been trying to get my features to replace blocks underground, can't think of a better way to do that, but the issue is it only does it in chunks. I want to be on par with the biome.
Is there a way to test the top block then only make the underground stone if the top block is something, or something else that would make it not look like it cuts off at the chunks.
Think I got it.
Forgot I could do distribution:
"distribution": {
"iterations": 400,
"coordinate_eval_order": "xzy",
"x": {
"distribution": "uniform",
"extent": [-1, 15]
},
"z": {
"distribution": "uniform",
"extent": [-1, 15]
},
"y": 156
//"q.heightmap(v.worldx, v.worldz)"
}
Yep and then test biome tag in the feature you run 256 placements for. Extent [0,15] for x and z and iterations 256 is fine.
Test: "iterations": "q.has_biome_tag('ocean')?1:0", for example
It's a bit buggy for me as one block or so out of 256 doesn't get detected but I'm planning on querying neighbouring blocks to fix that.
Oh yeah, that's what I ended up doing, targeting my custom biome.
Thanks Hyper, been routing through your old posts and that helped a lot.
If you want neighbouring biomes you can list them with their test in an aggregate with early out first success.
Or maybe the biome tag is in a variable with t.biome or something.
That's clever, hmm I think this is working ok for now? I'll try that if this stops working.
Biome tag doesn't map on particularly closely to the feature rule filter biome chunks, sometimes it's a chunk out or in from the biome tag border. Annoying.
Uh I mean I've been doing this:
"conditions": {
"placement_pass": "final_pass",
"minecraft:biome_filter": [{"test": "has_biome_tag","operator": "==","value": "custom_biome"}]
},```
Is that waht you mean?
Uniform was not a good idea XD. Swapped that out for fixed_grid
Can I dm you?
Anyone else having issues with cave_carvers? I can't get mine to work.
Eh, forget it. I'm just going to use 1mill geodes.
anyone knows if there're any limitations or banned characters from the jigsaw block inputs?
- Target Pool
- Target Name
- Name
Probably characters that can’t be found on a normal keyboard
€£¥
Like those
Is there a way to know what adjacent biomes would be. Is it related to the cold warm here:
https://learn.microsoft.com/en-us/minecraft/creator/reference/content/entityreference/examples/definitions/nestedtables/biome_filter?view=minecraft-bedrock-stable
Is it possible to make a room in a Jigsaw structure appear only once per structure? For example, the portal room from The End.
kinda
I wanted to create an underground structure similar to a stronghold, but I wanted the boss room to only appear once in the structure; there was no chance of having two or more, only one.
I was wondering if it would be possible to do this, where the room would only appear once in that structure.
yes but its really janky unless you are using the start piece
https://discord.com/channels/523663022053392405/1459006306915581984 you can find a custom stronghold here
Sure!
Yep that's what I meant by feature rule biome chunk filter.
I'm pretty sure that there's a bug with the extent definition, I'm yet to test it with scatter features but I'm getting it with feature rules. When using uniform and want to go completely from one side of the chunk to the other, you have to use [0,16] but when using fixed_grid you have to use [0,15].
Eg this is a chunk of some code I'm working on today where I swapped from one to the other:
// "x": { "distribution": "uniform","extent": [0,16] },
"x": { "distribution": "fixed_grid","extent": [0,15] },
"y": 0 ,
// "z": { "distribution": "uniform","extent": [0,16] }
"z": { "distribution": "fixed_grid","extent": [0,15] }
I can't dm
You need accept my request
Ooooh it's just how it classifies each block. I was wondering about that, noticed that weird result when I was doing things.
I think I'm going to scrap the biome thing after all, I also need structures to generate that are 96x96x48 large so they don't really work right with biomes I forgot, I might be able to add something that makes the stone and granite and things to the custom stone around the structure that I want tho.
Yeah, I was using scatter feature to replace vanilla with my underground blocks, same results.
Sorry, still learning how discord works. I've sent you a friend request.
Edit: Also I don't have app notifications on currently, and am not always online but I will check soon!
Oh right. I haven't worked with large structures yet, planning to! Do jigsaws handle biome edges better, I wonder.
At least with DIY biome mapping systems you can use your system to figure out from your current position how far away you are from any of your biome borders. Then place or not place.
In features, when working with Molang's q.has_biome_tag('tagname') we can only check a very limited distance around us what the Bedrock engine's registered biomes are. Which doesn't give much room to blend or make placement decisions (see my earlier dilemma with gracefully blending deeper oceans with the shore).
I'm really hoping that Mojang in the not-distant future gives us some kind of access to their underlying seed-dependent worldgen variables that determine biome border locations.
It's currently possible in scripting to get the biome at an arbitrary location, though it's not practical or fast to test it extensively. Scripting therefore could be used to run feature or jigsaw placement files based on biome border distance.
Kinda janky especially as scripting has to seamlessly try to handle which chunks to place in manually as players move around so they don't see stuff change in front of their eyes. Could be slow too.
Jigsaws don’t handle biome borders at all
...Maybe there's some way a feature run through the feature rule system could place a hidden block to indicate that scripting should find it later and process that chunk in some predetermined way with greater access to biome etc info than the feature rule gave, then remove that block when the chunk is processed.
For anyone reading who is still learning this, the feature rule system runs feature files automatically when the Bedrock engine is loadING a chunk. Scripting can only run feature files for a chunk after it has loadED, and this doesn't happen automatically, scripting has to select that chunk out of all the chunks in the world. Ditto with jigsaws. It has to have an algorithm to decide which chunks to run - such as scanning for the hidden block indicating an "unprocessed" chunk.
Scripting can manually trigger an unloaded chunk to be loaded into a ticking chunk slot, but that's very limited.
Oh GAWD. What about in Java? Hopefully, if parity is the goal.
nope
Welp
villages in both java and bedrock can cross biome borders even if they don't have villages themselves
I've seen that (desert village kids playing in jungle etc) but didn't know if there was a jigsaw option to restrict it, apparently not.
Oh well, maybe scripting hacks if it is really important.
Is it possible to add custom loot table to suspecious sands/gravel that was generated from world generation?
Check the trail ruins files.
Wait, I'll take a look at it, sorry for these dumb questions xd
ahhh okayyy, i thought it was hard, how to mess with susp. sands/gravels.
Thanks @upbeat barn
hello, how do you create like a buried treasure, but instead of buried treasure, it's a suspecious sand/gravel? I already have a structure that has 1 block replacing every sand randomly. I tried searching for buried_treasure like it's features, and feature_rules, but i can't seem to find it
Is cave generation/ cave biomes possible?
Biomes yes. Generation not really.
Ahh gotcha. Where can I find info on cave biomes?
Can I make Custom Biomes?
Yes, starting from Preview 1.21.80.27, use the minecraft:replace_biomes component.
Please refer to the MS Docs for more information.
@void plover
Thank you!
custom biome cave generation is possible, but it requires deep knowledge of noise and how to apply it using some pretty cursed features/feature rules wizardry
there's some performance implications of course
Yes I would not attempt so if you are releasing a marketplace project.
In features, when working with Molang's q.has_biome_tag('tagname') we can only check a very limited distance around us what the Bedrock engine's registered biomes are. Which doesn't give much room to blend or make placement decisions (see my earlier dilemma with gracefully blending deeper oceans with the shore).
i'm assuming you're not referring toq.has_biome_tag()being able to accept xyz arguments? the extra coordinates which you can specify can be offset fromv.world(xyz)and let you pretty much target any location even outside the feature rule's origin chunk
honestly, from my testing, the performance has improved from what it used to be a couple of years ago
it's not amazing, but it's acceptable
Yeah, but if 3 addons do it...
the game will cease to exist
Are there noise values that let stuff spawn in the middle of an area? I want to create some mini lagoon biome with a large lake in the middle.
I need some help with something yall, I want every single ancient city that generates, to only generate ONE sculk shrieker. (obviously warden summonable) what feature/feature rule should i modfy to achieve this, and how?
^^ also is it even possible..
Is it possible to have a feature rule spawn around a structure?
is it possible possible to spawn the jigsaw structure in y coordinate of 20 but it's a surface structures and ocean_floor, so it's visible however it should be found only in y=20.
You can set start height to be a absolute value and remove the heightmap_projection field
guys why i can't make subpack for Behavior packs: I try making two subpack that i can toggle differnce structure when generate but neither of them are working. I did put the folder name correctly
"subpacks": [
{
"folder_name": "subpack_1",
"name": "Sky Island On (Require Conquest Structure Addon)",
"memory_tier": 0
},
{
"folder_name": "subpack_2",
"name": "Sky Island Off (Turn Off Sky Island Gen)",
"memory_tier": 1
}
]
Anyone..?
Behavior packs don’t have sub packs, just resource packs. They are going to release a “settings” feature in the future for behavior packs that’s similar, but idk when.
someone know how to make leaves variation like the azalaea tree?
Check the azalea canopy.
Alright so i have this addon that adds a structure but it adds them to the Nether and End too but i only want it to appear in the overworld.
What do i have to add to this to stop that happening
at least i assume it's this that is the issue
Add the end and nether tag biomes to the list.
Or add just tge overworld tag.
So i just add
{
"test": "has_biome_tag",
"operator": "!=",
"value": "overworld"
}
Sorry im a bit of a noob
yeah
So it looks like this right?
Awesome I'll test it now, thanks
deleting the world, would it be less resource intensive to A: do 98000 iterations of a single block air feature that can replace anything, or B: create a structure thats a 16x(HoweverHighICan)x16 rectangle of air and place it once every chunk on a grid?
yeah but then i get no biome mapping.
does anyone know how i can reduce the number of sculk shriekers that generate in ancient cities?
You've been able to successfully make q.has_biome_tag() accept world coordinates? I have not. I've never seen any code that has. If you have, please share!
Nothing generates. At all. It appears to be just for setting hard borders for already generated and saved chunks for a world file.
At least that's what my tests have indicated. Feature rules don't place anything.
Do you know if it includes the rare biomes that only have overworld_generation and not overworld tags?
Biome file noise values, or using q.noise() with features? The first, I don't think so? The second yes, if a noise value is extreme enough and low frequency enough, then there's a guaranteed distance in blocks between that extreme noise value ring and the surrounding wider less extreme noise value ring. What that guaranteed distance is you've got to test with the frequency and placing test blocks based on those extreme and slightly less extreme thresholds.
You could put a lake where the extreme value is above a certain threshold, and the lagoon where the extreme value is above a slightly lower threshold. There should be a guaranteed distance in blocks between the extreme and slightly less extreme threshold.
This guaranteed minimum distance varies with how extreme the values are (as well as the noise frequency), so it needs a lot of testing.
I do not have a definitive answer on this. I assume the game has to check and set all those blocks in memory individually anyway with the structure, plus the overhead of loading in a structure. Feature placement seem to be pretty well optimised by the game engine (definitely much faster than scripting for example), so I think block placement en masse is pretty efficient.
Basically, with features, if you can set up the code so you can test for a condition at any world location, and have it always be the same value at that location no matter what chunk you are testing it from, then you can place things with knowledge of your surrounding location, and know that surrounding chunks will make their local placement decisions with the assurance of the existence of you placed in your current chunk according to these shared rules.
Very simple example: If you always place a special feature every 256 blocks from each other, then you can calculate from any chunk how far away you are from that feature and make a placement decision, eg place part of a concentric ring around that distant feature. That special feature might not even be placed yet, because chunk loading order is arbitrary depending on how the player(s) are moving around!
Which chunk to place that feature could be decided by taking the current v.originx and v.originz and getting the remainder of each by dividing by 256 using math.mod() . If the remainder is 0 for both, then this is the chunk for the special feature.
Rough distance from special feature chunks could be calculated by taking this math.mod(v.originx or z,256) of the current chunk's origin coordinates, let's say t.mx for the x direction. Then 128-math.abs(t.mx-128) will give you minimum distance in blocks in the x direction from any special feature. Repeat for the z direction. Get the distance diagonally in blocks by doing a Pythagoras (get the hypotenuse length of a right angled triangle). math.sqrt(t.mx*t.mx + t.mz*t.mz)
This is off the top of my head so hopefully it's correct, it's just a rough (and not very useful) example. Ciosciaa has posted about techniques like this in this channel and the old one.
A more advanced (and useful) example of using common assumptions about where things should be placed would be by using q.noise() with various parameters. The rules about what values mean what where would have to be worked out carefully.
Please scroll past the max yappage if not of interest - hopefully it might help someone searching for keywords, like in-depth comments in the past have helped me.
yeah, you can supply them like so q.has_biome_tag('ocean', <x>, <y>, <z>). the level of accuracy for detecting neighboring biomes depends on y since biome edges are 3D
if you pair this with a loop, you can effectively blend into any vanilla/custom biome, given that you know their height variations (if you're doing custom terrain in your biome)
WHAT. This is the GREATEST. Thank you so much!!
I can feel my power levels rising lmao, this restriction has been bugging me for SO long.
Must have left out y or done something else wrong when I tried it (though I totally didn't expect it to work and didn't try further). Aaaaaaaaaaa!! Proper biome blending unlocked!!
Anyway, this is what I made yesterday with a single feature rule + features (can I just say how much molang sucks to code with?? argh). Infinitely generating maze. Could potentially have multiple levels, rooms, gated areas etc. Like I said above, if your features establish common rules about what goes where, you can work across many distant chunks. Like using queries!!!
Oh yeah and it's quite fast on my semi-potato phone i made it on, you need to do a LOT to features to cause them to bog down chunk generation significantly.
They're pretty efficient compared to doing it in scripting.
Looking insane! 🔥 Yeah writing Molang sucks a lot xD Can you answer my private message pls?
i've found that the best way to deal with molang and features in general is to write a script in another language (preferably js) to generate them
feature files in particular become unwieldy very quickly
im making a feature that goes through and replaces 90% of sculk_shriekers that generate, but i am having trouble figuring out the 'iterations' I should use. how can i math this out?
Bro r u working on any addon
Is explorer_map in loot tables still broken from locating jigsaw structures?
No, my custom structures are being located just fine
It's pointing the same location in my experience, not sure why😅
Although, when i use trades from an entity it just works fine
is it just like this?
"item": "minecraft:map",
"quantity": 1,
"functions": [
{
"function": "exploration_map",
"destination": "kado:trial_chambers"
}
],
I think so
It works fine in trade tables and loot tables for me
./loot doesn’t work however
How did u do it with loot tables😅, what's ".loot"?
I tried Dan's skytown, the loot table doesn't seem to work also.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:map",
"functions": [
{
"function": "exploration_map",
"destination": "skytown:skytown",
"decoration": "buriedtreasure",
"zoom": 3,
"search_radius": 2000,
"skip_existing_chunks": false
},
{
"function": "set_name",
"name": "§bSkyTown Explorer Map"
}
]
}
]
},
{
"rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"weight": 10,
"functions": [
{
"function": "set_count",
"count": { "min": 2, "max": 6 }
}
],
"name": "minecraft:paper"
},
{
"type": "item",
"weight": 6,
"name": "minecraft:compass"
},
{
"type": "item",
"weight": 8,
"functions": [
{
"function": "set_count",
"count": { "min": 1, "max": 3 }
}
],
"name": "minecraft:bread"
},
{
"type": "item",
"weight": 4,
"functions": [
{
"function": "set_count",
"count": { "min": 1, "max": 2 }
}
],
"name": "minecraft:emerald"
}
]
}
]
}
Tried using filled_map
thats using the java loot function for it
I tried Dan's skytown, the loot table doesn't seem to work also.
"functions": [
{
"function": "exploration_map",
"destination": "locdev:village_swamp"
},
{
"function": "set_name",
"name": "§rSwamp Village map"
}
]
this is my code
Did u used filled_map for this?
Nice It works, but i still got the issue of pointing to the same location even after getting close to it, then going like 10000+ blocks away, then getting the exploration map from loot table again, it still points to the same location from the one before.
You can’t use /loot to get them
It’ll do that every time
It has to be from chests or trade tables to work
minecraft:map
I’m sure anyone who is active in this thread has seen for the past few days I have been racking my brain trying to figure out how to make ancient cities only ever generate one sculk shrieker. (This of course is for a skyblock world generation addon I am working on). Well I figured it out and thought I would share! I simply removed “minecraft:target” from my block filter in my single block air feature, so all that was left where the ancient city was, is a target block. Then, with scripting, I just check around the player in the generated chunks of it’s a deep dark biome at y=48, and if so, scan that level for target blocks, and replace them if I find one with a sculk shrieker, change it to “can_summon” and boom:)
(The only place target blocks naturally generate are in the redstone rooms of ancient cities, and it’s only ever 1, so this was a perfect “identifier” for their locations)
Guys genuine question
I've exported my structure in my structure block and I've got my file . Has jigsaw blocks bla bla bla. But when I import it to my bridge v2 projects, it comes out with a bunch of red symbols with random letters in it. Anyone got an idea as to why?
( Tag me if anyone knows )
Mcstructure files are nbt data which bridge cannot read but opens anyways
Just close it because editing it can corrupt the file
Thanks!
Just one thing. Does anyone know a video or an online tutorial on how to properly add structures into Minecraft? With jigsaw blocks?
A lot of Java tutorials work just the basic setup of the files is slightly different
Do you know if theirs any bedrock ones?
There is the Mojang one but I didn’t find it very helpful at all
Alr, thx for the help!
Ahhhhh got it, ooo I'm excited
Hellooo, @subtle plinth sorry for mentioning you in here, i'm just excited to share you with this, not sure if you already found this, just sharing this for other devs, also, but you can get the custom exploration map to work (not pointing to the same location after thousands block away or so) with loot_tables without putting it on chest BUT via script or loot command. Although it requires a little bit effort.
You just put the loot_table that has a function of exploration_map to the loot component of an entity.
I'm excited sharing this, cuz i thought it's impossible, sorry for mentioning you again ( i felt like cavemen rn)
imma share the video here
Thank youuu again @subtle plinth for helping me with the custom structures and jigsaw stuffs (dev resource)
I was more so referring to it not working when directly giving yourself the loot with the command and not by putting it in a chest
Ahhh okay
i've seen a bedrock addon on the marketplace that changes the end pillars structure, how is that even possible?
addon name: Beyond the End
I think they are modifiable features
You would need to find the files though
i have downloaded a free version of that addon (JUST TO SEE THE FEATURE NAME) and apparently it uses a custom feature/feature_rules
Interesting
Can features pass through jigsaw structures? Is that normal?
So, if you place a jigsaw structure to generate in a forest full of trees, like a dark forest, the structure will likely contain trees from that biome inside it?
If it can generate then yes.
I have a biome and I placed a custom structure in it, and the trees are generating inside the structure, and I want to prevent this.
Make the structure floor not have grass ro whatever.
Even rooted dirt?
rooted dirt has the dirt tag which will allow trees to generate
My tree uses structure, not the tree feature.
I'll try using a whitelist, maybe it will work.
It seems to have worked; there should be something to prevent its generation.
Explaneth to thou how has one done structure generation pleeease. (Unless it's java)
I used jigsaw.
Can anyone tell me why these trees r spawning so close
Why isn't my little house generating? I have 2 pools, the base is "terrain_matching" and the house "rigid" but the house doesn't generate and I don't know why
Structure generation is lowkey very random sometimes it'll just work but it's very vulnerable to breaking randomly
Does /place on a flat world work?
I have a structure that uses the same type of template pool process
but this was way back when jigsaws were still experimental. Ever since then I haven't been able to replace a structure that mixes "terrain_matching" and "rigid" template pools
It sounds like it might be too big? This is a first I've seen it say out of bounds.
the base plate is 36x38 blocks
Out of bounds might mean it is trying to place outside the height limits
Okay I fixed my problem
I had to rearrange the positions of both jigsaw blocks until it eventually started generating
I guess I just got really lucky the first time I tried this with the positions of the blocks
Is there a way to prevent structures from rotating when generating, make them face one direction always?
not with jigsaws
yep
Okay uhm final question for today and I may seem dumb asking this but everytime I have tried to do it myself It ends up breaking (even with the advice from the wiki)
How do I make a structure generate at random y-levels?
is there a way to make the water save in my structer?(it's a bubble collom)
I have a very weird question that may seem very stupid to some of you. Can I get an example code for making structures? I made a structure in general and jigsaw blocks but I have no clue how to even code them in the first place (bedrock)
What, so i don't have to create 4 structures with rotated variations? 😅
Yeah
Woah, cool! Literally will save my time, luckily i just only did it for 1 structure atm. 🫡
I found a way to make the structures not rotate you just make the jigsaw blocks lay on their side and not vertically
anyone got an idea why the mobs for my jigsaw structure are spawning under ground?
You placed them weirdly in the structure I’m guessing. The only bug with entities in jigsaws in my year of making structures was where they would spawn super high in the sky. Also with that note that was with only one structure and it happened super rarely and I’ve not seen it in quite a while.
In my case, they always spawn 5-10 blocks underground. I've replaced and reloaded the structure like around 10 times by now, it may have to do with what the entity actually IS and what it does, or it may have to do with "terrain_matching".
that's just a theory, I'll work my way around this problem later.
The structure I had entity spawning problems with that I mentioned also had a terrain matching placing entities but never did it spawn them in the ground.
I edited the y level spawn for my mobs through nbt editor and now they're not spawning anymore, is this a known issue 😭
the entites spawn correctly when I spawn the structure with a structure block and when it generates with "rigid" projection, it seems "terrain_matching" is just very wonky
rip
I think it’s a you problem, you seem to be the only one with this problem
Ima just make a block that generates in the structure and then turns into mob after generating
does anyone knpw where i can find "example" files for structure generation. ive tried reading the article and for some reason i cant proces it
my brain just aint brainin
thanks! From here it should only be a few tweaks to make it generate underground, again thanks!
ye np
how do i use the fallback in jigsaws. im a little confused how to set that up
Elaborate.
im good now i ended up getting it right after asking. my pos laptop wasnt saving anything
Wow, this is amazing.
I previously attempted to create the farlands (using features), but the biggest challenge was performance issues
It took several minutes to load a single chunk.💀
Can you set perms to blocks that generate with features/feature rules..? even just single block features?
{
"format_version": "1.21.60",
"minecraft:single_block_feature": {
"description": {
"identifier": "kado:nether_skybox"
},
"places_block": "kado:stable_air",
"enforce_placement_rules": false,
"enforce_survivability_rules": false
...
}
}
This block (kado:stable_air) has a state for "purpose" that i want to set to "skybox" for every block this feature places.
places_block accepts a block descriptor, which means you can specify the states as well. see: https://wiki.bedrock.dev/documentation/shared-constructs#block-descriptors
I tried that and it threw an error.. :/
Is a fallback pool supposed to be a pool which never fails?
No. If it cannot place a feature it tries to place the fallback. However if the fallback cannot fit or is outside the range then it fails.
anyone know about this..? I really dont want to have to do this with scripting.. :/
What's the code you tried?
{
"format_version": "1.21.60",
"minecraft:single_block_feature": {
"description": {
"identifier": "kado:nether_skybox"
},
"places_block": {
"name": "kado:stable_air",
"states": {
"kado:purpose": "skybox"
}
},
"enforce_placement_rules": false,
"enforce_survivability_rules": false
...
}
}
just a sec
oh pfffft.. ofc it works now that i have made a fuss about it... haha false alarm, thanks yall.
ok this isnt exactly a world gen question, but kind of.. I also posted in entities..
why do mobs in the nether have to have a block above them in order to spawn, and what counts as a "block". I have made an invisible block with collision that is replaceable and layered it at level y 127 across the entire nether and mobs still arent spawning unless I cover their platform with another layer of blocks.
I believe this is because all of the spawnrules use "underground" instead of "surface"
it is, but even if i change the spawn rules, they only still spawn in nether fortress bounding box areas (ik bedrock has a different 'boundingbox' system than java but still)
Do you want to start a thread and share your spawn rule?
The "runtime_identifier" can also mess with spawning
Hello all! I had a question about the geode_feature.
In the feature, there is the inner_layer along with
alternate_inner_layer, the middle_layer & the outer_layer.
All of the examples I've seen have a single block material for the layer:
middle_layer--iron_ore
outer_layer--blackstone
Is it possible to use a weighted pool of materials for the layers instead:
middle_layer--iron_ore 30٪ magma 70%
outer_layer--blackstone 30% tuff 70%
or are these layers limited to a single block choice only?
Follow on question related to features as they relate to world generation. Which is more intensive in terms of resources/possible lag: using features that spawn in a mcstructure or or a feature that creates a feature like a geode_feature?
To my knowledge in this scenario it depends on how many iterations are being placed and how big the structure is.
Only a single block.
I suspected as much, thank you!
Lol that molang query name is so hilariously long
I was reading up on geode_features and one of the search results indicated you could put a mcstructure within one by putting another "feature" in the "inner_placements" section rather than a block, is this true?
Basically it gave me the idea of a monster spawner geode and I'm wondering how reasonable an idea that is.
Why do I have a ghost ping from here?
Same
is there a tool to convert nbt structures into mcstructure structures?
or can we place parts of the trial chambers with /place jigsaw
Yes
thank you
np
I know the site bloxelizer can convert schematics to mcstructures but is there a smilar program that can do such a conversation in bulk?
what should i use to make my features spawn only on top of grass or other blocks? similar to placing a flower ontop of grass
i got it working.
Is there a way to load a structure with the structure voids still in place?
If I want to edit any of my structures, I have to load the structure, make edits, then re-add all of the voids which wastes a lot of time
You would have to nbt edit the file I believe
is there a more prominent way to stop trees from generating inside my structure?
i genuinley have no clue
i havent even figured out how to get strucures to spawn in the first place
You'd need to make it so there isn't any blocks that a feature can be placed on.
Ah so basically once I get the buildings inside the perimeter generating, trees will start spawning less.
yes
I have a question about fallback pools, If I set the fallback template pool to the same exact pool it's trying to fall back on, is the pool basically trying place itself twice
I'm sorry if this question makes no sense, but is it possible for structure to only generate once inside a world? Like, I want that specific structure to be unique by itself that exist only one in the entire world, no matter how much you explore.
they are not
That's interesting cuz the bedrock wiki still says so
it was last updated for 1.16.210, so the info is quite outdated at this point
the MS docs are up-to-date
Ah thank you
Sorry, I can't seem to find it on ms docs
Can I make Custom Biomes?
Yes, starting from Preview 1.21.80.27, use the minecraft:replace_biomes component.
Please refer to the MS Docs for more information.
@proper dew
Thank you
So it's a sort of chance-based biome placement?
Ok that sounds stupid since noise is already chance-based😭
vanilla biome placements are "chance-based" if you think about it
That's what i meant here
I mean like nested chance based(?)
Idfk
technically nothing is stopping you from completely replacing a vanilla biome
it's more of a percentage replacement with noise being used to shape the replacement
But is it possible to add biomes? Or is that still a limitation
For all intents and purpose this new system is considered adding new biomes.
Your biome will have its own definitions such as identifiers, tags, etc.
The biggest limitation is you cannot modify terrain shape.
You can think of it akin to pale gardens and cherry groves where they replace parts of a dark oak forest or normal grove.
Changing the terrain generation in Minecraft Bedrock is possible, but it's extremely tedious because Mojang doesn't make it easy. Therefore, you have to create a multitude of files and perform numerous calculations with molang.
it's not too bad if you generate the feature files and molang from an actual language, like ts/python
feature nesting goes absolutely nuts if you want to do advanced shaping and managing that manually is a nightmare
No, without scripts, I need the terrain loading to be as lightweight and fast as possible.
Even the chunks from my terrain generation loaded faster than the vanilla version.
Using only features and feature rules, if you include a reasonable number of interactions, your terrain will load quickly.
i didn't mean script api. i meant an external script to generate feature json files
Oh, okay, I didn't understand. But yes, that's an option too.
I do love seeing people pick up world gen again.
Man, I'm really enjoying doing this.
ooo nice
Is it possible to overwrite half of Crimson Forest and Warped Forests with Nether Wastes using custom biomes?
you need a target name so that the jigsaw knows what to look for in the template pool being targeted
https://youtu.be/6qJKAjIypuk @upbeat barn 👀
I have an addon that works well on latest, but crashes the game on preview, is there any way for me to debug it? I don't get any errors...
content log
empty content logs, the game literally crashes
Weird
I need assistance with end generation
I am pondering creating an Infested world pack The pack would have custom blocks that look like regular blocks, but Infested with silverfish. I am looking for suggestions for how to add these "monster blocks" into the world without significantly impacting world generation performance. My initial thought is using the ore_feature feature rule, but would love to know if there's a better idea.
ore feature is appropriate for this sort of thing. an alternative method would be to manually generate shapes using scatter feature and use single block feature to only replace the blocks you want. however, from my testing, this method is usually slower, even more so when you filter for the blocks you want to replace
Thank you!
As an aside, the geode_feature spawn is probably the most goofy feature I've tried working with. I now realize why it's not commonly used. 🤣
oh gosh.. let's not speak of that-
worst feature i've ever had the displeasure of trying to use
agreed. I feel like the geode_feature schema should include in their code comments // You'd think it would work that way, wouldn't you 😛
To any future folks hitting up this forum with questions. For geodes / geode_feature
Do they work?
Yes.
Do they work in the way you want without a ton of tweaking?
No.
There's definitely a reason folks use mcstructure files.
Is there a current bug/issue with Jigsaw "start_height" and "surface_structures"? For my underground dungeon jigsaw, it spawns in the appropriate y level with no issues. But for my “village” jigsaw, it seems to completely ignore it. Basically I don’t it spawn within 20 blocks vertically of sea level.
I have tried the following with absolutely no change. It still spawns at sea level and up. Did I miss something in the refs?
….
{
"format_version": "1.21.130",
"minecraft:jigsaw": {
"description": {
"identifier": "sw:imp_village"
},
"step": "surface_structures",
"terrain_adaptation": "beard_thin",
"start_height": {
"type": "uniform",
"max": {
"below_top": 100
},
"min": {
"below_top": 200
}
},
"start_pool": "sw:imp-path",
"max_depth": 20,
"heightmap_projection": "world_surface"
}
}
And….
….
"start_height": {
"type": "uniform",
"max": {
"below_top": 100
},
"min": {
"above_bottom": 200
}
}
And….
"start_height": {
"type": "uniform",
"max": {
"from_sea": 300
},
"min": {
"from_sea": 20
}
}
And…
….
"start_height": {
"type": "uniform",
"max": {
"below_top": 300
},
"min": {
"from_sea": 50
}
}
Are the template pools terrain matching?
The elements in them that is
Yes.
Interesting. I understood “rigid” to be for buildings, tunnels, etc., but not paths or roads. But I’ll try it out and see how it works. Thanks!
Ok, so I tried setting all to “rigid” but now the “village” spawns in the sky at various heights. 😖
So the range I set 100-200 “below_top” is working, but it really needs to be snapped to the terrain. Is the issue with “terrain_matching” ignoring the the altitude code just a bug? Hopefully that is intentional.
Attached the other files in case there is another random setting causing the issue. Thanks for the assist!👍🏼
Terrain matching just sets all of the blocks of the piece to the highest terrain height in the world which is why it doesn’t work in the nether
🤔 So to your knowledge is there a way to place a village style jigsaw between two specific y levels? (e.g. y=100 to y=250)
Using rigid features in the air yes
So high altitude villages is a no-go for now. Bummer.
What I’m wanting to do is not have this spawn on the ocean. Perhaps I’ll try to disallow beach biomes, not perfect, but it may limit it. 🤔
Thanks again for your help.
Any idea why when the paths generate on water, they a few blocks at the joints? Yet, when in the air, they are completely smooth. Of course I understand that terrain matching will cause ups & downs, but I’m specifically referring to the extra blocks added where two jigsaw pieces connect.
I’m still just experimenting with different designs, but I can’t seem to get any that stay flat on the water like a vanilla village path. 🤨
Is there a stand-alone program that you can use to preview feature.jsons without placing them into a live minecraft? I have a few ideas for the tree_feature and a couple of other feature types and want to test it out.
Not that I know of, could be a good use for Editor Mode though! If you want to make a suggestion in #1340055990053244938
how do you guys makes custom paths like village? im using terrain_matching but I want the blocks to be at the same Y level as the terrain level not on top
Ours is like that.
I don't have an issue with it being laid on top rather inline.
hmmm the jigsaw that spawn the paths is in top of the terrain maybe thats the cause?
I don't have that issue. My jigsaws are on top of the paths as well.
But if it is an issue, set your jigsaw as the same level as your path.
oh, the problem is that its using the snow layer block as terrain Y level .-.
Does changing the generation step help?
no, it seems like its taking the bottom block and placing it at the top Y level regardless of the height of the jigsaw Y level in the path
it should ignore not solid blocks
That doesn't answer my question really. I'm talking about the generation step not y level.
There should be a generation step theoretically that places before the snow layer is.
I will try, right now is in surface_structure
nope
nvm it works thank you!
Previous I was asking about geode_features and found out how temperamental they are in world generation for bedrock. Are cave_carver features similarly temperamental?
Is it possible to create a custom cave biome?
Yes.
Could you enlighten me on how? I attempted to replace lush caves and the deep dark, but it didn't seem to work.
It successfully added them to the game, but finding the biome via /locate and traveling to it showed that there was nothing there...
You need to use features to decorate the cave.
I see. So using foundation material parameters and such won't work?
So basically, all that adding a cave will do is simply tag a chunk of land for manipulation with features?
Correct.
I see. Thank you!
Cave making comes in two flavors. 1st is replacing the lush/deep dark/dripstone. This is what you were originally doing. Pros to this; they already spawn with known parameters. Cons to this they are much rarer.
The other option is to create custom biomes "taiga-cave" "meadow-cave" that on the surface match an existing biome but you load that biome it will trigger feature rules that build your cave features. You can make cave carver features biome dependant to start, but the use snap to surface features, ore_features, growing_plant features, and vegetation_patch_features to fill out your cave. Something to consider is that I've heard rumblings that the ice spike feature may be changed in the near future from a fixed ice feature to a "spike" feature that would allow alternative blocks from ice to be used.
Anybody knows why this structure file spawns underwater?
{
"format_version": "1.21.130",
"minecraft:jigsaw": {
"description": {
"identifier": "[identifier]:settlement"
},
"step": "surface_structures",
"heightmap_projection": "world_surface",
"liquid_settings": "apply_waterlogging",
"start_height": {
"type": "constant",
"value": {
"absolute": -5
}
},
"max_depth": 2,
"terrain_adaptation": "beard_box",
"start_pool": "[identifier]:settlements",
"biome_filters": [
{
"all_of": [
{"test": "has_biome_tag", "value": "overworld"},
{"test": "has_biome_tag", "value": "ocean", "operator": "!="},
{"test": "has_biome_tag", "value": "river", "operator": "!="},
{"test": "has_biome_tag", "value": "beach", "operator": "!="},
{"test": "has_biome_tag", "value": "shore", "operator": "!="}
]
}
],
"max_distance_from_center": 128,
"dimension_padding": 10
}
}
Feature pool element in preview
is there a way to do stair -> stair processor and maintain the states?
or any block tbh, just maintain states for blocks of a similar type through a processor without manually specifying all the states
Yes
Block state match processors
You have to specify all the states though because there is no other way to do it
so I have to define a rule for each position premutation of the block?
Yes
is it possible to spawn mobs in custom biomes?
to clarify I mean custom mobs on custom blocks
Is it possible to generate a column of a single block only replacing air using features?
Yeah. Scatter feature -> singe block feature.
Alr
do vanilla structures spawn on biomes created with the biome replacement feature?
Depends on tags
where can I find the right tags for that?
Depends on the structure
Adding the plains tag will let plains villages in that biome
is there a list of tags and what they do?
On wiki.bedrock.dev there is a list of tags but not specifically what they do
I look in the "replace_biomes" command at the targets: argument then place whatever biome is being replaced into the "tags" . for ex
"targets": [
"minecraft:dripstone_caves" I would put in the tags
minecraft:tags": {
"tags": [
"overworld",
"caves",
"dripstone_caves",
"white_caves",
"monster"
I worked up a python script that automatically scans biomes json files then adds the replaced biomes as tags. Mind you this won't work on marketplace content...
Is there a way to make the surface of the overworld the end, and the vanilla biomes generate underground in the caves?
Short answer: Yes. Longer answer: You'll need to work with biomes to make the replacement work. You'll also want to look into the cave_carver feature to make more space underground if you're making underground biomes.
Okay
Thanks
I can’t figure it out
what is your 1st stoping point
I know nothing about Minecraft bedrock modding😭
hey guys! how can I generate jigsaw structure in the nether world surface without taking into account the nether roof? I mean, I want to place my structures at the terrain generation in the crimson forest for example
using none or not specifying heightmap_projection works but at a fixed value in Y level
I don't think it's possible
wtf
I find this very dumb xd
well they have only needed it for bastions thus far so mojang hasn't run into this problem yet
How do you propose returning a y value of a xz coordinate works? What counts as the terrain?
made an offset in the nether below the bedrock and this should be solved
in the same way that one generates structures with features.
How does that work? Thats just specifying a specific y value since the roof is flat.
I think whats more useful is if we had snap to surface feature for jigsaws.
hmm let's say we have padding starting from the maximum height of the dimension. I know dimension_padding exists, but it doesn't work that way.
True
Again, that just sounds like specifying a y value.
snap to surface will be great
There is no easy way to query the heightmap of 3d noise.
can we do that in the last preview? we can use feature_pool, right?
yes, thats the idea, start the "raycast" in an xz coordinate from an specified Y value, but snap_to_surface sounds better
interesting that feature pool element does not keep the jigsaws even when keep jigsaws is true in /place structure
probably a bug
jigsaw blocks still working if I use a feature pool element and the structure has jigsaw blocks?
In preview yeah
epic!
I think i broke vanilla ancient cities
this is a vanilla city
The custom one im building in my addon on this world is using structures in the same file paths however only the city center exists on the custom one rn
it has broken the walls of the city center on the vanilla one but not the front wall or the portal thing itself interestingly enough
the two pieces however, are ones that i have not overwritten. I overwrote front1 and statue 1 but the two in that picture are not those 2
if i can overwrite the portals, I wonder what I could do with this
I just got on spring break and i just opened a whole can of worms
oh boy
got a ancient city to generate my custom portal and a content log error came up from the vanilla structure because of the lack of the minecraft:city_anchor jigsaw in the portal lol
holy shit, the file override ran the vanilla template pool
its running vanilla and custom at the same time on a vanilla structure it seems
Can we overwrite villages now?
Possibly
Wow finally
Not a 100% chance however. This may not work on villages.
NBT To MCSTRUCTURE Rework Modified:
Easy convert Java NBT structure to Bedrock structure (.mcstructure)
Multi-threading (Very fastest converter)
Support Vanilla and Mod structure (Java Edition)
Preserve the blocks, entities, etc. of Mod and Vanilla without losing blocks, etc.
Fixed more bug when convert structure
And more...
Required Termux application to install Python package
In Termux, install the necessary Python packages, including markdown-it-py, mdurl, mutf8, Pygments and rich (Command to install: pip install markdown-it-py mdurl mutf8 Pygments rich) before using nbt-to-mcstructure tool
Before using the command, place the NBT structure files in the BP/structures directory before using the command to convert the structure. (Command using nbt-to-mcstructure tool: "python ." or "python main.py")
The default Minecraft version of MC_VERSION in the java_structures.py file is 1.26.0. You can change the Minecraft version to whatever you want and use it (it works normally when changing versions).
when overwriting vanilla structures there seems to be a bug with feature pool elements being placed
this vanilla ancient city placed a jigsaw here but didn't place a sculk patch (which is possible but rare) but didn't place the turns into block despite it being valid
this seems to be ahppening regardless or not the structure is actually placing the sculk patch however it could just be deep dark generated patches generating on the structure
well this one replaced it's self correctly
really strange
yeah this is a thing with vanilla structures placing custom jigsaw things
this doesn't happen on my custom ancient city structure
replacing the vanilla city with a structure void just does this
how does it work?
you can attach jigsaw to structures now?
i replaced the structure files that the ancient city begins generation at
where are the files for amethyst geode feature and feature rule located at?
I can't find them inside the definitions folder of bds
found them at vanilla_1.17.0
can geode features only be placed in stone?
do structure set files work in the overworld of a flat world?
how about feature rules?
No.
how can I make it so my jigsaw structures only spawns facing "south"?
Can’t
https://www.youtube.com/watch?v=6BhMavjoGpY really curious if this is possible to do in bedrock... especially with how at 1:37 he shows exactly what he did to make it work
Which is stronger. Minecraft? Or one tiny code modification. 😈
» Breaking Minecraft Playlist - https://www.youtube.com/playlist?list=PLR50dP3MW9ZWMSVz2LkRoob_KRf72xcEx
» Discord - http://discord.gg/AntVenom
» Subscribe - http://bit.ly/AntVenomSubscribe
DOWNLOAD THE "Broken Chunks" MOD
» https://www.mediafire.com/file/f7gjudknibvpt8b/1.1...
NBT To MCSTRUCTURE Rework Modified Update:
Added option --namespace to rename namespace of block, entity, etc in palette on structure
You may not need to change the namespace using the --namespace option; you can keep the original namespace in that structure, or you can change the namespace to a different one of your choice using that option (--namespace option)
how would i make my custom biome generate less patchy and more continuous?
is structure void supposed to stay after using the /place structure command?
ok, apparently replacing the air with structure void by modifying the mcstructure file was the issue
loading and exporting the modified structure with a structure block fixed the issue.
structure void blocks have a default index of -1, if you give them the old index of air for example they will be dealt with like any other block.
is there a jigsaw processor that combines minecraft:block_ignore with minecraft:rule?
where is removes that block from the structure if a rule matches?
i want to prevent my jigsaw structure from overriding all blocks except air.
minecraft:protected_blocks only takes a single block tag, and as far as i know, there isn't an #not_air tag.
I do not believe so
I think you can have multiple protected block processors in a processor list
There is a stone tag at least iirc
yeah, but i don't want to hardcode every block tag in the game and a long list that i need to maintain
That’s the only way that I can think of doing it
Hi, could someone help me learn how to create an add-on that adds custom villages to the world?
I’m still really confused about how everything connects and generates properly, and I’m not sure where to start.
Has anyone made a schematic to mcstructure python script in the same vein as that nbt to mcstructure script above?
Does anyone know how I can prevent a default biome from being generated?
You would probably have to set up a custom biome that overrides the biome you don't want
I'm trying to remove all overworld biomes, and prioritize the ocean.
But it's my first day doing this, I don't know anything about world generation
what if I dont want to read it
so if i made a new biome, (for the end 💀) how would i get it to generate
Not possible. Its only enabled for overworld and nether.
goshdangit
how do other people get it to work in their addons?
or at least what appears to be custom end biome gen
would there be any way to remove caves (or just water caves) in a vanilla biome override?
uhm
why does the molang query q.heightmap include sea level
cuz its not supposed to do this
ok something i cant get around
lets say i want something in a specific biome that uses noise, like spires in a plains
if the spires were to ever end up partially in a forest, the part of the spire that isnt in a plains biome gets chopped
how can i get it to either spawn the entire spire or not spawn at all?
this has been bugging me for quite some time now
you can call q.has_biome_tag(biome, x, y, z) multiple times on the nearby surrounding area to check if it's of a different biome
though you have to be aware of 3d biome edges, so setting the Y level can change which biome it is on the same XZ column
It always has included it.
WORLD_SURFACE: Stores the Y-level of the highest non-air (all types of air) block.
I believe it queries world surface.
annoying that it does this
what if you want it on the ocean floor D:
Something something a Java update chabged it from y64 to y63
that would require a LOT of checks...
from what ive seen, that query is pretty performant
multitude more than q.noise
i've managed to call it ~48 times per-column without any noticeable performance drop
has to be separate
damn...
somebody can probably confirm if they dig into the game, but i'd assume the query is just doing a lookup on a table that's pre-calculated
another question
lets say i want to use noise to make a plains biome a bit hillier
how would i smooth the modified terrain into other biome terrain at the edges?
using the same query. like, 8 or 4 times around the column and then optionally expand further for better accuracy
another method that could also work is storing the original heightmap and then blending it with the new height using math.lerp
only on the edges of course
thats what i want to do
but im not sure how to do that at biome edges
combine heightmap blending with has_biome_tag and define some biome edge area (say 8x8, or more for a smoother blend). from there you can simply blend the height on edge area from vanilla into your custom terrain height
i only done it purely with has_biome_tag (for conditionally skipping structure placement), but this should definitely work and would be a lot better
lemme see if i can put this together...
also, you'll want to check for ocean and river biomes
since they can be inside your general custom biome area sometimes
because of this bs
that and caves will be a pain
yeah, hopefully you're not trying to blend into custom terrain height that's going lower than the sea level
caves and ponds are actually fine
i use q.above_top_solid for them
q.heightmap also places inside cave entrances
also werent ponds removed
in custom biomes? nope
ah
you probably could remove them i guess
although i'm guessing they're part of the early base terrain gen pass, before biomes are painted
man if only there was a way to invert the biome query...
negate it?
yes
i mean, you can
it works with the query?
it just returns a boolean
discovered by stirante
no clue why it doesn't mention that you could define coordinates
"t.plains_mod = q.heightmap(v.worldx, v.worldz) + 8 * q.noise(v.worldx/32, v.worldz/32; q.has_biome_tag(plains, v.worldx + 8, q.heightmap(v.worldx, v.worldz), v.worldz + 8) || q.has_biome_tag(plains, v.worldx, q.heightmap(v.worldx, v.worldz), v.worldz + 8) || q.has_biome_tag(plains, v.worldx - 8, q.heightmap(v.worldx, v.worldz), v.worldz + 8) || q.has_biome_tag(plains, v.worldx + 8, q.heightmap(v.worldx, v.worldz), v.worldz) || q.has_biome_tag(plains, v.worldx - 8, q.heightmap(v.worldx, v.worldz), v.worldz) || q.has_biome_tag(plains, v.worldx + 8, q.heightmap(v.worldx, v.worldz), v.worldz - 8) || q.has_biome_tag(plains, v.worldx, q.heightmap(v.worldx, v.worldz), v.worldz - 8) || q.has_biome_tag(plains, v.worldx - 8, q.heightmap(v.worldx, v.worldz), v.worldz - 8) ? t.plains = t.plains_mod : (t.plains = math.lerp(q.heightmap(v.worldx, v.worldz), t.plains_mod, 8)); return t.plains;"
that look right?
hmm, currently that's only targeting locations 8 blocks away from the column? unless that's what you want, i'd move it inside a loop and replace 8 with an offset which expands further from the center in every iteration
the last argument in math.lerp being 8 wouldn't work since it must be a float between 0-1. if you do the loop approach for has_biome_tag, you could set a blend_factor var that increases the further you go from the center
-# also, please tell me you're not writing molang in a single line 
oh wait, i am just blind. 8 isn't the last argument lmao nvm, it is. molang in single line is so hard to read
the 8 as the last arg is a placeholder
if i were to do that thered be no point
because most of that is or functions
we have internal TS tooling to generate feature files and so, molang is just written in string literals
also wdym by an offset that expands? what use would that do exactly?
replacing the constant 8 so that you're actually targeting locations away from the root column
rn it's just a single area 8 blocks away, so you're skipping some blocks
1..8?
yea
this is what ive got so far:
"t.plains_mod = q.heightmap(v.worldx, v.worldz) + 8 * q.noise(v.worldx/32, v.worldz/32; q.has_biome_tag(plains, v.worldx + 1..8, q.heightmap(v.worldx, v.worldz), v.worldz + 1..8) || q.has_biome_tag(plains, v.worldx, q.heightmap(v.worldx, v.worldz), v.worldz + 1..8) || q.has_biome_tag(plains, v.worldx - 1..8, q.heightmap(v.worldx, v.worldz), v.worldz + 1..8) || q.has_biome_tag(plains, v.worldx + 1..8, q.heightmap(v.worldx, v.worldz), v.worldz) || q.has_biome_tag(plains, v.worldx - 1..8, q.heightmap(v.worldx, v.worldz), v.worldz) || q.has_biome_tag(plains, v.worldx + 1..8, q.heightmap(v.worldx, v.worldz), v.worldz - 1..8) || q.has_biome_tag(plains, v.worldx, q.heightmap(v.worldx, v.worldz), v.worldz - 1..8) || q.has_biome_tag(plains, v.worldx - 1..8, q.heightmap(v.worldx, v.worldz), v.worldz - 1..8) ? t.plains = t.plains_mod : (t.plains = math.lerp(t.plains_mod, q.heightmap(v.worldx, v.worldz), 8)); return t.plains;"