diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index b0a61a8c5..b066cfe83 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -1756,7 +1756,12 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { abilities.add(Ability.NO_CLIP); } - abilityLayer.setLayerType(AbilityLayer.Type.BASE); + // https://github.com/GeyserMC/Geyser/issues/3769 Setting Spectator mode ability layer + if (spectator) { + abilityLayer.setLayerType(AbilityLayer.Type.SPECTATOR); + } else { + abilityLayer.setLayerType(AbilityLayer.Type.BASE); + } abilityLayer.setFlySpeed(flySpeed); // https://github.com/GeyserMC/Geyser/issues/3139 as of 1.19.10 abilityLayer.setWalkSpeed(walkSpeed == 0f ? 0.01f : walkSpeed);