# Config-Übersicht

Struktur der Konfigurationsdateien von CoreEngine. Jede Datei lässt sich direkt bearbeiten, für die meisten Änderungen reicht danach `/coreengine reload` statt eines Server-Neustarts.

## Hauptkonfiguration (config.yml)

Speicherort: `plugins/CoreEngine/config.yml`

Diese Datei enthält nur gemeinsame Grundeinstellungen. Feature-spezifische Einstellungen liegen in den einzelnen Dateien unter `plugins/CoreEngine/modules/`.

Wichtigste Bereiche:

```yaml
general:
  # Sekunden bis Bestätigungen (z.B. Shop-Käufe) ablaufen
  confirmation-timeout: 30

economy:
  # Startguthaben für neue Accounts
  start-balance: 1000.0
  # Währungsname und Symbol
  currency-name: "Coin"
  currency-name-plural: "Coins"
  currency-symbol: "⛃"
  # Grenzen und Mindestbetrag
  max-balance: 1000000000.0
  min-transfer: 0.01
  # Einträge pro /baltop-Seite
  baltop-entries-per-page: 10

cooldown:
  # Fallback-Cooldown für Commands ohne eigenen Wert
  default: 0
  # Cooldowns für zentrale Commands (Modul-Cooldowns stehen in modules/*.yml)
  commands:
    pay: 1

cost:
  # Kosten für zentrale Commands (0 = kostenlos)
  commands: {}

warmup:
  # Standard-Wartezeit für alle Teleport-Commands
  default:
    duration: 3
    cancel-on-move: true
    display: actionbar
    particles:
      enabled: true
      type: PORTAL
      count: 10
      radius: 0.5
  # Warmups für zentrale Commands
  commands: {}
```

## Modul-Konfigurationen (modules/*.yml)

Speicherort: `plugins/CoreEngine/modules/<modul>.yml`

Jede Moduldatei lässt sich per `enabled: true/false` ein- oder ausschalten. Viele Module haben zusätzlich eigene `cooldown`, `cost` und `warmup`-Einstellungen im gleichen Format wie in `config.yml`.

| Moduldatei | Kategorie | Wichtigste Einstellungen |
|---|---|---|
| `afk.yml` | AFK | Auto-AFK-Timeout, AFK-Kick-Zeit, Broadcast, Tabliste-Deko, Anti-AFK-Machine-Erkennung |
| `betterhud.yml` | Integration | BetterHud-PopUp-Integration für Economy und Teams |
| `chat.yml` | Chat | Chat-Format, Anzeigename, LuckPerms-Integration, Nexo-Glyphs, Team/Allianz-Chat |
| `holograms.yml` | Hologramme | Sichtweite, Zeilenabstand, Placeholder-Update-Takt, Textschatten, Hintergrund |
| `homes.yml` | Homes | Home-Limit, Namenslänge, Welt-Sperrliste, Cooldown, Kosten, Warmup |
| `jobs.yml` | Jobs | Max. Jobs, Leveling, Quests, Boosts, dynamische Bezahlung, Integrationen, Job-Shop, Exploit-Schutz |
| `joinleave.yml` | Join/Leave | Join/Leave-Texte, MOTD, Sounds, Titel, Actionbar, Vanish-Unterdrückung |
| `messaging.yml` | Nachrichten | Formate für private Nachrichten, maximale Nachrichtenlänge |
| `mobteleport.yml` | Mob Teleport | Radius, Leash-Wiederanbindung, Unverwundbarkeit, Entity-Filter, Regionsschutz |
| `moderation.yml` | Moderation | Warn-Aktionen, Jail-Regeln, CommandSpy-Sperrliste, Vanish |
| `nick.yml` | Nicknames | Nick-Länge, Farben, Formatierung |
| `permissions.yml` | Command-Sichtbarkeit | Tab-Vervollständigung nur mit berechtigten Commands, Namespace-Duplikate ausblenden |
| `rtp.yml` | Random Teleport | Radius, Höhenbereich, Versuche, Weltgrenze, Biom, Warteschlange, Claim-Schutz, Kosten |
| `shop.yml` | Chest Shops | Shop-Limit, Hopper-Schutz, Preisgrenzen, Steuer, Sounds, Integrationen |
| `sleep.yml` | Sleep | Sleep-Prozentsatz, Skip-Geschwindigkeit, AFK-Ausschluss, Welt-Modus |
| `spawn.yml` | Spawn | First-Spawn, Respawn-Logik, Cooldown, Kosten, Warmup |
| `stations.yml` | Stations | Virtuelle Workstation-Commands, Hub-Menü |
| `tab.yml` | Tabliste | Tab-Name, LuckPerms-Integration, Nexo-Glyphs, optionales festes Tab-Layout |
| `team.yml` | Teams | Limits, Ränge, Team-Level, Punktestand, Bank, Menü, CoreProtect-Logging |
| `teleport.yml` | Teleport | Sicherheitscheck, Kampf-Sperre, Back-Positionen, Cooldown, Kosten, Warmup |
| `tpa.yml` | TPA | Anfrage-Timeout, Distanzlimit, Cross-Dimension, Cooldown, Kosten, Warmup |
| `utility.yml` | Utility | God-Persistenz, Near-Radius, abschaltbare Util-Commands, Kosten/Cooldowns |
| `warps.yml` | Warps | Namenslänge, Cooldown, Kosten, Warmup |
| `websession.yml` | Web Interface | Konfiguration des Web-Interfaces für `/cweb` |
| `world.yml` | World | Gamerule-Menü, eigene Gamerule-Presets |
| `worldspawn.yml` | World Spawn | Schalter für `/setworldspawn` |

### Gemeinsame Struktur aller Module

```yaml
enabled: true  # Aktiviert/deaktiviert das komplette Modul

# Command-spezifische Cooldowns (Sekunden, 0 = deaktiviert)
cooldown:
  commands:
    home: 5
    warp: 3

# Command-spezifische Kosten (Economy, 0 = kostenlos)
cost:
  commands:
    home: 0
    rtp: 100.0

# Command-spezifische Warmups (Wartezeit vor Aktion/Teleport)
warmup:
  commands:
    home:
      duration: 2
      cancel-on-move: true
      display: actionbar
      particles:
        enabled: true
        type: PORTAL
```

> **Hinweis:** Über Bypass-Permissions lassen sich diese Einschränkungen umgehen: `cooldown.bypass.<command>`, `cost.bypass.<command>` und `warmup.bypass.<command>` (oder `.*` für alle Commands eines Moduls).

## Nachrichten (messages.yml)

Speicherort: `plugins/CoreEngine/messages.yml`

Alle Texte, die Spieler zu sehen bekommen, sind hier zentral im MiniMessage-Format hinterlegt (Farben wie `<red>`, `<bold>`, `<blue>` usw.) und lassen sich frei anpassen.

> **Tipp:** Nach Änderungen an `messages.yml` reicht `/coreengine reload`, ein Neustart ist nicht nötig.

## Jobs: eigene Definitionsdateien

Jobs sind ein Sonderfall: Zusätzlich zu `modules/jobs.yml` (allgemeine Job-Einstellungen) hat jeder Beruf eine eigene Datei unter `modules/jobs/`, zum Beispiel `miner.yml` oder `farmer.yml`.

```yaml
name: "Miner"
color: "<#FFB400>"           # Hex-Farbe
short-name: "MIN"
icon: "DIAMOND_PICKAXE"
description: "Mine ores for profit"
max-level: 100
actions:
  BREAK:
    DIAMOND_ORE:
      money: 10.0
      xp: 5.0
    COAL_ORE:
      money: 2.0
      xp: 1.0
titles:
  "1": "Novice Miner"
  "25": "Expert Miner"
level-up-rewards:
  "10": "give <player> diamond 5"
```

`modules/jobs.yml` steuert die allgemeinen Einstellungen:

```yaml
enabled: true
jobs:
  max-jobs: 2              # Max. gleichzeitig aktive Jobs pro Spieler
  leveling:
    max-level: 100
    xp-per-level: 100.0
  quests:
    enabled: true
    daily-reset: "00:00"
  boosts:
    enabled: true
  dynamic-pay:
    enabled: true
    player-count-multiplier: 0.5
  shop:
    enabled: true
```
