> ## Documentation Index
> Fetch the complete documentation index at: https://simplecloud.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurators

> Automatische Serverkonfiguration basierend auf Server-Software

## Was Configurators tun

Configurators bearbeiten Server-Software-Dateien während der Vorbereitung. Sie setzen Werte wie Ports, Forwarding-Secrets, Online-Mode und Spielerlimits, bevor der Serverprozess startet.

Der Serverhost lädt Configurators aus `options/configurators/{name}.yml`. Eine Gruppe oder ein persistenter Server wählt den Configurator über die Blueprint-Einstellungen.

## Configurator-Struktur

Jeder Configurator hat eine `paths`-Liste. Jeder Eintrag nennt eine Datei, den Dateityp und die Daten, die geschrieben oder gemergt werden sollen.

```yaml theme={null}
# options/configurators/paper_velocity.yml
paths:
  - path: "server.properties"
    type: "PROPERTIES"
    data:
      server-ip: "0.0.0.0"
      server-port: %port%
      max-players: %max-players%
      online-mode: false

  - path: "config/paper-global.yml"
    type: "YML"
    data:
      proxies:
        velocity:
          enabled: "true"
          online-mode: "true"
          secret: "%forwarding-secret%"
```

## Unterstützte Dateitypen

| Typ          | Verwendung                                                          |
| ------------ | ------------------------------------------------------------------- |
| `YML`        | YAML-Dateien wie `config.yml`, `spigot.yml` oder `paper-global.yml` |
| `PROPERTIES` | Java-`.properties`-Dateien wie `server.properties`                  |
| `TOML`       | TOML-Dateien wie `velocity.toml`                                    |
| `JSON`       | JSON-Konfigurationsdateien                                          |
| `TXT`        | Textdateien wie `forwarding.secret`                                 |

## Platzhalter

Configurators verwenden Prozent-Platzhalter. Der Serverhost ersetzt sie, bevor er die YAML-Datei liest.

| Platzhalter                 | Beschreibung                              |
| --------------------------- | ----------------------------------------- |
| `%port%`                    | Zugewiesener Server-Port                  |
| `%group%`                   | Gruppenname                               |
| `%numerical-id%`            | Numerische Server-ID innerhalb der Gruppe |
| `%type%`                    | Servertyp                                 |
| `%min-memory%`              | Minimaler Speicher in MB                  |
| `%max-memory%`              | Maximaler Speicher in MB                  |
| `%max-players%`             | Maximale Spielerzahl                      |
| `%forwarding-secret%`       | Proxy-Forwarding-Secret                   |
| `%velocity-config-version%` | Velocity-Config-Version, wenn verfügbar   |

Server- und Blueprint-Properties können ebenfalls als Platzhalter bereitgestellt werden. Halte eigene Property-Namen stabil, damit Templates und Configurators nicht auseinanderlaufen.

## Velocity-Beispiel

```yaml theme={null}
# options/configurators/velocity.yml
paths:
  - path: "velocity.toml"
    type: "TOML"
    data:
      bind: "0.0.0.0:%port%"
      show-max-players: %max-players%
      forwarding-secret-file: "forwarding.secret"
      player-info-forwarding-mode: "MODERN"

  - path: "forwarding.secret"
    type: "TXT"
    data: "%forwarding-secret%"
```

## Eingebaute Configurators

| Configurator        | Zweck                                                     |
| ------------------- | --------------------------------------------------------- |
| `spigot`            | Spigot oder Paper hinter einem BungeeCord-ähnlichen Proxy |
| `spigot_standalone` | Eigenständiger Spigot- oder Paper-Server                  |
| `paper_velocity`    | Paper hinter Velocity Modern Forwarding                   |
| `velocity`          | Velocity-Proxy                                            |
| `bungeecord`        | BungeeCord-Proxy                                          |
| `waterfall`         | Waterfall-Proxy                                           |
| `luckperms`         | LuckPerms-Storage-Konfiguration                           |

## Configurator anwenden

Die Standard-Setup-Action ruft `configurate` mit dem konfigurierten Blueprint-Wert auf:

```yaml theme={null}
- name: configurate-server
  uses: simplecloud/configurate
  with:
    configurator: "{{ runtime.configurator }}"
    dir: "{{ runtime.server-dir }}"
```

## Fehlerbehebung

<AccordionGroup>
  <Accordion title="Konfiguration wird nicht angewendet">
    Prüfe, ob der Blueprint den erwarteten Configurator-Namen auswählt und ob `options/configurators/{name}.yml` auf dem Serverhost existiert.
  </Accordion>

  <Accordion title="Ein Platzhalter bleibt in der generierten Datei">
    Verwende Prozent-Syntax wie `%port%`, nicht `{{port}}`. Prüfe außerdem, ob die Runtime den verwendeten Platzhalter wirklich bereitstellt.
  </Accordion>

  <Accordion title="Der Configurator kann nicht gelesen werden">
    Prüfe, ob jeder Eintrag `path`, großgeschriebenes `type` und `data` enthält. `type` muss einer von `YML`, `PROPERTIES`, `TOML`, `JSON` oder `TXT` sein.
  </Accordion>
</AccordionGroup>
