All versions
5.1.0+26.1
Release
ExoScanner 5.1.0+26.12 days ago 8
Compatibility
Minecraft: Java Edition
26.1.x
Platform
Fabric
Supported environments
Client-side
Required content
Changes
5.1.0 - 2026-09-10
Added
- Added upload-only synchronization of scan records to the ExoScanner Cloudflare Worker.
- Added configurable upload controls for enabling uploads, existing-record backfill, batch size, and upload interval.
- Added a persistent, randomly generated installation ID for identifying individual mod installations without tying the ID to a Minecraft account.
- Added stable batch and event IDs so retried requests can be deduplicated safely.
- Added upload result logging with accepted, duplicate, and rejected record counts.
Changed
- Enabled existing-database uploads by default for new configurations.
- Increased the default central-database upload batch size to 500 records while retaining a 30-second upload interval.
- Removed the default query retention window; queries now include records of any age unless an explicit
since=filter is supplied. - Updated the upload payload to schema version 1 and aligned record fields with the ingestion API.
- Uploads now require an absolute HTTPS endpoint and use connection and request timeouts.
- Records rejected with
INVALID_ARMOR_UUIDare acknowledged locally instead of being retried indefinitely. - Successful responses are now inspected per record instead of treating every HTTP 2xx response as full-batch acceptance.
Fixed
- Fixed missing
schemaVersion,installationId, andbatchIdfields in upload requests. - Fixed local
timestamprecords not being mapped to the API's requiredobservedAtfield. - Fixed missing deterministic
eventIdvalues for uploaded observations. - Fixed existing records not being requeued when the backfill option was enabled after uploader startup.
- Fixed null and blank UUID handling when serializing scan records.
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:DjlYVzoU:3NEWwpkj"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:DjlYVzoU:3NEWwpkj"
}


