README.md aktualisiert

This commit is contained in:
2026-06-19 21:10:20 +00:00
parent a13dbf3689
commit 3c194f9e6a

783
README.md
View File

@@ -1,2 +1,783 @@
# Lasertec
# Lasertec
### Realistisches LaserTag-Minigame Plugin für Minecraft
**Version:** 3.0.0  |  **Minecraft:** Spigot / Paper 1.20.1  |  **Sprache:** Deutsch
---
## 📋 Inhaltsverzeichnis
1. [Über das Plugin](#über-das-plugin)
2. [Installation](#installation)
3. [Erste Schritte Arena einrichten](#erste-schritte--arena-einrichten)
4. [Join-Schilder einrichten](#join-schilder-einrichten)
5. [Spielmechanik erklärt](#spielmechanik-erklärt)
6. [Waffen](#waffen)
7. [Punkte-System](#punkte-system)
8. [Anti-Camp System](#anti-camp-system)
9. [Mod-Schutz (Minimap)](#mod-schutz-minimap)
10. [Scoreboard](#scoreboard)
11. [Spieler-Befehle](#spieler-befehle)
12. [Admin-Befehle](#admin-befehle)
13. [Berechtigungen](#berechtigungen)
14. [Vollständige config.yml](#vollständige-configyml)
15. [Nachrichten anpassen](#nachrichten-anpassen)
16. [Gespeicherte Dateien](#gespeicherte-dateien)
17. [Häufige Fragen & Probleme](#häufige-fragen--probleme)
---
## Über das Plugin
Lasertec ist ein **realistisches LaserTag-Minigame** das den echten LaserTag-Sport nachbildet:
- Spieler kämpfen in **4 Teams** (Rot, Blau, Grün, Gelb) gegeneinander
- Wer getroffen wird, ist **gesperrt** und muss zur eigenen Basis zurücklaufen
- An der **Basis regeneriert** man sich und kann dann wieder schießen
- Gegnerische **Basen können beschossen** werden um Extra-Punkte zu erhalten
- Das Team mit den meisten Punkten nach Ablauf der Zeit gewinnt
Das Plugin unterstützt **mehrere Arenen gleichzeitig** — jede Arena läuft als vollständig unabhängige Instanz.
---
## Installation
1. Lade die Datei `Lasertec-3.0.0.jar` herunter
2. Kopiere sie in den Ordner `plugins/` deines Servers
3. Starte den Server (oder gib `/reload confirm` ein)
4. Das Plugin erstellt automatisch den Ordner `plugins/Lasertec/` mit allen Konfigurationsdateien
5. Richte nun deine erste Arena ein (siehe nächster Abschnitt)
> **Voraussetzung:** Spigot oder Paper 1.20.1. Keine weiteren Plugins notwendig.
---
## Erste Schritte Arena einrichten
Eine Arena braucht für **jedes der vier Teams** mindestens einen Spawn-Punkt und einen Basis-Block. Folge dieser Reihenfolge:
### Schritt 1 — Arena erstellen
```
/ltadmin create MeineArena
```
Ersetze `MeineArena` mit dem gewünschten Namen (keine Leerzeichen). Das Plugin bestätigt die Erstellung und zeigt dir die nächsten Schritte an.
---
### Schritt 2 — Spawn-Punkte setzen
Stelle dich an die gewünschte Startposition und tippe den Befehl. Du kannst pro Team **mehrere Spawn-Punkte** setzen — beim Respawn wird zufällig einer gewählt.
```
/ltadmin setspawn MeineArena red
/ltadmin setspawn MeineArena blue
/ltadmin setspawn MeineArena green
/ltadmin setspawn MeineArena yellow
```
Wiederhole jeden Befehl so oft du willst um weitere Spawn-Punkte hinzuzufügen.
---
### Schritt 3 — Basen setzen
Die Basis ist der Regenerationspunkt des Teams **und gleichzeitig** der Block den Gegner anschießen können. Stelle dich direkt **auf den Block** der die Basis werden soll und tippe:
```
/ltadmin setbase MeineArena red
/ltadmin setbase MeineArena blue
/ltadmin setbase MeineArena green
/ltadmin setbase MeineArena yellow
```
> **Wichtig:** Plane einen freien Block an jeder Basis ein. Beim Spielstart wird dort automatisch ein farbiges Glas-Block platziert (z.B. rotes Glas für Team Rot). Am Spielende wird er wieder entfernt.
>
> Empfehlung: Stelle die Basis mitten in oder direkt vor dem Teambereich, so dass Spieler kurze Wege beim Heilen haben.
---
### Schritt 4 — Lobby setzen
```
/ltadmin setlobby
```
Hierher werden alle Spieler nach dem Spiel zurückgeführt. Stelle dich an den gewünschten Lobby-Spawn-Punkt.
---
### Schritt 5 — Arena aktivieren
```
/ltadmin enable MeineArena
```
Das Plugin prüft ob alle Spawns und Basen gesetzt sind. Wenn etwas fehlt, siehst du eine genaue Fehlermeldung. Ist alles korrekt, ist die Arena sofort spielbereit.
---
### Schritt 6 — Status prüfen
```
/ltadmin info MeineArena
```
Zeigt dir eine Übersicht aller gesetzten Spawns, Basen, den aktuellen Status und die Spieleranzahl.
---
### Weitere Arenen
Um eine zweite (oder dritte, vierte, ...) Arena hinzuzufügen, wiederhole einfach alle Schritte mit einem anderen Namen. Alle Arenen laufen gleichzeitig und völlig unabhängig voneinander.
```
/ltadmin create Arena2
/ltadmin setspawn Arena2 red
... usw.
```
---
## Join-Schilder einrichten
Spieler können Spielen beitreten indem sie ein Schild anklicken. Das Schild aktualisiert sich live mit dem aktuellen Status und der Spieleranzahl.
### Schild erstellen
1. Platziere ein normales Holzschild oder Wandschild
2. Schreibe auf **Zeile 1** exakt: `[Lasertec]`
3. Schreibe auf **Zeile 2** den Arenannamen (z.B. `MeineArena`)
4. Zeile 3 und 4 kannst du leer lassen — das Plugin füllt sie automatisch
Nach dem Platzieren verwandelt das Plugin das Schild automatisch in:
```
┌────────────────────┐
│ [LASERTEC] │
│ MeineArena │
│ Wartend │
│ 0/16 │
└────────────────────┘
```
### Schild-Status
| Anzeige | Bedeutung |
|---------|-----------|
| 🟢 Wartend | Spiel wartet auf Spieler, beitreten möglich |
| 🟡 Startet... | Countdown läuft, beitreten noch möglich |
| 🔴 Läuft | Spiel läuft, kein Beitritt mehr möglich |
| ⚫ Voll | Maximale Spieleranzahl erreicht |
### Schild entfernen
Einfach den Block abbauen (nur Admins können Lasertec-Schilder entfernen).
### Mehrere Schilder
Du kannst beliebig viele Schilder für jede Arena erstellen — zum Beispiel an verschiedenen Orten auf deinem Server. Alle Schilder werden in `signs.yml` gespeichert und funktionieren nach einem Server-Neustart weiter.
---
## Spielmechanik erklärt
### Ablauf eines Spiels
```
Spieler klicken Schild oder tippen /lt join
Spieler werden ihren Teams zugewiesen (automatisch ausbalanciert)
Jeder erhält seine Team-Rüstung (farbiges Leder) und alle 4 Waffen
Sobald genug Spieler da sind → Countdown (Standard: 10 Sekunden)
Spiel startet → Basen-Blöcke erscheinen an den gesetzten Positionen
Spieler schießen mit Rechtsklick auf Gegner und Gegner-Basen
Nach der Spielzeit (Standard: 5 Minuten) → Ergebnis-Anzeige
8 Sekunden Ergebnis → automatischer Reset → nächste Runde
```
---
### Die Treffer-Mechanik (Kern des Spiels)
Das ist das Herzstück von Lasertec — genau wie beim echten LaserTag:
**Wenn ein Spieler getroffen wird:**
- Er kann sofort **nicht mehr schießen**
- Sein Status wechselt zu „☠ GETROFFEN"
- Die Action-Bar zeigt: `☠ GETROFFEN Zur [Team]-Basis! (XXm)`
- Er muss zu seiner **eigenen Basis** laufen
**An der Basis:**
- Der Spieler muss sich **innerhalb von 4 Blöcken** um den Basis-Block befinden
- Die Heilung startet automatisch und dauert 2 Sekunden
- Ein Fortschrittsbalken in der Action-Bar zeigt den Heilungsfortschritt
- **Läuft der Spieler weg bevor die Heilung abgeschlossen ist, wird sie abgebrochen!**
**Nach der Heilung:**
- Der Spieler ist wieder aktiv und kann schießen
- Kurze Unverwundbarkeit (3 Sekunden) schützt vor sofortigem Wiederabschuss
---
### Basen angreifen
Jede Basis ist durch einen **farbigen Glas-Block** markiert. Gegner können diesen Block mit ihrer Waffe anschießen:
- Jeder Treffer bringt **60 Punkte** (einstellbar)
- Alle Mitglieder des angegriffenen Teams erhalten eine **Warnung**
- Der Block verändert sich optisch mit zunehmendem Schaden:
- Volle HP: Farbiges **Glas** (z.B. Rotes Glas)
- Halbe HP: **Wolle** in Teamfarbe
- Zerstört: **Obsidian**
- Nach 5 Treffern (einstellbar) ist die Basis **zerstört** → 200 Bonus-Punkte
---
### Teams
Das Plugin verteilt Spieler automatisch gleichmäßig auf die vier Teams:
| Team | Rüstungsfarbe | Basis-Block |
|------|--------------|-------------|
| 🔴 Rot | Rotes Leder | Rotes Glas |
| 🔵 Blau | Blaues Leder | Blaues Glas |
| 🟢 Grün | Grünes Leder | Grünes Glas |
| 🟡 Gelb | Gelbes Leder | Gelbes Glas |
---
## Waffen
Jeder Spieler erhält beim Spielstart **alle vier Waffen** gleichzeitig in der Hotbar. Wechseln per Mausrad, schießen per **Rechtsklick**.
### Laser-Pistole (Slot 1)
- **Schaden:** 25 pro Treffer (4 Treffer für einen Kill)
- **Reichweite:** 30 Blöcke
- **Cooldown:** 0,3 Sekunden
- **Laserstrahl:** Weißer Partikel-Strahl
- **Ideal für:** Allgemeine Kämpfe, mittlere Distanz
### Laser-Sniper (Slot 2)
- **Schaden:** 80 pro Treffer (2 Treffer für einen Kill)
- **Reichweite:** 60 Blöcke
- **Cooldown:** 2,0 Sekunden
- **Laserstrahl:** Violetter Partikel-Strahl
- **Ideal für:** Lange Distanzen, Basis-Angriffe aus der Ferne
### Laser-Shotgun (Slot 3)
- **Schaden:** 20 pro Pellet × 5 Pellets gleichzeitig
- **Reichweite:** 12 Blöcke
- **Cooldown:** 0,9 Sekunden
- **Laserstrahl:** 5 orangene Partikel-Strahlen mit Streuung
- **Ideal für:** Enge Gänge, kurze Distanz
### Rapid-Fire (Slot 4)
- **Schaden:** 12 pro Treffer (ca. 9 Treffer für einen Kill)
- **Reichweite:** 22 Blöcke
- **Cooldown:** 0,12 Sekunden
- **Laserstrahl:** Grüner Partikel-Strahl
- **Ideal für:** Dauerbeschuss, den Gegner unter Druck setzen
> Alle Waffen-Werte (Schaden, Reichweite, Cooldown) können in der `config.yml` angepasst werden.
---
## Punkte-System
### Punkte verdienen
| Aktion | Punkte |
|--------|--------|
| Gegner treffen (Kill) | +100 |
| Gegner-Basis anschießen | +60 |
| Gegner-Basis zerstören (Bonus) | +200 |
| 3er Kill-Serie Bonus | +50 |
| 5er Kill-Serie Bonus | +100 |
| 10er Kill-Serie Bonus | +250 |
### Punkte verlieren
| Aktion | Punkte |
|--------|--------|
| Campen (Anti-Camp Strafe) | 10 pro Sekunde |
### Kill-Serien
Wenn du mehrere Gegner hintereinander triffst ohne selbst getroffen zu werden, wird eine Kill-Serie gestartet:
- **3 in Folge:** `§6TRIPLE KILL!` — Ankündigung an alle + 50 Bonus-Punkte
- **5 in Folge:** `§bPENTA KILL!` — Ankündigung an alle + 100 Bonus-Punkte
- **10 in Folge:** `§5§lGODLIKE!` — Ankündigung an alle + 250 Bonus-Punkte
Die Serie wird zurückgesetzt wenn man selbst getroffen wird.
### Spielende
Das Team mit den meisten **Gesamt-Punkten** (Kills + Basis-Angriffe) gewinnt. Bei Gleichstand wird „Unentschieden" angezeigt. Nach dem Spiel werden die Statistiken dauerhaft in `stats.yml` gespeichert.
---
## Anti-Camp System
Campen ist verboten. Das Plugin erkennt automatisch Spieler die sich zu lange nicht bewegen und bestraft sie.
### Wie es funktioniert
1. Das Plugin prüft jede Sekunde ob ein Spieler sich bewegt hat
2. Hat er sich weniger als **5 Blöcke** (einstellbar) bewegt, gilt das als „still stehen"
3. Nach **5 Sekunden** (einstellbar) Stillstand erscheint eine Warnung
4. Nach **15 Sekunden** (einstellbar) beginnt der Punkte-Abzug: **10 Punkte pro Sekunde**
### Ausnahmen (kein Anti-Camp)
- Spieler die **getroffen wurden** und warten müssen → ausgenommen
- Spieler die sich **an ihrer Basis heilen** (innerhalb von 8 Blöcken) → ausgenommen
### Einstellbare Modi
In der `config.yml` unter `anti-camp.action` kannst du das Verhalten wählen:
| Modus | Beschreibung |
|-------|-------------|
| `WARN_ONLY` | Nur Warnung, kein Punkte-Abzug |
| `WARN_THEN_PUNISH` | Warnung, dann Punkte-Abzug (Standard) |
| `PUNISH_ONLY` | Direkt Punkte-Abzug ohne vorherige Warnung |
### Action-Bar Anzeige
Wenn sich ein Spieler lange nicht bewegt, erscheint in der Action-Bar ein roter Fortschrittsbalken:
```
Kills: 3 Punkte: 300 Team: Rot Zeit: 3:45 | Camp: ████░░
```
Der Balken füllt sich bis zur Strafe.
---
## Mod-Schutz (Minimap)
Das Plugin enthält Maßnahmen gegen Minimap-Mods wie **Xaero's Minimap**, **VoxelMap** und ähnliche.
### Was das Plugin tut
**Fog-of-War:**
Spieler die weiter als **48 Blöcke** (einstellbar) entfernt sind, werden für andere Spieler unsichtbar gemacht. Da Minimap-Mods nur sehen können was der Spieler selbst sieht, erscheinen diese Gegner **nicht auf der Karte**. Das eigene Team bleibt immer sichtbar.
**Nametags verstecken:**
Die Spielernamen über den Köpfen der Gegner werden ausgeblendet. Mods die Spielernamen auf der Minimap anzeigen können diese damit nicht mehr lesen.
**Tab-Liste anpassen:**
Die echten Spielernamen in der Tab-Liste werden durch Team-Tags ersetzt (z.B. `[R] SpielerName`). Das verhindert dass Mods Positionen über die Tab-Liste auslesen.
### Was das Plugin nicht verhindern kann
Ohne externe Bibliotheken (ProtocolLib) ist es technisch nicht möglich:
- Chunk-basierte Karten vollständig zu blockieren
- F3-Koordinaten zu verstecken (das ist clientseitig)
- Die Minimap komplett zu deaktivieren
Für maximalen Schutz empfehlen wir zusätzlich ein **Anticheat-Plugin** sowie Serverregeln die Minimap-Mods ausdrücklich verbieten.
### Einstellungen
Alle Mod-Schutz-Optionen können in der `config.yml` unter `mod-protection` ein- und ausgeschaltet werden. Den aktuellen Status siehst du mit:
```
/ltadmin modinfo
```
---
## Scoreboard
Das Scoreboard wird während des Spiels rechts im Bildschirm angezeigt und aktualisiert sich jede Sekunde.
```
╔═════════════════════╗
║ ⚡ LASERTEC ║
║ ─────────────────── ║
║ ⏰ Zeit: 3:47 ║
║ ─────────────────── ║
║ Team-Punkte: ║
║ ● Rot | 520pts |█████║
║ ● Blau | 380pts |████░║
║ ● Grün | 240pts |███░░║
║ ● Gelb | 100pts |█░░░░║
║ ─────────────────── ║
║ Status: ✔ Aktiv ║
║ Kills: 4 | Tode: 1 ║
║ Punkte: 460 ║
║ 🔥 Serie: ×4 ║
║ ─────────────────── ║
║ www.lasertec.de ║
╚═════════════════════╝
```
**Erklärung der Einträge:**
- **Zeit** — Verbleibende Spielzeit
- **Team-Punkte** — Alle vier Teams sortiert nach Punkten mit Basis-HP-Balken
- **Status** — `✔ Aktiv` wenn spielbereit, `☠ Getroffen` oder `⚕ Heilend` wenn gesperrt
- **Kills / Tode** — Eigene Statistik in dieser Runde
- **Punkte** — Eigene Gesamtpunkte in dieser Runde
- **Serie** — Aktuelle Kill-Serie (erscheint nur ab 3 in Folge)
---
## Spieler-Befehle
| Befehl | Beschreibung |
|--------|-------------|
| `/lt join` | Tritt dem am besten gefüllten verfügbaren Spiel bei |
| `/lt join <Arena>` | Tritt einer bestimmten Arena bei |
| `/lt leave` | Verlässt das aktuelle Spiel |
| `/lt list` | Zeigt alle Arenen mit Status und Spieleranzahl |
| `/lt stats` | Zeigt deine persönlichen Gesamt-Statistiken |
| `/lt top` | Zeigt die Top-10 Spieler nach Gesamtpunkten |
| `/lt help` | Zeigt die Befehlsübersicht |
**Aliase:** `/lasertec` und `/laser` funktionieren genauso wie `/lt`
### Statistik-Anzeige (`/lt stats`)
```
════════════════════════════
⚡ DEINE STATISTIKEN
════════════════════════════
Spiele gespielt: 47
Kills gesamt: 312
Tode gesamt: 198
K/D-Ratio: 1.58
Punkte gesamt: 34.750
Beste Kill-Serie: 8
Basis-Angriffe: 63
════════════════════════════
```
---
## Admin-Befehle
Alle Admin-Befehle erfordern die Berechtigung `lasertec.admin` (Standard: OP).
### Arena-Verwaltung
| Befehl | Beschreibung |
|--------|-------------|
| `/ltadmin create <Name>` | Erstellt eine neue Arena |
| `/ltadmin delete <Name>` | Löscht eine Arena dauerhaft |
| `/ltadmin enable <Name>` | Aktiviert eine fertig eingerichtete Arena |
| `/ltadmin disable <Name>` | Deaktiviert eine Arena (Spieler können nicht mehr beitreten) |
| `/ltadmin info <Name>` | Zeigt alle Details einer Arena (Spawns, Basen, Status) |
### Spawn & Basis setzen
| Befehl | Beschreibung |
|--------|-------------|
| `/ltadmin setspawn <Arena> <Team>` | Setzt einen Spawn-Punkt an deiner Position (Teams: `red`, `blue`, `green`, `yellow`) |
| `/ltadmin setbase <Arena> <Team>` | Setzt den Basis-Block an deiner Position |
| `/ltadmin setlobby` | Setzt den Lobby-Spawn an deiner Position |
### Spiel-Steuerung
| Befehl | Beschreibung |
|--------|-------------|
| `/ltadmin forcestart <Arena>` | Startet den Countdown oder das Spiel sofort |
| `/ltadmin forcestop <Arena>` | Beendet das laufende Spiel sofort |
### Weitere Befehle
| Befehl | Beschreibung |
|--------|-------------|
| `/ltadmin reload` | Lädt die `config.yml` neu (kein Server-Neustart nötig) |
| `/ltadmin modinfo` | Zeigt den Status des Mod-Schutzes und was er leistet |
| `/ltadmin signs` | Zeigt wie viele Join-Schilder registriert sind |
| `/ltadmin help` | Zeigt alle Admin-Befehle |
---
## Berechtigungen
| Permission | Standard | Beschreibung |
|-----------|---------|-------------|
| `lasertec.play` | Alle Spieler | Darf Spielen beitreten und Spieler-Befehle nutzen |
| `lasertec.admin` | OP | Darf alle Admin-Befehle nutzen und Schilder erstellen/entfernen |
Berechtigungen können über jedes Permissions-Plugin (z.B. LuckPerms) vergeben werden:
```
# Beispiel LuckPerms — Spieler-Gruppe
/lp group default permission set lasertec.play true
# Beispiel LuckPerms — Admin-Gruppe
/lp group admin permission set lasertec.admin true
```
---
## Vollständige config.yml
Die Datei befindet sich unter `plugins/Lasertec/config.yml`. Nach Änderungen kannst du `/ltadmin reload` nutzen — **kein Server-Neustart erforderlich.**
```yaml
# ============================================================
# LASERTEC v3.0 — Vollständige Konfiguration
# Alle Werte hier können ohne Neustart geändert werden:
# /ltadmin reload
# ============================================================
# ── Allgemeines ──────────────────────────────────────────────
messages:
prefix: "§8[§b§lLASERTEC§8] §r"
lobby:
location: null # Wird per /ltadmin setlobby gesetzt
# ── Spiel-Grundeinstellungen ─────────────────────────────────
game:
game-duration: 300 # Spielzeit in Sekunden
countdown: 10 # Countdown-Sekunden vor Spielstart
min-players: 2 # Mindestspieler (alle Teams zusammen)
max-players-per-team: 4 # Max. Spieler pro Team (×4 = 16 gesamt)
end-display-time: 8 # Sekunden bis Reset nach Spielende
# ── Respawn / Hit-Mechanik ───────────────────────────────────
heal:
base-heal-time: 2 # Sekunden an der Basis zum Heilen
base-radius: 4.0 # Radius um Basis-Block zum Heilen (in Blöcken)
invincible-after-heal: true # Kurze Unverwundbarkeit nach Heilung
invincible-duration: 60 # Ticks Unverwundbarkeit (60 Ticks = 3 Sekunden)
# ── Punkte-System ────────────────────────────────────────────
scoring:
kill-points: 100 # Punkte für Treffer auf Gegner
base-attack-points: 60 # Punkte für Treffer auf Gegnerbasis
base-destroy-bonus: 200 # Bonus wenn Basis vollständig zerstört wird
streak-3-bonus: 50 # Extra-Punkte bei 3er Kill-Serie
streak-5-bonus: 100 # Extra-Punkte bei 5er Kill-Serie
streak-10-bonus: 250 # Extra-Punkte bei 10er Kill-Serie
# ── Basen ────────────────────────────────────────────────────
base:
health: 5 # Treffer bis Basis zerstört
warn-at-hp: 2 # Team warnen wenn Basis-HP auf diesen Wert fällt
regenerate: false # Basis-HP regenerieren während des Spiels?
regenerate-interval: 60 # Sekunden zwischen Regeneration (wenn aktiviert)
# ── Anti-Camp System ─────────────────────────────────────────
anti-camp:
enabled: true
max-idle-seconds: 15 # Max. Sekunden an gleicher Stelle
idle-radius: 5.0 # Radius in Blöcken: weniger = "steht still"
action: WARN_THEN_PUNISH # WARN_ONLY | WARN_THEN_PUNISH | PUNISH_ONLY
warn-message: "§c⚠ CAMPEN VERBOTEN! Bewege dich oder verliere Punkte!"
score-penalty: 10 # Punkte-Abzug pro Sekunde beim Campen
warn-duration: 5 # Sekunden Warnung bevor Strafe beginnt
exclude-base-radius: 8.0 # Basisbereich von Anti-Camp ausschließen
warn-sound: BLOCK_NOTE_BLOCK_BASS
warn-sound-pitch: 0.5
# ── Minimap / Mod-Schutz ─────────────────────────────────────
mod-protection:
enabled: true
fog-of-war: true # Spieler außerhalb Radius unsichtbar machen
fog-radius: 48 # Sichtbarer Radius in Blöcken
arena-barrier: true
hide-coordinates: true
hide-from-tab: true # Spieler aus normaler Tab-Liste entfernen
hide-nametags: true # Spieler-Nametags im Spiel verbergen
strict-invisibility: true
# ── Join-Schild ──────────────────────────────────────────────
join-sign:
trigger-line: "[Lasertec]" # Erste Zeile des Schilds (exakt so schreiben!)
color-waiting: "§a" # Grün = Wartend
color-starting: "§e" # Gelb = Startet
color-running: "§c" # Rot = Läuft
color-full: "§8" # Grau = Voll
update-interval: 20 # Schild-Update in Ticks (20 = 1 Sekunde)
# ── Waffen ───────────────────────────────────────────────────
weapons:
laser-gun:
enabled: true
display-name: "§b⚡ Laser-Pistole"
damage: 25
range: 30
cooldown-ms: 300
pellets: 1
particle: END_ROD
description: "Standard-Waffe. Zuverlässig & schnell."
sniper:
enabled: true
display-name: "§5🎯 Laser-Sniper"
damage: 80
range: 60
cooldown-ms: 2000
pellets: 1
particle: DRAGON_BREATH
description: "Hoher Schaden, lange Reichweite."
shotgun:
enabled: true
display-name: "§6💥 Laser-Shotgun"
damage: 20
range: 12
cooldown-ms: 900
pellets: 5
particle: FLAME
description: "5 Pellets gleichzeitig, kurze Reichweite."
rapid-fire:
enabled: true
display-name: "§a⚡⚡ Rapid-Fire"
damage: 12
range: 22
cooldown-ms: 120
pellets: 1
particle: CRIT
description: "Niedrig Schaden, sehr hohe Feuerrate."
# ── Sounds ───────────────────────────────────────────────────
sounds:
enabled: true # Alle Sounds auf einmal an/aus
shoot: ENTITY_FIREWORK_ROCKET_BLAST
shoot-pitch: 1.8
shoot-volume: 0.4
hit-shooter: BLOCK_NOTE_BLOCK_BELL
hit-shooter-pitch: 2.0
hit-victim: ENTITY_PLAYER_HURT
heal-start: BLOCK_ENCHANTMENT_TABLE_USE
heal-complete: ENTITY_EXPERIENCE_ORB_PICKUP
heal-complete-pitch: 1.5
base-hit: ENTITY_GENERIC_EXPLODE
game-start: ENTITY_ENDER_DRAGON_GROWL
game-end: UI_TOAST_CHALLENGE_COMPLETE
countdown-tick: BLOCK_NOTE_BLOCK_PLING
warning: BLOCK_NOTE_BLOCK_BASS
streak-3: BLOCK_BELL_USE
streak-5: ENTITY_PLAYER_LEVELUP
streak-10: ENTITY_LIGHTNING_BOLT_THUNDER
# ── Partikel ─────────────────────────────────────────────────
particles:
enabled: true # Alle Partikel auf einmal an/aus
laser-trail: true # Partikel-Strahl beim Schuss
hit-effect: true # Partikel-Explosion beim Treffer
hit-particle-count: 15 # Anzahl der Treffer-Partikel
base-hit-effect: true # Explosion-Partikel beim Basisangriff
heal-effect: true # Partikel beim Abschluss der Heilung
# ── Scoreboard ───────────────────────────────────────────────
scoreboard:
enabled: true
title: "§b§l⚡ LASERTEC"
show-team-scores: true
show-base-health: true
show-kill-streak: true # Nur bei Streak ≥ 3 anzeigen
show-player-status: true
update-interval: 20 # Ticks zwischen Updates
```
---
## Nachrichten anpassen
Alle Spieler-Nachrichten können in der `config.yml` unter `text:` angepasst werden. Platzhalter werden automatisch ersetzt.
| Schlüssel | Platzhalter | Beschreibung |
|-----------|------------|-------------|
| `join` | `{player}`, `{team}` | Wenn ein Spieler beitritt |
| `leave` | `{player}` | Wenn ein Spieler das Spiel verlässt |
| `game-start` | — | Spielstart-Ankündigung |
| `game-end` | `{team}` | Sieger-Ankündigung |
| `game-draw` | — | Bei Unentschieden |
| `hit-shooter` | `{victim}`, `{pts}`, `{streak}` | Nachricht an den Schützen |
| `hit-victim` | `{shooter}` | Nachricht an den Getroffenen |
| `heal-start` | `{secs}` | Heilung gestartet |
| `heal-interrupted` | — | Heilung abgebrochen |
| `heal-complete` | — | Heilung abgeschlossen |
| `base-attacked` | `{hp}`, `{max}` | Basis unter Beschuss |
| `base-destroyed` | `{team}` | Basis zerstört |
| `time-60` / `time-30` / `time-10` | — | Zeitmeldungen |
| `streak-3` / `streak-5` / `streak-10` | `{player}` | Kill-Serien |
**Farb-Codes** werden mit `§` eingegeben (z.B. `§a` = Grün, `§c` = Rot, `§e` = Gelb, `§b` = Cyan, `§6` = Orange).
---
## Gespeicherte Dateien
Das Plugin legt folgende Dateien im Ordner `plugins/Lasertec/` an:
| Datei | Inhalt | Wann bearbeiten |
|-------|--------|----------------|
| `config.yml` | Alle Spieleinstellungen | Jederzeit, dann `/ltadmin reload` |
| `arenas.yml` | Arena-Positionen (Spawns, Basen) | Wird automatisch gespeichert |
| `signs.yml` | Positionen aller Join-Schilder | Wird automatisch gespeichert |
| `stats.yml` | Spieler-Statistiken (dauerhaft) | Wird automatisch gespeichert |
> **Achtung:** `arenas.yml` und `signs.yml` bitte nicht manuell bearbeiten, da die Positionen in einem speziellen Format gespeichert werden. Nutze stattdessen die Admin-Befehle.
---
## Häufige Fragen & Probleme
**„Arena nicht bereit" beim Aktivieren**
→ Tippe `/ltadmin info <Arena>` — das Plugin zeigt dir genau was noch fehlt.
Häufigste Ursache: Ein oder mehrere Teams haben noch keinen Spawn oder keine Basis gesetzt.
---
**Spieler können der Arena nicht beitreten**
→ Prüfe mit `/lt list` ob die Arena als `✔ Aktiv` angezeigt wird.
→ Stelle sicher dass du `/ltadmin enable <Arena>` ausgeführt hast.
→ Prüfe ob die maximale Spieleranzahl bereits erreicht ist.
---
**Der Basis-Block erscheint nicht beim Spielstart**
→ Das ist kein Fehler — der Block erscheint nur wenn das Spiel **aktiv läuft**, nicht beim Setup.
→ Stelle sicher dass der Bereich an der Basis-Position nicht durch andere Blöcke blockiert wird.
---
**Spieler heilen nicht an der Basis**
→ Der Spieler muss sich innerhalb von **4 Blöcken** (einstellbar: `heal.base-radius`) um den gesetzten Basis-Punkt befinden.
→ Prüfe mit `/ltadmin info <Arena>` ob die Basis korrekt gesetzt ist.
→ Die Heilung bricht ab wenn der Spieler sich zu weit entfernt — er muss stillhalten.
---
**Anti-Camp bestraft Spieler an der Basis**
→ Erhöhe den Wert `anti-camp.exclude-base-radius` in der `config.yml`. Standard ist 8 Blöcke. Stelle sicher dass dieser Radius größer als `heal.base-radius` ist.
---
**Das Schild wird nicht erkannt**
→ Zeile 1 muss exakt `[Lasertec]` lauten (Groß-/Kleinschreibung egal, aber Klammern und Schreibweise müssen stimmen).
→ Zeile 2 muss exakt den Arenannamen enthalten, wie er mit `/ltadmin create` angelegt wurde.
→ Der Spieler der das Schild erstellt muss die Berechtigung `lasertec.admin` haben.
---
**Änderungen in der config.yml wirken nicht**
→ Führe `/ltadmin reload` aus. Laufende Spiele übernehmen neue Werte erst bei der nächsten Runde.
---
**Spieler verlassen das Spiel nicht richtig (Inventar bleibt)**
→ Das Inventar wird beim Verlassen (`/lt leave`) oder bei Server-Disconnect automatisch wiederhergestellt.
→ Sollte das nicht klappen: `/ltadmin forcestop <Arena>` beendet das Spiel für alle Spieler sofort.
---
*Lasertec v1.0.0 — Spigot / Paper 1.20.1*