# 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>


---

# Agent Instructions: 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://docs.twocube.in/server-setups/strikepractice-setup/twocubestrike-wiki.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.
