Skip to content

Teleport commands may move players into unloaded chunks #65

@FidoScamander

Description

@FidoScamander

Hi! I am using EliteEssentials 2.0.8 on a Hytale 0.5.3 server, and I may have found an issue with teleports to unloaded destination chunks.

We are seeing repeated warnings such as:

[UpdateLocationSystems] Entity has moved into a chunk that isn't currently loaded!
[EntityTrackerSystems$SendPackets] Removed invalid updates for removed entities.

The warnings often appear immediately after players use /home or /back.

Example:

[14:12:54] VolpeRosa94 executed command: home
[14:12:59] Entity has moved into a chunk that isn't currently loaded!

[14:14:27] VolpeRosa94 executed command: back
[14:14:27] Entity has moved into a chunk that isn't currently loaded!

[14:16:19] VolpeRosa94 executed command: home
[14:16:20] Entity has moved into a chunk that isn't currently loaded!

The same TransformComponent also appeared repeatedly after those teleports, so it looks like the player, or an entity attached to the player, may be moved before the destination chunk is fully loaded.

I checked the EliteEssentials config and noticed that only the RTP section exposes:

"chunkLoadTimeoutMs": 500

I also found RTP-specific strings inside the jar:

[RTP] Chunk not loaded, loading asynchronously...
[RTP] Chunk already loaded, processing immediately

However, I could not find an equivalent chunk preload or timeout option for:

/home
/back
/tpa
/tpahere
/spawn
/warp
/playerwarp

Would it be possible to apply the same asynchronous destination chunk loading logic used by RTP to the other teleport commands?

Ideally, the teleport flow would be:

Resolve the destination world and coordinates.
Load the destination chunk asynchronously.
Wait until the chunk is ready, or until a configurable timeout is reached.
Verify that the player and destination are still valid.
Teleport the player only after the chunk is loaded.

A global or per-command config option such as these would also be very useful:

"preloadDestinationChunk": true,
"chunkLoadTimeoutMs": 1000

I cannot say with absolute certainty that EliteEssentials is the only cause, but the log timing strongly suggests that normal teleport commands can move players into chunks that are not loaded yet.

Thank you for your work on the mod!

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