> For the complete documentation index, see [llms.txt](https://ney.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://ney.gitbook.io/docs/betterhud-extension/compass.md).

# Compass

BetterHud Extension connects Typewriter positions and quests to BetterHud compass pointers.

### Entry Overview

| Entry ID                     | Type     | Purpose                                    |
| ---------------------------- | -------- | ------------------------------------------ |
| `hud_add_compass_point`      | Action   | Adds a pointer for the current player      |
| `hud_remove_compass_point`   | Action   | Removes matching pointers                  |
| `hud_compass_point_audience` | Audience | Synchronizes a pointer with quest tracking |

### Requirements

Before using these entries:

1. Enable and configure BetterHud's compass system.
2. Create the pointer icon used by the entry.
3. Make sure the player can see the relevant BetterHud compass layout.
4. Provide a valid Typewriter `Position` variable for the target location.

### Add Compass Point

The `hud_add_compass_point` action creates a pointer for the player executing the Typewriter sequence.

| Field           | Description                              |
| --------------- | ---------------------------------------- |
| `pointName`     | Stable name used to identify the pointer |
| `icon`          | BetterHud pointer icon                   |
| `pointLocation` | Typewriter position variable             |

Use a consistent `pointName` when the pointer will later be removed.

### Remove Compass Point

The `hud_remove_compass_point` action removes pointers with the configured name from the current player.

| Field       | Description                   |
| ----------- | ----------------------------- |
| `pointName` | Name of the pointer to remove |

### Quest Compass Audience

The `hud_compass_point_audience` entry keeps a pointer visible for players who match its Typewriter criteria and quest-tracking state.

| Field           | Description                                    |
| --------------- | ---------------------------------------------- |
| `quest`         | Optional Typewriter quest reference            |
| `pointName`     | Variable used as the pointer name              |
| `icon`          | Variable containing the BetterHud pointer icon |
| `pointLocation` | Variable containing the target position        |
| `criteria`      | Additional audience conditions                 |

The audience reacts to relevant fact and quest-tracking changes. When a player leaves the audience, stops matching the entry, or the entry is unloaded, its pointer is removed.

### Choosing an Entry

Use the action entries for explicit sequence control:

```
Start objective -> add pointer -> complete objective -> remove pointer
```

Use the audience entry when visibility should remain synchronized with a tracked quest without manually adding and removing the pointer in every path.
