Tags
Creators
Details
Licensed MIT
Published last year
Updated 3 hours ago
All versions
2.4.5
Release
BasicStats 2.4.5last week 46
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
1.17.1
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
๐ Reliability, privacy & compatibility fixes
- Fixed login streak qualification:
streaks.mode: loginnow checks the configured minimum playtime as it accumulates, so a login streak is no longer stuck whenminimum-playtime-minutesis greater than zero. - Fixed complete statistic resets:
/basicstats reset <player> all confirmnow removes persisted achievements as well as counters, deaths, periods, rank penalties, streaks and imported-stat markers. Settings and first-join metadata remain intact. - Fixed Explorer first-upload races: concurrent first uploads now use an idempotent insert, so only one pending server record is created and the other request continues safely.
- Hardened Explorer request parsing: chunked requests are streamed and cancelled as soon as the 40 KB request limit is exceeded instead of being fully buffered first.
- Fixed Explorer claim errors: genuine address conflicts remain
409, while D1/storage failures now return a non-sensitive503instead of being misreported as an already-claimed server. - Hardened Explorer identity validation: the plugin and Pages Functions now use the same UUID format rules, and upload counters reject malformed or oversized numeric values safely.
- Aligned Explorer status freshness: the website now uses snapshot age rather than the current player count, so an empty but healthy server is not shown as offline. Frontend address validation now matches backend support for ports, IPv4 and public IPv6 addresses.
- Fixed goal event delivery: goal additions and completions now reach the dashboard event feed and Discord notification path even when the optional dashboard HTTP server is disabled, without duplicate polling events when it is enabled.
- Fixed network rank inflation: network leaderboards use the highest synchronized per-server rank score instead of summing already-normalized scores across backends.
- Hardened PlaceholderAPI access: asynchronous placeholder requests no longer call Bukkit player/server APIs; they use a safe cached result or return an empty value until a main-thread snapshot exists.
- Protected foreign scoreboards: BasicStats no longer changes or unregisters an existing
basicstats_deathsobjective owned by another plugin. - Improved database transport defaults: fresh configurations enable MariaDB TLS by default and warn when an explicitly remote database is configured without encryption.
๐งญ Release consistency
- Updated the plugin, Maven project, dashboard shell, homepage, Explorer documentation and README to 2.4.5.
- Updated the dashboard help text to use
/basicstats dashboard tokeninstead of referring to a token printed in the console. - No commands, permissions, APIs, dashboard features, Explorer pairing behavior, configuration sections or YAML data formats were removed.
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:tMD7QQfW:YeMy3EmO"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:tMD7QQfW:YeMy3EmO"
}

