[MCPE-19818] Chunk can't be refreshed completely when client receives a new chunk data Created: 22/Jan/17  Updated: 14/Feb/17  Resolved: 14/Feb/17

Status: Resolved
Project: Minecraft (Bedrock codebase)
Component/s: None
Affects Version/s: 1.0.2
Fix Version/s: 1.0.4.0

Type: Bug
Reporter: Scallop Ye
Resolution: Fixed Votes: 12
Labels: None

Attachments: PNG File flat.png    
Confirmation Status: Community Consensus
Platform: Phone - Android - Huawei Honor (Specify in description)
CHK:
ADO: 55371

 Description   

Hi! I'm a Minecraft PE server developer.
In general, chunk should be fully refreshed when client receives a new chunk data. But I found that those empty chunk sections that server doesn't send can't be refreshed, they're just like before.
Can you fix this bug asap?
I'm looking forward to your reply.



 Comments   
Comment by [MCPE Helper] Dylan K. Taylor [ 24/Jan/17 ]

Wow... that teleport trick is neat. Works amazingly, although the issue with shaking due to being in unloaded chunks still exists. Solution: teleport player far away from target, send chunks in target, teleport player to target. Works a treat. Thank you!

Comment by Niclas Olofsson [ 24/Jan/17 ]

Earlier version, when teleporting player outside of chunks, it started shaking violently. That might not be the case now so that might work to force the client to "clear". Need to test that. But otherwise, sending null-chunks is not too bad a solution since they are sent in batch, and are very small. We used that trick earlier to force the dimension-loading-screens to show up during world-transfers.

Comment by [Mojang] Tomas Alaeus [ 24/Jan/17 ]

If you want to clear all chunks you could just teleport the player somewhere else and send new chunks as usual.

Comment by [MCPE Helper] Dylan K. Taylor [ 24/Jan/17 ]

In case it helps anyone out, the hack I'm using to work around this issue is to send a null chunk to clear the area, before sending actual chunks when changing worlds.

To clear a column, just send a chunk packet with 1 byte in the chunk data: count of subchunks you want to overwrite, and the client will extrapolate a stack of empty subchunks from that.

It's not ideal, since unless your server-side tracking of used chunks is absolutely perfect (which it definitely isn't in PocketMine) the issue may still occur occasionally, but it does work. It also lags the hell out of the client.

Comment by Niclas Olofsson [ 24/Jan/17 ]

I can confirm that MiNET also suffer from this issue. So not just a PocketMine problem for anyone thinking it is related to the server-code.

Comment by [Mojang] Tomas Alaeus [ 24/Jan/17 ]

Ah, now I understand the issue better.

Right now it could be considered a third party bug. But we do want third party servers to exist, and the packet is supposed to (at the moment) replace an entire chunk. This bug causes a chunk to not be replaced completely in some cases.

Comment by inxomnyaa [ 24/Jan/17 ]

> I would love some attention to this issue.
like always.

In my oppinion this should be maked as third party bug. Realms seems not to be affected by this. Also the way PMMP changes the world on level change is hacky. MCPE itself only has those world changes when going to another dimension, you have the loading screen, done. PMMP: change position and send chunks.

Comment by [MCPE Helper] Dylan K. Taylor [ 24/Jan/17 ]

For reference, this ought to be a normal flat world.

Comment by [MCPE Helper] Dylan K. Taylor [ 24/Jan/17 ]

I would love some attention to this issue.

To sum it up, my issue is that sending a chunk column with less subchunks in it than the original, does not remove the higher subchunks from the original chunk client-side. I had to add a hack to PocketMine-MP by sending a chunk column full of air to forcefully overwrite the old subchunks before sending the new column. It works, but obviously not very effectively.

Comment by [Mojang] Tomas Alaeus [ 24/Jan/17 ]

No, but probably later.

edit: If there is a bug that is. I still haven't tried to reproduce it. I haven't heard that this is an actual problem from other server developers.

Comment by Scallop Ye [ 23/Jan/17 ]

Yes, it's that problem exactly. Can you fix this bug in next version?

Comment by [Mojang] Tomas Alaeus [ 23/Jan/17 ]

I didn't fully understand the issue. Are you sending a FullChunk packet (id 58), but the client doesn't rebuild previously empty subchunks?

(for what it matters, I consider this a real bug in the client, because we do want to support third-party servers doing stuff like that)

Comment by Scallop Ye [ 23/Jan/17 ]

First of all, PMMP is never the only server software in the world. However, whatever software you use, you will meet this problem. Secondly, what server software can do is sending packets. As a result, it is hard to fix client-side issue with hacks. This will result in making the client unstable and breaking the cleanliness of the codes of the server. For player's interests, please fix.

Comment by Spane Boswell [ 22/Jan/17 ]

The issue is with pocketmine or whatever custom pmmp you are using, mcpe code has very little to do with servers.

Generated at Sat Jan 11 15:24:41 UTC 2025 using Jira 9.12.2#9120002-sha1:301bf498dd45d800842af0b84230f1bb58606c13.