Custom Dimensions (registerCustomDimension, stable 2.8.0/1.26.30) only generate void chunks. There is no noise primitive in @minecraft/server at all - creators must hand-write value/Perlin noise in JS from scratch. There's no per-column native terrain pass either, so filling one chunk means hundreds of individual fillBlocks/setBlockType calls, scheduled across ticks via system.runJob/runInterval just to avoid watchdog termination - something the native engine already does in one native pass for Overworld/Nether/End using JSON (noise_settings, density_function, surface_rule, carvers) shipped in game files today. That interpreter already exists, it's just not wired to custom dimensions. Also: Dimension has getBiome() but no setBiome()/fillBiome(), so custom biomes can't be assigned to a location, and it's undocumented whether placeFeatureRule() even respects minecraft:biome_filter - meaning most existing ore/vegetation feature JSON may silently fail in custom dimensions.
This isn't hypothetical: Aether Legends (official partner) hit this wall. Lead Katie Payn: "Add-ons have too many limitations to properly deliver on the project's scope as a custom dimension." They hand-built a fixed 5000x5000 map instead.
Ask: let registerCustomDimension() accept JSON in the noise_settings/density_function schema, plus Dimension.setBiome()/fillBiome().
Please sign in to leave a comment.
0 Comments