0x2B S2BPacketChangeGameState

Changes a global game state: rain toggle, gamemode change, credits, demo messages, elder guardian effect.

Clientbound (Server → Client) · PLAY · net/minecraft/network/play/server/S2BPacketChangeGameState.java
worldgamemodeweather

Fields

FieldTypeDescription
reasonunsigned byteReason code: 0=invalidBed, 1=endRain, 2=beginRain, 3=changeGamemode, 4=credits, 5=demo, 6=arrow, 7=fadeValue, 8=fadeTime, 9=elderGuardian
valuefloatValue associated with reason (gamemode ID, rain strength, fade value)

Wire Encoding

FieldTypeNotes
ReasonUnsigned Byte0=invalidBed, 1=endRain, 2=beginRain, 3=changeGamemode, 4=credits, 5=demo, 6=arrow, 7=fade, 8=fadeTime, 9=elderGuardian
ValuefloatReason-dependent

MCP References

MCPNetHandlerPlayClient.handleChangeGameState()

Handler Interface

HNDINetHandlerPlayClient

Notes

Reason 0: bed can't be set (respawn). Reason 1/2: rain toggle. Reason 3: gamemode change (value=0-3). Reason 4: credits. Reason 5: demo. Reason 6: arrow hitting entity. Reason 7/8: fade values. Reason 9: elder guardian effect.

implementation Implementation Cases

AutoGG (Gugustus, Tenacity 6.0)

Detect game state changes. NoRain cancels rain start (reason=1/2). AutoGG detects game end (reason=4=credits).

Vanilla hook: EventReceivePacket
NoRain (Gugustus, Tenacity 6.0)

Detect game state changes. NoRain cancels rain start (reason=1/2). AutoGG detects game end (reason=4=credits).

Vanilla hook: EventReceivePacket
AntiDemo (Gugustus, Tenacity 6.0)

Detect game state changes. NoRain cancels rain start (reason=1/2). AutoGG detects game end (reason=4=credits).

Vanilla hook: EventReceivePacket
← Back to all packets