> For the complete documentation index, see [llms.txt](https://chatsystem-wiki.gitbook.io/chatsystem-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chatsystem-wiki.gitbook.io/chatsystem-wiki/chat-system-funktionen/report-system-+-chatroom.md).

# Report System + Chatroom

#### 📊 REPORT SYSTEM

**Reporting a player:**

text

```
/report Rocky_QDH Hacking
```

→ Creates report against Rocky\_QDH with reason "Hacking"\
→ All admins are notified\
→ Report gets unique ID (e.g. #a1b2c3d4)

**Report GUI:**

text

```
/reports
```

→ Opens GUI with all OPEN reports\
→ Each report shows: Reporter, Reported, Reason, Time\
→ Click on report opens detail view

**Report Detail GUI:**

* 🗣️ **Left head:** Reporter (player head)
* 🗣️ **Right head:** Reported (player head)
* 📄 **Center:** All info (reason, date, status)
* 🟢 **Green wool:** ACCEPT report
* 🔴 **Red wool:** DENY report
* 🚫 **Barrier:** CLOSE report
* ⬅️ **Arrow:** Back to list

**What happens on ACCEPT?**\
→ PRIVATE REPORT-CHAT is created\
→ Admin gets the password\
→ Reporter gets invitation with \[Join] button\
→ Both can now communicate in private chat

**What happens on DENY?**\
→ Reporter gets message: "Your report was denied"\
→ Report status set to DENIED

**What happens on CLOSE?**\
→ Report status set to CLOSED\
→ If report-chat exists, it gets closed

#### 📊 REPORT CHATROOM

**Auto-creation:**

1. Admin clicks "Accept" in GUI
2. System creates chatroom with RANDOM PASSWORD (e.g. `Kx7mPq2Rt9`)
3. Admin auto-joined to chat
4. Reporter gets invitation

**Password delivery:**\
→ Password is CLICKABLE (click = copy)\
→ Admin sees: `Report-Chat created! Password: Kx7mPq2Rt9`\
→ Reporter sees: `Your report was accepted! Password: Kx7mPq2Rt9`

**Chat behavior:**\
→ While in report-chat, ALL normal messages go ONLY to report-chat\
→ Other players DON'T see these messages\
→ Leave chat to write normally again

**Invitations:**\
→ `/reportchat invite Player` sends clickable \[Join] \[Ignore] buttons\
→ Invited players don't need password

**Player limit:**\
→ `/reportchat playerlimit 5` limits to 5 players\
→ `-1` = unlimited

***

#### 📊 REPORT SYSTEM

**Spieler melden:**

text

```
/report Rocky_QDH Hacking
```

→ Erstellt einen Report gegen Rocky\_QDH mit Grund "Hacking"\
→ Alle Admins werden benachrichtigt\
→ Der Report bekommt eine eindeutige ID (z.B. #a1b2c3d4)

**Report-GUI:**

text

```
/reports
```

→ Öffnet ein GUI mit allen OFFENEN Reports\
→ Jeder Report zeigt: Reporter, Gemeldeter, Grund, Zeit\
→ Klick auf einen Report öffnet die Detail-Ansicht

**Report-Detail-GUI:**

* 🗣️ **Kopf links:** Reporter (Spieler-Kopf)
* 🗣️ **Kopf rechts:** Gemeldeter (Spieler-Kopf)
* 📄 **Mitte:** Alle Infos (Grund, Datum, Status)
* 🟢 **Grüne Wolle:** Report ANNEHMEN
* 🔴 **Rote Wolle:** Report ABLEHNEN
* 🚫 **Barriere:** Report SCHLIEẞEN
* ⬅️ **Pfeil:** Zurück zur Liste

**Was passiert beim ANNEHMEN?**\
→ Ein PRIVATER REPORT-CHAT wird erstellt\
→ Der Admin bekommt das Passwort\
→ Der Reporter bekommt eine Einladung mit \[Beitreten] Button\
→ Beide können jetzt im privaten Chat kommunizieren

**Was passiert beim ABLEHNEN?**\
→ Der Reporter bekommt eine Nachricht: "Dein Report wurde abgelehnt"\
→ Der Report wird auf DENIED gesetzt

**Was passiert beim SCHLIEẞEN?**\
→ Der Report wird auf CLOSED gesetzt\
→ Falls ein Report-Chat existiert, wird er geschlossen

**Config (wichtige Optionen):**

yaml

```
report-system:
  allow-self-report: false        # Sich selbst melden erlaubt?
  allow-duplicate-reports: false   # Doppelte Reports erlaubt?
  min-reason-length: 3            # Mindestlänge Grund
  max-reason-length: 100          # Maximallänge Grund
  cooldown-seconds: 60            # Wartezeit zwischen Reports
  notify-admins: true             # Admins benachrichtigen?
  preset-reasons:                 # Vordefinierte Gründe (Tab)
    - Hacking
    - Cheating
    - Spamming
```

***

#### 📊 REPORT CHATROOM

**Automatische Erstellung:**

1. Admin klickt im GUI auf "Accept"
2. System erstellt einen Chatroom mit ZUFALLS-PASSWORT (z.B. `Kx7mPq2Rt9`)
3. Admin wird automatisch in den Chat gesetzt
4. Reporter bekommt Einladung

**Passwort-Übergabe:**\
→ Das Passwort ist KICKBAR (klicken = kopieren)\
→ Admin sieht: `Report-Chat erstellt! Passwort: Kx7mPq2Rt9`\
→ Reporter sieht: `Dein Report wurde angenommen! Passwort: Kx7mPq2Rt9`

**Chat-Verhalten:**\
→ Solange man im Report-Chat ist, gehen ALLE normalen Chat-Nachrichten NUR in den Report-Chat\
→ Andere Spieler sehen diese Nachrichten NICHT\
→ Verlässt man den Chat, kann man wieder normal schreiben

**Einladungen:**\
→ `/reportchat invite Spieler` sendet klickbare \[Beitreten] \[Ignorieren] Buttons\
→ Eingeladene Spieler brauchen KEIN Passwort

**Spielerlimit:**\
→ `/reportchat playerlimit 5` begrenzt auf 5 Spieler\
→ `-1` = unbegrenzt

**Chat schließen:**\
→ `/reportchat close` schließt den Chat\
→ Alle Mitglieder werden rausgeworfen\
→ Chat wird gelöscht


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://chatsystem-wiki.gitbook.io/chatsystem-wiki/chat-system-funktionen/report-system-+-chatroom.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
