#World Generation General

1 messages · Page 10 of 1

sly forge
#

np

oak cipher
#

is anyone having problems placing tall grass with features?

upbeat barn
#

How are you doing it?

oak cipher
upbeat barn
oak cipher
#

I see.

#

growing plant feature then.

upbeat barn
oak cipher
upbeat barn
#

Check how vanilla uses it.

oak cipher
#

I did.

#
{
  "format_version": "1.13.0",
  "minecraft:single_block_feature": {
    "description": {
      "identifier": "minecraft:tall_grass_feature"
    },
    "places_block": {
      "name": "minecraft:tallgrass",
      "states": {
        "tall_grass_type": "tall"
      }
    },
    "enforce_survivability_rules": true,
    "enforce_placement_rules": false,
    "may_replace": [
      "minecraft:air"
    ]
  }
}
#

its a single block feature.

#

and its outdated

upbeat barn
#

You're not checking correctly.

oak cipher
#
{
    "format_version": "1.21.100",
    "minecraft:single_block_feature": {
        "description": {
            "identifier": "biota:marsh_short_grass_feature"
        },
        "places_block": {
            "name": "minecraft:tall_grass",
            "states": {
                "upper_block_bit": false
            }
        },
        "enforce_survivability_rules": true,
        "enforce_placement_rules": false,
        "may_replace": [
            "minecraft:air"
        ]
    }
}
upbeat barn
#

Features can reference other features, so check what references this feature and go all the way until you hit a feature rule

oak cipher
#

works with short grass.

upbeat barn
#

Short grass is just 1 block.

oak cipher
#

I know, Im just saying its not like its spawning rarely.

oak cipher
oak cipher
#

alright man

upbeat barn
#

Because you would discover that it references aggregate features and scatter features to place the single block.

oak cipher
#

and im using a scatter feature....

upbeat barn
oak cipher
#

why would that make it not place tall grass if I dont.

upbeat barn
#

Because it's two blocks.

#

You need to place both blocks not just the bottom.

oak cipher
upbeat barn
slender lotus
#

Why does the tower not generate sometimes?

#

I am making an outpost like structure, the base uses terrain matching projection, but it has structure blocks inside that generate rigid structures. Sometimes the tower doesn't want to spawn tho.

subtle plinth
#

My custom outposts do that pretty rarely

oak cipher
dense crow
slender lotus
#

I want to try and do that, but when I increase the bottom of the bounding box the structures starts floating because I’m using terrain alignment

dense crow
#

And why do you leave a gap at the bottom of such a structure?

slender lotus
#

Because one of the inside structures is like a mine, maybe I’m misunderstanding how I’m supposed to generate the structure tho

#

I’ll show the pools once I get home

slender lotus
#

here are the six pools as a start for the structure

#

this is "outpost base top" and "post_connecter1"

#

outpost base bottom

#

here is "post_tower" and "tower_top". They're both in the same structure

#

and here is the bottom of the tower

#

post connecter connects to the tower btw

#

here are the pool files

#
    "format_version": "1.21.110",
    "minecraft:template_pool": {
        "description": {
            "identifier": "paf:obb"
        },
        "elements": [
            {
                "element": {
                    "element_type": "minecraft:single_pool_element",
                    "location": "marrowed_outpost/outpostbasebottom",
                    "projection": "terrain_matching"
                },
                "weight": 1
            }
        ]
    }
}```
#
{
    "format_version": "1.21.110",
    "minecraft:template_pool": {
        "description": {
            "identifier": "paf:obt"
        },
        "elements": [
            {
                "element": {
                    "element_type": "minecraft:single_pool_element",
                    "location": "marrowed_outpost/outpostbase",
                    "projection": "terrain_matching"
                },
                "weight": 1
            }
        ]
    }
}```
#
    "format_version": "1.21.110",
    "minecraft:template_pool": {
        "description": {
            "identifier": "paf:pc1"
        },
        "elements": [
            {
                "element": {
                    "element_type": "minecraft:single_pool_element",
                    "location": "marrowed_outpost/outpostbase",
                    "projection": "terrain_matching"
                },
                "weight": 1
            }
        ]
    }
}```
#
    "format_version": "1.21.110",
    "minecraft:template_pool": {
        "description": {
            "identifier": "paf:pt"
        },
        "elements": [
            {
                "element": {
                    "element_type": "minecraft:single_pool_element",
                    "location": "marrowed_outpost/outposttower",
                    "projection": "rigid"
                },
                "weight": 1
            }
        ]
    }
}```
#
    "format_version": "1.21.110",
    "minecraft:template_pool": {
        "description": {
            "identifier": "paf:tb"
        },
        "elements": [
            {
                "element": {
                    "element_type": "minecraft:single_pool_element",
                    "location": "marrowed_outpost/towerbottom",
                    "projection": "terrain_matching"
                },
                "weight": 1
            }
        ]
    }
}```
#
    "format_version": "1.21.110",
    "minecraft:template_pool": {
        "description": {
            "identifier": "paf:tt"
        },
        "elements": [
            {
                "element": {
                    "element_type": "minecraft:single_pool_element",
                    "location": "marrowed_outpost/outposttower",
                    "projection": "rigid"
                },
                "weight": 1
            }
        ]
    }
}```
#

six pools in total

#

it's a lot

#

sorry 😭

#

I've been struggling with this structure for almost 2 weeks now

rigid niche
#

Okay I am so sorry to bother you, but did you get this figured out? I am currently experiencing this problem.

austere stratus
rigid niche
last tinsel
#

Dynamic features and feature rules would be great.

Is there any way to modify the value returned by a Molang variable or query that would be accessible within the scope of features or feature rules?

#

Such as causing the value of a hardcoded variable accessible to features/feature rules to change, through changing something else about the world. These variables are not really documented, though I have a list of them. Obviously v.worldx etc is one of them.

upbeat barn
upbeat barn
last tinsel
# upbeat barn Pretty sure the wiki documents them.

Are you referring to Block Conditions for Features? That wouldn't work for this I don't think, as I'd want to modify the feature/rules globally, such as noise parameters or cutoff.

I'd like the addon user to be able to modify a setting to choose between different ways a feature is placed. Or for some other kind of in-game condition to occur so that new chunks are loaded with the new feature setting. Perhaps the way the feature is placed would make the terrain or resource more challenging or rare based on a global condition change.

Obviously there are behaviour subpacks but was hoping for something more dynamic.

upbeat barn
last tinsel
#

I'm very unclear on scope or hardcoded variables, for instance.

#

I still haven't found documentation I fully understand on v.worldx vs v.originx for instance. I've started testing by subtracting one from the other and using it as a y-level modifier and so far seems to be 0.

upbeat barn
upbeat barn
#

Hence the name.

#

They're self explanatory. The Wiki does need an update.

last tinsel
#

Starting from 0 of what?

#

The chunk?

upbeat barn
#

Of where ever the feature is placed.

#

Hence origin.

last tinsel
#

So what do the world coordinates refer to then?

#

The start of the chunk?

upbeat barn
#

No, the world.

last tinsel
#

Which part of the world?

#

Origin of where the feature is placed - but in what coordinate frame? Relative or absolute?

upbeat barn
#

What?

#

Worldx refers to the world coordinates

Origin is relative to the origin.

last tinsel
#

So originx is just an offset from the start of a chunk? Has values 0 to 15?

upbeat barn
#

Wherever the feature is placed.

last tinsel
#

So wherever the feature is placed in the world, originx = 0 would refer to that specific point?

upbeat barn
#

Yes.

last tinsel
#

Right! Thankyou. So I'm guessing q.noise with originx as a parameter would give the same local noise mapping for the same feature in different areas of the world, since the input x and z would be the same and the world seed would be the same.

upbeat barn
last tinsel
#

Much code I've seen uses originx and originz though with noise which is confusing. Such as the Heightmap Noise page on the wiki.

upbeat barn
#

That should have been world but eh.

last tinsel
#

Maybe that's why it wasn't working for me. Thanks.

cloud flame
#

how do i add loot to chest in jigsaw structures?

subtle plinth
hushed knotBOT
subtle plinth
#

Or that ^

sly forge
misty pivot
#

After this new update, has anyone had their custom biomes not show up at all?

misty pivot
#

I'm currently in version 1.21.114 so stable.

#

Nvm, found out that the biome files has to have the version 1.21.110, only then will the biomes appear.

last tinsel
#

Experimenting with replacing all blocks in a chunk with air in the final_pass (or whatever pass) and it's not very final. Left with seemingly randomly placed water and flowing_water blocks over what would probably have been be ocean floor, plus some leaf blocks, sculk, mineshaft wooden platforms...

Anyone have any experience with this? Know if there's anything you can do about it?

If leaf blocks from trees aren't getting replaced with an air block feature, does this mean other features that would replace trees aren't getting placed correctly?

I don't know about jigsaws yet except that they might not be subject to the same bugs. Jigsaws of air?

#

^looking straight down to the void in the overworld

ionic cloak
#

One message removed from a suspended account.

austere stratus
# last tinsel Experimenting with replacing all blocks in a chunk with air in the final_pass (o...

This is a very common issue a lot of us are struggling with. Mineshafts cannot be fully replaced/overriden, and I’m not sure why the random water spots stay. I know there is a vanilla ‘springs’ feature you can override that helps but doesn’t completely fix this. And also you do still end up with the stray leaf blocks, vines, glow lichen, and things that for some reason are just stubborn.

last tinsel
#

I found a list of vanilla feature and feature rule identifiers in the samples pack when doing a fulltext search, I had no idea they were there. In metadata/command_modules/mojang-commands.json

Many of the vanilla feature and feature rule files can be found in the application directory on PC, or in the BDS .zip, in data/definitions/ as well as some of the vanilla structures in .nbt format.

spark grove
#

I'm trying to place lava in a biome but it appears as static lava

last tinsel
spark grove
upbeat barn
last tinsel
royal bison
#

okay another question, I cant do q.above_top_solid(v.originx + 48, v.originz), the structure dissapear, why? a value of 47 or less works fine

#

is this a bedrock limitation?

sly forge
#

use world

#

also why are you offsetting the x position here? its gonna generate entirely buried occasionally or possibly flying if you do this

royal bison
royal bison
sly forge
#

if you use origin, structures may appear in WILDLY different and unintentional ways

#

(this includes entirely underground, remember: the origin is 0, 0, 0)

royal bison
#

just tried, nop, Im having the same problem

strong tendon
#

When generating a 48×48 structure that spans 3×3 chunks, is there a chance that one of those chunks might regenerate after reloading the world, causing parts of the structure to go missing?

sly forge
#

not the x and z related to y

royal bison
#

q.above_top_solid(v.originx + 45, v.originz + 45) + 4
its not possible to do this? it seems is not working

sacred meteor
vale cliff
#

Can anyone tell me how to make the vanilla tress to not spawn

oak cipher
vale cliff
#

Is this correct

oak cipher
#

yeah, try editing those.

vale cliff
#

What to change

oak cipher
vale cliff
#

Oh ok both?

oak cipher
#

yes.

#

or you could make a single block feature that places air, and make these 2 feature rule files place that feature.

vale cliff
#

Can I dm

sly forge
#

that’s all you need to do

vale cliff
#

To what i need to change

sly forge
#

i just said iterations

#

it’s in the feature rules

#

however youll need to call a custom feature

#

within the vanilla feature rule file

#

because you can’t call the vanilla tree feature files anymore

vale cliff
#

1min

#

Sry which feature rule to change

#

And is it correct

sly forge
#

also looking at that second file it looks like you modified the wrong one LMAO

vale cliff
#

Like this

#

I want to change the structure of the trees like

sly forge
#

foliage is for flowers and grass

vale cliff
#

That name is Minecraft's feature rule name

sly forge
#

the feature rule on the right is foliage

#

not trees

#

why are you putting a custom tree feature in the foliage rules?

vale cliff
#

It's minecraft's dark forest feature rule

sly forge
#

yes, for GRASS

vale cliff
#

Oh

#

Sry

#

I thought it was trees feature

sly forge
#

the name straight up says what its for 😭

vale cliff
#

Then how to make the vanilla tress not spawn and make mine spawn

sly forge
vale cliff
#

I don't english very much

vale cliff
#

Oh i understand now

#

Now what to do

sly forge
#

all you need to do

#

is use the vanilla tree feature rules

#

and call your custom feature with it

#

don’t change the feature rule identifier

#

change the places_feature to your custom one

vale cliff
sly forge
#

note that Iterations tells the game how many features to place in the area you specify with distribution rules

#

scatter chance is the chance to place any of the features per chunk

vale cliff
#

Oh ok thanks but there's only 1 r
Feature rule for roofed

sly forge
#

yh i think they removed it from the default instance

#

if you don’t happen to have files from a 1.19 game version youll have to find someone who has it

#

it’s probably better to just change what feature rules are called in the biome file itself if you can

vale cliff
#

Can anyone tell me the name of dark forest tree feature rule pls

fringe junco
#

Has anyone noticed this issue with the client biome colors?

upbeat barn
fringe junco
upbeat barn
#

There already is a bug report, I cannot remember what it is but I know @last ermine has it.

indigo flicker
haughty gull
indigo flicker
#

hmm, it worked for me

sacred meteor
#

terrain slab

upbeat barn
#

That is so cursed.

sacred meteor
#

everythings in my addon is cursed

#

🙂

#

but it look good on the overall theme and context of the addon

#

the terrain now look like it from other games

haughty gull
haughty gull
indigo flicker
#

"grass_side" : {
"textures" : [
{
"overlay_color" : "#2eabf9",
"path" : "textures/blocks/grass_side"
},
]
},

haughty gull
#

Did you only modify the terrain_texture file

indigo flicker
#

yeah

haughty gull
#

Wtf?

#

Did you enable any other experiments or modify any other files?

#

I tried the same thing, but it didn’t work for me.

indigo flicker
#

i have upcoming creator features enabled but other than that not as far as i know

haughty gull
indigo flicker
#

the file is pretty big and messy since i just copied the grass_side part into an existing addon but ill send the whole grass_side part (actually it still might be too long)

#

did you keep every other vanilla color defined in the file

#

cus i did that

haughty gull
#

Are you using custom biomes? And did you just download the vanilla terrain texture and modify it?

indigo flicker
#

thats all i copied over

haughty gull
# indigo flicker cus i did that

I downloaded the vanilla terrain texture file, just added my color, and tried using it in a custom biome, but it didn’t work.

indigo flicker
#

and there's no content log errors or anything?

haughty gull
neat jackal
#

How would you go about making sure a 31x31x31 area is minecraft:end_stone before placing a structure? I've been trying to use the search_feature, but it doesn't seem to adhere to the constraints. Namely it doesn't listen to "may_replace" and sometimes places in the air instead of only end_stone.

sacred meteor
#

grass spawn on terrain slab (these grasses and bushes are custom block btw)

last tinsel
#

Does anyone know if Mojang has made any noises recently about actually making the aggregate_feature random and removing "early_out"? It's SO USEFUL 😭 I hope they do not unless they can come up with a conditional feature type they keep around!

Also, I've barely been using features for a week... why are there so many BUGS 🐞

vale cliff
#

Can anyone tell me the name of dark forest tree feature rule pls i want to change the structure of the trees

sacred meteor
#

roofed_tree_feature

vale cliff
#

Oh is it feature rule

sacred meteor
#

all the available feature and feature rule is in this.

#

you can check

vale cliff
#

Oh thanks

#

There's only one for roofed and it's this

#

I already tried this and it's for plants

last tinsel
vale cliff
#

Oh I see

#

It didn't work

last tinsel
#

It worked for me just then 🤷 Dark forest got instantly logged. I just tried replacing the vanilla feature with a single block feature that placed air

#

Referred to in the feature file.

#

Anyway, you're welcome.

last tinsel
upbeat barn
#

Never say never...

#

I wish they brought back conditional though.

last tinsel
#

We just need something enabling conditional that sticks around.

Plus bug fixes. I'm getting different placement behaviour on PC and mobile for instance.

last tinsel
#

Oh and why the single invariable q.noise() function, come on Mojang, give us a bit more parity. I'm trying to argue with Java true believers in my life here.

last tinsel
#

We get one 2d noise function only, which is limited for worldgen. And it may not even vary with seed? Yes I realise the JIT nature of Java means Mojang didn't exactly intend for all its noise data to be laid out and be able to hooked into, but damn give us a bit more in Bedrock for worldgen capabilities. Anyway, I can see there's been some work here on writing better noise in Molang, not sure how fast that is, so I guess I'd better investigate that.

upbeat barn
last tinsel
upbeat barn
last tinsel
upbeat barn
#

I reckon late 2026 they'll pick up again on world gen.

last tinsel
#

That'd be great. The laundry list is long. I mean, they said they'd work on getting custom biomes back in and by god they did it.

subtle plinth
#

first time i ever got a feature to work

#

teh feature rule doesn't place but the biome doesn't generate as a whole so i'll have to fix that

subtle plinth
#

my other custom biome generated fine

#

i think i screwed it up because im dumb so im removing the feature elements from the biome that i added to generate those pumpkins and hope that the feature rule will place the pumpkins in that biome

#

i also think we have three days until jigsaws 1 year anniversary

#

not as many pumpkins as expected but a good start

#

the pumpkins are spawning far less then I thought they would but they seem more common then if the vanilla features were placing them

subtle plinth
#

i actually removed oak trees by accident lol

#

that structure only spawns in forests

subtle plinth
#

YIPEEEEE

sly forge
#

punkimg

upbeat barn
sly forge
#

indeed

neat jackal
#

Is there any way to make a stitched together structure appear at random locations? I followed Ciosciaa's tutorial to stitcha structure, but it only spawns at (0,0) can't figure out how to make it spawn randomly.

#

Feel like it needs to be ran through an aggregate feature, but aggregate seems bugged.

#
{
    "format_version": "1.13.0",
    "minecraft:sequence_feature": {
        "description": {
            "identifier": "cnb_crp:end",
            "places_feature": "cnb_crp:empty"
        },
        "features": ["cnb_crp:end1_1","cnb_crp:end1_2","cnb_crp:end1_3","cnb_crp:end2_1","cnb_crp:end3_1","cnb_crp:end2_3","cnb_crp:end3_2","cnb_crp:end2_2","cnb_crp:end3_3"],
        "early_out": "first_failure",
        "may_replace": [
              "minecraft:air",
            "minecraft:end_stone",
              "minecraft:light_block_15"
        ],
        "conditions": {
            "placement_pass": "after_underground_pass",
              "minecraft:biome_filter": [{"test": "has_biome_tag","operator": "==","value": "the_end"}]
        },
        "distribution": {
            "iterations": 1,
            "scatter_chance": 1,
            "coordinate_eval_order": "yxz",
            "x": -16,
            "y": 40,
            "z": -16
        }
    }
}```
last tinsel
# vale cliff Then is this correct

Idk, I don't wanna read lots of tiny screenshot text if I don't have to, so try it and see. It worked for me straight away when I did as I described. I replaced the "places_feature" field with my own feature identifier, which in my case was referring to a feature that simply places air. Dark Forest became just grass (maybe a lone azalea tree) when I applied the pack.

vale cliff
vale cliff
last tinsel
#
...........
  "minecraft:feature_rules": {
    "description": {
      "identifier": "minecraft:roofed_forest_surface_roofed_tree_feature_rules",
      "places_feature": "mantis:just_air"
    },
    "conditions": {
      "placement_pass": "surface_pass",
...........

(Just a bit of the file)

I just changed what feature it places (in this case, a single air block)

Oh and also I changed iterations to 1 (to place one air block per chunk not 16) but it doesn't really matter. That's it.

I've never overridden vanilla features before, but it certainly got dramatic results

#

Before and after (same seed, different world)

vale cliff
#

Oh ok thanks very much i will try it

#

But if the feature like this will work

last tinsel
#

I am not typing your code out and trying it myself. That's your job!

vale cliff
#

No if the feature like this will it work for this type of code because it as been working i already did 4 biome it as been working for them but not this

#

It worked for all these but not for this

oak cipher
vale cliff
#

Oh i very to change the code with this

sly forge
#

you probably didn’t put the offsets in the features the aggregate is placing

neat jackal
#

I had already been linking the features through a scatter before placing.

neat jackal
# sly forge silly!

Yeh lol, ugh sometimes I hate learning a new niche. Thanks for your response tho! Appreciate it.

neat jackal
# sly forge silly!

Probably would have figured it out sooner, but I had some of the iterations and scatter in the different features set to 1, didn’t even think about it affecting it the way it did 🤦🏻‍♂️. So most of my tests weren’t even showing up.

fiery bear
#

Guys, I just can't figure out for the life of me how to use distributions.
no matter what I input for "y", my cave carver feature always gets placed at around [-64, -50]

#
"distribution": {
  "iterations": 1,
  "scatter_chance": 100,
  "coordinate_eval_order": "zyx",
  "x": {
      "distribution": "uniform",
      "extent": [0, 16]
  },
  "y": {
      "distribution": "triangle",
      "extent": [0, 50]
  },
  "z": {
      "distribution": "uniform",
      "extent": [0, 16]
  }
}
#

even if I just go "y": 50 Minecraft ignores it 😭

royal bison
#

is there any tutorial about bedrock jigsaws? the video from mojang It leaves me with some doubts

subtle plinth
#

it hasnt been updated in a while however

#

I've also been delaying making my own youtube tutorial on it because im lazy and dont use my voice on youtube so i would have toto caption all of it

last tinsel
fiery bear
last tinsel
last tinsel
#

Slicing the world at 0 makes fun caves.

#

More shenanigans while learning features!

royal bison
#

how can I expand a base of my structure to the ground with jigsaws? (just like pillager outpost)

royal bison
royal bison
#

how can I keep a fixed rotation on every piece generated by jigsaws?

royal bison
#

oh, so always rotate to match the target jigsaw and randomly rotates if there is more than one target

#

so I have to use unique piece names

subtle plinth
upbeat barn
#

Welll

#

Not officially.

subtle plinth
#

Just slap a structure file that’s like a foundation on the bottom and call it good

#

It’ll cut the ground away but it’ll do the job

#

When we get block protection processors then it’ll be a official thing

royal bison
#

jigsaws structures doesnt spawn entities? O.O

#

mine is not working and it works with /structure load

upbeat barn
#

They do.

royal bison
upbeat barn
#

Nope.

royal bison
#

oh nvm, it was my fault lol

#

thank you

royal bison
# upbeat barn They do.

hmmm it works using /place jigsaw but for some reason is not spawning entities when its generated naturally

#

ooohh doMobsSpawning gamerule influences

#

alright, resolved

broken carbon
#

Is there some way to just remove all existing caves from the game?

subtle plinth
#

1 year anniversary of jigsaws being released in 1.21.50.26

hexed prawn
#

Is it possible to edit vanilla structure spawn rate or completely remove the ability for them to spawn

hexed prawn
#

Rip. I was hoping to replace all villages with abandoned ones

spring thistle
#

does states not work with minecraft:ore_feature

upbeat barn
#

No. If you mean to replace.

spring thistle
#

is there any feature where i can replace a block with certain block states then?

royal bison
#

whats the separation and spacing for end portal strongholds?

I want to place my structures almost one per world like strongholds

spring thistle
royal bison
#
                "type": "minecraft:clear",```
this doesnt exist in bedrock yet, right?
#

I cant find any mention of it in the wiki

#

I want to replace the loot table of a chest with another loot, append_loot add more loot, it doesnt replace an existing loot

upbeat barn
royal bison
#

its possible in java using minecraft:clear

subtle plinth
royal bison
#

alright, thank you

royal bison
#

I'm adding a loot table to my chests using a processor, but because the output_state is required, the chest is repositioned and the original orientations of the chests are broken. Is there any way to fix this problem?

#

Don't tell me I have to add a rule for each chest orientation xd

#

in reality, I dont see a way to get a chest via id and states in input_predicate

#

ooh location_predicate, right?

subtle plinth
#

processors

royal bison
#

is there a public schema where I can see all available options?

subtle plinth
#

using /setblock ~~~ chest[ command should show all the blockstates

#

adding the bracket will have it pull up a list of chest block states

#

so the block state would be "minecraft:cardinal_direction":"east"

#

you set the processor to find those chests apply the loot table and set the output chest to have the same rotation and do that for all 4 rotations

royal bison
#

thank you

#

I love how you'd have to add like 10 rules in the processor if I have to edit barrels xd

subtle plinth
#

its 40 if you account for every single type of a single stair block

royal bison
lyric olive
# upbeat barn Replace? Not as far as I know.

umm, how can i replace the nether biomes with my custom ones? im just trying to add a custom tag for the vanilla nether biomes, and i think i can do that by replacing the biome with a csutom one, however, the replace biome component thing doesnt seem to work in the nether, since the dimension option doesnt have anything else besides the overworld.

#

sorry for the ping

#

or, i can just modify the nether biome instead of replacing it.

civic gazelle
#

Are biome replacements stable? I cant seem to get any to show up in 1.21.120... Pls help

{
  "format_version": "1.21.110",
  "minecraft:biome": {
    "description": {
      "identifier": "test:cobble_plains"
    },
    "components": {
      "minecraft:replace_biomes": {
        "replacements": [
          {
            "dimension": "minecraft:overworld",
            "targets": ["plains", "forest"],
            "amount": 0.5,
            "noise_frequency_scale": 25
          }
        ]
      },
      "minecraft:overworld_height": {
        "noise_type": "default"
      },
      "minecraft:surface_builder": {
        "builder": {
          "type": "minecraft:overworld",
          "sea_floor_depth": 7,
          "sea_floor_material": "minecraft:gravel",
          "foundation_material": "minecraft:stone",
          "mid_material": "minecraft:dirt",
          "top_material": "minecraft:cobblestone",
          "sea_material": "minecraft:water"
        }
      },
      "minecraft:tags": {
        "tags": ["animal", "maple", "forest", "monster", "overworld", "bee_habitat", "maple_forest"]
      }
    }
  }
}

lyric olive
#

so yeah, it is stable

civic gazelle
#

Did i do anything wrong in the code above?

#

i see sometimes biomes use surface_builder and sometimes its surface_parameters

lyric olive
# civic gazelle i see sometimes biomes use surface_builder and sometimes its surface_parameters
{
  "format_version":"1.21.110",
  "minecraft:biome":{
    "description":{
      "identifier":"frozen:savanna_mutated"
    },
    "components":{
      "minecraft:climate":{
        "downfall":0.7,
        "snow_accumulation":[0.25,4.5],
        "temperature":0.0
      },
      "minecraft:overworld_height":{"noise_params":[0.3625,1.225]},
      "minecraft:surface_builder":{
        "builder":{
          "type":"minecraft:overworld",
          "sea_floor_depth":7,
          "sea_floor_material":"minecraft:gravel",
          "foundation_material":"minecraft:stone",
          "mid_material":"minecraft:dirt",
          "top_material":"minecraft:grass_block",
          "sea_material":"minecraft:water"
        }
      },
      "minecraft:surface_material_adjustments":{
        "adjustments":[
          {
            "materials":{"mid_material":"minecraft:stone","top_material":"minecraft:stone"},
            "noise_frequency_scale":0.0625,
            "noise_range":[0.212,1.0]
          },
          {
            "materials":{"top_material":{"name":"minecraft:dirt","states":{"dirt_type":"coarse"}}},
            "noise_frequency_scale":0.0625,
            "noise_range":[-0.061,0.212]
          }
        ]
      },
      "minecraft:replace_biomes":{
        "replacements":[
          {
            "dimension":"minecraft:overworld",
            "targets":["minecraft:savanna_mutated"],
            "amount":1,
            "noise_frequency_scale":1
          }
        ]
      },
      "minecraft:tags":{
        "tags":[
          "frozen_age",
          "animal",
          "monster",
          "mutated",
          "overworld",
          "savanna",
          "spawns_savanna_mobs",
          "spawns_warm_variant_farm_animals"
        ]
      }
    }
  }
}```
#

the replace biome thing works there

#

it replaces all savanna mutated biomes with this custom one

civic gazelle
#

hmmm, maybe they added namespaces to the targets field for replacements

#

ill try this out

lyric olive
civic gazelle
#

yeah, on their official tutorial they use the id without the namespace, probably they fixed that

lyric olive
#

like 'minecraft:plains' instead of just 'plains' so it wont replace anything else besides the plains biome

civic gazelle
#

that was it!

#

thanks a lot

#

Do you happen to know how one could go about making the terrain in the biome extremely flat?

boreal blaze
#

I might be overlooking something, but how would one go about specifically targeting and replacing blocks of specific state types in block processors for jigsaw structures? The attached image is code I'm attempting to use, but just sends back a schema error.

subtle plinth
boreal blaze
boreal blaze
lyric olive
#

umm, how can i make leaves doesnt generate at all? like forcing the trees to spawn without any leaves on them

#

via features/rules? or via the biome somehow?

oak cipher
#

or remove it, if it allows you to.

lyric olive
#

its just not in the bedrock samples i have downloaded a while ago

oak cipher
#

or just download this #1324376503848275980 message

fiery bear
#

how do you guys name the feature files? is it necessary to do <dimension>_..._feature.json?

that can usually take me over the 80 character limit :b

lyric olive
#

my discord is glitching..

oak cipher
#

the features on the other hand, no

#

you want to edit the trees, you cant do that in the biome file.

lyric olive
# oak cipher you want to edit the trees, you cant do that in the biome file.

look, i am making two addons as DLCs for my main addon, one of them makes every single biome cold/frozen, and the other makes every single biome hot and dried,
so i just have to make trees spawn without leaves, and make water spawn 98% less often, like the whole world is dried and hot, mutants will have lava inside them (bec why not)

#

so yeah, the frozen one is already done, and i just have to work on the other molten one

oak cipher
#

neat

spark grove
hexed prawn
#

How do I use the gaussian distribution for my custom ore feature rule? I need it so my ore starts generating at -16 and gets more common towards -64

upbeat barn
#

Check out the vanilla diamond.

hexed prawn
hexed prawn
#

Is there a way to flip it at all?

#

So it's more common higher up than lower down

upbeat barn
#

This is the Vanilla diamond

{
  "format_version": "1.13.0",
  "minecraft:feature_rules": {
    "description": {
      "identifier": "minecraft:overworld_underground_diamond_ore_feature",
      "places_feature": "minecraft:diamond_ore_feature"
    },
    "conditions": {
      "placement_pass": "underground_pass",
      "minecraft:biome_filter": [
        {
          "any_of": [
            {
              "test": "has_biome_tag",
              "operator": "==",
              "value": "overworld"
            },
            {
              "test": "has_biome_tag",
              "operator": "==",
              "value": "overworld_generation"
            }
          ]
        }
      ]
    },
    "distribution": {
      "iterations": 7,
      "coordinate_eval_order": "zyx",
      "x": {
        "distribution": "uniform",
        "extent": [ 0, 16 ]
      },
      "y": {
        "distribution": "triangle",
        "extent": [ -144, 16 ]
      },
      "z": {
        "distribution": "uniform",
        "extent": [ 0, 16 ]
      }
    }
  }
}
#

Wait wrong one.

#

There we go.

hexed prawn
upbeat barn
#

I use the internal files or BDS

hexed prawn
#

Do you have a link with the files? I'm on android so I can't access the internal files

hushed knotBOT
upbeat barn
#

@hexed prawn go there and go to vanilla bds, download it, extract.

hexed prawn
upbeat barn
#

Nope.

#

You just need the files.

hexed prawn
#

Ah, ok. I'll take a look now. Thanks

hexed prawn
lyric olive
#

umm, what should i do to make water never generate in the world? i have modified the biomes and made them never spawn water, but in caves/some other places, water still exist, so how am i going to remove them completely?
(water caves still exist)

spark grove
#

I inserted a jigsaw block inside a structure that points to entity pools, but the entities inside the structures do not appear

subtle plinth
spark grove
upbeat barn
spark grove
#

If I use the place jigsaw command the pool works but in the village generation not

spark grove
subtle plinth
#

Are the jigsaw blocks set up correctly to spawn it

spark grove
#

I assume so in the target_pool I inserted pool entities, in the target_name: "", while in the name: test:entity

upbeat barn
# spark grove

Yeah you need a target name so the jigsaw can place a piece from that pool with that target name.

spark grove
last tinsel
final elm
#

Ok so I just wasted a bunch of time because of this, but are jigsaw template pools unable to generate if they have overlapping blocks with their parent structure?

lyric olive
# last tinsel I assume you might have already tried replacing -all- water and flowing water bl...

like u are saying that i should add a feature/feature-rule to spawn ''air'' and it will replace all water? yeah that could work, also what block will get waterlogged? those trees things in the new mangrove biome? bec i have already removed all trees from being generated, and the only issue i am having is inside the caves, where there will be alot of water that i would have to replace with air

#

but i also need to make some water able to generate, like rarely in oceans, im assume that the new feature/rule will replace the new water, right?

last tinsel
# lyric olive but i also need to make *some* water able to generate, like rarely in oceans, im...

You could place air blocks in a 16x16 chunk grid in tall columns, where the single block feature placing air has the condition that it can only replace a water block (so it won't replace stone or anything else). The trick would be to come up with a way to exclude the areas of the world you want left alone - like some oceans, plus if you replace the water with air, I've found some water blocks still get left behind (even when replaced in a final pass) and I assume it's something to do with waterlogged features, sea grass and the like maybe?? I'm still testing it out myself - I've been trying to create voids and deep pits rather than remove just water specifically.

#

Replacing water block or flowing_water blocks

lyric olive
#

ocean, its like 90% drain

#

the world is too hot, finding water will be the highest priority, so im just trying to make the water spawn way less often

last tinsel
#

As far as I know, big bodies of water don't spawn as a vanilla feature, or at least not anything we can override. I think it's part of the initial world building before biomes are chosen to fit them, covering the surface automatically with water up to about y=62. So the main way to remove water is with air blocks. As I said before, I find with this method some of the water remains, so preventing placement of underwater features might help.

#

Really cool concept by the way!

#

Doing fixup worldgen like this could make the game too slow, yes. It's frustrating we don't have more control over initial placement options, that might come in the future.

last tinsel
#

I am finding there's ways to optimise/speed up feature chains by delaying amount of iterations and other calculations close to the start of the chain at the feature rule, and put in various filters/conditions/constraints along the way to whittle down which areas of the world will actually get block placement.

Like, if possible, stepping chunk by chunk (or possibly more?) (so there's only one, or minimal iterations per chunk) until a condition is found that is satisfied for that chunk, then doing the 16x16 = 256 iterations for that particular chunk.

Ways to use features/rules to get information about what blocks are in the world and act conditionally (so as to cut down on number of blocks placed and speed up the worldgen): Using biome filters, making molang queries about current biome, detecting and comparing highest solid block and/or highest non-air block, the search feature used with the early_out conditional aggregate feature with a threshold amount of attempts to place a block in an area with certain constraints on placement for that block to give it a pass/fail and hence information about what blocks and shape of blocks are in that area , and maybe other techniques I haven't seen.

#

Sorry, lotta text. Hard to explain.

subtle plinth
#

Jigsaw pieces can’t overlap each other unless a jigsaw is spawning a structure fully with in its parent piece

cloud flame
#

what jigsaw features from java is not yet added to bedrock edition?

last tinsel
# last tinsel I am finding there's ways to optimise/speed up feature chains by delaying amount...

Ran some tests. Overriding all the vanilla seagrass, kelp etc feature rules does eliminate stray water/flowing water blocks left behind when placing air blocks in ocean space.

Overriding the vanilla underwater cave carver feature rule (I made it place a custom cave carver feature) does eliminate a lot of underground water; however there's other water sources underground still remaining, can't see a feature rule that places them. If the goal is to make water rarer, that definitely works.

subtle plinth
#

3 tp elements, all processors except from Minecraft:rule and we are missing spawn_overrides

gaunt raven
ornate tulip
#

My structures are being generated inside the houses in the villages, destroying everything. Can anyone help me?

lyric olive
#

hmm, so i have replaced all biomes with a custom biome with a new tag. and that cause villages/temples/shipwrecks/trial chambers/some more structures to lose the ability to generate

#

why

#

is it bec its a custom biome with the vanilla tags?

#

so i changed the id from custom to vanilla, the temple now generates in the desert, but when i try using a custom desert it doesnt work

#

mhm

vale cliff
lyric olive
lyric olive
lyric olive
vale cliff
subtle plinth
lyric olive
# vale cliff Can you send me only pic of that I will learn from that
{
  "format_version":"1.21.110",
  "minecraft:biome":{
    "description":{"identifier":"frozen:desert"},
    "components":{
      "minecraft:climate":{
        "downfall":0.7,
        "snow_accumulation":[0.25,4.5],
        "temperature":0.0
      },
      "minecraft:overworld_height":{"noise_type":"lowlands"},
      "minecraft:surface_builder":{
        "builder":{
          "type":"minecraft:overworld",
          "sea_floor_depth":7,
          "sea_floor_material":"minecraft:gravel",
          "foundation_material":"minecraft:stone",
          "mid_material":"minecraft:sand",
          "top_material":"minecraft:sand",
          "sea_material":"minecraft:water"
        }
      },
      "minecraft:replace_biomes":{
        "replacements":[
          {
            "dimension":"minecraft:overworld",
            "targets":["minecraft:desert"],
            "amount":1,
            "noise_frequency_scale":1
          }
        ]
      },
      "minecraft:tags":{
        "tags":[
          "frozen_age",
          "desert",
          "monster",
          "overworld",
          "spawns_gold_rabbits",
          "spawns_warm_variant_farm_animals",
          "spawns_warm_variant_frogs"
        ]
      }
    }
  }
}```
#

vanilla desert biome, but with a different ID so it can rain there

vale cliff
#

Nice

lyric olive
lyric olive
#

the only issue is: it cant generate any vanilla structures

vale cliff
lyric olive
# vale cliff What you changed to this

heres the vanilla one:

{
  "format_version": "1.20.60",
  "minecraft:biome": {
    "description": {
      "identifier": "desert"
    },
    "components": {
      "minecraft:climate": {
        "downfall": 0.0,
        "snow_accumulation": [ 0.0, 0.125 ],
        "temperature": 2.0
      },
      "minecraft:multinoise_generation_rules": {
        "target_temperature": 0.4,
        "target_humidity": -0.4,
        "target_altitude": 0.0,
        "target_weirdness": 0.0,
        "weight": 0.1
      },
      "minecraft:overworld_height": {
        "noise_type": "lowlands"
      },
      "minecraft:surface_parameters": {
        "sea_floor_depth": 7,
        "sea_floor_material": "minecraft:gravel",
        "foundation_material": "minecraft:stone",
        "mid_material": "minecraft:sand",
        "top_material": "minecraft:sand",
        "sea_material": "minecraft:water"
      },
      "minecraft:overworld_generation_rules": {
        "hills_transformation": "desert_hills",
        "mutate_transformation": "desert_mutated",
        "generate_for_climates": [
          [ "warm", 3 ]
        ]
      },

      "minecraft:tags": {
        "tags": [
          "desert",
          "monster",
          "overworld"
        ]
      }
    }
  }
}
vale cliff
lyric olive
vale cliff
#

Is this the biome json

lyric olive
#

yes,

#

i just changed the format version to 1.21.114 and added a custom tag

vale cliff
lyric olive
#

and replaced that generation rules with the biome replace thing

lyric olive
vale cliff
vale cliff
lyric olive
#

i tried changing the biome id from custom to vanilla, the structures are spawning, but it cant rain there anymore

#

so i have to either make a custom structure generator for those biomes, or leave it as it is (which what i will be doing btq)

vale cliff
#

Oh ok so if i change the id and tag will village stops spawning

#

??

lyric olive
#

so i have to somehow modify the village spawn rules to make it spawn in the custom biome

#

which i have no idea how to do

vale cliff
vale cliff
lyric olive
#

no it wont work, since the village spawn rules thing requires the vanilla biome not the custom one

wanton flare
#

For ore_features, is there a way of setting their height generation rule like distribution on normal features? Like for example, more common deeper down, or more common higher up

lyric olive
vale cliff
wanton flare
lyric olive
# upbeat barn You cant.

can i atleast make some structures spawn there? like some random empty/frozen villager houses or some ruins?

#

like custom structures, not vanilla structures

wanton flare
#

Would it theoretically be possible to use large ore features to add a third "layer" to the world, like stone, deepslate, then a new layer of maybe obsidian which replaces the bottom 32 blocks of Obsidian?

lyric olive
#

should i use jigsaw for it or normal structure should do it?

wanton flare
# upbeat barn Yes.

Sounds like this could be a fun project. I'm guessing that Bedrock world gen is not at a stage to move everything UP to then make more room for a lower layer... that'd be awesome

lyric olive
#

i'd rather use normal structures, since the ruins will not be that large, i will be using jigsaw only if i am recreating the vanilla village

#

or, leave it as it is, an empty/frozen world with no villages or structures

bitter fog
#

Does anyone know why the starting structure gets buried? I used terrain_adaptation:bury

{
    "format_version": "1.21.20",
    "minecraft:jigsaw": {
        "description": {
            "identifier": "redstone:illager_refinery"
        },
        "step": "surface_structures",
        "terrain_adaptation": "bury",
        "start_pool": "redstone:refinery_start",
        "heightmap_projection": "world_surface",
        "start_height": {
            "type": "constant",
            "value": {
                "absolute": 0
            }
        },
        "max_depth": 7,
        "biome_filters": [
            {
                "any_of": [
                    {
                        "test": "has_biome_tag",
                        "operator": "==",
                        "value": "ice_plains"
                    },
                    {
                        "test": "has_biome_tag",
                        "operator": "==",
                        "value": "cold"
                    },
                    {
                        "test": "has_biome_tag",
                        "operator": "==",
                        "value": "plains"
                    }
                ]
            }
        ],
        "liquid_settings": "ignore_waterlogging"
    }
}
ornate tulip
#

How can I organize the structure features into folders and put them in the JSON so that it recognizes the folders?

dense crow
#

@subtle plinth Hi, I wanted to ask you if there is any way to fix this?

#

For large structures this is acceptable. If only there was a way to get it to spawn on a flatter place.

hard cipher
#

I have this structure; it has 3 layers of solid blocks. The first layer is next to the ground, but the other two are above ground. I'd like to know if it's possible to make the last layer of sand level with the ground? I'm using jigsaws.

subtle plinth
hard cipher
spark grove
#

But is it possible to select or limit the generation of a jigsaw structure if the terrain is not flat enough?

frail laurel
#

anyone know how structures spawn creatures around them without saving them in the structure because it can cause lag generating big dungeons, like pillager outposts or ocean monuments, and how to recreate that with my own structures

subtle plinth
frail laurel
#

thats tragic

frail laurel
#

like for a custom mob and its spawn rule

frail laurel
#

i just ended up making my own spawning script

frail laurel
# subtle plinth i mean maybe

yea i got it, make a custom block with 0 geometry so its invis, then make a script that looks for those blocks around the player then has a chance of spawning the entities you want and give it a entity cap

royal bison
#

is there a parameter like block_intersection in features but for jigsaws?

stoic owl
#
            "minecraft:surface_material_adjustments": {
                "adjustments": [
                    {
                        "materials": {
                            "top_material": "minecraft:podzol"
                        },
                        "noise_range": [
                            0,
                            0.5
                        ],
                        "noise_frequency_scale": 0.0625,
                        "height_range": [
                            72,
                            255
                        ]
                    }
                ]
            },```

Where is this component supposed to go to actually work?
In the biome file or a feature?
subtle plinth
#

That’s a biome component

stoic owl
#

Also any particular reason why my feature is scattered like its made with a height map?

I want this feature to be everywhere but it only appears in patches

{
    "format_version": "1.21.60",
    "minecraft:scatter_feature": {
        "description": {
            "identifier": "lv_be:lv_be/biomes/maple_woods/maple_trees_survivor.f"
        },
        "places_feature": "lv_be:lv_be/biomes/maple_woods/maple_trees.f",
        "distribution": {
            "iterations": 1,
            "x": 0,
            "y": 0,
            "z": 0
        }
    }
}
{
    "format_version": "1.21.60",
    "minecraft:snap_to_surface_feature": {
        "description": {
            "identifier": "lv_be:lv_be/biomes/maple_woods/maple_trees_surface.f"
        },
        "feature_to_snap": "lv_be:lv_be/biomes/maple_woods/maple_trees_survivor.f",
        "surface": "floor",
        "vertical_search_range": 32
    }
}

{
    "format_version": "1.21.60",
    "minecraft:weighted_random_feature": {
        "description": {
            "identifier": "lv_be:lv_be/biomes/maple_woods/maple_trees.f"
        },
        "features": [
            [
                "lv_be:lv_be/biomes/maple_woods/large_orange_maple_0.f",
                4
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_orange_maple_1.f",
                3
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_orange_maple_2.f",
                2
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_yellow_maple_0.f",
                4
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_yellow_maple_1.f",
                3
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_yellow_maple_2.f",
                2
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_red_maple_0.f",
                4
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_red_maple_1.f",
                3
            ],
            [
                "lv_be:lv_be/biomes/maple_woods/large_red_maple_2.f",
                2
            ]
        ]
    }
}
{
    "format_version": "1.21.60",
    "minecraft:feature_rules": {
        "description": {
            "identifier": "lv_be:maple_trees.fr",
            "places_feature": "lv_be:lv_be/biomes/maple_woods/maple_trees_surface.f"
        },
        "conditions": {
            "placement_pass": "first_pass",
            "minecraft:biome_filter": {
                "test": "has_biome_tag",
                "operator": "==",
                "value": "maple_woods"
            }
        },
        "distribution": {
            "iterations": 50,
            "x": {
                "distribution": "uniform",
                "extent": [
                    0,
                    16
                ]
            },
            "z": {
                "distribution": "uniform",
                "extent": [
                    0,
                    16
                ]
            },
            "y": "q.heightmap(v.worldx, v.worldz)"
        }
    }
}
stoic owl
subtle plinth
#

I just got biomes working

boreal blaze
#

Is there a particular reason why I’d be getting a “Cannot find behavior pack structures definition” error on a specific structure when no others I’ve saved have such an issue? For context, this is for loading it into a structure template feature.

I’ve done nothing differently as far as I can tell when saving other structures to my behavior pack and giving them a custom namespace while also loading those ones into their own structure features. Just this specific one.

I’ve tried troubleshooting it by resaving via structure block or exporting it via commands with no luck.

boreal blaze
stoic owl
#

Is there a way to prevent structure features from spawning on each other?

sly forge
stoic owl
royal bison
#
"exclusion_zone": {
    "chunk_count": 10,
    "other_set": "minecraft:end_city"
  }```
this isnt a thing on bedrock?
last tinsel
# sly forge short answer: yes long answer: well, yes, but it's complicated

Like configuring the X Y Z constraints for each so they'll never clash? (Such as different coordinates within a chunk, or each having a different chunk/48x48 area distinguished by those chunks always having a distinct modulus taken from its chunk origin.) Or some other mutually exclusive constraint wrt an aspect of the local terrain, such as always on south facing slopes or on certain blocks? I don't think I've learnt anything else (yet). I don't think the game registers where it places features?

#

Or I guess for each structure placing down a block with a custom block component, or a command block, that then does its own check. Idk I'm just spittaking here.

sly forge
#

the only way you can guarantee without getting into complicated molang and advanced knowledge of how worldgen works is to learn to use jigsaw

#

and even then its not a solid guarantee cuz bedrock's structure gen is buggy

last tinsel
#

Yeah I was just talking about features. I guess noise can be used to isolate mutually exclusive areas too.

#

From what you're saying about Molang, sounds like you mean using maths perhaps within features to set world zones and do sampling of what is already there.

#

The noise is predictable so could be used by both features to avoid each other.

#

Sampling what is already there is messier and slower but possible too. And scripting is the messiest of all.

#

I assume Mojang will be rolling out more of the jigsaw capabilities for parity.

#

Hopefully soonish. I wonder if village gen will be taken out of legacy jigsaw at some stage.

last tinsel
#

Oh, sequences would communicate the last feature placement coordinate to the next feature in the list, that would also be a way for features to potentially avoid each other.

sly forge
#

there's a reason why i say this.

#

the q.noise query doesnt work correctly.

#

the seed for the noise is almost always the same between worlds.

last tinsel
#

Sure it's the same, but q.noise is still a useful query for pseudo-randomness, limited as it currently is. Complex world generation does still get made with q.noise, and I assume it can be salted with molang's random number functions, as well as projected into 3D with 3 2D planes.

What's the advanced molang and world gen of which you speak? Give us a hint.

last tinsel
#

If q.noise can be used to make custom biome zones, it could also be used to make custom feature zones that don't clash with each other. Using q.noise as a threshold function, or quantisation I guess with multiple thresholds.

The size of the zone can be modulated by the frequency of the noise.

Eg a noise XZ plane frequency of 1/8192 would be good for dividing an area up into mutually exclusive biome sized zones:

"iterations": "v.freq=1/8192;v.q=100*(q.noise(v.worldx*v.freq,v.worldz*v.freq)*0.5+0.5); return(v.q>=34&&v.q<=47)?1:0;"

This would return a distinct biome sized zone that is 14% of the total area.

Setting a much smaller frequency like 1/256 or even 1/64 for smaller patches that different features will get scattered around in but not conflict. Like a drift of flowers on a plain, or a placed structure where several different ones might end up in the same biome, or even a smaller part of it using different noise octaves/frequencies, or other numerical tricks with coordinates that are predictable for different structures being placed in parallel.

Yeah sure it doesn't vary by seed (c'mon Mojang give us your MULTINOISE WORLDGEN PARAMETERS like Java devs can), but if features are placed per engine-defined biome or has some initial salt to perturb/offset it or some other response to specific conditions, then it will be somewhat disguised.

gaunt raven
gaunt raven
last tinsel
hard cipher
#

It would be wonderful to be able to configure how the structure will generate in relation to the ground. Currently, the first layer of the structure is always generated at ground level. It would be good if it were possible to configure it, for example, to generate one level above ground or two levels below ground.

last tinsel
last tinsel
gaunt raven
gaunt raven
last tinsel
#

Or -16 to 32, idk.

hard cipher
hard cipher
gaunt raven
hard cipher
gaunt raven
#

you could split the structure into multiple structures and place them one by one but idk whether it is worth the effort 😅

hard cipher
#

Those that I wanted to sink into the ground I'm having to split, and those that should remain above ground I'm saving again, with the first layer being a structural void.

#

It's funny sometimes.

#

Therefore, it would be great if the jigsaw allowed you to choose the height you would like the structure to be above the ground; all this work would no longer be necessary.

gaunt raven
upbeat barn
#

Sorry, start height, not height offset

hard cipher
upbeat barn
#

My structures dont sink.

hard cipher
upbeat barn
hard cipher
#

What happened was that the first layer remained at ground level, while the layers above it stayed above ground. What I tried to do was to get the last layer to ground level.

#

I tried using up to -8 but they all yielded the same result; the difference was that the soil was deeper.

#

So I let it go and just divided the structure in 2.

hard cipher
maiden mica
#

@subtle plinth ur good at jigsaws right, could u help me out rq

Can I force my jigsaws to spawn on specific blocks?
e.g. making a structure only spawn on lava in the nether?

subtle plinth
#

I haven’t made a structure for the nether yet so maybe it is

sly forge
#

jigsaw doesn't work fully in the nether yet

spark grove
#

I'm using this composition of components but I notice that there are some small problems during the generation of the structure, I don't know if it's a normal behavior or it's a component settings error:

  • Is it normal that the "terrain adaptation" component: "beard box", does not fill everything underneath?
  • "terrain adaptation": "beard box" places the structure inside the surface and not on top of the surface, even if I change the value on absolute to 1, 2... it does not change the behavior of the structure
left stream
#
{
    "format_version": "1.13.0",
    "minecraft:single_block_feature": {
        "description": {
            "identifier": "bmc:block/plant/shelf_mushroom_s_feature"
        },
        "places_block": {
            "name": "bmc:shelf_mushroom",
            "states": {
                "minecraft:block_face": "north"
            }
        },
        "enforce_survivability_rules": true,
        "enforce_placement_rules": true,
        "may_replace": [
            "minecraft:air",
            "minecraft:vine"
        ],
        "may_attach_to": {
            "south": [
                "minecraft:log"
            ]
        }
    }
}

why it keeps facing east?

subtle plinth
spark grove
subtle plinth
#

Just slap a entire layer of them under it and it’ll work just fine

spark grove
# subtle plinth Structure void blocks would probably be better

Thanks for the tip! I'm having another problem. I'm trying to place a large tree with jigsaw blocks, but sometimes it gets placed near steep slopes, so the leaves and some of the tree's branches end up inside hills or mountains. Is there a way to fix this?

subtle plinth
left stream
#

single block feature doesn't apply states? My block keeps generating with the base state.

upbeat barn
upbeat barn
# left stream ...

Might be an issue with block traits, can you try a custom block state?

left stream
#

Sure I'll try it later.

spark grove
# subtle plinth dimension_padding can solve it kinda

Thanks again, the positioning seems to work correctly! I only have a problem with the generation of a structure, when it appears all the features are applied inside it even if there are no structure_voids, I assume that the structure is generated first and then the feature_rules are applied, is there any solution to prevent the positioning of some features inside the structures instead of changing the block of the structure surface?

subtle plinth
#

I think surface_structures is towards the end

#

raw_generation is the first one I think

spark grove
upbeat barn
#

Yes, jigsaws will now always generate BEFORE features do.

#

This is in parity with Java.

hard cipher
hard cipher
# left stream Sure I'll try it later.

I use

{
    "format_version": "1.13.0",
    "minecraft:single_block_feature": {
        "description": {
            "identifier": "wypnt_bab:shelf_mushroom_e_feature"
        },
        "places_block": {
      "name": "wypnt_bab:shelf_mushrooms",
      "states": {
        "wypnt_bab:natural_rotation": "east"
      }
    },
        "enforce_survivability_rules": true,
        "enforce_placement_rules": true,
        "may_replace": [
            "minecraft:air"
        ],
        "may_attach_to": {
      "auto_rotate": false,
      "min_sides_must_attach": 1,
      "west": [
        { "tags": "query.any_tag('log')" }
        ]
    }
    }
}
spark grove
hard cipher
spark grove
# hard cipher Maybe if you use the other one it will be better, right?

Yes you are right but the structure I had saved did not have a floor underneath so I assume that if I used that it would adapt the first layer of the structure to the ground as it already happened without that component, currently I have applied the system suggested before that of using the structure_void as the base of the structure, thanks.

hard cipher
solar dagger
#

Hey, does anyone know if there are any ways for slope detection with jigsaw? I am currently trying to rework my stucture generation so I can /locate my structures. I previously used features with molang for slope detection (basically checking the heightmap of the corner of the structure selection and if the difference is less than X blocks, it can generate). But now for Jigsaw, I don't see any ways to do this properly causing my structures to generate in a very odd way.

solar dagger
royal bison
#

jigsaw blocks still working if the structure is generated through features?

royal bison
#

😭

runic badger
#

Why is this happening?

#

My code:

{
  "format_version": "1.13.0",
  "minecraft:biome": {
    "description": {
      "identifier": "hash:amber"
    },
    "components": {
      "minecraft:climate": {
        "downfall": 0,
        "snow_accumulation": [
          0,
          0.125
        ],
        "temperature": 0.5,
        "red_spores": 0.5
      },
      "minecraft:overworld_height": {
        "noise_type": "default"
      },
      "minecraft:surface_parameters": {
        "sea_floor_depth": 7,
        "sea_floor_material": "hash:amber_stone",
        "foundation_material": "hash:amber_stone",
        "mid_material": "hash:amber_stone",
        "top_material": "hash:amber_grass",
        "sea_material": "minecraft:water"
      },
      "minecraft:surface_material_adjustments": {
        "adjustments": [
          {
            "materials": {
              "top_material": "minecraft:diamond_block"
            },
            "noise_range": [
              0,
              0.5
            ],
            "noise_frequency_scale": 0.0625,
            "height_range": [
              72,
              255
            ]
          }
        ]
      },
      "minecraft:tags": {
        "tags": [
          "overworld",
          "animal",
          "forest"
        ]
      }
    }
  }
}
subtle plinth
runic badger
#

Behavior:

{
  "format_version": "1.21.120",
  "minecraft:biome": {
    "description": {
      "identifier": "hash:amber"
    },
    "components": {
      "minecraft:climate": {
        "downfall": 0,
        "snow_accumulation": [
          0,
          0.125
        ],
        "temperature": 0.5,
        "red_spores": 0.5
      },
      "minecraft:overworld_height": {
        "noise_type": "default"
      },
      "minecraft:surface_parameters": {
        "sea_floor_depth": 7,
        "sea_floor_material": "hash:amber_stone",
        "foundation_material": "hash:amber_stone",
        "mid_material": "hash:amber_stone",
        "top_material": "hash:amber_grass",
        "sea_material": "minecraft:water"
      },
      "minecraft:replace_biomes": {
        "replacements": [
          {
            "dimension": "minecraft:overworld",
            "noise_frequency_scale": 1,
            "amount": 1,
            "targets": [
              "jungle",
              "meadow",
              "mesa",
              "ocean",
              "plains"
            ]
          }
        ]
      },
      "minecraft:surface_material_adjustments": {
        "adjustments": [
          {
            "materials": {
              "top_material": "minecraft:diamond_block"
            },
            "noise_range": [
              0,
              0.5
            ],
            "noise_frequency_scale": 0.0625,
            "height_range": [
              72,
              255
            ]
          }
        ]
      },
      "overworld": {},
      "animal": {},
      "forest": {}
    }
  }
}
#

Resource:

{
  "format_version": "1.21.40",
  "minecraft:client_biome": {
    "description": {
      "identifier": "hash:amber"
    },
    "components": {
      "minecraft:fog_appearance": {
        "fog_identifier": "hash:amber_fog"
      },
      "minecraft:ambient_sounds": {
        "loop": "ambient.underwater.loop"
      },
      "minecraft:sky_color": {
        "sky_color": "#eba800"
      },
      "minecraft:water_appearance": {
        "surface_color": "#00a5ff"
      }
    }
  }
}
subtle plinth
runic badger
#

No problem

last tinsel
vale cliff
#

Blocks with the tick component when placed by jigsaw structure during world generation

#

What does this mean

subtle plinth
vale cliff
#

Oh kk thanks for telling

pallid halo
#

Hello, I've been trying to put entity inside a structure then generate it with features and stuff. I've been researching for hours on internet even trying to search for already asked questions about this here. I have a solution for this by using command block, but I've been hearing about this jigsaw block to spawn the entity. And yeah i think its possible since ive been seeing it pop up at the comments of this similar question, but i can't figure out how to do it

#

In summary, how th does the jigsaw turn into entity work dawg 🥀🥀🥀

subtle plinth
subtle plinth
#

You can use mcbe-essentials loot tabler app

subtle plinth
pallid halo
subtle plinth
pallid halo
#

So the conclusion is there's no way feature can summon entity
-# without using command block to spawn and deletes itself

#

Alright then

#

Thankyou

last tinsel
#

The command block doesn't have to delete itself obvs if the structure is large enough to hide it.

Structure with embedded command block(s) that summons entities is a very commonly implemented method btw.

unique egret
#

Quick question, what's the maximum structure size a jigsaw block can generate ?

stoic owl
#

How do I properly prevent structures from spawning next to each other?

{
    "format_version": "1.21.60",
    "minecraft:feature_rules": {
        "description": {
            "identifier": "lv_be:beach_huts.fr",
            "places_feature": "lv_be:lv_be/biomes/tropical_beach/beach_huts.search"
        },
        "conditions": {
            "placement_pass": "surface_pass",
            "minecraft:biome_filter": {
                "test": "has_biome_tag",
                "operator": "==",
                "value": "tropical_beach"
            }
        },
        "distribution": {
            "iterations": "math.random_integer(0,1)",
            "scatter_chance": {
                "numerator": 1,
                "denominator": 20
            },
            "x": {
                "distribution": "fixed_grid",
                "extent": [0, 16]

            },
            "z": {
                "distribution": "fixed_grid",
                "extent": [0, 16]
            },
            "y": "q.heightmap(v.worldx, v.worldz)"
        }
    }
}```

I feel like they tend to spawn either in clusters or not at all
hard cipher
#

How can I configure the rarity of the jigsaw structures? Is there a good way to do this?

stoic owl
#
{
  "format_version": "1.21.80",
  "minecraft:jigsaw": {
    "description": {
      "identifier": "lv_be:pirate_ship_jigsaw"
    },
    "step": "surface_structures",
    "heightmap_projection": "none",
    "liquid_settings": "apply_waterlogging",
    "start_height": {
      "type": "constant",
      "value": {
        "from_sea": 20
      }
    },
    "max_depth": 2,
    "start_pool": "lv_be:ship_start",
    "biome_filters": [
      {
        "test": "has_biome_tag",
        "value": "ocean"
      }
    ],
    "max_distance_from_center": 128,
    "dimension_padding": 10
  }
}```

Any idea why my structure always spawns on the same height no matter what I actually write?
also why does this always spawn with a piece of terrain below?
subtle plinth
stoic owl
subtle plinth
stoic owl
#

I tried the terrain_adaptation

subtle plinth
#

Interesting, that should work because I’ve used it before

stoic owl
#

not sure what else to put in start height I tried some different setups all came to the same result

subtle plinth
#

"start_height": {
"type": "constant",
"value": {
"absolute": 1
}
},
This should work you might just need to decrease the number to negatives to make the boat sink in the water

stoic owl
#

My bad got it working I changed the wrong file

#

how can I have my jigsaw structure spawning less?

subtle plinth
hard cipher
subtle plinth
#

I don’t really know how features work

upbeat barn
hard cipher
vale cliff
#

How to make bamboo spawn less in jungle very less

subtle plinth
#

can someone please see what I'm doing wrong here. This template pool is not applying the processor to pieces it should be. That file is being generated by the second pictured jigsaw and its placing the first one

#

why in the world is the structure not applying the processor that it should be?

#

I need another opinion because I cannot for the life of me figure out why

#

locdev:swamp_zombie_village_processor is the name of the processor, I've checked at least 15 times now

#

so apparently my computer was the problem because I loaded it up on my kindle and it worked fine

#

I don't know whymy computer is always hellbent on ruining my day but it managed very well to do it this time

vale cliff
#

How to make bamboo spawn less in jungle very less

vale cliff
#

Anyone tell pls

last tinsel
#

What do you want it to look more like?

last tinsel
#

You can manipulate the noise function in iterations in the vanilla feature rule bamboo_jungle_after_surface_bamboo_feature.json

last tinsel
#

Eg this would be sparse clumps (more like on the right of the image)

"iterations": "math.clamp(math.trunc(math.ceil((q.noise(math.trunc(v.originx / 40), math.trunc(v.originz / 40))- 0.8) * 400)), 0, 80)",
#

This would be more like on the left of the image, sparsely scattered, a little more common in some areas than others:

      "iterations": "math.clamp(math.trunc(math.ceil((q.noise(math.trunc(v.originx / 80), math.trunc(v.originz / 80)) + 0.1) * 20)), 0, 5)",
#

But play around with these numbers. The podzol goes along with the bamboo in this case. To make their frequency separate from each other you would need to rewrite the bamboo and podzol features that this feature rule places. Otherwise you can just leave the feature placement to be vanilla and you don't need to provide any feature files for that.

#

This was Mojang's vanilla definition for bamboo originally which makes it thicker and more common:

      "iterations": "math.clamp(math.trunc(math.ceil((query.noise(math.trunc(variable.originx / 80), math.trunc(variable.originz / 80)) + 0.3) * 160)), 15, 160)",

But you don't need noise at all, you could just set iterations to a simple number like 3 for example, if you wanted 3 in every chunk, or "iterations":"math.random_integer(1, 5)", to always have randomly 1 to 5 bamboo in every chunk in biomes tagged bamboo and jungle.

solar dagger
#

Quick question: It seems like my road structures (with terrain adaption) sometimes generate on top of other jigsaw structures. It doesn't happen that frequently, but it still does once in a while. Is this an issue on my side or is this a known jigsaw bug? I always believed the power of jigsaw was that it was content aware and never overlaps itself. Does anyone know more about this?

subtle plinth
#

Road pieces regenerate themselves which can lead to pieces being generated in ways that would overlap pieces placed by the first road

upbeat barn
solar dagger
#

Ah alright, thanks for answering. I thought this bug was fixed once jigsaw became stable

upbeat barn
#

What you want to do is make your y height like 25 when saving your road structures.

solar dagger
#

ah smart, thanks!

subtle plinth
#

That’s how you fix it?

upbeat barn
#

Yes.

subtle plinth
# upbeat barn Yes.

So the road height where it is built solves the problem of roads overlapping structures in game. If that is true I want to ask how that was found out because that is really oddly specific solution to a problem.

subtle plinth
#

Also the bug report seems to be MCPE-224012

#

Yeah that’s poggy’s report

vale cliff
subtle plinth
#

I should check my kindle though because for whatever reason my computer hates me and doesn't work half the time

subtle plinth
#

So it works perfectly fine on my kindle but the second i try it on my computer and it doesn't

#

THIS IS THE SAME DAMN COMMAND

#

WHY IS IT DOING DIFFERENT THINGS WITH THE SAME PACK VERSION

#

the houses are generating normal its just the jobsites that generate properly on my kindle but not on my computer

#

waht the hell is happening here

#

even worse is the fact that I added this structure after making the changes needed for the jobsites to ruin them and this thing is working fine, no lights

stoic owl
#

Has anyone ever used the fallen trunk thing in the tree feature?

Is it actually a fallen tree or is that just a missleading tree

#

is it like this?

upbeat barn
neat jackal
#

been trying to stitch together a mega structure of 96x96, but can't figure out how to get them to line up properly... they keep getting offset by 16 which I assume is because the origin is from a different chunk.

#

Anyone know what I 'm doing wrong?

neat jackal
#
(math.floor(v.worldx-v.originx)/48) == ((v.worldx-v.originx)/48) && (math.floor(v.worldz-v.originz)/48) == ((v.worldz-v.originz)/48)

I feel like this should work

neat jackal
#

Got it, apparently was just the format was incorrect, now just need to apply a formula

neat jackal
#

Is there a good formula for scattering sparsely? I found a noise formula, but the one I found makes diagonal groupings of 7 for some reason.

subtle plinth
#

I have a pull request going to majorly update the jigsaw docs to make them more readable

last tinsel
wanton flare
#

On the geode feature, all my crystals seem to get placed with the "block_face" "down" permutation rather than making them come out of the alternative_inner_layer. Amethyst seems to have no issues with the buds and cluster direction? https://learn.microsoft.com/en-us/minecraft/creator/reference/content/featuresreference/examples/features/minecraftgeode_feature?view=minecraft-bedrock-stable

A reference document detailing the 'geode_feature' feature

upbeat barn
#

Is your block using the same block traits?

wanton flare
# upbeat barn Is your block using the same block traits?

It should be, from what I can tell, amethyst also uses block_face

    "description": {
      "identifier": "ores:health_cluster",
      "menu_category": { "category": "construction" },
      "traits": {
        "minecraft:placement_position": {
          "enabled_states": ["minecraft:block_face"]
        }
      }
    },
upbeat barn
#

Ah and they're all facing down? Does placing them normally work?

wanton flare
#

Including the smaller ones

upbeat barn
#

Interesting, and you're just copy pasting the vanilla geode yeah?

wanton flare
#

Vanilla:

{
  "format_version": "1.13.0",
  "minecraft:geode_feature": {
    "description": {
      "identifier": "minecraft:amethyst_geode_feature"
    },
    "filler": "minecraft:air",
    "inner_layer": "minecraft:amethyst_block",
    "alternate_inner_layer": "minecraft:budding_amethyst",
    "middle_layer": "minecraft:calcite",
    "outer_layer": "minecraft:smooth_basalt",
    "inner_placements": [
      {
        "name": "minecraft:amethyst_cluster"
      },
      {
        "name": "minecraft:large_amethyst_bud"
      },
      {
        "name": "minecraft:medium_amethyst_bud"
      },
      {
        "name": "minecraft:small_amethyst_bud"
      }
    ],
    "min_outer_wall_distance": 4,
    "max_outer_wall_distance": 7,
    "min_distribution_points": 3,
    "max_distribution_points": 5,
    "min_point_offset": 1,
    "max_point_offset": 3,
    "max_radius": 16,
    "crack_point_offset": 2.0,
    "generate_crack_chance": 0.95,
    "base_crack_size": 2.0,
    "noise_multiplier": 0.025,
    "use_potential_placements_chance": 0.35,
    "use_alternate_layer0_chance": 0.083,
    "placements_require_layer0_alternate": true,
    "invalid_blocks_threshold": 1
  }
}

Mine:

{
  "format_version": "1.21.100",
    "minecraft:geode_feature": {
        "description": {
            "identifier": "ores:health_crystal_geode_feature"
        },
        "filler": "minecraft:air",
        "inner_layer": "ores:health_crystal_block",
        "alternate_inner_layer": "ores:budding_health_crystal_block",
        "middle_layer": "minecraft:calcite",
        "outer_layer": "minecraft:smooth_basalt",
        "inner_placements": [
            {
                "name": "ores:health_cluster"
            },
            {
                "name": "ores:large_health_bud"
            },
            {
                "name": "ores:medium_health_bud"
            },
            {
                "name": "ores:small_health_bud"
            }
        ],
        "min_outer_wall_distance": 4,
        "max_outer_wall_distance": 7,
        "min_distribution_points": 3,
        "max_distribution_points": 5,
        "min_point_offset": 1,
        "max_point_offset": 3,
        "max_radius": 16,
        "crack_point_offset": 2,
        "generate_crack_chance": 0.95,
        "base_crack_size": 2,
        "noise_multiplier": 0.025,
        "use_potential_placements_chance": 0.35,
        "use_alternate_layer0_chance": 0.083,
        "placements_require_layer0_alternate": true,
        "invalid_blocks_threshold": 1
    }
}

Main difference is the format version, everything else is the same

#

Format version didn't change anything, which I didn't really expect it to

#

Setting the inner placement to just minecraft:amethyst_cluster does the rotation correctly which suggests a block issue with my clusters

upbeat barn
#

I'm guessing so too.

#

If I had to wager, block traits aren't really used in feature placement.

wanton flare
#

I am using geometry.cross, whereas I think amethyst clusters in vanilla use a custom geometry

upbeat barn
#

That shouldn't matter as far as I know.

wanton flare
#

Pistons do really weird things. Some face inwards some face outwards

#

Though they do use a different rotation type, they are at least somewhat aware of direction

#

It could be related to my item texture always showing as the down permutation in the inventory picture, though, the permutations work with commands and placements as expected

hard cipher
#

The processor doesn't edit entities, right?

subtle plinth
hard cipher
stoic orchid
#

Hi

sacred meteor
#

How can i preslice the structure and position them like in the docs said.
I'm working on a giant tree feature but the tree is so big that the structure can't spawn properly in the world

hard cipher
# subtle plinth nope

Is there any way to save mobs in structures and have them change as if they had just spawned?

hard cipher
# upbeat barn Nbt edit I guess.

Could it be? I was wanting to save wolves in a structure, but I'd like their sounds and variations to differ depending on the biome, just like when they spawn naturally.

subtle plinth
#

I use a completely invisible entity with only minecraft:physics and minecraft:transformation to turn it into the wanted mob after 4 seconds with the entity spawned event

#

It’s how I generate villagers with the proper biome skin in my custom villages and how I spawn the iron golem with the from_village event

#

The 4 second transform thing is so that I can save the mob and it’s jigsaw block into the structure file before it turns into the mob I want it to be

hard cipher
#

I think the custom entity is a good idea.

#

I hope that when the possibility of spawning mobs in Jigsaw becomes available, like at the pillager Post, they also add the option to spawn a limited number of mobs; that is, after spawning, for example, 2 mobs, it will not spawn any more.

subtle plinth
hard cipher
vale cliff
#

Which feature these trees use?

upbeat barn
#

The tree_feature

vale cliff
#

I changed 3 feature rule and these trees are spawning but that trees r not spawning

vale cliff
upbeat barn
#

Oh you're asking which file not which feature.

vale cliff
#

I think so

#

To change birch tree we need to the birch surface tree feature for this what to change

subtle plinth
vale cliff
# vale cliff Which feature these trees use?

@upbeat barn to change birch i used this and for i used the feature rules but I don't why these trees r spawning to change themse what feature rule should I change
Sry I am weak at English

sacred meteor
#

Just add your self the tag when building the structure

bitter fog
#

Does anyone know what format version I should use for biomes?

subtle plinth
bitter fog
#

Mkay

#

Because I was trying all the format versions and kept getting errors

last tinsel
last tinsel
#

If you don't want bamboo to spawn at all, set the iterations field in the bamboo feature rule file to = 0.

lament urchin
#

Hey people

#

Just wanted to ask, how you guys make structures spawn naturaly?

#

I am almost breaking my head on the keyboard

subtle plinth
austere stratus
#

Any developments on this front? (removing mineshafts)

subtle plinth
#

mineshafts aren't even jigsaws so I doubt that even is on the roadmap for mojang

austere stratus
#

frigggg. bruh come onnnnn. I just wanna delete the whole world.. shouldnt be this hard:/

lament urchin
#

The jigsaw I mean

subtle plinth
#

they can generate custom blocks yeah

lament urchin
#

Oh, okay

#

Going to study more about jigsaw then

vale cliff
subtle plinth
#

Hold up, wait a minute

#

Also minecraft:block_ignore is in there as well

#

Json_schema also seems to say that projection in template pools can be useused regadless of element_type

last tinsel
#

Does anyone know if q.noise() repeats? I learned today it is apparently a common problem with Perlin functions when I got this in python's perlin_noise

subtle plinth
#

So “minecraft:protected_blocks” seems to be a fully valid field according to bedrock samples metadata so I’m gonna test it when I get home. Also “minecraft:capped” and “minecraft:block_ignore” are present.

subtle plinth
#

seems like it isn't actually valid

#

not sure why it's there

#

however, block_ignore seems to be valid

#

ill check rq

#

block_ignore did not throw a error

#

thats pretty big

#

block ignore is a valid processor

#

gonna test capped then protected_blocks again

#

capped is valid

#

and protected_blocks is valid

#

well guys thats 3 new processors I didn't know about

subtle plinth
#

theoretically

subtle plinth
# royal bison what does that do?

it makes it so that if a block from a jigsaw structure places itself on a spot with a block specified with the processor it won't replace that block

#

you could make a giant cobble tower and make it not replace stone blocks

#

so you can make a base of a tower extend into the ground but not cut through it

royal bison
subtle plinth
#

this jigsaw was set to not replace mob spawners so it didn't replace them but placed everything else

subtle plinth
#

processors are applied after the structure is done placing pieces iirc

#

so you could make the bottom of the tower extend it's base to the ground replacing plants and grass but set the processor for the base to have a minecraft:protected_block processor to not overwrite blocks with the stone tag and then it won't overwrite those blocks

#

unfortunately we can only specify tags, not block id's

#

im gonna test it with something rq

royal bison
subtle plinth
#

thats the problem with that

#

until we get feature_pool_element it will never truly work the same but this is very close to that

royal bison
subtle plinth
#

foundation here broke the grass but not the stone

#

thats how tall it is and you can see that the grass was broken in the second image

#

you can place test:hut and test it out

#

best example so far

#

I'm gonna abuse the hell out of this

#

screw block_ignore and capped, protected_blocks is peak

royal bison
#

is peaak

subtle plinth
#

this is the code for that

lament galleon
subtle plinth
#

i might update my examples pack to make the example outpost use this

spark grove
#

Can I generate a structure after the feature rules for that biome?

subtle plinth
#

I think so with structure template features but not with jigsaws

neat jackal
#

Ran into another problem now though. I've been trying to add a 1/3 probability using a second noise range, but it's kind of tricky.

last tinsel
# neat jackal Ran into another problem now though. I've been trying to add a 1/3 probability u...

One third probability of being placed once in a chunk, one third probability being placed any amount of times in a chunk, or one third probability being placed on a block?

Not sure how you want it. If you just want an even 33% chance you could use one of Molang's random functions (haven't tested yet how random it is in practice). If you want an overall 33% chance but with clustering in certain areas, noise is better. It's hard to know with q.noise what the value threshold for 33% chance below/above is, as I think they might have tweaked the regular Perlin probability distribution to favour the edges/extremes a little more (more values closer to -1 and 1). However, you could apply a test (could be with blocks very brightly coloured in a small area) with placing if noise value above 0.25 etc and which value seems to be about a third probability.

#

When I get time, if you reply, I can try to help more.

#

gtg

neat jackal
#

Well, from what I can understand noise is good because its predictable between different segments. I have a structure that is snapped to every 48 blocks. It's a structure that is 96x96x48. (4 segments of 484848).

I think that's what I'm trying to figure out at this point. From my testing it seems like I'm not even getting negative numbers. But just incase I was wrong I ended up just snapping my noise to positive with Math.abs().

But really to calculate the distribution I need to know how noise works. But haven't found anything solid on if it's 0, 1 or -1, 1.

chilly python
#

Making a little post here in case anyone ever has to do this in the future since it seems very niche and it took a bit of testing for me to figure it out

if you intend to make a regenerable structure or for some other reason need to repeatedly randomly regenerate a structure at the same location (in my case I am making a dungeon that is always in the same location but randomly regenerates an interior - think traditional dungeon crawling type stuff), you will run into the problem that everything random about structure generation is actually dependent on a "seed" derived from the xyz placement of the structure.
In order to get around this, I have found that setting the structure to always generate at the same y-level (define in behavior pack\worldgen\structures\your file) will, as expected, make any command/script generation of this structure also always start at that y-level.
HOWEVER, the coordinate-dependent "seed" through which everything random is determined will use the input y-level and NOT the defined starting y-level. For example, a structure with a start_height set to 20 that is then spawned as coordinates [X 64 Z] will spawn at [X 20 Z], but will use the structure "seed" of [X 64 Z]. This functonally allows you to make your y coordinate into your own rng-able structure seed separate from how generation normally occurs - including with coordinates outside of the world! If it's not already obvious, doing this will require scripting.

So uh, hope this helps someone someday 👍

neat jackal
#

I can't get the variable.worldx and variable.worldz to work in feature_rules anyone else having issues with it?

austere nymph
#

So I'm new to adding structures to my addons and one I don't know how structure generation works and two what does this mean?

subtle plinth
hard cipher
#

Jigsaw doesn't work in the Nether?

subtle plinth
hard cipher
subtle plinth
#

i swear its possible but it could be trying to place it in a spot that I can't

hard cipher
#

I finally managed it, but I also noticed that it seems the blocks below the structures aren't properly fitted.

subtle plinth
hard cipher
hard cipher
hard cipher
subtle plinth
hard cipher
# subtle plinth Yeah

That's unfortunate, so do I need to use a command block or a custom block to generate the mob?

subtle plinth
hard cipher
hard cipher
# hard cipher Works well

It would be cool if Bedrock had the End biomes like Java, it would avoid problems like structures generating on the starting island lol

#

I hope that in this year, 2026, Jigsaw receives improvements, especially for dimensions like the Nether and the End.

young pebble
#

Can this post assist me in multiple end Biome creation for bedrock?

#

Using Json Script?

neat jackal
stuck haven
#

Hey everyone. Question, I've adjusted swamp.biome.json, changed the top material etc with random noise. In Single Player works this works perfectly fine, it replaces vanilla swamps as I want. But when I try it on a realm, none of these properties work? Any idea why? 🙏

#

Is it because it's a development pack, are versions different on realms/single player? Any clue?

modest dune
hard cipher
#

Generation in the Nether is terrible.

#

For this reason I only used jigsaw in this structure since it can generate floating structures.

modest dune
#

I'll let you know if i find anything but it doesn't look like I'll learn anything new

neat jackal
#

For me I had to add in all possible blocks that it would need to replace in the “allowblocks” list. I’m not experienced enough to know if that’s needed for every type of feature tho. But that was my issue for my structures not spawning in the Nether recently @hard cipher @modest dune

modest dune
hard cipher
neat jackal
#

Ooooh gotcha, I didn’t realize you two were using those instead.

Are Jigsaws and world gen out if experimental?

upbeat barn
#

Yes.

neat jackal
#

Excellent! 😈

rigid niche
#

Is it possible to use molang in jigsaw structures? Like for querying the worldx and worldz?

neat jackal
subtle plinth
#

are we able to use vanilla nbt structure files in custom jigsaws?

#

I would test but I think somebody already did on this server

stuck haven
lament galleon
subtle plinth
#

Terrain_matching is a template pool projection value

lament galleon
#

This,

it used to be
"start_height": 0

But then it needed to be replaced with this new one, I tried looking for more info about it and I couldn't really find a solution other than this which unfortunatley turns the whole structure rigid for some reason,

I did not edit any of the other code, just this one.

subtle plinth
#

I’m not sure why it would do that as start_height just controls where the start piece generates based off heightmap_projection

lament galleon
#

I see, but it it's the only thing I edited after the update so I assumed it had to do something with it.

Though I'm still wondering on what you used just in case it fixes my issue or because I did something wrong.

subtle plinth
#

It should be on wiki.bedrock.dev. The value I use for all my structures in in the example

#

"start_height": {
"type": "constant",
"value": {
"absolute": 0
}
},

#

That’s what I have for my custom swamp village

#

Wait is this a old jigsaw

#

Because they moved “projection” inside the object with things like “location” and “processors”

#

The default value for “projection” is rigid so it may be not seeing your projection as it is outside where it is now supposed to be and sets it to the default of rigid

vale cliff
subtle plinth
vale cliff
#

No but for the loot inside

subtle plinth
#

I think that’s what causing the problem

#

{
"element": {
"element_type": "minecraft:single_pool_element",
"location": "village/swamp/streets/straight_01",
"processors": "locdev:swamp_village_path_processor",
"projection": "terrain_matching"
},
"weight": 7
},

#

Projection is supposed to be in the element object now

lament galleon
#

Yeah It's already set to terrain_matching

subtle plinth
#

Can I see it?

lament galleon
#

Oh inside niw

subtle plinth
#

The template pool

vale cliff
lament galleon
lament galleon
#

Wait wrong one

vale cliff
subtle plinth
lament galleon
subtle plinth
#

Same for that one

lament galleon
#

Yeah it's outside

subtle plinth
#

It’s supposed to be inside

#

It’s not been on the level with “element” and “weight” for a while

lament galleon
#

So I just line up it with the others within the element
and it'll be all good?

subtle plinth
#

Yeah

lament galleon
subtle plinth
#

Yeah

#

Weight is still outside

lament galleon
#

I see

#

I'll just reply back, need to test this out, but in all honestly these updates keep changing the locations of jigsaws, this is like the 4 or 5th time I need to check for updates.

subtle plinth
#

They actually haven’t changed jigsaws in a while

#

I think the last change was 1.21.100

lament galleon
#

Ah, but yeah, thanks for tge help, I'll just tell you if it works

subtle plinth
#

Alr

vale cliff
subtle plinth
#

Seems to be something with the structure file but I don’t know what

vale cliff
lament galleon
lament galleon
#

Nvm it worked now, Thanks mate))

subtle plinth
neat jackal
#

Anyone found a solution for larger structures getting cut off at biome borders?

neat jackal
#

Thanks, using features right now. I would like to not have to learn jigsaw for this.

I’ll find an alternative then.

neat jackal
#

I went ahead and learned jigsaw 😂 . Anyone know how to force the direction to south or north for a jigsaw structure? I can't find any settings for that yet. I see something that might allow converting stairs to other data sets, but that might be a bit extensive for what I have.

spare sail
#

i'm looking to change the generation of a single biome crimson forest world such that the brunt of the world is made of netherack instead of having a thick underlayer of stone and has mostly typical nether ore deposit spread

#

step one is replacing all that stone and deepslate with netherack step two is filling it with ore

#

there are no guides on how to do this in my cursory youtube searches, is this harder than it sounds?

#

moving to #1447045795340746798

main lotus
#

when loading structures through the structure block or the command does it require custom structures be in the /structure directory directly or can it be in a subdirectory? I have series of structures I want to load manually and are working fine with the jigsaw system but are not being found through the manual process