Links
Tags
Creators
Details
0.1.2
Compatibility
Changes
0.1.2
This release is mostly about honesty and stability: training you can reproduce, metrics that do not lie, and concurrency that does not lose your data.
Training
- Reproducible runs. Set
training.seedto a fixed, non-zero value and the same dataset and settings produce the same model. Leave it at0for a fresh random seed each time. - Class balancing. New
training.balance-classesandtraining.class-weight-capweight the minority class up, so a small cheater or legit sample is not drowned out by the majority. - Honest metrics. When there is no validation holdout, the training message and the model metadata now say the numbers came from training data. No more treating a training-set score as an independent estimate.
Commands
- Added
/lad models compare <a> <b>to put two models side by side. /lad models infonow shows the metrics source, whether classes were balanced, and the training seed./lad statusand/lad dataset inforead the dataset off the main thread.
Performance
- Predictions run on their own thread pool (
performance.prediction-threads), separate from the dataset writer, so heavy inference does not block recording. - Dataset counting and trimming stream the file line by line instead of loading every row into memory.
- Optional ping band (
detector.min-ping-ms,detector.max-ping-ms) skips windows recorded under unusual latency.
Fixes and hardening
- Alert history is now read and written under proper synchronization.
- Shutdown stops predictions, drains queued writes, then closes the writer in the right order, so recorded windows are not lost.
- Model files load through an allow-list deserializer that only resolves model and core JDK classes.
- Added a JUnit test suite for metrics, GCD math, prediction tracking, dataset parsing, and path handling.
Test on a local server before production, and keep backups of your models and datasets.
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:pw0YUPv0:mN77ulUu"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:pw0YUPv0:mN77ulUu"
}

