---
title: "Packet 114: InitialInfo"
description: "The first loader packet: server identity, mode copy, map filename/checksum, presentation capabilities, rule toggles, disabled equipment/classes, movement multipliers, and ground palettes."
canonical: "https://aosplay.net/protocol-168/packets/114"
markdown: "https://aosplay.net/docs/protocol-168/packets/114.md"
last_updated: "2026-07-16"
protocol: "Ace of Spades Battle Builder 168"
packet_id_decimal: "114"
packet_id_hex: "0x72"
direction: "S→C"
family: "Map sync"
implementation_status: "Sent"
evidence: "Live-verified"
wire_size: "Variable: 55-byte shell + 9 strings and counted arrays"
---

# Packet 114: InitialInfo

> The first loader packet: server identity, mode copy, map filename/checksum, presentation capabilities, rule toggles, disabled equipment/classes, movement multipliers, and ground palettes.

- **Decimal ID:** 114
- **Hex ID:** 0x72
- **Direction:** S→C
- **Family:** Map sync
- **Status:** Sent
- **Evidence:** Live-verified
- **Wire size:** Variable: 55-byte shell + 9 strings and counted arrays

## Implementation note

List shapes and terminators are crash-sensitive. Classic CTF remains mode_key CTF with classic=1; it is not sent as a separate unsupported retail scene enum.

## 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 114 (0x72). | — |
| 1 | `server_steam_id` | u64 LE | 8 | server steam id value. | — |
| 2 | `server_ip` | i32 LE | 4 | Packed server IPv4 value. | — |
| 3 | `server_port` | i32 LE | 4 | server port value. | — |
| 4 | `mode_name` | NUL-terminated UTF-8 string | N + 1 | mode name value. | — |
| 5 | `mode_description` | NUL-terminated UTF-8 string | N + 1 | mode description value. | — |
| 6 | `mode_infographic_text1` | NUL-terminated UTF-8 string | N + 1 | mode infographic text1 value. | — |
| 7 | `mode_infographic_text2` | NUL-terminated UTF-8 string | N + 1 | mode infographic text2 value. | — |
| 8 | `mode_infographic_text3` | NUL-terminated UTF-8 string | N + 1 | mode infographic text3 value. | — |
| 9 | `map_name` | NUL-terminated UTF-8 string | N + 1 | map name value. | — |
| 10 | `filename` | NUL-terminated UTF-8 string | N + 1 | VXL filename used by map validation. | — |
| 11 | `checksum` | i32 LE | 4 | checksum value. | — |
| 12 | `mode_key` | u8 | 1 | mode key value. | — |
| 13 | `map_is_ugc` | boolean u8 | 1 | map is ugc value. | — |
| 14 | `query_port` | u16 LE | 2 | query port value. | — |
| 15 | `classic` | boolean u8 | 1 | classic value. | — |
| 16 | `enable_minimap` | boolean u8 | 1 | enable minimap value. | — |
| 17 | `same_team_collision` | boolean u8 | 1 | same team collision value. | — |
| 18 | `max_draw_distance` | u8 | 1 | max draw distance value. | — |
| 19 | `enable_colour_picker` | boolean u8 | 1 | enable colour picker value. | — |
| 20 | `enable_colour_palette` | boolean u8 | 1 | enable colour palette value. | — |
| 21 | `enable_deathcam` | boolean u8 | 1 | enable deathcam value. | — |
| 22 | `enable_sniper_beam` | boolean u8 | 1 | enable sniper beam value. | — |
| 23 | `enable_spectator` | boolean u8 | 1 | enable spectator value. | — |
| 24 | `exposed_teams_always_on_minimap` | boolean u8 | 1 | exposed teams always on minimap value. | — |
| 25 | `enable_numeric_hp` | boolean u8 | 1 | enable numeric hp value. | — |
| 26 | `texture_skin` | NUL-terminated UTF-8 string | N + 1 | Empty selects normal skin; VIP uses `mafia`. | — |
| 27 | `beach_z_modifiable` | boolean u8 | 1 | beach z modifiable value. | — |
| 28 | `enable_minimap_height_icons` | boolean u8 | 1 | enable minimap height icons value. | — |
| 29 | `enable_fall_on_water_damage` | boolean u8 | 1 | enable fall on water damage value. | — |
| 30 | `block_wallet_multiplier` | sign-magnitude fixed16 LE (1/64) | 2 | block wallet multiplier value. | — |
| 31 | `block_health_multiplier` | sign-magnitude fixed16 LE (1/64) | 2 | block health multiplier value. | — |
| 32 | `disabled_tool_count` | u8 | 1 | disabled tool count value. | — |
| 33 | `disabled_tools[]` | D × u8 | D | Disabled tool IDs. | — |
| 34 | `disabled_class_count` | u8 | 1 | disabled class count value. | — |
| 35 | `disabled_classes[]` | C × u8 | C | Disabled class IDs. | — |
| 36 | `movement_multiplier_count` | u8 | 1 | movement multiplier count value. | — |
| 37 | `movement_speed_multipliers[]` | M × fixed16 LE | 2M | Class/movement speed multipliers. | — |
| 38 | `ugc_prefab_set_count` | u8 | 1 | ugc prefab set count value. | — |
| 39 | `ugc_prefab_sets[]` | U × u8 | U | UGC prefab-set IDs. | — |
| 40 | `enable_player_score` | boolean u8 | 1 | enable player score value. | — |
| 41 | `server_name` | NUL-terminated UTF-8 string | N + 1 | server name value. | — |
| 42 | `ground_color_count` | u8 | 1 | ground color count value. | — |
| 43 | `ground_colors[]` | G × RGBA8888 | 4G | Per-team/per-surface ground palettes. | — |
| 44 | `ground_color_terminator` | u8 | 1 | Required zero byte after the colour array. | — |
| 45 | `allow_shooting_holding_intel` | boolean u8 | 1 | allow shooting holding intel value. | — |
| 46 | `friendly_fire` | boolean u8 | 1 | friendly fire value. | — |
| 47 | `padding` | u8 | 1 | Required zero byte. | — |
| 48 | `enable_corpse_explosion` | boolean u8 | 1 | enable corpse explosion value. | — |
| 49 | `ugc_mode` | u8 | 1 | ugc mode value. | — |

## 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/114)
- [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)
