The bug
Setting spectatorsGenerateChunks
to false
and entering Spectator causes the entire screen to turn white and the server to slow down to a crawl, causing players to rubberband.
Linked issues
is duplicated by 1
Attachments
Comments 17
Oh so that's what was causing that... hmm.. i don't see problem? When you die in hardcore and want to spectate how that unfortunate event came to be you can not use spectator mode unless you have commands enabled.. 😞
Why not just flip the false to true, everything works wonders if you are hosting a server and are able to use commands.
This still occurs on 1.15 after dying on hardcore game mode. Game doesn't render already generated area, including spawning area.
EDIT: Game from report MC-141751 which is linked to this issue with tag "Dublicate"
[media]That's a related, but different issue: MC-157812.
Please Mojang, consider fixing this very very old issue with spectator and the gamerule! Many servers could then get rid of the whitelist and just set the default gamemode to spectator!
So the situation now is:
When spectatorsGenerateChunks=false:
not existing chunks are not generated
existing chunks are not loaded (in any state)
previously loaded chunks are (slowly) unloaded until nothing is loaded (exept spawn region / other players / portals)
=> Hence, spectator can only stay in previously loaded regions (for limited time), or in the spawn area, or go along with another player
=> But spectator cannot go around and see the world! And cannot even disconnect and reconnect outside of the spawning chunks because the world wont load and render --> account is trapped! (even worce in hardcore mode)
When spectatorsGenerateChunks=true:
world is generated when spectator goes into unknown lands
existing chunks are loaded with full functionality (entity processing)
=> Here, spectator acts like a survival player, loading and generating the world, possibly causing increase of the world size (on disk) and causing server lag due to entity processing (e.g. visiting a Mob-Switch)
So please consider here my suggestion for a change:
gamerule: spectatorsGenerateChunks=false:
not yet existing chunks are not generated (as is)
but earlier generated chunks are loaded in a non-redstone-processing, and non-entity-processing state
could be like the 3rd ring of chunks around an active portal loader where nothing is processed (which should then actually also be rendered, unlike now!)
but unlike the portal, mobs loaded by spectator must not count towards the mob-cap
also mobs or items must not despawn due to spectator presence
previously loaded chunks are unloaded when spectator leaves the area (same as survival player)
=> Hence, spectator can go around the world but not damage it by any means. And can disconnect and reconnect whenever he wants.
gamerule: spectatorsGenerateChunks=true:
leave the behaviour as is, it's the least change effort.
Or, to make it more consistent, introduce an additional gamerule: spectatorsLoadWorld where the loading of existing chunks goes to.
So the optional additional gamerule might maybe look like:
spectatorsLoadWorld:
if true: spectators load world like survival players
but only generate new chunks if also spectatorsGenerateChunks=true
if false: spectators load world non-redstone- + non-entities-processing + no mobcap counts.
and also generate new chunks and load them as non-processing if spectatorsGenerateChunks=true
(mho: spectators not loading existing chunks at all makes just no sense at all.)
Cheers and Thanks!
I reported that, too! see MC-141751 for more details. It happens in 18w50a as well.