> For the complete documentation index, see [llms.txt](https://wiki.dyroxplays.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.dyroxplays.de/scoreboardplus/konfiguration.md).

# Konfiguration

In diesem Abschnitt wird die vollständige Konfiguration des **ScoreboardPlus** Plugins sowie alle verfügbaren Optionen und deren Funktionen erklärt.

***

## Dateiübersicht

Das Plugin generiert nach dem ersten Serverstart folgende Konfigurationsdateien im Ordner `/plugins/ScoreboardPlus/`:

* **`config.yml`**: Die Hauptkonfigurationsdatei für Scoreboards, Chat-Formate, Welten, Actionbar, Bossbar und die MySQL-Anbindung.
* **`customprefixes.yml`**: Konfiguration der Prefix-Farbauswahl (über `/prefix`), die Spieler im Menü auswählen können.

***

## config.yml

Die Hauptkonfigurationsdatei des Plugins. Alle Optionen sind in logische Bereiche unterteilt.

### Basis-Einstellungen & Chat

```yaml
# Der Präfix für alle Systemnachrichten
prefix: '&7[&cScoreboard+&7]'

# Chat-Formate aktivieren und konfigurieren
chat:
  enable: true
  format: '%sbplus_dpname%: &f%msg%'
  
  # Globaler Chat (serverübergreifend via MySQL)
  global:
    enable: false
    format: '&7%sbplus_dpname%: &f%msg%'
    copymsgfromchat: true
```

* **`chat.enable`**: Aktiviert das integrierte Chatformat-System.
* **`chat.format`**: Legt das standardmäßige Chat-Layout fest. Unterstützt PlaceholderAPI-Platzhalter.
* **`chat.global.enable`**: Aktiviert den globalen Chat (erfordert MySQL).

***

### Datenbankverbindung (MySQL)

```yaml
MySQL:
  enable: false
  host: localhost
  port: '3306'
  username: user
  datebase: db
  password: password123
```

* **`MySQL.enable`**: Aktiviere MySQL, um Einstellungen (wie die ausgeblendeten Scoreboards oder Custom Prefixes) serverübergreifend zu speichern.

***

### Befehls-Toggles (Ein- & Ausblenden)

```yaml
togglecmd:
  sb:
    enable: true
    permissionneed: false
  actionbar:
    enable: true
    permissionneed: false
  bossbar:
    enable: true
    permissionneed: false
```

* **`enable`**: Legt fest, ob Spieler das jeweilige Element ein- oder ausblenden können.
* **`permissionneed`**: Wenn `true`, benötigen Spieler die entsprechende Permission (z. B. `scoreboardplus.togglesb`), um den Befehl auszuführen.

***

### Scoreboard (Sidebar)

```yaml
# Erzwingt die Neuerstellung des Scoreboards beim Joinen (Empfohlen)
forcenewscb: true

sb:
  # Aktiviert die Scoreboard-Anzeige
  enable: true
  
  # Nutzt Packet-basiertes Scoreboard (nur für Versionen 1.8.x empfohlen)
  packets: false
  
  # Aktiviert Titel- und Zeilenanimationen
  animated: false
  
  # Führt Updates im asynchronen Thread aus (Ressourcenschonend)
  async: true
  
  # Update-Intervall in Ticks (20 Ticks = 1 Sekunde)
  updatesec: 1200
  
  # Titel des Scoreboards
  title: '&aDyroxplays.de'
  
  # Zeilen des Scoreboards
  board:
  - '&a '
  - '&fRang:'
  - '&e%sbplus_rang%'
  - '&b '
  
  # Formatierung der Zeilennummern (blank = keine Zahlen anzeigen)
  number-format: blank
```

***

### TabList & Ranksystem

```yaml
# Update-Geschwindigkeit für Header und Footer
tabheaderfooter:
  updateticks: 100
  forall: true
  header: '&aScoreboardPlus%n%'
  footer: '%n%&7coded by &eDyroxplays'

tab:
  enable: true
  async: true
  customprefix: true
  updatesec: 1200
  updateonlyonjoin: true
  
  # Suffix & Prefix in der TabList
  suffix: ' '
  prefix: '%sbplus_tabprefix%'
  
  # Statische Präfixe
  static:
    pre-prefix: ''
    pos-prefix: ''
```

* **`ranks`**: Legt die Ränge und deren Aussehen in TabList, Chat und Scoreboard fest. Die Reihenfolge bestimmt die TabList-Sortierung (von oben nach unten).

  Das Format unterscheidet sich leicht zwischen normalen (permission-basierten) Rängen und dem Standard-Rang (letzter Eintrag ohne Permission):

  * **Normale Ränge:** `'PERMISSION;RANGNAME;CHATPREFIX;TABPREFIX;[NAME_COLOR]'` (5 Parameter)

  * **Standard-Rang:** `'RANGNAME;CHATPREFIX;TABPREFIX;[NAME_COLOR]'` (4 Parameter)

  > \[!TIP] Der optionale Parameter **`NAME_COLOR`** (z. B. `&c` für Rot oder `#FF5555` für Hex-Rot) bestimmt die Farbe, in welcher der Spielername selbst in der TabList dargestellt wird. Fehlt dieser Parameter, wird die Namensfarbe nicht explizit überschrieben.

  ```yaml
  ranks:
  - 'rank.0001;&4Owner;&4Owner &7| ;&4Owner &7| ;&4'
  - 'rank.0002;&4Admin;&4Admin &7| ;&4Admin &7| ;&c'
  - 'rank.0003;&bDev;&bDev &7| ;&bDev &7| ;&b'
  - 'rank.0004;&2Mod;&2Mod &7| ;&2Mod &7| ;&a'
  - '&7Spieler;&7Spieler &7| ;&7Spieler &7| ;&7'
  ```

***

### Actionbar & Bossbar

```yaml
actionbar:
  enable: true
  async: true
  resendticks: 10
  updatesec: 10
  restartifatend: true
  messages:
  - '&7Dies ist die &eErste &7Nachricht'
  - '&dNutze Platzhalter!'
  
bossbar:
  enable: true
  async: true
  resendticks: 10
  updatesec: 10
  restartifatend: true
  messages:
  - 'PINK;33;SOLID;&7Erste Nachricht'
  - 'PINK;66;SOLID;&dNutze Platzhalter!'
  - 'PINK;100;SOLID;&aVollkommen anpassbar'
```

* **Bossbar Format**: `FARBE;PROZENT;STIL;NACHRICHT`
  * **Farben**: `PINK`, `BLUE`, `RED`, `GREEN`, `YELLOW`, `PURPLE`, `WHITE`
  * **Stile**: `SOLID`, `SEGMENTED_6`, `SEGMENTED_10`, `SEGMENTED_12`, `SEGMENTED_20`

***

## Systemnachrichten

Alle Chat-Meldungen des Plugins lassen sich am Ende der `config.yml` anpassen:

```yaml
messages:
  noperm: '&cDazu hast du keine Rechte'
  toggle:
    on: '&a%type% wurde aktiviert'
    off: '&a%type% wurde deaktiviert'
```

***

## customprefixes.yml

In dieser Datei wird das farbliche Prefix-Auswahlmenü definiert, welches Spieler mit dem Befehl `/prefix` (oder `/customprefix`) öffnen können.

### Menü-Design & Reset-Optionen

```yaml
# Anzahl der Zeilen im GUI-Menü (1-6)
gui.size: 2

# Name der GUI (unterstützt Farbcodes)
gui.name: '&aCustomPrefix'

# Lore-Beschreibungen für die Gegenstände im Menü
lore:
  selected: '&aAusgewählt'
  selectable: '&7Auswählbar'
  noperm: '&cKeine Rechte'
  preview: '&7Vorschau: &r%preview%'

# Reset-Item, mit dem Spieler ihren Custom-Prefix entfernen können
reset:
  material: BARRIER
  name: '&fReset'
  shortid: 0
  slot: 16
```

***

### Eigene Prefixes definieren (`prefixes`)

Unter dem Key `prefixes` definierst du seiten- und slotbasiert alle auswählbaren Präfix-Farben.

#### Konfigurations-Struktur:

```yaml
prefixes:
  '<Page>':
    '<Slot>':
      material: Material-Name (z.B. WHITE_STAINED_GLASS oder PLAYER_HEAD)
      name: Anzeigename des Items im Menü
      shortid: Sub-ID / Haltbarkeit des Items
      permission: Permission, die zum Auswählen benötigt wird (z. B. 'prefix.white')
      interstep: Intervall, nach wie vielen Zeichen die Farbe wechselt
      colors:
        - Liste der Farbcodes (z. B. '&f' oder HEX-Codes wie '#FF0000')
```

#### Funktionsweise & Farbeffekte:

Wenn ein Spieler einen Custom Prefix auswählt, passiert Folgendes:

1. Das Plugin nimmt den standardmäßigen Rang-Präfix (aus `config.yml`) und den Namen des Spielers.
2. Alle standardmäßigen Farbcodes werden entfernt, aber Stile wie **Fett** (`&l`) bleiben erhalten.
3. Die Zeichen des Präfixes und des Spielernamens werden nacheinander mit den Farben aus der Liste `colors` eingefärbt.
4. **`interstep`** steuert, wie viele Zeichen nacheinander dieselbe Farbe behalten, bevor die nächste Farbe aus der Liste gewählt wird.

#### Beliebte Effekte (Beispiele):

* **Klassisch Einfarbig (z. B. Weiß):** `colors: ["&f"]` mit `interstep: 1` -> Alle Zeichen werden weiß eingefärbt.
* **Farbwechsel im Intervall (z. B. Double Red):** `colors: ["&4", "&c"]` mit `interstep: 2` -> Die ersten 2 Zeichen werden dunkelrot (`&4`), die nächsten 2 rot (`&c`), dann wieder dunkelrot, usw.
* **Regenbogen-Effekt (Gradient):** `colors: ["&c", "&e", "&a", "&6", "&b"]` mit `interstep: 1` -> Jedes Zeichen erhält eine andere Farbe in zyklischer Reihenfolge.
* **HEX-Farben (Minecraft ab 1.16+):** Du kannst auch moderne RGB/Hex-Farben verwenden (z. B. `#FF0000`).

***

## playercustomprefix.yml

Diese Datei wird vom System automatisch generiert und verwaltet. Sie speichert die IDs der ausgewählten Custom Prefixes der Spieler (inklusive UUID, Seite und Slot) lokal auf dem Server, sofern keine MySQL-Anbindung aktiv ist. Sie muss nicht manuell bearbeitet werden.
