All-addon development stand

This independent Gradle build composes the main Compukters development archive and every independent addon. It pins Minecraft 1.21.1 and NeoForge 21.1.252 with the following runtime:

Mod Version
Compukters + Compukters: Create + Compukters: Sable + Compukters: Propulsion Current checkout
Create 6.0.10
Sable 2.0.5
Aeronautics bundle (Aeronautics, Simulated, Offroad) 1.3.1
Create Propulsion: Simulated 1.1.5

Pinned Modrinth versions: Aeronautics Vzp221Un, Propulsion H13U56dc. The exact bundled Aeronautics mods and Sable libraries are extracted for the Loom dev classpath; no separate versions of Simulated/Offroad are selected. This stand has no distributable umbrella JAR. The main mod has no upstream physics dependency; the three Compukters addons remain independent.

For an interactive client from the repository root:

cd addons/dev
./gradlew runClient

In IntelliJ, reload the linked addons/dev Gradle build and select its runClient task (or generated client run configuration). The game directory is addons/dev/run/client; extra manually installed mods belong in its mods subdirectory. The pinned mods above are already on the classpath and do not need copying there. Server and GameTest worlds use separate run/server and run/gameTestServer directories. Gradle rebuilds the main mod and all addon archives before launching, so editing them does not require a Maven Local publication.

Temporary flight diagnostics currently keep a 3x3 area of chunks ticking around each loaded computer. For Sable constructions the area follows the transformed world position of the computer, rather than its virtual storage coordinates. Tickets refresh every ten ticks, expire after forty ticks, and are released when the computer disappears, the server stops, or /compuktersdev forcechunks off is run. /compuktersdev forcechunks on enables them again; these commands require operator permission. No vanilla force-load flags are saved to the world. This aid belongs only to the development stand and starts disabled in GameTest runs.

Run these verification/development commands from addons/dev with Gradle on JDK 25 and a Java 21 toolchain available:

./gradlew-sandbox-dev-parallel-summary verifyAddons
./gradlew-sandbox-dev-parallel runGameTestServer
./gradlew-sandbox-dev-parallel runClient
./gradlew-sandbox-dev-parallel runServer

verifyAddons checks all standalone addons, verifies that their development archives contain only their own implementation, and checks the complete pinned physics mod set through verifyPhysicsMods. Every client/server/GameTest launch also performs that physics-set check. The common GameTest server loads complete test archives instead of the ordinary addon archives, registering the Create, Sable, Propulsion and development lifecycle scenarios together. Client and ordinary server runs load the ordinary archives. Each archive is built by its owning included Gradle build. Addon Guest bundles use the current workspace SDK tooling and platform bundle, so launches do not mix a stale published compiler with the base mod from this checkout.

To add another independent addon, include its build in settings.gradle.kts, add its stable development and GameTest archives to the maps in build.gradle.kts, and declare its upstream runtime dependencies here. The addon keeps its own standalone checks, test registration and metadata. The shared stand owns only launch and verification composition.

Compukters exposes the Create Guest API, request-only sable.physics.Physics.snapshot() and the independent propulsion.thrusters.CreativeThruster.named(name) and creativeVector(name) control APIs. Select the required addon IDs in each Guest project’s compukter.toml. See the Sable guide and Propulsion guide for examples, units and control lifetime.

Joint verification on 2026-10-06 passed verifyAddons and all 18 required GameTest scenarios. Interactive construction/flight behavior still needs manual testing. Propulsion 1.1.5 emits missing-model warnings (including oxidizer states and lodestone tracker overlay) from its upstream resources; these do not prevent startup.

The stand also registers three hibernation lifecycle characterization tests (issue #697). They run with the actual pinned Create/Sable/physics mods and the development chunk loader disabled:

These tests characterize current behavior. They do not implement execution snapshots or prove that programs survive unload/restart. Computers currently cold-boot on construction reload, and a per-construction physics readiness barrier remains required for transparent restoration. check compiles the stand’s GameTests; runGameTestServer executes them.