Tags
Creators
Details
ALPHA-1.5
Compatibility
Changes
Performance overhaul of ALPHA 1.1 HOTFIX. No new devices, commands, or configuration options — every change is to when and how often work happens, not to what the simulation does.
Performance
Measured on Paper 1.21.1 against ALPHA 1.1 HOTFIX with identical worlds and workloads:
| Scenario | 1.1 HOTFIX | 1.5 | Change |
|---|---|---|---|
| 555 devices / 150 groups, average tick work | 1.552 ms | 0.515 ms | −67% |
| 555 devices, worst single tick | 118 ms | 64 ms | −45% |
| 5 devices with continuous airflow churn | 0.863 ms | 0.575 ms | −33% |
At 555 devices the controller previously spent roughly 23 ms inside a single tick, once per second — the kind of periodic hitch players feel as a stutter.
Three main-thread stalls were removed:
- Registry saves blocked the tick for 12–65 ms depending on device count. The snapshot is still built on the main thread (~1 ms); the YAML dump and file replacement now run off it.
- Airflow rebuild completion copied the whole distance map, costing up to 42 ms in a single tick at the configured cell cap.
- Chunk streaming drove the controller at up to 20 Hz instead of its configured period whenever players were loading chunks.
Airflow systems also use about 2.3× less memory each.
Behaviour changes
- Airflow rebuilds are debounced. A vent system waits 20 ticks after its last change before rebuilding, with a 200-tick ceiling. In practice airflow reacts about a second after a door moves rather than instantly. This also fixes a case where a door on a redstone clock could consume the entire node budget every tick and never finish a usable airflow map.
- Chunk-load reconciliation is deferred by up to one controller period.
Upgrading from ALPHA 1.1 HOTFIX
Drop-in. Replace the jar and restart — no migration, no config changes.
hvac.ymlformat is unchanged (version 5)config.ymland all tuning options are unchanged- Rolling back to 1.1 works; the state file stays readable by it
- Verified for both a clean restart and a crash restart with machines running and fluid outputs owned
- Verified on Paper 1.21.1 and Purpur 1.21.1
As always with alpha software, back up your world and plugins/EZvac/hvac.yml
first. After starting, /hvac list should show all your systems, and the log
should be free of Could not save hvac.yml.
Licensing
EZvac moves from The Unlicense to the MIT License starting with this
release. Releases through ALPHA 1.1 HOTFIX remain dedicated to the public
domain — that dedication is irrevocable. Contributions are now accepted under
MIT with no CLA; see CONTRIBUTING.md.
Requirements
Paper 1.21.1 or a Paper fork such as Purpur, and Java 21.
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:dCv4gYwb:PpZd8Emz"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:dCv4gYwb:PpZd8Emz"
}

