0x13 C13PacketPlayerAbilities

Player toggles flying state. Only sent for the flying flag change — the server controls all other ability flags via S39PacketPlayerAbilities.

Serverbound (Client → Server) · PLAY · net/minecraft/network/play/client/C13PacketPlayerAbilities.java
playermovementflight

Fields

FieldTypeDescription
invulnerablebooleanPlayer is invulnerable (god mode)
isFlyingbooleanTrue if the player is currently flying
allowFlyingbooleanWhether player is allowed to fly
creativeModebooleanTrue if in creative mode
flySpeedfloatFlight speed multiplier
walkSpeedfloatWalk speed multiplier

Wire Encoding

FieldTypeNotes
Flagsbyte (bitmask)0x01=invulnerable, 0x02=flying, 0x04=allowFlying, 0x08=creative
Fly SpeedfloatFlight speed multiplier
Walk SpeedfloatWalk speed multiplier

MCP References

MCPNetHandlerPlayServer.processPlayerAbilities()

Handler Interface

HNDINetHandlerPlayServer

Notes

The client only sends this when the flying state changes (pressing space twice in creative mode). The server ignores all flags except isFlying for non-creative players. Even if you set allowFlying=true, the server won't let you fly unless it sent S39 with allowFlying=true first.

implementation Implementation Cases

Flight (Gugustus, Tenacity 6.0)

Toggle flying state. Client sends isFlying=true to tell server player started flying.

Vanilla hook: EventSendPacket
CreativeFly (Gugustus, Tenacity 6.0)

Toggle flying state. Client sends isFlying=true to tell server player started flying.

Vanilla hook: EventSendPacket
← Back to all packets