Skip to content

[1.20.1] Severe hitch caused primarily by world-generation logic when entering a world #175

Description

@ct-yx

Summary

There is a severe multi-second hitch when entering a world. The primary issue appears to be the world-generation pipeline, especially the Starter Structure generation logic. EMI recipe/item-group loading is a secondary contributor.

Environment

  • Minecraft 1.20.1
  • Forge 47.4.10
  • Java 17, aarch64
  • macOS Apple Silicon
  • Compression

Reproduction

  1. Launch the pack.
  2. Create or enter a world.
  3. Observe the long pause during the transition into the world.

Primary evidence: world-generation blocking

In an earlier test session:

  • Preparing the overworld start region began at 04:11:22.
  • Progress remained around 9% for a long time and only completed around 04:12:05.
  • At 04:12:17, Starter Structure began generating a structure containing 10,129,231 blocks.
  • The integrated server then fell behind by 14,821 ms / 296 ticks.

This indicates that the main stall is caused by world-generation logic doing an extremely large synchronous structure operation near world entry.

Secondary evidence: EMI and recipe loading

The latest test session also shows:

  • EMI reloaded item groups on the client thread for 1638 ms and then 734 ms.
  • Recipe generation failed for entries using create:sandpaper_polishing.
  • Other recipe and tag reload errors were reported during the same phase.
  • The server later reported Running 2025ms or 40 ticks behind at 05:20:51.

These EMI/recipe-loading problems can add client-side stutter, but they are secondary to the Starter Structure/world-generation stall.

Expected behavior

Entering a world should not synchronously generate millions of structure blocks or block the integrated server for hundreds of ticks.

Notes

The issue should first be investigated in the Starter Structure/world-generation code path. EMI recipe loading and the related invalid recipe data should then be handled separately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions