---
title: "Packet 15: NewPlayerConnection"
description: "The client's join announcement. Names are normalized to a case-insensitively unique 15-byte wire value before any CreatePlayer response."
canonical: "https://aosplay.net/protocol-168/packets/15"
markdown: "https://aosplay.net/docs/protocol-168/packets/15.md"
last_updated: "2026-07-16"
protocol: "Ace of Spades Battle Builder 168"
packet_id_decimal: "15"
packet_id_hex: "0x0F"
direction: "C→S"
family: "Players"
implementation_status: "Handled"
evidence: "Implementation-backed"
wire_size: "6 + name bytes"
---

# Packet 15: NewPlayerConnection

> The client's join announcement. Names are normalized to a case-insensitively unique 15-byte wire value before any CreatePlayer response.

- **Decimal ID:** 15
- **Hex ID:** 0x0F
- **Direction:** C→S
- **Family:** Players
- **Status:** Handled
- **Evidence:** Implementation-backed
- **Wire size:** 6 + name bytes

## Exact wire layout

The application packet ID is the first byte. The remaining rows are in decode order. Byte sizes exclude ENet headers, wrapper prefixes, LZF chunk framing, and compression effects.

| # | Field | Encoding | Bytes | Purpose | Condition |
| ---: | --- | --- | ---: | --- | --- |
| 0 | `packet_id` | u8 | 1 | Always 15 (0x0F). | — |
| 1 | `team` | u8 | 1 | team value. | — |
| 2 | `class_id` | u8 | 1 | Selected character class identifier. | — |
| 3 | `forced_team` | boolean u8 | 1 | forced team value. | — |
| 4 | `local_language` | u8 | 1 | local language value. | — |
| 5 | `name` | NUL-terminated UTF-8 string | N + 1 | Null-terminated UTF-8/ASCII-compatible string. | — |

## Encoding conventions

- `LE` means least-significant byte first.
- `fixed16` is two-byte sign-magnitude at 1/64 precision.
- `orientation16` uses the measured 1/8192 orientation mapping.
- NUL strings consume their encoded byte length plus one `00` terminator.
- Counted arrays repeat immediately in the documented order.

## Related resources

- [HTML packet page](https://aosplay.net/protocol-168/packets/15)
- [Complete packet catalog](https://aosplay.net/protocol-168/packets)
- [Packet catalog in Markdown](https://aosplay.net/docs/protocol-168/packets.md)
- [Protocol 168 guide](https://aosplay.net/protocol-168)
