> For the complete documentation index, see [llms.txt](https://k0ssek-scripts.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://k0ssek-scripts.gitbook.io/docs/scripts/halloween/admin-tools.md).

# Admin Tools

The admin panel, the Horror Director, the in-game creators, decorations and the schedule.

Every admin action is checked on the server again. Who counts as an admin is on [Installation](/docs/scripts/halloween/installation.md).

## The admin panel

`/hwadmin` opens the panel:

| Tab             | What it does                                                      |
| --------------- | ----------------------------------------------------------------- |
| Overview        | A live overview of the event                                      |
| Horror Director | Runs the night by hand (below)                                    |
| Places          | The altars: wake one, stop its hunt, end its rest, teleport there |
| Loot            | The chances in the loot tables                                    |
| Players         | The players, with a search                                        |
| Webhooks        | The Discord webhooks, with a test message                         |

### The Horror Director

Runs the night by hand: start a hunt where you stand or at an altar, give the Mark to a player, send the Phantom at someone and drive it yourself, lights out around you, a sound behind a player, a haunting, a trick, hand out or recall a bear, teleport. It only ever affects players who take part.

{% hint style="info" %}
The `serious` profile filters what happens on its own. The Director can still send a visible haunting or a named trick by hand.
{% endhint %}

## Commands

| Command                                                                        | What it does                                             |
| ------------------------------------------------------------------------------ | -------------------------------------------------------- |
| `/hwadmin`                                                                     | The admin panel                                          |
| `/hwaltar add`, `move`, `remove`, `vessel`, `unvessel`, `list`, `goto`, `show` | Altars and their vessels                                 |
| `/hwseance summon`, `start`, `stop`, `reset`                                   | Wake an altar, start or stop a hunt, end an altar's rest |
| `/hwgrave add`, `move`, `remove`, `kind`, `list`, `goto`, `show`               | Graves for the bears and for digging                     |
| `/hwcauldron add`, `move`, `remove`, `board`, `list`, `goto`, `show`           | Cauldrons and their boards                               |
| `/hwdoor add`, `move`, `remove`, `reset`, `list`, `goto`, `show`               | Trick-or-treat houses                                    |
| `/hwdecor`                                                                     | Decorations                                              |

Player commands: `/halloween`, `/halloween join`, `/halloween leave`, `/halloween scares on` / `off`.

The test commands (`/hwphantom`, `/hwhunt`, `/hwbear` and others) exist only while `Config.Debug = true`. Keep it `false` on a live server.

## In-game creators

Every place is set in game and saved in the database. Stand where it should be and face the right way.

* **Altars**: `/hwaltar add [name]` where you stand. The Phantom comes from roads, so an altar far from any road warns you, and so does bumpy ground under the ritual circle. `/hwaltar vessel` adds a vessel nearby; 4 vessels let one player play.
* **Graves**: `/hwgrave add [name]` facing your way. `/hwgrave kind <id> <bear|dig|both>` sets what it is for (a new grave is both).
* **Cauldrons**: `/hwcauldron add [name]`. `/hwcauldron board [id]` hangs its notice board where you stand, `/hwcauldron board reset` puts it back next to the cauldron.
* **Houses**: `/hwdoor add` in front of a door. `/hwdoor reset [player]` opens every house again today for a player.

Each list in `config/server.lua` has `useDefaults`: set it to `false` to start without the built-in places.

## Decorations

`/hwdecor` opens a menu to dress the city: pumpkins, gravestones, coffins, candles, skeletons, ghosts, bats, spiders and hay from the game, plus the event's cauldron and ritual circle. Pick one and it follows where you look.

| Key             | Action                                                                        |
| --------------- | ----------------------------------------------------------------------------- |
| Scroll          | Turn it (Shift for small steps)                                               |
| Arrow up / down | Raise / lower it                                                              |
| G               | Stand it on the ground, or hang it at the point you look at (a bat on a wall) |
| E               | Place it                                                                      |
| Q               | Place it and keep going                                                       |
| Backspace       | Cancel                                                                        |

The same menu lists the decorations near you or all of them, and moves, copies, removes or teleports you to one.

Every player sees them, also players who do not take part. They stay until an admin removes them. Each player's game spawns only the ones within 100 m, so hundreds of them cost nothing. The catalogue and the limit (500) are in `Config.Decorations`: add any prop by its model name, also one from your own streamed resources. Models your game build does not have are left out of the menu.

## Schedule

Hunts can start on their own: `Config.Schedule` in `config/server.lua`, off by default. At each time an altar wakes up and everyone is told; the first players who come and light candles start the hunt.

```lua
Config.Schedule = {
    enabled  = true,
    restarts = { '06:00', '18:00' }, -- your server's restart times
    times    = {
        { at = '21:00' },                          -- every day at 21:00
        { beforeRestart = 45 },                    -- 45 minutes before each restart
        { at = '23:30', altar = 'hill_valley' },   -- a fixed altar
    },
    altar = 'random', -- any free altar, or an altar id
}
```

Times are the server machine's clock. `/hwseance summon` wakes an altar at any time.

## Discord webhooks

`Config.Webhooks` in `config/server.lua`, or the Webhooks tab. Leave a line empty to send nothing there.

| Webhook | Logs                                                      |
| ------- | --------------------------------------------------------- |
| `event` | Hunts won or lost, brew stages                            |
| `loot`  | Epic and legendary roulette prizes                        |
| `bear`  | Bites and new bear records                                |
| `admin` | Everything done from the Horror Director, and decorations |

The logs name players by their Steam name and server id (for example `k0sseK [12]`), so admins can find them. In game players only ever see character names.
