PaperMC / Paper

The most widely used, high performance Minecraft server that aims to fix gameplay and mechanics inconsistencies
https://papermc.io/
Other
10.04k stars 2.34k forks source link

Nether reset changes nether seed #7570

Closed Speeskees closed 2 years ago

Speeskees commented 2 years ago

Expected behavior

If the nether-seed in spigot.yml is unchanged, you expect the nether to generate the same way after a reset.

Observed/Actual behavior

The nether changes entirely after a reset.

Steps/models to reproduce

Remove the world_nether directory and reset the server, then enter the nether through a portal in-game.

Plugin and Datapack List

None

Paper version

This server is running Paper version git-Paper-235 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT) (Git: e0b3f3f)

Other

There are 2 configuration aspects that might have caused this problem with my limited knowledge of how the game works technically. I have no seed set in server.properties, which might mean a new master seed is generated when the nether is reset. I also noticed after removing spigot.yml, where the nether-seed setting is found, was different when I removed and regenerated it. Perhaps the old config file format was somehow messing up.

Speeskees commented 2 years ago

I will test copy pasting the overwold seed into the server.properties file and see if the nether still changes next evening. The overworld seed has not changed over a week, tested using the seed command. If that fixes the problem, it must have been the unset seed in server.properties. Still, in that case you'd expect paper to take the seed from the overworld level.dat.

Machine-Maker commented 2 years ago

nether-seed isn't what you think it is. its the seed for nether structures, like fortresses, bastions, etc. its not the seed for the nether generation. This probably comes down to bad spigot naming for spigot.yml settings.

Machine-Maker commented 2 years ago

Although, if it changes, simply deleting the world_nether folder shouldn't change the generation once you've changed that value, so maybe this is an issue.

Speeskees commented 2 years ago

That makes the issue even stanger. I hope it's just because there is no master seed set in server.properties. I still think the seed in level.dat should be used in that case, but it would at least give me a quick fix. Thanks for the info.

Machine-Maker commented 2 years ago

if this is a behavioral change from previous versions, then it might need to be addressed, I don't remember for sure, but I feel like simply generating brand new worlds, then deleting the nether, should generate the same nether back. I also gotta test this out on spigot to see if its a paper change or not.

Speeskees commented 2 years ago

On past worlds, I have always used a set seed in server.properties, so I couldn't tell if this is a recent change.

Machine-Maker commented 2 years ago

So at least on 1.16.5 paper, the same thing happens. and on spigot 1.18.2, so I'm thinking this is WAI.

Speeskees commented 2 years ago

I set the overworld seed in server.properties, which resulted in the same nether terrain being generated after a reset, so that must have been the cause of the issue. As this behaviour seems to be undocumented, I'll leave the issue open for now, as I still think it makes more sense to pull the master seed from the overworld level.dat in case of an unset seed in server.properties, so I'll leave it to the moderators to define this as an issue or unintended behaviour.

electronicboy commented 2 years ago

they're seperate worlds as far as CB is concerned, with separate data files and basically 0 attachment whatsoever, as has been the case for years, so I can't really see that changing

e-im commented 2 years ago

This is intended behaviour and a documentation issue. I've opened PaperMC/docs#36 to track this and similar.