# TwoCubeStrike Wiki

<details>

<summary>Commands</summary>

* `/kiteditor`   Open the standard kit editor flow&#x20;
* `/goldenhead give [amount]`   Give Golden Head items
* `/totempractice`  Open Totem Practice menu
* `/twocubestrike reload`  Reload plugin configs
* `/twocubestrike editcrystal`   Open crystal room layout edit mode
* `/sep reload`   Reload SEP placeholder cache/services

</details>

<details>

<summary>Permissions</summary>

* `twocubestrike.goldenhead.give`  Give Golden Heads
* `twocubestrike.editcrystal`   Edit crystal category layout in GUI
* `twocubestrike.reload`  Reload TwoCubeStrike files
* `twocubestrike.sep.reload`  Reload SEP compatibility system
* `twocubestrike.round.*`   Access all duel rounds when `menus/rounds-config.yml` round permission mode is enabled
* `twocubestrike.round.1`   Example round node used when `menus/rounds-config.yml` round permission mode is enabled
* `twocubestrike.trimmer.use`  Use Armor Trimmer when `menus/armor_trimmer.yml` permission mode is enabled

</details>

<details>

<summary>Configuration File Map</summary>

* `config.yml` → global feature toggles, allowed worlds, chat format, join/leave settings.
* `messages.yml` → all customizable messages and lore templates.
* `sounds.yml` → central sound aliases and sound controls (if used in your setup).
* `golden-head.yml` → Golden Head item, cooldown, effects, particles, command messages.
* `menus/kiteditor.yml` → normal kit editor GUI title, size, filler, buttons, armor/offhand slots.
* `menus/kitroom.yml` → crystal room GUI structure and categories.
* `kitroom_items.yml` → item data for each crystal room category.
* `menus/rounds-config.yml` → duel kit menu, round menu, round permissions, command mapping.
* `menus/armor_trimmer.yml` → armor trim editor titles, options, permission node, sounds.

</details>

<details>

<summary>Branding Guide (Server Name, Theme, Style)</summary>

#### A) Change GUI titles

* `menus/kiteditor.yml` → `title`
* `menus/kitroom.yml` → `title`
* `menus/rounds-config.yml` → `kit_menu.title`, `round_menu.title`
* `menus/armor_trimmer.yml` → `gui.title`

```
title: "&8MyNetwork » Kit Editor"
round_menu:
  title: "&d&lRound Selection"
```

#### B) Change button style (name + lore + icon)

Edit button names/lore in `menus/kiteditor.yml` and `menus/kitroom.yml`.

```
buttons:
  save:
    material: "LIME_BUNDLE"
    name: "&a&lSAVE LOADOUT"
    lore:
      - "&7Store your current setup"
      - "&eClick to confirm"
```

#### C) Change message branding (prefix + tone)

Use `messages.yml` for all player-facing text.

```
common:
  no_permission: "&c[MyNetwork] You do not have permission."

kiteditor:
  kit_saved: "&a[MyNetwork] Kit saved successfully!"
```

#### D) Change chat format branding

Edit `CHAT_FORMAT` in `config.yml`.

```
CHAT_FORMAT: "&8[&bMyNetwork&8] &f%player_name% &7» &f{MESSAGE}"
```

</details>

<details>

<summary>Step-by-Step: Common Customizations (with Examples)</summary>

#### Example 1: Restrict kit editor to specific worlds

File: `config.yml`

```
kiteditor:
  allowed_worlds:
    - "MainSpawn"
    - "PracticeLobby"
```

#### Example 2: Move Save/Reset/Leave button slots

File: `menus/kiteditor.yml`

```
buttons:
  save:
    slot: 20
  reset:
    slot: 22
  leave:
    slot: 24
```

<mark style="color:yellow;">**Important:**</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">Do not overlap button slots with armor/offhand slots.</mark>

#### Example 3: Change round icons and slot positions&#xD;

File: `menus/rounds-config.yml`

```
rounds:
  1:
    material: "IRON_SWORD"
    slot: 10
  3:
    material: "DIAMOND_SWORD"
    slot: 11
```

#### Example 4: Configure filler panes only on selected slots

File: `menus/rounds-config.yml`

```
duel_filler:
  material: "BLACK_STAINED_GLASS_PANE"
  display_name: "&f"
  slots: [0,1,2,3,4,5,6,7,8]

round_filler:
  material: "GRAY_STAINED_GLASS_PANE"
  display_name: "&7"
  slots: [0,1,2,3,4,5,6,7,8,18,19,20,21,22,23,24,25,26]
```

#### Example 5: Enable per-round permission locking

File: `menus/rounds-config.yml`

```
round_permissions:
  enabled: true
  node_prefix: "twocubestrike.round."
  deny_message: "&cYou need &e{permission} &cto play Round {round}."
  locked_item:
    material: "BARRIER"
    amount: 1
```

<mark style="color:$tint;">Then grant permissions like:</mark>

```
twocubestrike.round.1
twocubestrike.round.3
twocubestrike.round.5
```

#### Example 6: Tune Golden Head cooldown and effects

File: `golden-head.yml`

```
cooldown: 5
effects:
  - "ABSORPTION:120:1:true:false"
  - "REGENERATION:6:1:true:false"
  - "SPEED:10:0:true:false"
```

#### Example 7: Enable Armor Trimmer permission node

File: `menus/armor_trimmer.yml`

```
permissions:
  enabled: true
  node: "twocubestrike.trimmer.use"
```

</details>

<details>

<summary>Crystal Room Layout Editing (No Manual Slot Guessing)</summary>

1. Run `/twocubestrike editcrystal`.
2. Move category items inside editable range (`item_slots.start` to `item_slots.end`).
3. Switch category to auto-save current category layout.
4. Press ESC to save final positions into `kitroom_items.yml`.

<mark style="color:$warning;">Locked in edit mode: category buttons, action buttons, armor slots, offhand slot, and structural GUI slots.</mark>&#x20;

</details>

<details>

<summary>Placeholders You Can Use</summary>

#### General

* `{player}`, `%player%`
* `%sender%`, `%sender_name%`
* `<playername>`, `<target>`, `%target%`, `%target_name%`

#### Rounds

* `{round}`, `%round%`
* `{permission}`, `%permission%`
* `{round_name}`, `%round_name%`

#### Golden Head

* `{time}` (cooldown seconds remaining)

#### SEP placeholders

* `%SEP_inqueuecount_<kit>%`
* `%SEP_dynamicqueue_<kit>%`
* `%SEP_dynamicqueue2_<kit>%`
* `%SEP_infightcount_<kit>%`
* `%SEP_dynamicfight_<kit>%`
* `%SEP_partymember_<n>%`

SEP identifier is case-sensitive: `SEP`.

</details>

<details>

<summary>Safe Editing Checklist</summary>

* Use valid Material names for your server version.
* Keep slot values in range: `0` to `size - 1`.
* Avoid slot collisions (buttons, armor, offhand, categories).
* After each change, run `/twocubestrike reload` and test once.
* If placeholders seem stale, run `/sep reload`

</details>
