#1.20.30 broke world features

1 messages · Page 1 of 1 (latest)

tepid wing
#

I checked the changelog but I'm not really sure how to make features compatible with this update. any help is appreciated cause I barely know what I'm doing when it comes to features and feature rules :)

[FeatureRegistry][error]-Copy of superfalt | arc:scatter_big_blueshroom_feature | The feature uses the feature type 'minecraft:scatter_feature', which is considered internal and thus not compatible with this engine version of the game.

grand valve
#

try that

tepid wing
upper belfry
#

Just tried setting the manifest value but same issue

signal sequoia
upper belfry
#

yep

signal sequoia
#

ohm I dont know, its working for some people and not for some

grand valve
#

try changing the format version of the features to 1.20.30

upper belfry
#

Unfortunately still no luck

#

I'll try figure it out but currently too busy

#

very sad

sullen night
#

im having same issue

viscid arch
#

Change to 1.20.30 in "min_engine_version" (manifest.json)

#

I did this and it solved the problem, I hope yours is solved too

signal sequoia
last wagon
terse trout
#

i have change

  • format_version
    • feature
    • feature_rules
  • min_enginge_version
    to 1.20.30 but dosn't work
    (the files I'm talking about are files for custom biomes )
#

log say not définition found for this folder

{
    "format_version": "1.20.30",
    "minecraft:conditional_list": {
        "description": {
            "identifier": "ken:biome_overworld/block_picker_autumn_tree2"
        },
        "conditional_features": [
            {
                "places_feature": "ken:biome_overworld/autumn_tree2",
                "condition": "t.biome_idx == 0"
            }
        ]
    }
}
signal sequoia
signal sequoia
last wagon
#

It’s not even in exp toggles anymore?

signal sequoia
#

why? I dont know what is the replacement? no one! use Scatter features

last wagon
terse trout
#

so for the biomes it's finished?

signal sequoia
#

this is from microsoft docs

last wagon
#

I mean, you could just pair an aggregate feature with scatter features that only return their iterations if the condition was met

signal sequoia
last wagon
#

But still, conditional lists were so convenient

signal sequoia
#

yeah

#

I asked to Kayla if it will be a replacement she answered "I dont know" xD

terse trout
#

I made biomes with conditional
but if it's removed
i can't make...

signal sequoia
terse trout
#

ooh this is possible?

#

im going to try this

signal sequoia
#

same

#

I will try xd

terse trout
#

@signal sequoia I just replaced "minecraft:conditional_list" with "minecraft:scatter_feature"
or it's not same files?

signal sequoia
#

no, it isnt

#

see the docs

#

you need to set the conditions in iterations in the scatter individually

last wagon
#

Like I said, less convenient but still functional

terse trout
#

@last wagon
ok it's work's
but i have question
it's possible to ensure that the custom biome does not entirely take the biome selected in the feature_rules?

last wagon
#

sorry youre gonna have to word that differently cuz i got no clue what youre asking me

terse trout
#

ok i exlain step by step

#

i have change conditional_list by scatter_festure

#

and it's work

#

but

#

I have selection plains in feature_rules to display my custom biome

last wagon
#

ok that part

#

you lost me there

#

what

terse trout
#

and my custome biome takes all the plains biome place

last wagon
#

oh youre using a biome filter?

terse trout
#

yes that's what a guy told me to do

#
{
    "format_version": "1.19.50",
    "minecraft:feature_rules": {
        "description": {
            "identifier": "ken:biome_overworld",
            "places_feature": "ken:biome_overworld/determinant_overworld"
        },
        "conditions": {
            "placement_pass": "before_surface_pass",
            "minecraft:biome_filter": {
                "all_of": [
                    {
                        "test": "has_biome_tag",
                        "value": "plains",
                        "operator": "=="
                    }
                ]
            }
        },
        "distribution": {
            "iterations": 256,
            "x": {
                "distribution": "fixed_grid",
                "extent": [
                    0,
                    15
                ]
            },
            "y": "q.heightmap(v.worldx, v.worldz) - 1",
            "z": {
                "distribution": "fixed_grid",
                "extent": [
                    0,
                    15
                ]
            }
        }
    }
}
last wagon
#

oh ok, well theres no reason a biome filter should change its functionality across updates, you should be all good

terse trout
#

if you say so
but I don't understand why by just changing conditional_list by scatter_feature my custom biome take all place of plains biomes

#

my block_picker feature with the change

{
    "format_version": "1.13.0",
    "minecraft:scatter_feature": {
        "description": {
            "identifier": "ken:biome_overworld/block_picker_overworld"
        },
        "places_feature": "ken:biome_overworld/enchanted_plain",
                "iterations": "v.o = q.noise(v.originx/128, v.originz/128)*0.25;v.px = v.originx/256 + v.o;v.pz = v.originz/256 + v.o;t.r = 0;v.n1 = 999;v.n2 = 999;v.i = 0;loop(9,{    v.x = math.mod(v.i,3) - 1;    v.z = math.floor(v.i/3) - 1;    v.p2x = math.floor(v.px) + v.x;    v.p2z = math.floor(v.pz) + v.z;    v.rx = 0;    v.rz = 0;    v.p3x = math.mod(v.p2x*0.1031,1);    v.p3y = math.mod(v.p2z*0.1030,1);    v.p3z = math.mod(v.p2x*0.0973,1);    v.p3d = v.p3x*(v.p3y + 33.33) + v.p3y*(v.p3z + 33.33) + v.p3z*(v.p3x + 33.33);    v.p3x = v.p3x + v.p3d;    v.p3y = v.p3y + v.p3d;    v.p3z = v.p3z + v.p3d;    v.rx = math.mod((v.p3x + v.p3y)*v.p3z,1);    v.rz = math.mod((v.p3x + v.p3z)*v.p3y,1);    v.d4x = v.p2x + v.rx - v.px;    v.d4z = v.p2z + v.rz - v.pz;    v.d2 = v.d4x*v.d4x + v.d4z*v.d4z;            (v.d2 < v.n1) ? {        v.n2 = v.n1;        v.n1 = v.d2;        t.r = v.rx;    } : {        (v.d2 < v.n2) ? {            v.n2 = v.d2;        };    };        v.i = v.i + 1;});t.d = math.abs(math.sqrt(v.n2) - math.sqrt(v.n1));t.biome_idx = math.floor(t.r*4);return 1;",
        "x": 0,
        "y": 0,
        "z": 0
    }
}
#

maybe "iterations"

last wagon
#

that's what you changed the conditional_list to?

terse trout
#
{
    "format_version": "1.13.0",
    "minecraft:conditional_list": {
        "description": {
            "identifier": "ken:biome_overworld/block_picker_overworld"
        },
        "conditional_features": [
            {
                "places_feature": "ken:biome_overworld/enchanted_plain",
                "condition": "t.biome_idx == 0"
            }    
        ]
    }
}
#

before it's look like this

#

i have replace
"conditionnal_list" by "scatter_feature"
delete "conditionnal_feature": [
{

and replace "condition" by iterations

last wagon
#

im about to eat dinner so i wont be able to help, but all you needed to do was make an almost empty scatter feature with iterations set to "t.biome_idx == 0"

#

copy-pasting chungus's determinant feature to the next thing down the line isnt gonna do anything but add more unnecessary computational bloat for the game

upper belfry
#

Ahh the conditional list is what was breaking my setup too then

terse trout
terse trout
#

@upper belfry
if you didn't repair
what I sent above works

#

ty xorkent

#

juste xorkent

#

for multiple

#

like this

#
{
    "format_version": "1.13.0",
    "minecraft:conditional_list": {
        "description": {
            "identifier": "ken:end_biome/block_picker_end"
        },
        "conditional_features": [
            {
                "places_feature": "ken:end_biome/nebula",
                "condition": "t.biome_idx == 0 && (math.abs(v.originx) > 200 || math.abs(v.originz) > 200)"
            },
                        {
                "places_feature": "ken:end_biome/luminotics",
                "condition": "t.biome_idx == 1 && (math.abs(v.originx) > 200 || math.abs(v.originz) > 200)"
            },
                        {
                "places_feature": "ken:end_biome/eclipse_heart",
                "condition": "t.biome_idx == 2 && (math.abs(v.originx) > 200 || math.abs(v.originz) > 200)"
            }
        ]
    }
}
last wagon
# terse trout ```js { "format_version": "1.13.0", "minecraft:conditional_list": { ...

basically, instead of a conditional list, you're now gonna have an aggregate that does basically the same thing, so you'd turn the above feature into:

{
    "format_version": "1.20.30",
    "minecraft:aggregate_feature": {
        "description": {
            "identifier": "ken:end_biome/block_picker_end"
        },
        "features": [
            "ken:end_biome/nebula",
            "ken:end_biome/luminotics",
            "ken:end_biome/eclipse_heart"
        ],
        "early_out": "first_success"
    }
}```
and then each "biome feature" will need an additional scatter feature in front of it with the iterations set to whatever the condition was before, that way if the condition fails, iterations returns 0, placement doesnt occur, and the aggregate moves on to the next feature if appropriate
terse trout
#

oooooh

regal valley
#

Make a scatter feature put the condition in interations towards each condition and join them with an aggregate feature

terse trout
#

I have no idea how to do this

#

ok the translator did anything

#

@regal valley

{
    "format_version": "1.13.0",
    "minecraft:scatter_feature": {
        "description": {
            "identifier": "ken:end_biome/block_picker_end"
        },
      "conditional_features": [
  {
       "places_feature": "ken:end_biome/nebula",
       "iterations": "t.biome_idx == 0 && (math.abs(v.originx) > 200 || math.abs(v.originz) > 200)"
       },
       {
       "places_feature": "ken:end_biome/luminotics",
       "iterations": "t.biome_idx == 1 && (math.abs(v.originx) > 200 || math.abs(v.originz) > 200)"
       },
       {
        "places_feature": "ken:end_biome/eclipse_heart",
        "iterations": "t.biome_idx == 2 && (math.abs(v.originx) > 200 || math.abs(v.originz) > 200)"
        }
     ]
    },
  "x": 0,
  "y": 0,
  "z": 0
}
#

like this?

regal valley
#

No no

terse trout
#

oh...

regal valley
#

That will be your first biome

terse trout
#

i need make 3 block bicker

regal valley
terse trout
#

with 3 different biomes

last wagon
#

So for example, t.biome_idx == 2 would go in the iterations of the scatter feature ken:end_biome/eclipse_heart

terse trout
#

oh really

regal valley
terse trout
terse trout
#

and finally, the nether

#

it's the same?

terse trout
#

@regal valley i need help one last time for this evening

regal valley
#

Yeah?

terse trout
#

for nether

#

it's same

#

?

regal valley
#

I haven't achieved it either

regal valley
# terse trout it's same

The problem is that you would have to use above top solid but it will not cover 100% of the ground

#

You should use vegetation patch even if it damages the shape of the biome a little

terse trout
#

do you have an exemple?

#

I had another question
if we put "grounded": {}, for structure in the nether
where does she appear?

signal sequoia
#

@last wagon I used "iterations": "query.has_biome_tag('taiga') ? 1 : 0" as a condition in scatter feature, do you know why is not working? :/

#

I need to make a scatter only work with a certain biome

terse trout
#

i have question how to make tree in nether

#

tree or simple structure spawn on the floor

last wagon
#

Ghost ping? SlimeThonkBlue

signal sequoia
terse trout
#

no I just wanted you to come and answer if you have time
I often delete my pings so that my messages are more visible
sorry if this bothered you

last wagon
#

Oh, all good

#

I’ve actually not done much with surface features in the nether, but I would guess a snap to surface feature would work, assuming that hasn’t changed since I last used it…2 years ago probably.

terse trout
#

I created a structure and I'm trying to generate it on the ground with grounded {},

#

but I don't understand why it doesn't appear...

#
{
    "format_version": "1.16.0",
    "minecraft:structure_template_feature": {
        "description": {
            "identifier": "ken:nether_biome/pyroclastic_tree"
        },
        "structure_name": "mystructure:custom_tree",
        "facing_direction": "random",
        "adjustment_radius": 8,
        "constraints": {
            "grounded": {},
            "block_intersection": {
                "block_whitelist": [
                    "minecraft:air"
                ]
            }
        }
    }
}
last wagon
#

I’m in school right now, can’t really walk you through this problem step-by-step at the moment. Sorry.

terse trout
grand valve
#

some1 ping me 👴🏻

terse trout
signal sequoia
#

check you have underground_pass on feature rule

terse trout
# signal sequoia check you have underground_pass on feature rule
{
    "format_version": "1.13.0",
    "minecraft:feature_rules": {
        "description": {
            "identifier": "ken:nether_biome",
            "places_feature": "ken:nether_biome/determinant_nether"
        },
        "conditions": {
            "placement_pass": "before_surface_pass",
            "minecraft:biome_filter": {
                "all_of": [
                    {
                        "test": "has_biome_tag",
                        "value": "nether_wastes",
                        "operator": "=="
                    }
                ]
            }
        },
        "distribution": {
            "iterations": 256,
            "x": {
                "distribution": "uniform",
                "extent": [
                    0,
                    16
                ]
            },
            "y": {
                "distribution": "uniform",
                "extent": [
                    -64,
                    255
                ]
            },
            "z": {
                "distribution": "uniform",
                "extent": [
                    0,
                    16
                ]
            }
        }
    }
}
#

I have to put this instead of "before_surface_pass"?

signal sequoia
#

yes

terse trout
#

@signal sequoia

#
{
    "format_version": "1.19.50",
    "minecraft:feature_rules": {
        "description": {
            "identifier": "ken:pyroclastic_tree",
            "places_feature": "ken:nether_biome/determinant_pyroclastic_tree"
        },
        "conditions": {
            "placement_pass": "underground_pass",
            "minecraft:biome_filter": {
                "all_of": [
                    {
                        "test": "has_biome_tag",
                        "value": "nether",
                        "operator": "=="
                    }
                ]
            }
        },
        "distribution": {
            "iterations": 256,
            "x": {
                "distribution": "uniform",
                "extent": [
                    0,
                    15
                ]
            },
            "y": "q.heightmap(v.worldx, v.worldz)",
            "z": {
                "distribution": "uniform",
                "extent": [
                    0,
                    15
                ]
            }
        }
    }
}
#

same

#

dont appear

signal sequoia
#

your format versions must be 1.20.30

terse trout
#

ok im going to try

terse trout
signal sequoia
#

do you have your min engine version to 1.20.30?

#

in your BP manifest.json

terse trout
#

all my other structures work

#

and I have no logs

#

just dont spawn

signal sequoia
#

ah... I dont know :/

#

sorry

terse trout
#

but I don't know how to use it

#

and I don't know if we can make custom trees

#

I would like something that looks like this

#

almost like this

upper belfry
#

That most likely is not doable with tree features. You could use a structure and some kind of scatter feature to place the ground blocks @terse trout

muted idol
#

@regal valley puedes ayudarme, tengo un problema con mis estructuras y no entiendo muy bien la conversación