SuperMartijn642 / Formations

0 stars 0 forks source link

[Performance] Poor performance caused by get ground height will re-calc the noise values #10

Open SettingDust opened 3 weeks ago

SettingDust commented 3 weeks ago

Version Info

What mod loader are you using?: Fabric/Forge/NeoForge/Quilt Fabric Description of the Bug When the world center is void. Formation is trying to find out where to place structure which causing freezing for long time

Steps to Reproduce https://modrinth.com/mod/the-abyss-runtime https://modrinth.com/datapack/tectonic

formations-overworld:1.0.4-1.20.1
formations:1.0.2-fabric-mc1.20
supermartijn642s-core-lib:1.1.17-fabric-mc1.20.1
supermartijn642s-config-lib:1.1.8a-fabric-mc1.20.1

The tectonic has complex ridges that will make the generation longer. So the effect from this mod is clearer.

Seed: 5913989575094854072 With formations' stuffs Time elapsed: 144271 ms

With only the-abyss + tectonic Time elapsed: 38159 ms

formations' took more than 100 seconds.

SettingDust commented 3 weeks ago

I'm not quite sure why is it happened. The DF value should be calculated when generating noise. Why is it slow with formations. Is Formations loading chunks when finding the space?

SuperMartijn642 commented 3 weeks ago

The tectonic has complex ridges that will make the generation longer.

I am not sure what 'the tectonic' is. Is it a world generation type or something?

The DF value should be calculated when generating noise.

What is 'DF value'?

With formations' stuffs Time elapsed: 144271 ms

Also, what exactly does this time represent and how would I get those numbers? (So I can test with it)

Overall not sure why the center of the world would matter for generating structures. Perhaps I am checking the wrong coordinates somewhere or something

SettingDust commented 3 weeks ago

I am not sure what 'the tectonic' is. Is it a world generation type or something?

Tectonic is the data pack mentioned above

What is 'DF value'?

DF is Density Function. The value should be calculated when noise chunk status.

Also, what exactly does this time represent and how would I get those numbers? (So I can test with it)

The number will be output after generated the level to console

Overall not sure why the center of the world would matter for generating structures. Perhaps I am checking the wrong coordinates somewhere or something

Isn't related to the center of the world. It's chunks at the center. My description is confusing. I think the reason is finding the ground height is re-calculating the DFs. Which is expensive.

      at net.minecraft.world.gen.noise.NoiseRouter.apply(NoiseRouter.java:62)
      at net.minecraft.world.gen.chunk.ChunkNoiseSampler.<init>(ChunkNoiseSampler.java:159)
      at net.minecraft.world.gen.chunk.NoiseChunkGenerator.sampleHeightmap(NoiseChunkGenerator.java:200)
      at net.minecraft.world.gen.chunk.NoiseChunkGenerator.getHeight(NoiseChunkGenerator.java:128)
      at net.minecraft.world.gen.chunk.ChunkGenerator.getHeightInGround(ChunkGenerator.java:663)
      at com.supermartijn642.formations.structure.StructurePlacement.lambda$findFromTop$33(StructurePlacement.java:371)
      at com.supermartijn642.formations.structure.StructurePlacement$$Lambda$7635/0x00000008010d0218.apply(Unknown Source:-1)
      at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
      at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
      at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
      at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
      at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at com.supermartijn642.formations.structure.StructurePlacement.findFromTop(StructurePlacement.java:371)
      at com.supermartijn642.formations.structure.StructurePlacement.lambda$static$0(StructurePlacement.java:29)
      at com.supermartijn642.formations.structure.StructurePlacement$$Lambda$3662/0x0000000800bb10a0.apply(Unknown Source:-1)
      at com.supermartijn642.formations.structure.StructurePlacement.findHeight(StructurePlacement.java:351)
      at com.supermartijn642.formations.structure.PiecedStructure.getStructurePosition(PiecedStructure.java:73)
SettingDust commented 3 weeks ago

One structure will take 30s to find a point XD

图片

A chunk took 5 min to generate, lul 图片

SuperMartijn642 commented 3 weeks ago

After some profiling, nearly all the time it takes to generate Formations' structures comes from ChunkGenerator#getFirstOccupiedHeight.

So when attempting to generate a structure, Formations checks the WORLD_SURFACE_WG heightmap at 5 positions through ChunkGenerator#getFirstOccupiedHeight. This is the same vanilla does, although for most structures at 4 positions rather than 5. I did some testing (with Tectonic, The Abyss, and the seed you gave) and confirmed that:

With these confirmed, it seems Formations is doing nothing special compared to vanilla in terms of finding a generation point.

I then tested with and without Tectonic (in addition to The Abyss ofc).

That means there's a 20 to 30 times increase in the time it takes to simply query the height at a certain position. As I am doing the same as vanilla and have no control over ChunkGenerator#getFirstOccupiedHeight, there's not much I can do about this.


I also tested with the mods Towns and Towers, Explorify - Dungeons & Structures, and Philip's Ruins (in addition to Tectonic and The Abyss and the seed you gave). Towns and Towers seems to have no impact on the time it takes to create the world. Philip's Ruins seems to increase the world creation time only slightly. Explorify - Dungeons & Structures does seem to increase the world creation time such that it is noticeable. None of these three mods seem to have an impact quite as significant as Formations Overworld.

I also tried to log every structure generation attempt (without Towns and Towers, Explorify - Dungeons & Structures, Philip's Ruins). It seems vanilla tries to find a generation point for every structure in a structure set until one succeeds. As none of the structures from Formations Overworld can spawn on the void, this seems to mean vanilla tries finding a generation point for every structure in the set for every chunk it tries to generate in.

Logging every structure generation attempt ``` [20:50:11] [main/INFO] (FabricLoader/GameProvider) Loading Minecraft 1.20.2 with Fabric Loader 0.15.11 [20:50:11] [main/INFO] (FabricLoader) Loading 62 mods: - fabric-api 0.91.6+1.20.2 - fabric-api-base 0.4.33+fce67b32a0 - fabric-api-lookup-api-v1 1.6.43+b1792f7da0 - fabric-biome-api-v1 13.0.14+b1792f7da0 - fabric-block-api-v1 1.0.12+73761d2ea0 - fabric-block-view-api-v2 1.0.1+73761d2ea0 - fabric-blockrenderlayer-v1 1.1.43+f4b7e424a0 - fabric-client-tags-api-v1 1.1.4+86b12645a0 - fabric-command-api-v1 1.2.37+f71b366fa0 - fabric-command-api-v2 2.2.16+b1792f7da0 - fabric-commands-v0 0.2.54+df3654b3a0 - fabric-containers-v0 0.1.81+df3654b3a0 - fabric-content-registries-v0 5.0.6+b1792f7da0 - fabric-convention-tags-v1 1.5.8+b1792f7da0 - fabric-crash-report-info-v1 0.2.20+f4b7e424a0 - fabric-data-generation-api-v1 13.1.11+b1792f7da0 - fabric-dimensions-v1 2.1.57+b1792f7da0 - fabric-entity-events-v1 1.5.26+b1792f7da0 - fabric-events-interaction-v0 0.6.10+b1792f7da0 - fabric-events-lifecycle-v0 0.2.70+df3654b3a0 - fabric-game-rule-api-v1 1.0.42+a44e16a6a0 - fabric-gametest-api-v1 1.2.16+b1792f7da0 - fabric-item-api-v1 2.1.33+b1792f7da0 - fabric-item-group-api-v1 4.0.15+e3d2bf3fa0 - fabric-key-binding-api-v1 1.0.38+f4b7e424a0 - fabric-keybindings-v0 0.2.36+df3654b3a0 - fabric-language-kotlin 1.12.0+kotlin.2.0.10 - fabric-lifecycle-events-v1 2.2.28+c8b10480a0 - fabric-loot-api-v2 2.1.1+3ba460fba0 - fabric-message-api-v1 6.0.2+e3d2bf3fa0 - fabric-mining-level-api-v1 2.1.56+f4b7e424a0 - fabric-model-loading-api-v1 1.0.6+b1792f7da0 - fabric-models-v0 0.4.5+9386d8a7a0 - fabric-networking-api-v1 3.1.5+f4be560ba0 - fabric-object-builder-api-v1 12.1.2+2ff98d3ba0 - fabric-particles-v1 1.1.4+f4b7e424a0 - fabric-recipe-api-v1 2.0.14+52b3ebe5a0 - fabric-registry-sync-v0 4.0.12+b1792f7da0 - fabric-renderer-api-v1 3.2.1+2034447ca0 - fabric-renderer-indigo 1.5.1+2034447ca0 - fabric-renderer-registries-v1 3.2.49+df3654b3a0 - fabric-rendering-data-attachment-v1 0.3.39+73761d2ea0 - fabric-rendering-fluids-v1 3.0.30+f4b7e424a0 - fabric-rendering-v0 1.1.52+df3654b3a0 - fabric-rendering-v1 3.0.11+b1792f7da0 - fabric-resource-conditions-api-v1 2.3.11+239dafd8a0 - fabric-resource-loader-v0 0.11.12+b1792f7da0 - fabric-screen-api-v1 2.0.12+b1792f7da0 - fabric-screen-handler-api-v1 1.3.47+b1792f7da0 - fabric-sound-api-v1 1.0.14+f4b7e424a0 - fabric-transfer-api-v1 3.3.13+4944b5a5a0 - fabric-transitive-access-wideners-v1 5.0.3+fce67b32a0 - fabricloader 0.15.11 - formations 1.0.2 - formationsoverworld 1.0.4 - java 21 - jei 16.0.0.2 - minecraft 1.20.2 - mixinextras 0.3.5 - supermartijn642corelib 1.1.17 - the_abyss 0.1.1 - worldedit 7.3.0-beta-02+e11f161 [20:50:12] [main/INFO] (FabricLoader/Mixin) SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/G:/Gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.13.3+mixin.0.8.5/9527e6b0d2449408958fd1302594dc65ec5ade9c/sponge-mixin-0.13.3+mixin.0.8.5.jar Service=Knot/Fabric Env=CLIENT [20:50:12] [main/INFO] (FabricLoader/Mixin) Loaded Fabric development mappings for mixin remapper! [20:50:12] [main/INFO] (FabricLoader/Mixin) Compatibility level set to JAVA_16 [20:50:12] [main/INFO] (FabricLoader/Mixin) Compatibility level set to JAVA_17 [20:50:12] [main/WARN] (FabricLoader/Mixin) Reference map 'formationsoverworld.mixins.refmap.json' for formationsoverworld.mixins.json could not be read. If this is a development environment you can ignore this message [20:50:13] [main/INFO] (FabricLoader/MixinExtras|Service) Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.3.5). [20:50:13] [main/WARN] (PerfmonDisabled) Invalid registry value type detected for PerfOS counters. Should be REG_DWORD. Ignoring: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfOS\Performance\Disable Performance Counters. [20:50:17] [Datafixer Bootstrap/INFO] (Minecraft) 192 Datafixer optimizations took 90 milliseconds [20:50:18] [Render thread/INFO] (Minecraft) [STDERR]: [LWJGL] [ThreadLocalUtil] Unsupported JNI version detected, this may result in a crash. Please inform LWJGL developers. [20:50:18] [Render thread/INFO] (Minecraft) Environment: Environment[accountsHost=https://api.mojang.com, sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD] [20:50:18] [Render thread/INFO] (Minecraft) Setting user: Player954 [20:50:19] [Render thread/INFO] (fabric-networking-api-v1) Force Packet Serialization is enabled to mimic remote connection on single player, this is the default behaviour on dev env. Add -Dfabric-api.networking.force-packet-serialization=false JVM arg to disable it. [20:50:20] [Render thread/INFO] (PlatformManager) Got request to register class com.sk89q.worldedit.fabric.FabricPlatform with WorldEdit [com.sk89q.worldedit.extension.platform.PlatformManager@5f2bbf7f] [20:50:20] [Render thread/INFO] (FabricWorldEdit) WorldEdit for Fabric (version 7.3.0-beta-02+e11f161) is loaded [20:50:20] [Render thread/INFO] (PluginCaller) Sending ConfigManager... [20:50:20] [Render thread/INFO] (PluginCaller) Sending ConfigManager took 1.211 ms [20:50:20] [Render thread/INFO] (Indigo) [Indigo] Registering Indigo renderer! [20:50:20] [Render thread/INFO] (Minecraft) Backend library: LWJGL version 3.3.2-snapshot [20:50:21] [Render thread/INFO] (Minecraft) Reloading ResourceManager: vanilla, fabric (fabric-renderer-api-v1, fabric-blockrenderlayer-v1, fabric-data-generation-api-v1, fabric-models-v0, fabric-api-lookup-api-v1, fabric-rendering-v0, fabric-particles-v1, jei, fabric-resource-loader-v0, fabric-screen-api-v1, fabric-object-builder-api-v1, fabric-rendering-data-attachment-v1, fabric-events-lifecycle-v0, fabric-block-api-v1, fabric-convention-tags-v1, fabric-item-group-api-v1, fabric-mining-level-api-v1, fabric-events-interaction-v0, fabric-commands-v0, fabric-game-rule-api-v1, fabric-api-base, fabric-dimensions-v1, fabric-api, fabric-gametest-api-v1, fabric-transfer-api-v1, fabric-containers-v0, fabric-command-api-v1, fabricloader, fabric-model-loading-api-v1, fabric-sound-api-v1, fabric-loot-api-v2, fabric-crash-report-info-v1, fabric-rendering-v1, fabric-networking-api-v1, fabric-block-view-api-v2, fabric-recipe-api-v1, fabric-biome-api-v1, fabric-entity-events-v1, fabric-client-tags-api-v1, fabric-lifecycle-events-v1, fabric-renderer-indigo, fabric-message-api-v1, supermartijn642corelib, fabric-item-api-v1, fabric-key-binding-api-v1, fabric-renderer-registries-v1, fabric-keybindings-v0, fabric-transitive-access-wideners-v1, worldedit, fabric-screen-handler-api-v1, formations, fabric-language-kotlin, fabric-registry-sync-v0, fabric-resource-conditions-api-v1, fabric-rendering-fluids-v1, fabric-content-registries-v0, fabric-command-api-v2) [20:50:21] [Worker-Main-3/INFO] (Minecraft) Found unifont_all_no_pua-15.0.06.hex, loading [20:50:22] [Render thread/WARN] (Minecraft) Missing sound for event: minecraft:item.goat_horn.play [20:50:22] [Render thread/WARN] (Minecraft) Missing sound for event: minecraft:entity.goat.screaming.horn_break [20:50:22] [Render thread/INFO] (Minecraft) OpenAL initialized on device OpenAL Soft on 4 - BenQ GL2250H (3- AMD High Definition Audio Device) [20:50:22] [Render thread/INFO] (Minecraft) Sound engine started [20:50:22] [Render thread/INFO] (Minecraft) Created: 1024x512x4 minecraft:textures/atlas/blocks.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 256x256x4 minecraft:textures/atlas/signs.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 512x512x4 minecraft:textures/atlas/banner_patterns.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 512x512x4 minecraft:textures/atlas/shield_patterns.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 1024x1024x4 minecraft:textures/atlas/armor_trims.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 128x64x4 minecraft:textures/atlas/decorated_pot.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas [20:50:22] [Render thread/INFO] (Minecraft) Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas [20:50:23] [Render thread/WARN] (Minecraft) Shader rendertype_entity_translucent_emissive could not find sampler named Sampler2 in the specified shader program. [20:50:23] [Render thread/INFO] (Minecraft) Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas [20:50:23] [Render thread/INFO] (Minecraft) Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas [20:50:23] [Render thread/INFO] (Minecraft) Created: 128x128x0 minecraft:textures/atlas/mob_effects.png-atlas [20:50:23] [Render thread/INFO] (Minecraft) Created: 1024x512x0 minecraft:textures/atlas/gui.png-atlas [20:50:23] [Render thread/INFO] (Minecraft) Created: 256x128x0 jei:textures/atlas/gui.png-atlas [20:50:23] [IO-Worker-1/INFO] (Minecraft) Could not authorize you against Realms server: Invalid session id [20:50:28] [Render thread/INFO] (PlatformCommandManager) Registering commands with com.sk89q.worldedit.fabric.FabricPlatform [20:50:28] [Render thread/INFO] (Minecraft) Loaded 7 recipes [20:50:28] [Render thread/INFO] (Minecraft) Loaded 1271 advancements [20:50:31] [Render thread/INFO] (BiomeModificationImpl) Applied 0 biome modifications to 0 of 64 new biomes in 4.048 ms [20:50:31] [Server thread/INFO] (Minecraft) Starting integrated minecraft server version 1.20.2 [20:50:31] [Server thread/INFO] (Minecraft) Generating keypair Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal_mountain]' at 2,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal_swamp]' at 2,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal_nether]' at 2,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal_desert]' at 2,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal]' at 2,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal_jungle]' at 2,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal_ocean]' at 2,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -3,-3, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:raft]' at 3,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at 4,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at 7,4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -8,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:trail_ruins]' at 7,-9, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at -9,0, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:large_temple]' at 9,3, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:witch_tower]' at 9,3, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at 2,9, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ancient_city]' at 1,9, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:jungle_pyramid]' at 6,-10, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ancient_city]' at 7,-10, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -7,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:desert_pyramid]' at 8,11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_cold]' at 10,11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_warm]' at 10,11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_warm]' at -11,9, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_cold]' at -11,9, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:trail_ruins]' at 1,11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -6,12, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:mineshaft]' at -4,12, succes: true Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:shipwreck]' at 2,12, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:shipwreck_beached]' at 2,12, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -12,5, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:mineshaft]' at 4,-12, succes: true Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:jungle_pyramid]' at 13,3, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:swamp_hut]' at 13,11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -7,14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at 4,-14, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:monument]' at 15,12, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at -15,-15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at 16,-11, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at 5,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:shipwreck_beached]' at -15,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:shipwreck]' at -15,16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -16,-4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -5,-16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at 1,-16, succes: false [20:50:41] [Server thread/INFO] (Minecraft) Preparing start region for dimension minecraft:overworld Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:monument]' at -17,-16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_cold]' at -17,-16, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_warm]' at -17,-16, succes: false [20:50:41] [Render thread/INFO] (Minecraft) Preparing spawn area: 22% Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at -13,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at -13,17, succes: false [20:50:41] [Render thread/INFO] (Minecraft) Preparing spawn area: 22% Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at 17,2, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at 17,2, succes: false [20:50:42] [Render thread/INFO] (Minecraft) Preparing spawn area: 26% Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -18,-14, succes: false [20:50:42] [Render thread/INFO] (Minecraft) Preparing spawn area: 26% Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:desert_pyramid]' at 1,-18, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_cold]' at 4,-18, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_warm]' at 4,-18, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:trail_ruins]' at -9,18, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:igloo]' at 11,-18, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at 18,-4, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at 18,6, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:village_savanna]' at 18,15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:village_taiga]' at 18,15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:village_plains]' at 18,15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:village_desert]' at 18,15, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:village_snowy]' at 18,15, succes: false [20:50:43] [Render thread/INFO] (Minecraft) Preparing spawn area: 38% Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:raft]' at 1,-19, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:igloo]' at 4,19, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:shipwreck_beached]' at 19,-9, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:shipwreck]' at 19,-9, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at 19,-12, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:swamp_hut]' at -20,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:mineshaft]' at -20,-19, succes: true Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -12,-20, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:jungle_pyramid]' at -9,-20, succes: false [20:50:43] [Render thread/INFO] (Minecraft) Preparing spawn area: 55% Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:mineshaft]' at 20,19, succes: true Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:jungle_pyramid]' at -20,17, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:mineshaft]' at -21,-19, succes: true Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -21,5, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_cold]' at 21,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_warm]' at 21,1, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:buried_treasure]' at -8,-21, succes: false [20:50:44] [Render thread/INFO] (Minecraft) Preparing spawn area: 72% Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:mineshaft]' at 21,19, succes: true Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ancient_city]' at -18,-21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:desert_houses]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:fountain]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:wagon]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_house]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:farmland_field]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_spikes]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:mesoamerican_temple]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:offering]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:hobbit_hole]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tiny_house]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:tower_remnant]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_ore_spikes]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:graveyard]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:well]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:campsite]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:log_shelter]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:copper_spire]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_temple]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:bamboo_hut]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:meteor]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:stone_tower]' at 17,21, succes: false Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:small_statue]' at 17,21, succes: false [20:50:44] [Render thread/INFO] (Minecraft) Preparing spawn area: 78% Structure 'ResourceKey[minecraft:worldgen/structure / minecraft:ruined_portal]' at -22,-20, succes: true Structure 'ResourceKey[minecraft:worldgen/structure / formationsoverworld:raft]' at -22,-16, succes: false [20:50:45] [Render thread/INFO] (Minecraft) Preparing spawn area: 92% [20:50:45] [Render thread/INFO] (Minecraft) Time elapsed: 4126 ms Disconnected from the target VM, address: '127.0.0.1:50923', transport: 'socket' 2024-08-19 20:50:45,246 Server thread WARN Error parsing URI G:\OneDrive - TU Eindhoven\Coding\Java\MinecraftForgeMods\Formations\.gradle\loom-cache\log4j.xml 2024-08-19 20:50:45,262 Server thread WARN Unable to register Log4j shutdown hook because JVM is shutting down. Using SimpleLogger Process finished with exit code -1 ```

It seems this effect isn't as noticeable with vanilla as there are just far less structures. When testing Philip's Ruins, I noticed their structures simply generating on the void rather than failing, hence there's no noticeable impact from that mod. I am not sure why Explorify - Dungeons & Structures doesn't have as large an impact as Formations Overworld. Perhaps simply because it has fewer structures, maybe its structures generate further apart, who knows 🤷‍♂️


Overall, the only real options to mitigate this I can think of are to either separate structures into more structures sets, however this has the effect that structures may spawn overtop each other, or to increase the distance between structures, however the average distance is already set to 15 chunks apart with a minimum of 8 chunks spacing between attempts which I feel is what I want for my structures.

As far as I can tell, all this seems to mostly be a Tectonic issue. Without Tectonic, it takes ~9 seconds with only The Abyss installed and around ~10 to ~11 seconds with The Abyss and Formation Overworld to create a world with the seed you gave. With Tectonic, it already takes ~27 to ~30 seconds to generate the world with just The Abyss installed.

Of course it could be something else in Formations causing this or there could be some other way to mitigate it. If anyone knows, let me know of course. But, as far as I can tell, there's not much I can do about it on my side.

SettingDust commented 3 weeks ago

That means there's a 20 to 30 times increase in the time it takes to simply query the height at a certain position. As I am doing the same as vanilla and have no control over ChunkGenerator#getFirstOccupiedHeight, there's not much I can do about this.

I'll look into the Minecraft code to find out if there is a way to optimize it. Thanks for your detail diagnosis.

As far as I can tell, all this seems to mostly be a Tectonic issue.

Ya, the tectonic is complex.

Message from Apollo (the Developer of Tectonic)

oh yeah Tectonic is not good for performance in general it's an issue I've been aware about but haven't addressed yet