Waystones

Waystones

123M Downloads

Unloading chunks after teleport?

PyroBurnem opened this issue ยท 4 comments

commented

I have no idea if this is a bug or not but I am reporting this just in case it is.

After teleporting, the chunk the waystone is in immediately unloads, which disables anything within its vicinity relying on chunks being loaded. This completely breaks the Simple Storage Networks mod, which rely on the chunk the Network Root is in being loaded. Minecart-portal chunk loaders will also have a 50% chance of breaking depending on if the minecart is in the dimension the waystone is in.

Linked below is the function I think is causing the unloading.
https://github.com/ModdingForBlockheads/Waystones/blob/179a3774b74c8a4fea5ef373a79c78636a25444a/shared/src/java/net/blay09/mods/waystones/core/PlayerWaystoneManager.java#L415

While this can be "fixed" with a chunkloading mod, there are no plans of including one in the pack I am currently using, which is why there is a reliance on chunks being loaded after teleporting away from an area with a waystone.

commented

Do you have Flux Networks in the pack?

commented

Negative on this.

commented

Is this still an issue on recent Minecraft versions (1.17, 1.18)?

Waystones doesn't really do anything to force-unload the chunk so this may just be Vanilla behaviour.

commented

In the most recent version on a completely fresh install, the chunks are behaving normally without any unloading.

Steps to reproduce:

  1. Get a fresh install of MC Forge (forge-38.0.16) and Waystones (waystones-forge-1.18-9.0.0)
  2. Create a new world (I used a superflat world for my testing, however a default world can be used)
  3. Get the world spawn location to determine the spawn chunks (the way I did it was to run the command '/gamerule spawnRadius 0' and then immediately '/kill', which will put me directly on world spawn)
  4. Mark the chunk the world spawn is in. This chunk will have a chunk ticket of 22. (further reading: https://minecraft.fandom.com/wiki/Chunk#Ticket_types, under Start Ticket)
  5. Move out a number of chunks in a cardinal direction, counting up from 22 to 32. This chunk will not process entities.
  6. Move out another 2 chunks. This chunk will have a ticket of 34, which will only process world generation.
  7. Build a chunk loader in the chunk that has the ticket of 34. The chunk loader I am using is ilmango's chunk loader. (further reading: https://www.youtube.com/watch?v=B8z7q_pwjL4) To ensure the redstone is still active, I've attached a command block that activates when the minecart enters the dispenser on the nether side.
  8. Place a waystone in the chunk the chunk loader is in, and another waystone somewhere far away. Both of these waystones are in the Overworld.
  9. While the minecart is in the Overworld, teleport from the waystone at the chunk loader to the waystone far away.

In singleplayer, all is as it should be. Unfortunately, for multiplayer, I was only able to test on a single machine with a world that was opened to LAN, which also ran perfectly fine. I am currently unable to test for an actual multiplayer server, which is where the problem as stated in my first report first arose.

In the multiplayer server I played on, I noticed that the Simple Storage Networks Network Root required chunk loading, so I installed the chunk loader as described above. However, after building the chunk loader, I was still not able to see my items from my Crafting Remote after teleporting away using a Waystone, which indicated that the chunk was unloading, despite there being a chunk loader.

This lead me to believe that the problem is with chunk loading in multiplayer servers or with the waystones, since the Network Root required the chunks to be loaded by design to detect the inventories it is attached to (Lothrazar/Storage-Network#381).

Since the server I play on has since ceased to be, and that the latest version works as expected in singleplayer, I will close this issue for now. Should there be any updates, be it tests from a multiplayer server or updates, I will reopen this thread.