Skip to content

Run DataFix WorldGenSettingsFix as LEVEL instead of WORLD_GEN_SETTINGS - #14190

Open
bergerkiller wants to merge 1 commit into
PaperMC:mainfrom
bergerkiller:world_gen_fix
Open

Run DataFix WorldGenSettingsFix as LEVEL instead of WORLD_GEN_SETTINGS#14190
bergerkiller wants to merge 1 commit into
PaperMC:mainfrom
bergerkiller:world_gen_fix

Conversation

@bergerkiller

Copy link
Copy Markdown
Contributor

I've run into a problem with an old format level.dat, that the MapFeatures level.dat value did not get properly migrated on Paper. It turned into generate_features, instead of generate_structures. This causes structures to be generated in the world when that was not intended.

I narrowed the problem down to the datafixer running out-of-order. The versioning made it appear this should not happen.

My hypothesis was that this was because these fixes run on the WORLD_GEN_SETTINGS schema, which is something that only exists after the world_gen_settings.dat split even exists. So as a result, it would only run late, after the generate_features > generate_structures rename already occurred.

I've tried rewriting it to use LEVEL, like the other fix, inspired by LevelLegacyWorldGenSettingsFix. And that has fixed this problem for me.

I do not know what other impacts this has, because I have limited understanding of datafixers.

In my_void_world_bu.zip is an empty world file with just level.dat, that when loaded, is transformed into the incorrect syntax.
my_void_world_bu.zip

Fixes a problem where this fix runs after LevelDatToSavedDataPreparationFix, breaking migrations

Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
@bergerkiller
bergerkiller requested a review from a team as a code owner August 15, 2026 16:43
@github-project-automation github-project-automation Bot moved this to Awaiting review in Paper PR Queue Aug 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Awaiting review

Development

Successfully merging this pull request may close these issues.

1 participant