Skip to content

POC mode: strip moderation controls, backlog them - #22

Merged
OpenSource-For-Freedom merged 1 commit into
mainfrom
chore/poc-strip-moderation
Aug 15, 2026
Merged

POC mode: strip moderation controls, backlog them#22
OpenSource-For-Freedom merged 1 commit into
mainfrom
chore/poc-strip-moderation

Conversation

@OpenSource-For-Freedom

Copy link
Copy Markdown
Owner

This is a proof of concept. Controls that kick, filter or restrict players have been costing more than they protect.

Removed

Control Change Why
Profanity Guard mod removed Chat filter. Pure moderation, no gameplay value in a POC
FORCE_GAMEMODE true to false Forced everyone back to survival on join, overriding an op who had deliberately switched to creative

Already gone for the same reason, listed so the picture is complete: the playtime limiter (dead since the droplet move), spawn protection (silently blocked building near the house), the airborne kick (kicked players for using Ad Astra in space), and the anticheat (kicked a whitelisted player for opening a door).

Every single one of those caused an outage or a support incident.

Deliberately kept, and this is the part worth arguing about

The whitelist and ONLINE_MODE. These are not moderation. They are the difference between a private family server and an open one.

The game port is scanned continuously. Any day of logs shows a stream of VANILLA connection attempt entries from hosts nobody invited. Turning off the whitelist puts a server with children on it directly in front of those.

If it comes off, that should be a deliberate decision to run a public server, not a side effect of reducing friction, and everything else gets revisited at the same time. Say the word and I will do it, but I am not doing it silently.

PrismProtect also stays. It blocks nothing and kicks nobody. It is what makes griefing reversible, so removing it removes the undo, not a restriction.

Backlog

specs/0006-poc-moderation-backlog.md records what came off, what stayed, why, and the order things should return in:

  1. Chat filtering, if players ever include anyone not personally known
  2. Playtime limits, as a Linux cron job rather than the dead Windows script
  3. Anticheat, only with a config file, ops exemption and server-side logging, because the last one had none of those
  4. Spawn protection, only if world spawn moves somewhere public
  5. Per-role LuckPerms permissions, so trusted players can moderate without full op

Verified

mod parity   PASS (30 server mods, 26 client pack)
compose      renders
kept         ONLINE_MODE TRUE, ENFORCE_WHITELIST TRUE
relaxed      FORCE_GAMEMODE false, SPAWN_PROTECTION 0, ALLOW_FLIGHT true

Removing Profanity Guard is server-side only, so no player needs to re-import anything.

This is a proof of concept and the controls that kick, filter or restrict
players have been costing more than they protect. Every one of them has
now caused an outage or a support incident at some point, and none of them
defends against a threat a five-person family server actually has.

Removed:
  Profanity Guard   chat filter mod, pure moderation
  FORCE_GAMEMODE    forced everyone back to survival on join, overriding
                    an op who had deliberately switched to creative

Already gone for the same reason: the playtime limiter (dead since the
droplet move), spawn protection (silently blocked building near the
house), the airborne kick (kicked players for using Ad Astra in space),
and the anticheat (kicked a whitelisted player for opening a door).

Deliberately KEPT, and this is the part worth arguing about: the
whitelist and online-mode. Those are not moderation. They are the
difference between a private family server and an open one. The game
port is scanned continuously, which any day's log shows as a stream of
VANILLA connection attempts from hosts nobody invited. Turning off the
whitelist puts a server with children on it in front of those. If it
comes off, that should be a deliberate decision to run a public server,
not a side effect of reducing friction, and everything else gets
revisited at the same time.

Also kept: PrismProtect, which blocks nothing and kicks nobody. It is
what makes griefing reversible, so removing it removes the undo rather
than a restriction.

specs/0006 records what came off, what stayed and why, and the order
things should return in. Anticheat only comes back with a config file,
ops exemption and server-side logging, because the last one had none of
those.
@OpenSource-For-Freedom
OpenSource-For-Freedom merged commit b79501b into main Aug 15, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant