> For the complete documentation index, see [llms.txt](https://kynosdeveloping.gitbook.io/kynosdeveloping/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kynosdeveloping.gitbook.io/kynosdeveloping/kynosstaff/configuration.md).

# ⚙️ Configuration

KynosStaff generates three configuration files on first startup inside `plugins/KynosStaff/`.

***

### config.yml

General plugin settings.

```yaml
Settings:
  # Check for new plugin releases on the GitHub repository at startup
  update-checker: true

Freeze:
  # If true, players who are frozen cannot execute any commands.
  # If false, they will be able to use commands normally while frozen.
  block-commands: true
```

#### Options

| Key                       | Type    | Default | Description                                            |
| ------------------------- | ------- | ------- | ------------------------------------------------------ |
| `Settings.update-checker` | boolean | `true`  | Enables or disables the GitHub update check on startup |
| `Freeze.block-commands`   | boolean | `true`  | If true, frozen players cannot run any command         |

**Reload:** `/kynosstaff reloadconfig`

***

### lang.yml

All player-facing messages and GUI display strings. Supports hex colors using the `&#RRGGBB` format (requires Minecraft 1.16+) and standard `&` color codes.

**Reload:** `/kynosstaff reloadlang`

#### Message Keys

| Key                                           | Description                                                        |
| --------------------------------------------- | ------------------------------------------------------------------ |
| `Messages.no-permission`                      | Sent when a player lacks permission                                |
| `Messages.PlayerOnly`                         | Sent when a console tries to run a player-only command             |
| `Messages.alreadyonthegui`                    | Sent when trying to open a GUI page already open                   |
| `Messages.staffer-offline`                    | Sent when the target staff member disconnects                      |
| `Messages.player-offline`                     | Sent when the target player is offline                             |
| `Messages.teleported-to-staffer`              | Confirmation when you teleport to another staff member             |
| `Messages.teleported-staffer-to-you`          | Confirmation when you pull another staff member to you             |
| `Messages.teleported-by-staffer`              | Sent to the player who was teleported                              |
| `Messages.cannot-interact-with-staff`         | Sent when trying to moderate a staff member                        |
| `Messages.godmodeon` / `godmodeoff`           | Godmode toggle feedback                                            |
| `Messages.flyon` / `flyoff`                   | Fly toggle feedback                                                |
| `Messages.vanishon` / `vanishoff`             | Vanish toggle feedback                                             |
| `Messages.trollstick-received`                | Confirmation on troll stick receive (supports `%level%`)           |
| `Messages.target-frozen`                      | Sent to the frozen player                                          |
| `Messages.staff-frozen-success`               | Confirmation to the staff member who froze (supports `%target%`)   |
| `Messages.target-unfrozen`                    | Sent to the unfrozen player                                        |
| `Messages.staff-unfrozen-success`             | Confirmation to the staff member who unfroze (supports `%target%`) |
| `Messages.nightvision-on` / `nightvision-off` | Night vision toggle feedback                                       |
| `Messages.no-players-online`                  | Sent when Random TP finds no valid players                         |
| `Messages.teleported-to-random`               | Confirmation on random TP (supports `%target%`)                    |
| `Messages.player-killed`                      | Confirmation on killing a player (supports `%target%`)             |
| `Messages.globalchat-muted`                   | Broadcast when chat is muted (supports `%staffer%`)                |
| `Messages.globalchat-unmuted`                 | Broadcast when chat is unmuted (supports `%staffer%`)              |
| `Messages.chat-is-currently-muted`            | Sent to players who try to chat while muted                        |

#### GUI Strings

All GUI titles, item names, and lore lines are also defined in `lang.yml` under the `GUI` key. You can freely change colors, names, and lore without touching `settings.yml`.

#### Reload Messages

When reloading a file via command, a title+subtitle confirmation is displayed to the in-game player:

| Key                                                    | Displayed for                |
| ------------------------------------------------------ | ---------------------------- |
| `Messages.Reload.lang-title` / `lang-subtitle`         | `/kynosstaff reloadlang`     |
| `Messages.Reload.settings-title` / `settings-subtitle` | `/kynosstaff reloadsettings` |
| `Messages.Reload.config-title` / `config-subtitle`     | `/kynosstaff reloadconfig`   |

***

### settings.yml

Controls the GUI layout: which slot each button occupies, which material it uses, and optional custom model data for resource pack support.

**Reload:** `/kynosstaff reloadsettings`

#### Main GUI Layout

```yaml
Settings:
  MainGui:
    staffheadslot: 0        # Slot for your own player head
    playerlistslot: 9       # Slot for the Player List button
    globalmute-slot: 18     # Slot for the Global Mute toggle
    quickrtp-slot: 27       # Slot for Quick Patrol RTP
    filler-glass-material: "GRAY_STAINED_GLASS_PANE"
    filler-glass-custommodeldata: 0
    close-button-material: "BARRIER"
    close-button-slot: 45
    close-button-custommodeldata: 0
    pagination-arrows-custommodeldata: 0
```

#### Auto-management Items

Each item under `automanagement` supports:

| Key               | Description                                                      |
| ----------------- | ---------------------------------------------------------------- |
| `material`        | Bukkit Material name                                             |
| `slot`            | Inventory slot (0–53)                                            |
| `custommodeldata` | Custom model data integer for resource pack items (0 = disabled) |

Available items: `fly`, `godmode`, `vanish`, `trollstick`, `nightvision`, `randomtp`

#### Player Management Items

Each item under `playermanagement` supports the same `material`, `slot`, and `custommodeldata` keys.

Available items: `teleport`, `freeze`, `invsee`, `kick`, `enderchest`, `kill`

The `mute` item additionally supports:

* `command-template` — the command run when a duration is selected. Use `%target%` and `%time%` as placeholders
* `durations` — a list of preset durations with their slot and material

#### Mute Duration Example

```yaml
mute:
  material: "PAPER"
  slot: 30
  command-template: "tempmute %target% %time% Muted via StaffPanel"
  durations:
    option1:
      time: "15m"
      slot: 20
      material: "LIME_DYE"
    option2:
      time: "1h"
      slot: 21
      material: "GREEN_DYE"
    option3:
      time: "12h"
      slot: 22
      material: "YELLOW_DYE"
    option4:
      time: "1d"
      slot: 23
      material: "ORANGE_DYE"
    option5:
      time: "30d"
      slot: 24
      material: "RED_DYE"
```

> The `command-template` is executed as a console command. Make sure the mute plugin you use is installed and that the command syntax matches.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kynosdeveloping.gitbook.io/kynosdeveloping/kynosstaff/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
