Releases: KyTDK/NeoModeration
Release list
NeoModeration 1.4.1
NeoModeration 1.4.1 — Activation clarity
NeoModeration 1.4.1 makes the first-run and cloud-recovery paths explicit. A
fresh install still starts safely in monitor mode: it detects and reports,
but does not block or punish until an admin runs /nmod mode enforce.
Improved
- Guided first test. Startup, help, README, and marketplace copy now point
to/nmod test badword. It proves the bundled local rule works and states
that monitor mode will not execute an action. - Truthful key setup. Saving a key no longer claims cloud moderation is
active before it has been checked./nmod doctorverifies the account and
usage API, latency, and the current credit balance;/nmod test hello
verifies the moderation-events path separately. - Actionable cloud recovery. HTTP 401/403 is reported as a rejected key,
while HTTP 402 is reported separately as insufficient credits./nmod status,/nmod doctor,/nmod test, and/nmod usageprovide the matching
attributed key or billing link and a concrete command to verify recovery.
No command or log line echoes an API key. - Honest billing classification. Ordinary Minecraft chat explicitly uses
the platform'sgeneralcontent class. Only the feature dedicated to NSFW
map-art image scanning declaresnsfw; ordinary chat is never mislabeled to
obtain a free allowance. - Separated cloud health. Chat tests and map-art scans feed the same
moderation-event circuit/status state as normal chat. Account/usage checks
are reported separately and cannot make a broken events endpoint look
healthy. Malformed 4xx requests are no longer misreported as bad credentials.
Compatibility
- No configuration migration is required.
- Existing enforce-mode servers remain in enforce mode. Monitor is only the
default for a genuinely new config. - Marketplace metadata now matches the verified Minecraft 1.18.2–1.21.x range;
this release does not advertise untested Folia support. - Local word, URL, and anti-spam rules continue to run when the cloud is
unavailable or out of credits.
Verified
- Automated regression coverage includes 401/403, 402, other 4xx, transient
failures, separated account/event health, recovery-message routing, locale
parity, payload billing classes, and the guided monitor-mode test path. - The release matrix checks Paper 1.18.2, 1.19.4, 1.20.6, and 1.21.11,
including monitor-once/enforce-once chat checks and representative commands.
Regenerate the final release JAR's SHA-256 checksum and matrix report from the
frozen release source immediately before publishing them beside these notes.
NeoModeration 1.4.0 — Coverage
NeoModeration 1.4.0 — Coverage
NeoModeration 1.4.0 makes it useful every day, not just for cloud moderation.
Everything new runs locally first — no API key required — so spam, strikes,
and extra surfaces cost nothing and never wait on the network. Scope comes from
docs/research/2026-07-11-1.4.0-coverage-research.md.
New
- Local anti-spam (
moderation.spam.*): message rate, duplicate/near-
duplicate messages, excessive caps (player names exempt), character floods,
and command-rate limiting. Runs before any cloud call. On by default with
conservative limits; each check disables individually by setting it to 0. - Censor action (
moderation.chat.censorLocalDetections): replace locally-
matched words/links with****and let the rest of the message through,
instead of blocking the whole line. Cloud detections still block by default. - Progressive strikes (
moderation.strikes.*): every detection adds a
strike that decays over time; reaching a configured rung runs an extra action
(default: kick at 4). Strike counts show in staff alerts. - More surfaces (
moderation.surfaces.*): signs, books, anvil renames, and
configured commands (/msg,/tell, …) now run the local rules through the
same pipeline as chat. Each surface is independentlyoff/monitor/
censor/block, and all default to off so upgrades change nothing.
These are synchronous events, so they use local rules only — the cloud is
never in the critical path there. - Local case history (
moderation.cases.*): a SQLite log of every detection
(player, surface, reason, action, mode, time). Browse it with
/nmod cases [player]and/nmod case <id>. Content previews are off by
default (metadata only) to keep the log privacy-clean. - Unified detection pipeline: chat, map-art, and every new surface flow
through one handler, so monitor mode, strikes, staff alerts, and case logging
behave identically everywhere. Staff alerts now show the surface and strike. - Richer
/nmod statusand/nmod doctorreport anti-spam, strikes,
surfaces, and case-history state; new bStats charts (mode, cloud, censor).
Compatibility
- Existing 1.3.x configs upgrade with no behavior change: new surfaces
default off, and missing keys keep prior behavior. Anti-spam and strikes turn
on with conservative defaults — setmoderation.spam.enabled/
moderation.strikes.enabledtofalseto keep chat exactly as it was. - The SQLite driver ships with Spigot/Paper; if it is ever missing, case history
disables itself with one warning and moderation continues. - English and Spanish locales updated; custom locale files gain the new keys on
first load.
Verified
- 74 automated tests pass, including censor mapping, spam checks, strike decay,
and SQLite case storage. - Paper 1.18.2, 1.19.4, 1.20.6, and 1.21.11 pass the full live matrix.
- Smoke-tested on a live Paper server: spam trip, sign flag, censor, strike
escalation,/nmod cases,/nmod doctor.
SHA-256 checksums are attached to the GitHub release.
NeoModeration 1.3.1 — Polish
NeoModeration 1.3.1 — Polish
A usability and code-quality release. No moderation behavior changes.
Improved
- Readable
/nmod help. The command list is now grouped into Getting
started / Rules & actions / Tools / Admin sections with short, scannable
usage and descriptions instead of a wall of wrapped text. - Consistent messages everywhere. Every chat line now shares one locale-
defined{prefix}, so the plugin's look can be rebranded or recolored from a
single line inlocale/<lang>.yml. - Internal cleanup with zero duplication. Command boilerplate, tab-
completion filtering, async scheduling, config save-and-reload, and action
formatting are each defined exactly once. Same jar size class, same behavior,
easier to extend.
Verified
- 61 automated tests pass.
- Paper 1.18.2, 1.19.4, 1.20.6, and 1.21.11 pass the full live matrix,
including monitor-once/enforce-once chat checks and every command.
SHA-256 checksums are attached to the GitHub release.
NeoModeration 1.3.0 — Trust and Control
NeoModeration 1.3.0 — Trust and Control
NeoModeration 1.3.0 makes the plugin safe to evaluate and easy to trust. Every
feature in this release comes from the competitive research in
docs/research/2026-07-11-competitive-review.md: server owners will not turn on
automated punishment until they can preview decisions, understand them, and fix
false positives — so 1.3.0 ships exactly that.
New
- Monitor mode.
moderation.mode: monitordetects, counts, and alerts staff
without blocking or punishing anyone — for chat and map-art. New
installations start in monitor mode; servers upgrading from 1.2.x keep
enforcing exactly as before (a missingmodekey meansenforce).
/nmod modeshows since-startup detection counts by rule type;
/nmod mode enforceturns enforcement on. /nmod test <message>. Dry-runs the full pipeline: local rule verdict
(with the exact matched rule), cloud verdict with round-trip latency, and what
would happen in the current mode. Never executes actions./nmod doctor. One-command diagnostics: enabled/mode/rules/actions
checks, fail policy, timeout budget vs. the 2.5s chat cap, endpoint validity,
circuit-breaker state, and a live connectivity probe reporting workspace,
plan, credits, and latency.- Exceptions that always win.
moderation.offline.allowedWords/
allowedUrls(managed with/nmod allow word|url add|remove|list) suppress
banned-rule matches inside them — the fastest false-positive fix available. - Per-category cloud thresholds. Each category accepts
true(default
0.7),false(off), or a custom0.05–0.99threshold. - Policy presets.
/nmod preset family|community|minimalbundles category
thresholds and actions; mode and local rules are never touched. - Staff alerts. Players with the new
neomoderation.notifypermission (ops
by default) see every detection in-game, with an optional redacted preview
(moderation.alerts.includeMessage). - Privacy surface.
/nmod privacyanddocs/PRIVACY.mddocument exactly
what stays local, what the cloud receives, and theno_store/ no-training /
fail-policy guarantees. - Richer
/nmod statusnow shows mode, protection level ("Local only" vs
"Local + cloud"), exception counts, alert state, and detections since startup. - bStats metrics (plugin id 32542) for content-free technical install statistics, fully disclosed in
docs/PRIVACY.md.
Compatibility
- Existing 1.2.x configurations upgrade in place with no behavior change:
enforcement, categories (true/false), actions, and rules all keep their
meaning. - English and Spanish locales updated; custom locale files gain the new keys
automatically on first load.
SHA-256 checksums are attached to the GitHub release.
NeoModeration 1.2.2
NeoModeration 1.2.2
NeoModeration 1.2.2 is a reliability and performance release recommended for
every server.
Fixed
- Paper chat is moderated exactly once. Registering both Paper's modern and legacy
chat events could previously double API usage and, in rare cases, apply actions
twice. - Map-art scanning now reads the real nested
data.colorsstructure used by
Minecraft map files. moderation.chat.failOpen: falseis now honored for cloud timeouts,
authentication failures, and an open circuit breaker.- Players with
neomoderation.bypassnow bypass map-art checks as documented. - Failed or temporarily unavailable map-art scans are retried instead of being
cached as successful scans. - Empty URL-rule entries can no longer match every chat message.
- Cloud timeout defaults now match the plugin's 2.5-second maximum chat wait.
Faster
- Offline word-filter patterns are compiled once per configuration instead of once
per word for every message. - A 403-word real-world test corpus runs at approximately 8.5 microseconds per
message on the release build, over 100 times faster than the previous path.
Release confidence
- 44 automated tests pass.
- The obfuscated release jar was verified on Paper 1.18.2, 1.19.4, 1.20.6, and
1.21.11. - Each Paper version independently confirmed plugin loading, commands, actions,
local filtering, and exactly-once moderation.
SHA-256 checksums are attached to the GitHub release.
NeoModeration 1.2.0
NeoModeration 1.2.0
New
- Map-art NSFW scanning — filled maps are scanned for inappropriate imagery when held or placed in item frames (requires a cloud API key). Results are cached per map; flagged maps are confiscated or warned per config. Configurable under
moderation.mapArt. /nmod usage— view your NeoMechanical plan, rate limit, credits, request counts and NSFW quota in-game.
Improved
- Subcommand-based
/nmodwith cleaner help, status, and error messages. - Documented, production-safe
config.ymlwith inline comments. - Centralized settings and isolated API/usage clients.
Setup
Create an API key at platform.neomechanical.com (scopes events:write + usage:read), then run /nmod setup <key>. Verify with /nmod status.
Built and verified against Paper 1.21.1.