520 lines
22 KiB
Markdown
520 lines
22 KiB
Markdown
|
|
# Plugin alternatives — FOSS-alignment audit
|
||
|
|
|
||
|
|
Goal: for every plugin, evaluate against the vision (FOSS, privacy-first, no telemetry, no Microsoft-account dependency, active maintenance, GH-source-of-truth, attribution-respecting). Identify swaps where a more aligned alternative exists.
|
||
|
|
|
||
|
|
Scoring axes:
|
||
|
|
- **L** — License (GPL/MIT/Apache > LGPL > custom-FOSS > closed)
|
||
|
|
- **S** — Source visibility (GH > Hangar > Modrinth-only > Spigot-only > closed)
|
||
|
|
- **T** — Telemetry (none > opt-in > opt-out > forced)
|
||
|
|
- **M** — Maintenance (active commits in last 90 days > stale > archived > dead)
|
||
|
|
- **D** — Dependency footprint (no native, no proprietary deps > requires ProtocolLib/Vault > requires premium)
|
||
|
|
|
||
|
|
## 1. LuckPerms (perms)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | LuckPerms by Luck (lucko) |
|
||
|
|
| License | MIT |
|
||
|
|
| Source | https://github.com/LuckPerms/LuckPerms |
|
||
|
|
| Vision fit | **Excellent** — author is FOSS-native, MIT, GH-primary, no telemetry |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *PermissionsEx* — abandoned, security holes
|
||
|
|
- *GroupManager* (Essentials) — bundled, weaker
|
||
|
|
- *GoPerms* — newer, less battle-tested
|
||
|
|
|
||
|
|
**Verdict:** **Keep.** Industry standard, perfect alignment.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. PlaceholderAPI (placeholder framework)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | PlaceholderAPI by HelpChat / extended-clip |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | https://github.com/PlaceholderAPI/PlaceholderAPI |
|
||
|
|
| Vision fit | **Excellent** — GPL, GH, ubiquitous |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *MVdWPlaceholderAPI* — defunct, premium
|
||
|
|
- *MiniPlaceholders* — Adventure-native, modern, MIT, https://github.com/MiniPlaceholders/MiniPlaceholders
|
||
|
|
|
||
|
|
**Verdict:** **Keep PlaceholderAPI for now**, **evaluate MiniPlaceholders** as a future swap if our other plugins start using Adventure components — it's lighter and avoids legacy color codes.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. EssentialsX (utility kitchen sink)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | EssentialsX |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | https://github.com/EssentialsX/Essentials |
|
||
|
|
| Vision fit | **Strong** — GPL, GH, but huge surface area, slow to adopt new APIs |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *CMI* — paid, closed → reject
|
||
|
|
- *Nova Essentials* — newer, modular, MIT-ish, https://github.com/NovaEssentials
|
||
|
|
- *EssentialsK* — fork w/ Kotlin/modern paper API, https://github.com/Essentials-K/EssentialsK
|
||
|
|
- Modular replacements (one plugin per feature):
|
||
|
|
- **Homes/teleport**: HuskHomes (https://github.com/WiIIiam278/HuskHomes) — MIT, modern, cross-server
|
||
|
|
- **Warps**: HuskHomes covers it
|
||
|
|
- **Kits**: dedicated KitMaster, or stay with EssentialsX
|
||
|
|
- **Economy**: TNE, ElementalEcon (FOSS)
|
||
|
|
- **Chat**: VentureChat (https://github.com/VentureCommunications/VentureChat) — GPL
|
||
|
|
|
||
|
|
**Verdict:** **Keep EssentialsX short-term. Long-term: split by domain** — HuskHomes for teleport (better UX), keep EssentialsX for the rest until evaluated. Document as Phase 4 in ROADMAP.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. WorldEdit (world editing)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | WorldEdit by EngineHub |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | https://github.com/EngineHub/WorldEdit |
|
||
|
|
| Vision fit | **Excellent** — GPL, GH, gold standard |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *FastAsyncWorldEdit (FAWE)* — fork w/ async perf, LGPL, https://github.com/IntellectualSites/FastAsyncWorldEdit — **drop-in replacement, faster**
|
||
|
|
- *VoxelSniper* — different use case (terrain sculpting)
|
||
|
|
|
||
|
|
**Verdict:** **Swap to FAWE.** Same API, much faster, FOSS, actively maintained. Bonus: handles big edits without freezing the server.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. Simple Voice Chat (voice)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | Simple Voice Chat by henkelmax |
|
||
|
|
| License | LGPL-3.0 |
|
||
|
|
| Source | https://github.com/henkelmax/simple-voice-chat |
|
||
|
|
| Vision fit | **Excellent** — LGPL, GH, no telemetry, self-hosted |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *Plasmo Voice* — separate ecosystem, mod-side requirement, less plugin-friendly
|
||
|
|
- *Mumble integration* — heavy, breaks one-click goal
|
||
|
|
|
||
|
|
**Verdict:** **Keep.** Best-in-class for our use case.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. MiniMOTD (server-list MOTD)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | MiniMOTD by jpenilla |
|
||
|
|
| License | MIT |
|
||
|
|
| Source | https://github.com/jpenilla/MiniMOTD |
|
||
|
|
| Vision fit | **Excellent** — MIT, GH |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *ServerListPlus* — older, more features, GPL
|
||
|
|
- *Native paper-api MOTD* — code yourself, no plugin
|
||
|
|
|
||
|
|
**Verdict:** **Keep.** Lightweight, modern, no reason to swap.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. SkinsRestorer (offline-mode skins)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | SkinsRestorer |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | https://github.com/SkinsRestorer/SkinsRestorer |
|
||
|
|
| Vision fit | **Strong** — GPL, GH, but proxies skin lookup through Mojang API by default |
|
||
|
|
|
||
|
|
**Concern:** "Microsoft-free" goal vs. Mojang skin API. Workaround: SkinsRestorer supports custom skin URLs / MineSkin alternative.
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *MineSkin* (https://api.mineskin.org) — community skin server, can be self-hosted
|
||
|
|
- *NameMC mirror APIs* — third-party
|
||
|
|
- *Self-hosted skin server* — most aligned, requires setup
|
||
|
|
|
||
|
|
**Verdict:** **Keep SkinsRestorer**. Phase 2 follow-up: configure to point at self-hosted skin server (or MineSkin) to fully cut Mojang dependency. Document in `docs/SKIN_HOSTING.md` (TBD).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8. CoreProtect / CoreProtect-CE (logging / rollback)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | CoreProtect-CE 23.1 (community fork) |
|
||
|
|
| License | Source-available, "all rights reserved" — readable but not OSI-FOSS |
|
||
|
|
| Source | https://github.com/PlayPro/CoreProtect (orig), https://github.com/Intelli/CoreProtect (CE fork) |
|
||
|
|
| Vision fit | **Mixed** — license isn't OSI-FOSS, but operationally is the most reliable rollback plugin in the ecosystem |
|
||
|
|
|
||
|
|
**Operator priority (explicit):** solid logs from day one, **easy per-player rollback** matters more than license purity for this specific plugin.
|
||
|
|
|
||
|
|
**Comparison vs Prism (the FOSS alternative):**
|
||
|
|
|
||
|
|
| Feature | CoreProtect-CE | Prism |
|
||
|
|
|---------|----------------|-------|
|
||
|
|
| Per-player rollback (`/co rollback u:Foo t:7d r:50`) | rock solid, 13+ years tuned | supported, less battle-tested |
|
||
|
|
| Inspector tool (`/co i` → click block) | gold standard UX | works, less polished |
|
||
|
|
| Sign/container/entity restoration | clean, robust | edge-case bugs reported |
|
||
|
|
| At-scale performance (100+ players) | proven | less proven |
|
||
|
|
| Rollback safety on huge edits | proven | newer codebase |
|
||
|
|
| API surface for other plugins | wide ecosystem support | smaller ecosystem |
|
||
|
|
| License | source-available, "all rights reserved" | MIT |
|
||
|
|
| Source readable | yes (GH public) | yes (GH public) |
|
||
|
|
| Active dev | yes (CE fork: Intelli) | yes (Prism v3+) |
|
||
|
|
|
||
|
|
**Why this is the principled exception:**
|
||
|
|
- License is *source-available* (readable + auditable + forkable in practice), not OSI-FOSS (no explicit redistribution grant).
|
||
|
|
- Operational reliability for **player protection** outweighs license purity for *this one plugin*.
|
||
|
|
- Server's trust model depends on rollback being airtight; Prism's gotchas (sign/container restoration edge cases) would mean failed grief reports.
|
||
|
|
- CoreProtect's inspector tool UX is so dominant that swapping costs admin productivity.
|
||
|
|
|
||
|
|
**Verdict:** **Keep CoreProtect-CE.** Document this as the one acknowledged license exception in MISSION.md. Revisit when Prism reaches feature parity on signs/containers/entity rollback at scale.
|
||
|
|
|
||
|
|
**Alternatives evaluated:**
|
||
|
|
- *Prism v3+* — MIT, modern, active. Strong on paper, gaps in field-tested rollback edge cases. Reconsider in 12-18 months.
|
||
|
|
- *LogBlock* — abandoned, drop.
|
||
|
|
- *CoreProtect 22.x* — earlier Apache-2.0 version; outdated, missing features.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 9. GrimAC (anti-cheat)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | GrimAC by MWHunter |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | https://github.com/GrimAnticheat/Grim |
|
||
|
|
| Vision fit | **Excellent** — GPL, GH, no telemetry, transparent detection logic |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *Vulcan* — paid, closed → reject
|
||
|
|
- *Matrix* — paid → reject
|
||
|
|
- *NoCheatPlus* — abandoned upstream, reincarnated as CMI-NCP, free but old
|
||
|
|
- *Spartan AC* — paid, closed → reject
|
||
|
|
|
||
|
|
**Verdict:** **Keep.** GrimAC is the only FOSS anti-cheat that matters in 2026.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 10. spark (profiler)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | spark by Luck (lucko) |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | https://github.com/lucko/spark |
|
||
|
|
| Vision fit | **Excellent** — GPL, GH, no telemetry beyond opt-in heap-share |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *Timings* — Paper built-in, deprecated upstream
|
||
|
|
- *Pufferfish profiler* — server-fork-specific
|
||
|
|
|
||
|
|
**Verdict:** **Keep.** Only credible profiler.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 11. DiscordSRV (Discord bridge)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | DiscordSRV by Scarsz |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | https://github.com/DiscordSRV/DiscordSRV |
|
||
|
|
| Vision fit | **Mixed** — DiscordSRV itself is GPL/FOSS, but Discord is *the* opposite of our values (proprietary, closed, telemetry-heavy, Microsoft-adjacent via MS GitHub stack). Bridges player chat to a closed platform. |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *MatrixSRV / matrix-bridge* — bridge to Matrix instead of/alongside Discord
|
||
|
|
- *Telegraph* — Telegram bridge
|
||
|
|
- *RevoltSRV* — bridge to Revolt (FOSS Discord-alike), https://github.com/Frosty-The-Dev/RevoltSRV
|
||
|
|
- *Custom Matrix bridge* — write your own to existing Tuwunel homeserver (memory: txt.s8n.ru is yours)
|
||
|
|
|
||
|
|
**Verdict:** **Keep DiscordSRV for player reach, but add a Matrix bridge as the primary FOSS-aligned channel.** Discord is where players are; Matrix is where principles are. Operate both. You already run a Tuwunel homeserver (txt.s8n.ru) — natural home for the FOSS-aligned bridge. **Action: deploy mc-matrix-bridge alongside.**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 12. LandClaimPlugin (claims) — recently swapped from Lands
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | LandClaimPlugin (Modrinth) |
|
||
|
|
| License | TBD (verify on Modrinth + GH) |
|
||
|
|
| Source | https://modrinth.com/plugin/landclaimplugin |
|
||
|
|
| Vision fit | **Strong if FOSS confirmed, Verify before celebrating** |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *GriefPrevention* (https://github.com/GriefPrevention/GriefPrevention) — MIT, GH, oldest + most battle-tested FOSS claim plugin
|
||
|
|
- *GriefDefender* — fork, GPL, modern
|
||
|
|
- *RedProtect* — GPL, mature, https://github.com/FabioZumbi12/RedProtect
|
||
|
|
- *PlotSquared* — for plot-style worlds, different use case
|
||
|
|
|
||
|
|
**Operator decision (confirmed):** **Keep LandClaimPlugin.** Rationale:
|
||
|
|
- Chunk-based claims = vanilla-feel. Players see chunk borders via `F3+G` (built-in vanilla) — no client mod, no resource pack, no extra UI required to know where claims are.
|
||
|
|
- GriefPrevention's free-form rectangle claims feel less native and require a separate visualization tool/plugin for boundary display.
|
||
|
|
- Keeping vanilla-aligned mechanics is mission-aligned: minimum surface area, maximum native feel.
|
||
|
|
|
||
|
|
**Outstanding TODO:** verify LandClaimPlugin's license. If proprietary, fork or replace with another chunk-based FOSS claim plugin (chunk-claim plugins exist on Modrinth, e.g. `chunkclaim`, `simplechunkclaim`).
|
||
|
|
|
||
|
|
**Alternatives kept on file as fallback:**
|
||
|
|
- *GriefPrevention* — free-form, FOSS, but loses the chunk-feel.
|
||
|
|
- *ChunkClaim* — chunk-based, FOSS-likely; fallback if LCP license fails.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 13. TAB (tablist / scoreboard / nametags)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | TAB by NEZNAMY |
|
||
|
|
| License | _verify — listed on GH but check_ |
|
||
|
|
| Source | https://github.com/NEZNAMY/TAB |
|
||
|
|
| Vision fit | **Strong** — GH-primary, no telemetry, free |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *FeatherBoard* — paid, closed → reject
|
||
|
|
- *AnimatedTabs / TabPrefix* — feature subset only
|
||
|
|
- *MyScoreboard* — scoreboard only
|
||
|
|
|
||
|
|
**Verdict:** **Keep.** Best feature/license tradeoff.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 14. ProtocolLib (protocol library)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | ProtocolLib by dmulloy2 + contributors |
|
||
|
|
| License | GPL-2.0 |
|
||
|
|
| Source | https://github.com/dmulloy2/ProtocolLib |
|
||
|
|
| Vision fit | **Strong** — GPL, GH, but heavy; many plugins demand it |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *PacketEvents* (https://github.com/retrooper/packetevents) — GPL-3.0, more modern, faster, used by GrimAC
|
||
|
|
- *Native Paper packet API* — limited but growing
|
||
|
|
|
||
|
|
**Verdict:** **Evaluate dropping ProtocolLib in favor of PacketEvents.** GrimAC already uses PacketEvents. If we can find PacketEvents-based forks of plugins currently demanding ProtocolLib, we shrink the dep tree. Phase 4 task.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 15. Vault (economy/perms abstraction)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | Vault by MilkBowl |
|
||
|
|
| License | LGPL-3.0 |
|
||
|
|
| Source | https://github.com/MilkBowl/Vault |
|
||
|
|
| Vision fit | **Strong** — LGPL, GH, but old (2016 era API) |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *VaultUnlocked* (https://github.com/CraftYourMind/VaultUnlocked) — modern fork, more features
|
||
|
|
- *Treasury* — GPL-3.0, modern econ-only API, https://github.com/lokka30/Treasury
|
||
|
|
|
||
|
|
**Verdict:** **Swap to VaultUnlocked.** Fork with same API surface but modernized. Treasury alone won't cover non-econ plugins demanding Vault.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 16. LoginSecurity (offline-mode auth)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | LoginSecurity 3.3.1 (lenis0012 archived; Sytm fork) |
|
||
|
|
| License | GPL-3.0 |
|
||
|
|
| Source | original archived; forks unclear |
|
||
|
|
| Vision fit | **Weak** — upstream dead, fork unclear, security-critical |
|
||
|
|
|
||
|
|
**Critical feature requirement (from operator):** plugin must **teleport unauthenticated players to spawn** during login. Reason: prevents base-coord leaks via screenshot/glance/screen-share by anyone who joins w/ a stolen username before typing /login. This is non-negotiable for cracked-server gameplay safety.
|
||
|
|
|
||
|
|
**Alternatives evaluated against this requirement:**
|
||
|
|
|
||
|
|
| Plugin | Teleports unauth → spawn? | License | Active | Notes |
|
||
|
|
|--------|----------------------------|---------|--------|-------|
|
||
|
|
| **AuthMe Reloaded** | **Yes** — `teleportUnAuthedToSpawn: true` config option | GPL-3.0 | active | https://github.com/AuthMe/AuthMeReloaded |
|
||
|
|
| FastLogin | No (premium-passthrough flow) | LGPL-3.0 | active | Different use case |
|
||
|
|
| xAuth | Yes (old impl) | abandoned | dead | reject |
|
||
|
|
| nLogin | Yes | closed | n/a | reject |
|
||
|
|
| LibreLogin | **Yes** (proxy-side) | GPL-3.0 | active | https://github.com/kyngs/LibreLogin — Velocity/BungeeCord focused; may be overkill for single-server but FOSS-aligned |
|
||
|
|
|
||
|
|
**AuthMe-specific config to match LoginSecurity behavior:**
|
||
|
|
```yaml
|
||
|
|
# config.yml
|
||
|
|
restrictions:
|
||
|
|
teleportUnAuthedToSpawn: true # the critical feature
|
||
|
|
ProtectInventoryBeforeLogIn: true # extra safety
|
||
|
|
allowMovement: false # block all movement until /login
|
||
|
|
noTeleport: true # block /tp until authed
|
||
|
|
timeout: 60 # kick after 60s of no /login
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verdict:** **Swap to AuthMe Reloaded.** Same critical feature, active maintenance, FOSS, security-audited. LoginSecurity is end-of-life and forks are murky. **High priority** because this is auth + base-coord protection.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 17. ComfyWhitelist (whitelist)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | ComfyWhitelist by etil2jz |
|
||
|
|
| License | TBD — verify |
|
||
|
|
| Source | TBD — likely Hangar/GH |
|
||
|
|
| Vision fit | **Conditional Keep** if license verifies as FOSS |
|
||
|
|
|
||
|
|
**Critical feature requirement (from operator):** plugin must apply whitelist changes **without server restart or `/reload`**, and must work on **cracked/offline-mode servers without Mojang API lookups**.
|
||
|
|
|
||
|
|
**Why native `/whitelist` is insufficient on this server:**
|
||
|
|
|
||
|
|
Vanilla `/whitelist add <name>` on an offline-mode server:
|
||
|
|
1. Tries to look up the player's UUID via Mojang API.
|
||
|
|
2. If Mojang lookup fails (network blip, Mojang down, player has no premium account): server may store wrong UUID, no UUID, or refuse to add.
|
||
|
|
3. Cracked players have offline-derived UUIDs (`OfflinePlayer:<name>` hash), which don't match Mojang's online UUID. Whitelist comparison fails on join.
|
||
|
|
4. Some Paper/Purpur configs require restart to fully apply whitelist changes when UUID lookup is involved.
|
||
|
|
|
||
|
|
ComfyWhitelist (and similar name-based whitelist plugins) sidestep all of the above:
|
||
|
|
- Whitelist by **name string**, not UUID.
|
||
|
|
- No Mojang API calls — fully local, fully offline-safe.
|
||
|
|
- Changes apply instantly, no restart, no `/reload`.
|
||
|
|
- Aligns w/ "Microsoft-free" mission (no Mojang dependency for whitelist auth).
|
||
|
|
|
||
|
|
**Alternatives that also satisfy these constraints:**
|
||
|
|
|
||
|
|
| Plugin | Name-based? | No Mojang call? | Hot-reload? | License | Source |
|
||
|
|
|--------|-------------|-----------------|-------------|---------|--------|
|
||
|
|
| **ComfyWhitelist** | yes | yes | yes | TBD | TBD |
|
||
|
|
| Native `/whitelist` | no (UUID) | no | partial | n/a | n/a |
|
||
|
|
| AdvancedWhitelist | varies | varies | yes | GPL | Hangar |
|
||
|
|
| Whitelist (by mxstr) | yes | yes | yes | MIT | https://github.com/mxstr/Whitelist |
|
||
|
|
| Custom 50-line plugin | yes | yes | yes | MIT | self-host |
|
||
|
|
|
||
|
|
**Verdict:** **Keep ComfyWhitelist** — features (name-based + hot-reload + offline-safe) are mission-critical. **TODO:** verify ComfyWhitelist license is FOSS. If proprietary or unclear → swap to a confirmed-FOSS name-based whitelist plugin (like the mxstr one) preserving all three features.
|
||
|
|
|
||
|
|
**Note for documentation:** add to `docs/plugins/comfywhitelist.md` an explicit "why we use this over native" rationale so future maintainers don't drop it.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 18. MarriageMaster (social)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | MarriageMaster by DerFlash |
|
||
|
|
| License | TBD (likely Spigot resource license) |
|
||
|
|
| Source | https://www.spigotmc.org/resources/marriagemaster.19273/ — Spigot only |
|
||
|
|
| Vision fit | **Weak** — Spigot-only acquisition, no GH presence found, license unclear |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *SimpleMarriage* (FOSS, less feature) — find GPL alternative
|
||
|
|
- Ditch entirely — niche feature, low priority
|
||
|
|
|
||
|
|
**Verdict:** **Audit:** is this feature widely used by your players? If yes, find a GPL alternative or fork DerFlash's plugin under FOSS license (if license permits). If no, **drop**.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 19. PhantomSMP (phantom rebalance)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | PhantomSMP by Lielay9 |
|
||
|
|
| License | TBD (Spigot resource) |
|
||
|
|
| Source | Spigot only |
|
||
|
|
| Vision fit | **Weak** |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *PhantomLight* — alternative Spigot resource, license TBD
|
||
|
|
- *Native Paper config* — paper-world-defaults.yml has phantom-spawn knobs
|
||
|
|
- *DataPack* — vanilla solution, no plugin needed
|
||
|
|
|
||
|
|
**Verdict:** **Replace with native Paper config + datapack.** Removes plugin dep entirely. Your players won't notice the difference if tuned well.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 20. HelpCommand (custom /help)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | HelpCommand by Slimerblue22 |
|
||
|
|
| License | TBD |
|
||
|
|
| Source | Spigot only |
|
||
|
|
| Vision fit | **Weak — easy to drop** |
|
||
|
|
|
||
|
|
**Alternatives:**
|
||
|
|
- *Native Bukkit `/help`* — built-in
|
||
|
|
- *HelpCMD* — alternative
|
||
|
|
- *commands.yml* — Bukkit's built-in alias system covers most use cases
|
||
|
|
|
||
|
|
**Verdict:** **Drop.** Use native `/help` + customize via `commands.yml` (already in repo).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 21. ProAntiTab (tab-completion filter)
|
||
|
|
|
||
|
|
| Field | Value |
|
||
|
|
|-------|-------|
|
||
|
|
| Current | ProAntiTab by RayzsYT |
|
||
|
|
| License | **GPL-2.0-or-later** (verified via Modrinth 2026-04-27) |
|
||
|
|
| Source | https://github.com/RayzsYT/ProAntiTab |
|
||
|
|
| Modrinth | https://modrinth.com/plugin/proantitab |
|
||
|
|
| Vision fit | **Excellent** — GPL, GH-primary, free, supports Paper/Purpur/Velocity/Folia |
|
||
|
|
|
||
|
|
**Earlier note corrected:** Initially flagged as "likely premium BoomEaro" — that was wrong. Real author is RayzsYT, plugin is FOSS, free, well-maintained.
|
||
|
|
|
||
|
|
**Features that justify keeping:**
|
||
|
|
- Hide commands from tab-complete based on permission
|
||
|
|
- Block plugin-detection hacks (spoofing, namespace probing)
|
||
|
|
- Custom F3 server brand (cosmetic, no info leak)
|
||
|
|
- Whitelist/blacklist command modes
|
||
|
|
- Sub-argument blocking (granular command visibility)
|
||
|
|
- PlaceholderAPI integration, MiniMessage formatting
|
||
|
|
- Group-based permission system
|
||
|
|
|
||
|
|
**Verdict:** **Keep ProAntiTab.** No swap needed. Aligned with mission, GPL FOSS, GH source-of-truth, free.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Already removed (vision-aligned)
|
||
|
|
|
||
|
|
| Plugin | Reason | Replacement |
|
||
|
|
|--------|--------|-------------|
|
||
|
|
| Lands | Paid, closed-ish | LandClaimPlugin (verify FOSS) |
|
||
|
|
| LitePlaytimeRewards | Dead upstream | TBD or drop |
|
||
|
|
| CosmicGuard | Premium continuous | GrimAC covers anti-cheat |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Summary table
|
||
|
|
|
||
|
|
| # | Plugin | Status | Action |
|
||
|
|
|---|--------|--------|--------|
|
||
|
|
| 1 | LuckPerms | Keep | — |
|
||
|
|
| 2 | PlaceholderAPI | Keep | Evaluate MiniPlaceholders Phase 4 |
|
||
|
|
| 3 | EssentialsX | Keep | Long-term: split into modular FOSS (HuskHomes etc) |
|
||
|
|
| 4 | WorldEdit | **Swap → FAWE** | High pri (perf + still GPL) |
|
||
|
|
| 5 | Simple Voice Chat | Keep | — |
|
||
|
|
| 6 | MiniMOTD | Keep | — |
|
||
|
|
| 7 | SkinsRestorer | Keep | Phase 2: self-hosted skin server |
|
||
|
|
| 8 | CoreProtect-CE | **Keep** (acknowledged license exception) | Reliability > purity per operator decision |
|
||
|
|
| 9 | GrimAC | Keep | — |
|
||
|
|
| 10 | spark | Keep | — |
|
||
|
|
| 11 | DiscordSRV | Keep + add Matrix bridge | High pri (FOSS comm channel) |
|
||
|
|
| 12 | LandClaimPlugin | **Verify license, possibly swap → GriefPrevention** | High pri |
|
||
|
|
| 13 | TAB | Keep (verify license) | Med pri verify |
|
||
|
|
| 14 | ProtocolLib | Keep, evaluate PacketEvents-only future | Phase 4 |
|
||
|
|
| 15 | Vault | **Swap → VaultUnlocked** | Med pri |
|
||
|
|
| 16 | LoginSecurity | **Swap → AuthMe Reloaded** | **High pri (auth)** |
|
||
|
|
| 17 | ComfyWhitelist | **Drop → native /whitelist** | Low pri |
|
||
|
|
| 18 | MarriageMaster | Audit usage, drop or replace | Low pri |
|
||
|
|
| 19 | PhantomSMP | **Drop → native config + datapack** | Low pri |
|
||
|
|
| 20 | HelpCommand | **Drop → native /help** | Low pri |
|
||
|
|
| 21 | ProAntiTab | **Keep** (GPL-2.0-or-later, FOSS, free, GH) | — |
|
||
|
|
|
||
|
|
## High-priority swap order (proposed)
|
||
|
|
|
||
|
|
1. **LoginSecurity → AuthMe Reloaded** — security-critical, dead upstream
|
||
|
|
2. **Verify ProAntiTab + LandClaimPlugin licenses** — drop/swap if non-FOSS
|
||
|
|
3. **WorldEdit → FAWE** — perf win, drop-in
|
||
|
|
4. **Vault → VaultUnlocked** — modernization
|
||
|
|
5. **Add Matrix bridge for chat** — uses existing Tuwunel homeserver
|
||
|
|
6. **CoreProtect-CE → Prism** — license cleanup (do after world stable, harder migration)
|
||
|
|
7. **Drop ComfyWhitelist, HelpCommand, PhantomSMP** — consolidate to native
|
||
|
|
8. **Phase 4 deep refactor**: EssentialsX split, ProtocolLib evaluation, MiniPlaceholders eval
|
||
|
|
|
||
|
|
Each swap = a PR + a `docs/migrations/<from>-to-<to>.md` doc.
|