---
title: Hello (serverbound)
description: "Login 0x00, client → server."
---

`login` · `0x00` · **serverbound** (client → server)

Login start. Sent by the client immediately after switching to the login state, with the player's `username` and profile `playerUUID`. The server then either starts encryption with `Hello` (clientbound), or in offline mode goes straight to compression and `LoginFinished`.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `username` | String | also `name` |
| `playerUUID` | UUID | also `uuid` |

## Send it

```ts
await client.sendPacket("Hello", {
  username: "bot",
  playerUUID: "00000000000000000000000000000000", // 32 hex chars, no dashes
});
```

Send right after `Intension` with `nextState: 2`. An mc-protocol server with `autoInit` answers with `LoginCompression` and `LoginFinished` and records the name and UUID on `client.session`.

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

Source: [`src/Core/Versions/776/Packets/login/serverbound/Hello.ts`](https://github.com/GDLev/mc-protocol/blob/master/src/Core/Versions/776/Packets/login/serverbound/Hello.ts)
