Tags
Creators
Details
0.3.8
Compatibility
Changes
ReportToxicity 0.3.8
This is a consolidated release covering everything since 0.3.2. The goal of this update was simple: close the gap between what the plugin says it does and how it actually behaves in production.
Highlights
- One jar for Paper/Spigot 1.21.x through 26.1.x
- Java 21 runtime
- Queue-first delivery so accepted reports save locally first and sync in the background
- Server-local moderator notes
- Server-local archive
- Trust gate now actually works
- /rt status rewritten with cleaner backend/local visibility
- Console-friendly /rt setup
- Cooldown / playtime / self-report denials now fire up front
- Expanded automated testing and CI safety checks
Breaking config change punishments: has been replaced with moderation:
Replace your old block with: moderation: kick_command: "kick {player} {reason}" ban_command: "ban {player} {reason}"
Supported tokens:
- {player}
- {reason}
- {report_id}
The old punishments: keys are ignored.
Security
- Closed the item-drag duplication exploit
- /rt status no longer leaks backend details to regular players
- Staff permissions are rechecked at click time
- Reporter input is sanitized
- API keys, setup tokens, and report descriptions are redacted from logs
- Plain http:// base URLs are refused at load
- Activation codes are validated before setup is called
Reliability
- No more lost reports during backend outages
- New sync.fail_open option
- Exponential retry backoff
- Better handling of WordPress 429 responses
- Correct dead-letter behavior
- /rt reload is now a hard sync boundary
- In-flight HTTP/setup tasks cancel cleanly on disable
UX and commands
- /rt help staff now outputs a full moderation guide
- Clearer cooldown and duplicate messages
- Session timeout now closes the inventory and notifies the player
- Reviewer and claimed-by names now render correctly
- Backend errors now surface to staff instead of bare HTTP status codes
Testing
- ~580 unit tests
- 171 end-to-end tests
- Coverage floors, static analysis, and consistency checks enforced in CI
Notes
- Requires an active ReportToxicity subscription
- Free-tier /rt history calls now correctly return HTTP 403 unless upgraded to Basic or higher
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:pCETuEmV:D5DPSxaY"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:pCETuEmV:D5DPSxaY"
}

