> For the complete documentation index, see [llms.txt](https://mango-5m.gitbook.io/mango5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mango-5m.gitbook.io/mango5m-docs/resources/mango-prison/features/head-counts-and-pa.md).

# Head Counts & PA

Muster checks with server-side position auditing, and the prison PA system.

## Head counts

An officer starts a count from the terminal (or the `StartHeadcount` export). Every prisoner gets a persistent countdown notification and a route blip to their **block's muster point** — they have 90 seconds to be standing there.

At the deadline the server audits every inmate's **actual ped position**:

* **Present** — at their muster point → behaviour bonus
* **Missing** — elsewhere → behaviour hit, a record on their file, and a guard alert naming them
* **Excused** — in medical, solitary, visitation, or offline

The live status and the last result (missing inmates highlighted) show on the terminal's Headcount page, and every count lands in the audit log.

## Who hears prison comms

Prison notifications never reach the general population — and the comms list is deliberately **narrower than the terminal permission list**, so police can run the terminal without being spammed by the PA while they're on patrol in the city.

```lua
Config.Announcements = {
    notifyJobs = { 'doc' },     -- jobs that receive prison comms
    paRequiresInside = true,    -- PA = speakers in the building
}
```

| Channel                                                                    | Reaches                                                                  |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| **PA announcements**                                                       | Every inmate, plus `notifyJobs` staff who are inside the prison boundary |
| **Urgent alerts** (escape, riot, medical, missing at head count, releases) | `notifyJobs` staff anywhere — radio-style                                |
| **Everyone else**                                                          | Nothing                                                                  |

Police are reached for escapes and riots through the [dispatch bridge](/mango5m-docs/resources/mango-prison/features/police-dispatch.md) instead, which is the appropriate channel for citywide response.

## The PA system

PA announcements reach every prisoner and the staff above as a rich notification with a tone. Three tones are **synthesized in the UI** — no audio files shipped:

| Tone    | Sound                 |
| ------- | --------------------- |
| `chime` | Two-note PA ding-dong |
| `alarm` | Urgent klaxon         |
| `buzz`  | Short door buzzer     |

Drop `.ogg` / `.mp3` files into `html/sounds/` (and list them in `fxmanifest.lua`) to use real audio instead.

### Where announcements come from

* **Terminal PA page** — configurable one-click presets + free text with a tone picker
* **Automatic** — timetable slot changes, lockdown start/end, escapes, medical emergencies, head counts, visitation calls ("Inmate 0102, you have a visitor waiting at visitation.")
* **Developers** — the `SendAnnouncement` export / `mango_prison:announce` event

All presets and automatic lines are editable in `config/announcements.lua` — including the exact PA wording per situation.
