Skip to content
mc-protocol
Esc
↑↓navigate↵open⌘Jpreview
On this page

Login Finished

Login 0x02, server → client.

login · 0x02 · clientbound (server → client)

Login success. Sent by the server once authentication (if any) is done and compression is set, carrying the player’s UUID, username, and profile properties such as skin textures. The client must answer with LoginAcknowledged, which moves the connection into the configuration state.

Sent by the server, read by the client. Listen for it with client.on("LoginFinished", (data) => …) on the receiving side.

Fields

Field Type Notes
gameProfile Struct Shape: { uuid: string; username: string; properties?: Array<{ name: string; value: string; signature?: string | null }>; }.
sessionId UUID

Send it

// Server side with autoInit: false, after receiving Hello.
await client.sendPacket("LoginFinished", {
  gameProfile: {
    uuid: packet.data.playerUUID,
    username: packet.data.username,
    properties: [], // skin/cape textures in online mode
  },
  sessionId: "00000000000000000000000000000000",
});

The client replies with LoginAcknowledged and both sides switch to config. With autoInit: true the server sends this for you. properties is the signed texture list from Mojang’s session server; leave it empty in offline mode.

Field aliases listed under Notes are accepted as alternative keys when writing.

Source: src/Core/Versions/776/Packets/login/clientbound/LoginFinished.ts

Was this page helpful?