openfrontio / openfrontio/OpenFrontIO
[Feature] Moderation improvements — master tracking issue
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 1.4k
- Avg merge
- 17h 43m
- Merged PRs (30d)
- 310
Description
# 🛡️ Moderation Improvements — Master Tracking Issue
This is the master tracking issue for moderation improvements. The goal is a dedicated moderation panel accessible to users with the `moderator` role, enabling player and game search with full PII protection, and the ability to edit player ELO.
> **This is a living document.** Items will be updated as the workstream progresses. For discussion, join us on [Discord](https://discord.gg/openfront).
---
## 🔐 Access & Roles
Moderators are set via the admin API by an admin or above. The moderator role grants access to the moderation panel only — **no access to any monetary, billing, or financial sections**.
---
## 🔒 PII Redaction Rules
All data shown in the moderation panel must follow these rules:
- **Email fields:** always replaced with `***` — no exceptions, no overrides
- **Any other PII** (IP address, device ID, etc.): automatically replaced with `***`
- Non-PII fields (username, public ID, ELO, game history, join date): shown in full
- These rules apply at the **API level** — PII must never be returned in moderator API responses
---
## 📋 Sub-issues
| Issue | Title | Milestone |
|-------|-------|-----------|
| #4060 | Moderator role — set via admin API | v32 |
| #4061 | Moderation panel — player search (by username, public ID, Discord ID) | v32 |
| #4062 | Moderation panel — game search (by game ID, recent, active) | v32 |
| #4063 | Moderation panel — edit player ELO | v32 |
---
## 🔗 Related issues
| Issue | Title |
|-------|-------|
| #3442 | Main Feature - Improved moderation *(existing parent — ban, delete, timeout)* |
| #2985 | Profanity filter for player names |
| #3580 | Multilingual moderation system |
| #2066 | Detect & Deter Teaming Behaviour in FFA |
---
*Last updated: May 2026 — maintained by @iiamlewis*
Contributor guide
Assessment
This issue has not been assessed yet.