#World Generation General

1 messages · Page 11 of 1

silent aurora
#

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

subtle plinth
#

10,001 messages!

spare sail
#

my last message was 9998 which has personal significance

lyric olive
#

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,

stoic orchid
lyric olive
stoic orchid
#

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

lyric olive
stoic orchid
#

o lmao ok

spark grove
#

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?

subtle plinth
last tinsel
#

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.

vale cliff
last tinsel
#

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).

last tinsel
#

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.

lyric olive
# last tinsel I couldn't seem to get rid of aquifers, maybe you will have better luck. I did g...

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.

last tinsel
lyric olive
#

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?

last tinsel
# lyric olive 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.

lyric olive
#

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

last tinsel
lyric olive
#

where u can stop it from being generated but still work the same as vanilla

last tinsel
lyric olive
#

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

CurseForge

Frozen Age transforms your world into a frozen wasteland where every biome, even the hottest ones, is covered in deadly cold. Survive the harsh conditions and see how long you can last in a world consumed by ice!
1.3K Downloads | Addons

#

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

last tinsel
upbeat barn
#

But yes, it's pretty cool HOWEVER

last tinsel
upbeat barn
#

/place featurerule at least in the scripting version does not respect the coordinates.

last tinsel
#

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.

upbeat barn
last tinsel
# upbeat barn

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 ~~~

dense crow
#

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?

last tinsel
subtle plinth
silk spire
#

Can we edit vanilla ore features?

subtle plinth
silk spire
#

The vanilla pack I've been looking at doesn't have the feature rules exposed

subtle plinth
#

Use the bedrock dedicated server software

#

The feature and feature rule files are in it somewhere

silk spire
#

Thanks

vale cliff
silk spire
#

Well that was a giant waste of time..
There is only 2 feature files and none are ores

subtle plinth
#

Otherwise you can unzip the apk for android

subtle plinth
#

@silk spire I found all the ore features in the BDS when I unzipped it

upbeat barn
#

Every month someone makes the same dev post posting all the vanilla features.

subtle plinth
subtle plinth
#

The first one is over a month old at least

upbeat barn
subtle plinth
#

No idea and I don’t care, if someone wants the ore features specifically then they can have them there

upbeat barn
last tinsel
#

(in the BDS zip)

last tinsel
dull pumice
#

how you fix world generation for jigsaws? like a city?

silk spire
#

So wait if I wanted to change how ore generates would I need to void original definitions and make new ones?

subtle plinth
dull pumice
#

how dimension_padding is used in that case :0?

silk spire
subtle plinth
#

You can use them to force the structure into flatter areas

silk spire
subtle plinth
#

No just remove the part of the feature rule that spawns it

#

The “distribution” part I think

subtle plinth
#

This is how much code it takes to properly age copper doors using processors. Nearly 2000 lines of code.

last tinsel
#

If you didn't generate this with a script, kudos on your sanity.

distant night
subtle plinth
vale cliff
subtle plinth
vale cliff
#

Where can i see what all it does

subtle plinth
#

wiki.bedrock.dev

vale cliff
#

But there is only 3to4 types

subtle plinth
#

Yeah

#

There’s 4 types of processors but they can all do cool things

vale cliff
#

Oh ok

subtle plinth
#

Writing documentation for the /place command rn

#

Especially the elusive /place jigsaw one

vale cliff
#

Nice waiting to see

subtle plinth
#

Smokey didn’t want it, your gonna have to use the MS docs ones

subtle plinth
#

Now working on documentation on how to modify or overwrite vanilla structures

vale cliff
subtle plinth
vale cliff
#

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

dull pumice
#

how dimensional_padding works?

subtle plinth
#

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

dull pumice
last tinsel
#

...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.

left drum
#

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

#

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

upbeat barn
#

Youre using q.heightmap wrong

#

Also for future reference

hushed knotBOT
#
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.

left drum
#

any suggestions what i should change?

upbeat barn
royal bison
#

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

royal bison
#

ooohh

#

thank you

royal bison
#

can a processor change the jigsaw block content? I want to reuse structures but change the pool inside the jigsaw in that structure

pallid halo
#

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?

pallid halo
pallid halo
last tinsel
# pallid halo 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.

pallid halo
#

There's a web that can extract structure from mcworld

#

Save your structure first, then upload the mcworld here, then download them

last tinsel
pallid halo
#

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

storm siren
#

guys is it possible to add randomized loot on jigsaw?

stoic orchid
#

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

vale cliff
last tinsel
#

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 ]
          },
upbeat barn
#

Pretty sure one of the mountain biomes uses that for calcite

last tinsel
#

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.

subtle plinth
#

custom jigsaw structures can place vanilla stucture templates and connect to their jigsaws but they won't generate their jigsaws

vale cliff
left stream
#

The vanilla savanna mutated biome uses it too

last tinsel
left drum
austere ledge
#

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

subtle plinth
#

we don't have exclusion zones on bedrock just yet though

vale cliff
#

[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

royal bison
#

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?

upbeat barn
royal bison
#

I want to force generate it even if replace another piece blocks

upbeat barn
royal bison
# upbeat barn 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

upbeat barn
austere ledge
vale cliff
#

[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

subtle plinth
subtle plinth
#

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

boreal blaze
#

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.

upbeat barn
#

You should store it in structures/namespace/your structure.mcsutrcture

boreal blaze
austere stratus
#

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..

upbeat barn
austere stratus
#

okay:)

austere stratus
upbeat barn
austere stratus
#

ah nvm i just found it sorry

austere stratus
#

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..

upbeat barn
austere stratus
#

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...

subtle plinth
#

I think one of the entrance ways has water like that

austere stratus
subtle plinth
#

You should be able to overwrite it if it is the trial chambers because we can edit its template pools

austere stratus
#

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

sudden cliff
#

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?

mortal patio
#

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?

subtle plinth
subtle plinth
#

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

boreal blaze
#

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.

mortal patio
#

Thank you!!

subtle plinth
#

np

subtle plinth
#

there is water in patterns in trial chambers but none in that pattern from what I've seen

austere stratus
subtle plinth
#

yeah

vale cliff
#

Does anyone know why my r not placing correctly somepath block r coming up

subtle plinth
#

it won't do that when naturally generated

vale cliff
#

Oh ok

vale cliff
#

Does anyone know Why does the path spawns upper the structure?

vale cliff
subtle plinth
main lotus
#

Is there a specific block trait that the tree feature uses for rotation when it generates the trunk?

austere stratus
# subtle plinth yeah

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...?

subtle plinth
#

that appears to be trial_chambers/corridor/end_2

austere stratus
#

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....)

austere stratus
subtle plinth
upbeat barn
#

I would recommend just not generating the structure in the first place rather than just preventing one piece.

austere stratus
subtle plinth
#

try placing this file in this folder path rootbp/worldgen/template_pools/trial_chambers/chambers

#

the file should be called end.json

subtle plinth
austere stratus
#

well the waterlogging problem is reallly messing with the shipwrecks mostly. if anyone can think of a fix hmu. this is killing me

austere stratus
#

wait @upbeat barn how tf do i keep the trial chambers from generating.. just edit the template pools to be empty..?

upbeat barn
#

Set it to generate in a non existent biome.

subtle plinth
#

I tried a bit ago

#

blank the start pool

#

or the structure set if we can

austere stratus
subtle plinth
austere stratus
#

thats what i figured..

subtle plinth
#

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

austere stratus
#

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..

upbeat barn
austere stratus
#

wait so i could keep the shipwreck from generating too...???

subtle plinth
subtle plinth
#

you have to be in creative though

austere stratus
subtle plinth
#

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

austere stratus
#

hold up.. im dumb... i put it in the wrong folder.... trying again now...

subtle plinth
#

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

austere stratus
austere stratus
subtle plinth
#

ah

dreamy forge
#

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?

subtle plinth
dreamy forge
#

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.

subtle plinth
last tinsel
# dreamy forge Can I do it on mobile or do I absolutely need a PC?

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.

last tinsel
vale cliff
last tinsel
#

Oh that will work on android? That's great for those who have kept an older copy.

vale cliff
austere stratus
#

yall, is nether glowstone a feature?

austere stratus
#

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

austere stratus
#

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?

vale cliff
#

Does anyone know why two trees r spawning very close

subtle plinth
subtle plinth
subtle plinth
austere stratus
subtle plinth
#

Yeah you can it’s start pool

last tinsel
#

What's the trick to get a block to tick in placed features? Specifically, I want lava to flow after I place it.

vale cliff
austere stratus
#

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)

sudden cliff
#

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?

austere stratus
storm thunder
#

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?

sudden cliff
# austere stratus should be able to be done with scripting, idk about otherwise

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.

subtle plinth
last tinsel
# sudden cliff Imagine a block is destroyed, either by mining or an explosion. The addon checks...

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.

last tinsel
#

...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? 🤪

royal bison
#

how can I call a template pool from another template pool? in jigsaw structures?

last tinsel
#

Random plants and trees can be added with randomly setting the snap to surface range for diff features to diff heights in diff places

oak cipher
last tinsel
#

But I need to rejig the shape, been looking at actual farlands screenshots

last tinsel
# oak cipher yyyy

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.

oak cipher
#

is this going to be an addon that just brings the farlands closer

last tinsel
#

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)

oak cipher
#

cool

last tinsel
#

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!

velvet spade
dreamy forge
#

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.

subtle plinth
vale cliff
last tinsel
#

Doesn't include jigsaw files. You have to make those yourself.

valid stirrup
#

anyone knows a good tool to create jigsaws with a UI?

last tinsel
upbeat barn
vale cliff
misty pivot
#

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?

subtle plinth
subtle plinth
misty pivot
subtle plinth
#

Yeah

subtle plinth
#

Probably a bunch of bs

royal bison
#

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

vale cliff
bitter fog
#

Does anyone know if minecraft:overworld_generation_rules still work? When I used it I got an error saying it has been depreciated

hushed knotBOT
#
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.

upbeat barn
#

@bitter fog

bitter fog
# upbeat barn <@989854609117950002>

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)

upbeat barn
bitter fog
#

Thanks

last tinsel
# bitter fog Thanks

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.

last tinsel
#

What you get if you make geodes tiny. Cube™️

vale cliff
misty pivot
#

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?

misty pivot
#

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.

limber jewel
#

FINALLY

dull pumice
#

someone know thy the cutsom biomes generation is slower? or have lag?

vale cliff
steel gull
#

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

steel gull
#

And overworld height is that too? It seems to have an effect imo but others have said it doesn't work (?)

steel gull
#

Ah yeah did some extreme difference in the noise params and seems to do nothing that's frustrating

#

Thanks though

last tinsel
# limber jewel FINALLY

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.

last tinsel
ivory escarp
#

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?

subtle plinth
#

Use the explorer map loot function and set the destination to the identifier of your structure.

vale cliff
#

Why my structures r u merging with the ground

subtle plinth
#

I think I figured out what the use_expansion_hack field in Java is used for

mortal patio
#

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😅

vale cliff
#

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

last tinsel
vale cliff
#

I changed scatter_chance also

#

I changed scatter_chance also

last tinsel
limber jewel
#

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

limber jewel
#

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

subtle plinth
vale cliff
last tinsel
#

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,

neat jackal
#

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.

neat jackal
#

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)"
        }
last tinsel
# neat jackal Think I got it.

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.

neat jackal
#

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.

last tinsel
#

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.

neat jackal
#

That's clever, hmm I think this is working ok for now? I'll try that if this stops working.

last tinsel
#

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.

neat jackal
#

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

neat jackal
#

Anyone else having issues with cave_carvers? I can't get mine to work.

neat jackal
#

Eh, forget it. I'm just going to use 1mill geodes.

valid stirrup
#

anyone knows if there're any limitations or banned characters from the jigsaw block inputs?

  • Target Pool
  • Target Name
  • Name
subtle plinth
#

€£¥

#

Like those

hard cipher
#

Is it possible to make a room in a Jigsaw structure appear only once per structure? For example, the portal room from The End.

hard cipher
# subtle plinth 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.

subtle plinth
subtle plinth
last tinsel
last tinsel
# neat jackal Uh I mean I've been doing this: ```js "conditions": { "place...

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] }
neat jackal
# last tinsel Eg this is a chunk of some code I'm working on today where I swapped from one to...

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.

neat jackal
last tinsel
# vale cliff You need accept my request

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!

last tinsel
last tinsel
#

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.

subtle plinth
last tinsel
#

...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.

last tinsel
last tinsel
#

Welp

subtle plinth
#

villages in both java and bedrock can cross biome borders even if they don't have villages themselves

last tinsel
mortal patio
#

Is it possible to add custom loot table to suspecious sands/gravel that was generated from world generation?

mortal patio
#

Wait, I'll take a look at it, sorry for these dumb questions xd

mortal patio
#

ahhh okayyy, i thought it was hard, how to mess with susp. sands/gravels.

#

Thanks @upbeat barn

mortal patio
#

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

void plover
#

Is cave generation/ cave biomes possible?

upbeat barn
void plover
#

Ahh gotcha. Where can I find info on cave biomes?

hushed knotBOT
#
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.

upbeat barn
void plover
#

Thank you!

limber jewel
#

there's some performance implications of course

upbeat barn
#

Yes I would not attempt so if you are releasing a marketplace project.

limber jewel
# last tinsel At least with DIY biome mapping systems you can use your system to figure out fr...

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 to q.has_biome_tag() being able to accept xyz arguments? the extra coordinates which you can specify can be offset from v.world(xyz) and let you pretty much target any location even outside the feature rule's origin chunk

limber jewel
#

it's not amazing, but it's acceptable

upbeat barn
#

Yeah, but if 3 addons do it...

limber jewel
#

the game will cease to exist

misty pivot
#

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.

austere stratus
#

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..

valid stirrup
#

Is it possible to have a feature rule spawn around a structure?

mortal patio
#

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.

subtle plinth
#

You can set start height to be a absolute value and remove the heightmap_projection field

sacred meteor
#

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
}
]

austere stratus
sacred meteor
#

oh okay

#

i just got scam by this line

left stream
#

someone know how to make leaves variation like the azalaea tree?

upbeat barn
buoyant field
#

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.

#

at least i assume it's this that is the issue

upbeat barn
#

Or add just tge overworld tag.

buoyant field
#

So i just add
{
"test": "has_biome_tag",
"operator": "!=",
"value": "overworld"
}

upbeat barn
#

No, it would be ==

#

You want it to generate in overworld.

buoyant field
#

Sorry im a bit of a noob

#

yeah

#

Awesome I'll test it now, thanks

austere stratus
#

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?

subtle plinth
#

can't you just set the world generator to be void

austere stratus
austere stratus
#

does anyone know how i can reduce the number of sculk shriekers that generate in ancient cities?

last tinsel
last tinsel
#

At least that's what my tests have indicated. Feature rules don't place anything.

last tinsel
last tinsel
# misty pivot Are there noise values that let stuff spawn in the middle of an area? I want to ...

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.

last tinsel
last tinsel
# last tinsel This guaranteed minimum distance varies with how extreme the values are (as well...

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.

limber jewel
#

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)

last tinsel
#

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.

gaunt raven
limber jewel
#

feature files in particular become unwieldy very quickly

austere stratus
#

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?

mortal patio
#

Is explorer_map in loot tables still broken from locating jigsaw structures?

subtle plinth
mortal patio
#

Although, when i use trades from an entity it just works fine

austere stratus
subtle plinth
subtle plinth
#

./loot doesn’t work however

mortal patio
#

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

subtle plinth
#

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

mortal patio
mortal patio
#

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.

subtle plinth
#

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

subtle plinth
austere stratus
#

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)

leaden lintel
#

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 )

subtle plinth
#

Just close it because editing it can corrupt the file

leaden lintel
#

Just one thing. Does anyone know a video or an online tutorial on how to properly add structures into Minecraft? With jigsaw blocks?

subtle plinth
leaden lintel
subtle plinth
leaden lintel
#

Alr, thx for the help!

mortal patio
mortal patio
#

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)

subtle plinth
mortal patio
#

Ahhh okay

lyric olive
#

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

subtle plinth
#

You would need to find the files though

lyric olive
hard cipher
#

Can features pass through jigsaw structures? Is that normal?

hard cipher
# upbeat barn Yes.

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?

upbeat barn
#

If it can generate then yes.

hard cipher
upbeat barn
hard cipher
last ermine
#

rooted dirt has the dirt tag which will allow trees to generate

hard cipher
#

I'll try using a whitelist, maybe it will work.

hard cipher
leaden lintel
vale cliff
#

Can anyone tell me why these trees r spawning so close

slender lotus
#

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

upbeat barn
slender lotus
#

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

upbeat barn
#

It sounds like it might be too big? This is a first I've seen it say out of bounds.

slender lotus
#

the base plate is 36x38 blocks

subtle plinth
#

Out of bounds might mean it is trying to place outside the height limits

slender lotus
#

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

slender lotus
#

Is there a way to prevent structures from rotating when generating, make them face one direction always?

slender lotus
#

sigh

#

so they'll always generate facing random directions?

slender lotus
#

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?

crystal patrol
#

is there a way to make the water save in my structer?(it's a bubble collom)

leaden lintel
#

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)

leaden lintel
#

Thanks!

#

Wait

#

How does one respond like that at light speed

mortal patio
mortal patio
#

Woah, cool! Literally will save my time, luckily i just only did it for 1 structure atm. 🫡

slender lotus
#

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?

subtle plinth
slender lotus
#

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.

subtle plinth
slender lotus
#

I edited the y level spawn for my mobs through nbt editor and now they're not spawning anymore, is this a known issue 😭

slender lotus
#

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

subtle plinth
slender lotus
#

Ima just make a block that generates in the structure and then turns into mob after generating

leaden lintel
#

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

leaden lintel
velvet spade
#

how do i use the fallback in jigsaws. im a little confused how to set that up

velvet spade
covert jolt
austere stratus
#

Can you set perms to blocks that generate with features/feature rules..? even just single block features?

austere stratus
limber jewel
austere stratus
slender lotus
#

Is a fallback pool supposed to be a pool which never fails?

upbeat barn
austere stratus
upbeat barn
austere stratus
# upbeat barn 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
...
}
}

limber jewel
#

that's correct

#

what kind of error did you get

austere stratus
austere stratus
austere stratus
#

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.

real fiber
austere stratus
#

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)

real fiber
modest trench
#

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?

upbeat barn
modest trench
sleek kayak
modest trench
#

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.

subtle plinth
#

Why do I have a ghost ping from here?

vale cliff
compact crescent
#

is there a tool to convert nbt structures into mcstructure structures?

compact crescent
#

or can we place parts of the trial chambers with /place jigsaw

subtle plinth
#

np

modest trench
#

I know the site bloxelizer can convert schematics to mcstructures but is there a smilar program that can do such a conversation in bulk?

lyric olive
#

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

real fiber
#

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

subtle plinth
slender lotus
#

is there a more prominent way to stop trees from generating inside my structure?

leaden lintel
#

i genuinley have no clue

#

i havent even figured out how to get strucures to spawn in the first place

upbeat barn
slender lotus
slender lotus
#

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

fathom valve
#

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.

proper dew
#

Are biomes still broken?

#

Haven't been here in a year lol

limber jewel
proper dew
#

That's interesting cuz the bedrock wiki still says so

limber jewel
#

it was last updated for 1.16.210, so the info is quite outdated at this point

#

the MS docs are up-to-date

proper dew
#

Ah thank you

proper dew
hushed knotBOT
#
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.

upbeat barn
#

@proper dew

proper dew
#

Thank you

proper dew
#

Ok that sounds stupid since noise is already chance-based😭

limber jewel
proper dew
#

I mean like nested chance based(?)

#

Idfk

limber jewel
#

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

proper dew
#

But is it possible to add biomes? Or is that still a limitation

upbeat barn
#

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.

junior prism
junior prism
junior prism
#

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.

limber jewel
#

feature nesting goes absolutely nuts if you want to do advanced shaping and managing that manually is a nightmare

junior prism
#

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.

limber jewel
junior prism
#

Oh, okay, I didn't understand. But yes, that's an option too.

junior prism
upbeat barn
#

I do love seeing people pick up world gen again.

junior prism
#

Man, I'm really enjoying doing this.

limber jewel
junior prism
#

real biomes

real fiber
#

Is it possible to overwrite half of Crimson Forest and Warped Forests with Nether Wastes using custom biomes?

slender lotus
#

Is it okay if I only fill out the target pool?

#

or are the names necessary as well

subtle plinth
junior prism
valid stirrup
#

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...

junior prism
valid stirrup
subtle plinth
young pebble
#

I need assistance with end generation

modest trench
#

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.

limber jewel
modest trench
#

Thank you!

modest trench
#

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. 🤣

limber jewel
#

oh gosh.. let's not speak of that-

#

worst feature i've ever had the displeasure of trying to use

modest trench
# limber jewel 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.

viscid bay
#

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
}
}

subtle plinth
#

The elements in them that is

viscid bay
subtle plinth
#

That’s why

#

They immediately snap to terrain height

#

Set them to rigid

viscid bay
#

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!

viscid bay
# subtle plinth Set them to rigid

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!👍🏼

subtle plinth
viscid bay
subtle plinth
viscid bay
# subtle plinth 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.

viscid bay
#

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. 🤨

modest trench
#

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.

upbeat barn
royal bison
#

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

upbeat barn
#

I don't have an issue with it being laid on top rather inline.

royal bison
upbeat barn
#

But if it is an issue, set your jigsaw as the same level as your path.

royal bison
upbeat barn
royal bison
#

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

upbeat barn
#

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.

royal bison
#

nope

#

nvm it works thank you!

modest trench
#

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?

unborn axle
#

Is it possible to create a custom cave biome?

upbeat barn
unborn axle
# upbeat barn 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...

upbeat barn
unborn axle
#

I see. So using foundation material parameters and such won't work?

unborn axle
upbeat barn
#

Correct.

unborn axle
#

I see. Thank you!

modest trench
#

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.

valid stirrup
#

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
    }
}
subtle plinth
#

Feature pool element in preview

valid stirrup
#

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

subtle plinth
#

Block state match processors

#

You have to specify all the states though because there is no other way to do it

valid stirrup
dawn gale
#

is it possible to spawn mobs in custom biomes?

dawn gale
#

to clarify I mean custom mobs on custom blocks

subtle plinth
#

Is it possible to generate a column of a single block only replacing air using features?

upbeat barn
subtle plinth
valid stirrup
#

do vanilla structures spawn on biomes created with the biome replacement feature?

valid stirrup
subtle plinth
#

Adding the plains tag will let plains villages in that biome

valid stirrup
subtle plinth
modest trench
# valid stirrup where can I find the right tags for that?

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"

modest trench
#

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...

steep stone
#

Is there a way to make the surface of the overworld the end, and the vanilla biomes generate underground in the caves?

modest trench
steep stone
#

I can’t figure it out

modest trench
#

what is your 1st stoping point

steep stone
#

I know nothing about Minecraft bedrock modding😭

royal bison
#

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

royal bison
subtle plinth
#

well they have only needed it for bastions thus far so mojang hasn't run into this problem yet

upbeat barn
royal bison
#

in the same way that one generates structures with features.

upbeat barn
#

I think whats more useful is if we had snap to surface feature for jigsaws.

royal bison
upbeat barn
royal bison
#

snap to surface will be great

upbeat barn
#

There is no easy way to query the heightmap of 3d noise.

royal bison
royal bison
subtle plinth
#

interesting that feature pool element does not keep the jigsaws even when keep jigsaws is true in /place structure

royal bison
#

jigsaw blocks still working if I use a feature pool element and the structure has jigsaw blocks?

royal bison
#

epic!

subtle plinth
#

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

vale cliff
#

Can we overwrite villages now?

subtle plinth
vale cliff
#

Wow finally

subtle plinth
azure zodiac
#

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).

subtle plinth
#

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

subtle plinth
#

replacing the vanilla city with a structure void just does this

carmine rose
subtle plinth
compact crescent
#

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?

compact crescent
#

do structure set files work in the overworld of a flat world?

compact crescent
#

how about feature rules?

upbeat barn
stoic owl
#

how can I make it so my jigsaw structures only spawns facing "south"?

pearl plume
#

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

azure zodiac
#

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)

vagrant ruin
#

how would i make my custom biome generate less patchy and more continuous?

compact crescent
#

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.

compact crescent
#

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.

subtle plinth
#

There is a stone tag at least iirc

compact crescent
subtle plinth
#

That’s the only way that I can think of doing it

stark dock
#

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.

modest trench
#

Has anyone made a schematic to mcstructure python script in the same vein as that nbt to mcstructure script above?

marsh ferry
#

Does anyone know how I can prevent a default biome from being generated?

modest trench
#

You would probably have to set up a custom biome that overrides the biome you don't want

marsh ferry
#

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

marsh ferry
#

Now only stones come out

marsh ferry
#

Hi

#

Anyone?

lyric karma
small latch
jaunty kestrel
#

so if i made a new biome, (for the end 💀) how would i get it to generate

upbeat barn
jaunty kestrel
#

goshdangit

#

how do other people get it to work in their addons?

#

or at least what appears to be custom end biome gen

vagrant ruin
#

would there be any way to remove caves (or just water caves) in a vanilla biome override?

sly forge
#

uhm

#

why does the molang query q.heightmap include sea level

#

cuz its not supposed to do this

sly forge
#

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

limber jewel
#

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

upbeat barn
sly forge
#

what if you want it on the ocean floor D:

limber jewel
#

yeah i wish it didn't :c

#

it's not like the sea level suddenly changes

upbeat barn
#

Something something a Java update chabged it from y64 to y63

sly forge
limber jewel
#

from what ive seen, that query is pretty performant

sly forge
#

on what scale

#

when i say spires

limber jewel
#

multitude more than q.noise

sly forge
#

i mean 200+ blocks tall

#

also can you specify multiple tags in the same query or nah

limber jewel
#

i've managed to call it ~48 times per-column without any noticeable performance drop

limber jewel
sly forge
#

damn...

limber jewel
#

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

sly forge
#

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?

limber jewel
#

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

sly forge
#

but im not sure how to do that at biome edges

limber jewel
#

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

sly forge
#

lemme see if i can put this together...

limber jewel
#

also, you'll want to check for ocean and river biomes

#

since they can be inside your general custom biome area sometimes

sly forge
#

ocean biomes shouldnt be too hard

#

the rivers will be annoying tho

sly forge
#

that and caves will be a pain

limber jewel
#

yeah, hopefully you're not trying to blend into custom terrain height that's going lower than the sea level

limber jewel
#

i use q.above_top_solid for them

sly forge
#

also werent ponds removed

limber jewel
#

in custom biomes? nope

sly forge
#

not custom

#

vanilla

#

im modifying vanilla biomes here

limber jewel
#

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

sly forge
#

man if only there was a way to invert the biome query...

limber jewel
#

negate it?

sly forge
#

yes

limber jewel
#

i mean, you can

sly forge
#

it works with the query?

limber jewel
#

it just returns a boolean

sly forge
#

hmm...

#

also where did you even get the syntax

#

its not on bedrock.dev

limber jewel
#

discovered by stirante

#

no clue why it doesn't mention that you could define coordinates

sly forge
#

"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?

limber jewel
# sly forge `"t.plains_mod = q.heightmap(v.worldx, v.worldz) + 8 * q.noise(v.worldx/32, v.wo...

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 despair

#

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

sly forge
sly forge
#

because most of that is or functions

limber jewel
#

we have internal TS tooling to generate feature files and so, molang is just written in string literals

sly forge
limber jewel
#

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

sly forge
#

1..8?

limber jewel
#

yea

sly forge
#

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;"