---
title: Finish Configuration (serverbound)
description: "Configuration 0x03, client → server."
---

`config` · `0x03` · **serverbound** (client → server)

Acknowledges the clientbound `FinishConfiguration`. Sent by the client when it has processed all registry, tag, and pack data. Receiving it moves the connection into the play state, and the server then sends `Login` (join game).

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

## Fields

_No fields._

## Send it

```ts
// Client side, in reply to the server's FinishConfiguration.
client.on("FinishConfiguration", async () => {
  await client.sendPacket("FinishConfiguration"); // -> play
});
```

Send only after the server sent its own `FinishConfiguration`. Both sides move to `play`; the `Client` emits `playerJoin` and the server may now send `Login`.

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

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