---
title: "Packet 9: ShootResponse"
description: "Reports an authoritative player hit. All observers can show blood, while only the matching local shooter receives the hit-confirm sound and crosshair response."
canonical: "https://aosplay.net/protocol-168/packets/9"
markdown: "https://aosplay.net/docs/protocol-168/packets/9.md"
last_updated: "2026-07-16"
protocol: "Ace of Spades Battle Builder 168"
packet_id_decimal: "9"
packet_id_hex: "0x09"
direction: "S→C"
family: "Combat"
implementation_status: "Sent"
evidence: "Live-verified"
wire_size: "10 bytes"
---

# Packet 9: ShootResponse

> Reports an authoritative player hit. All observers can show blood, while only the matching local shooter receives the hit-confirm sound and crosshair response.

- **Decimal ID:** 9
- **Hex ID:** 0x09
- **Direction:** S→C
- **Family:** Combat
- **Status:** Sent
- **Evidence:** Live-verified
- **Wire size:** 10 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 9 (0x09). | — |
| 1 | `damage_by` | u8 | 1 | Shooter player ID used for local hit-confirm matching. | — |
| 2 | `damaged` | u8 | 1 | Damaged player ID. | — |
| 3 | `blood` | boolean u8 | 1 | Whether to emit the blood effect. | — |
| 4 | `position` | 3 × fixed16 LE | 6 | Impact position. | — |

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