# 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 ` 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:` 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/-to-.md` doc.