Repository navigation
Compatibility and Testing
If you're testing in game, use the playtest checklist. It has commands, steps you can repeat, and what should happen for core features, multiplayer, permissions, optional clients, the example addon, and cleanup. Mark each test Pass, Fail, or Not run. This page records tests that have already been done; the checklist tells you what to test.
Stable 0.2.0 and local beta.6 are separate artifacts. The beta.6 checkpoint below is packaged and automatically tested, not deployed or manually verified in real multiplayer. Versions and release status summarizes the mod, Workshop and unfinished Observatory work.
Older development sections below retain their original results and limits. Statements such as “current beta” within those dated records mean the host at the time of that check, not today's compatibility declaration. The old 0.1 release required matching clients; stable 0.2.0 includes optional-client fallback.
The migration preserved source and artifacts and passed compilation/UI checks; it did not repeat runtime tests. Do not count those checks as a new server, client or multiplayer playtest.
- Full Java 25 offline build, 5,216 core audit assertions, file-worker checks and all thirteen workshop suites pass. Both JSON Schema exports validate, with 14 accepted / 11 rejected fixtures and 642 portable-contract assertions.
- All 40 native Minecraft 26.3 GameTests pass without and with Lithium 0.26.2. New cases preserve melee wind-up during movement, hit once at its original deadline, reject escaped/obstructed impacts and cancel lost targets.
- The exact packaged jar passes disabled-workshop and unreachable-relay boots, native commands/fight lifecycle, byte-preserving migration and clean shutdown. Loader rejects an old companion before initialization.
- Native client checks pass 2,700 model comparisons and 65,536 emissive pixels with Sodium/Lithium, EMF 3.3.8 / ETF 7.2.4 and EMF 3.3.11 / ETF 7.2.5. Before correction, the tint-mask regression failed on an opaque body pixel; the tendril mask now covers only its native UV regions.
These are scripted native positions and loaded model/mask checks, not a rendered multiplayer chase or screenshot. Confirm the reported whole-skin flash in the actual encounter. Mixed-client latency, full live-pack fights, TPS and long-term heap checks remain manual. Earlier beta relay/frontend tests remain separate. No live server or installed client was modified or restarted for these checks.
Recorded on 2026-10-11: the prior source reproduced the reported problem with
Universal Graves 3.13.0+26.3, which captured a marked fight bottle before
Fabric's AFTER_DEATH callback. The new cleanup runs before native death loot.
Common/client compilation and 5,013 offline assertions passed. All 33
native Minecraft GameTests passed both without third-party mods and with the
isolated supplied server pack, followed by normal shutdown. A narrower run with
the exact supplied Graves, Lithium and Polymer jars also passed and shut down.
The grave contained the personal offhand and ordinary potion, and no fight
bottle. Native respawn and grave recovery restored those items exactly once
after /boss remove. Additional cases cover keepInventory, a Fabric death
veto, totem survival and an older saved copy being removed on attempted use.
Early runs stalled at shutdown after passing assertions because the test used an occupied grave position as its respawn checkpoint and fell back to world spawn. A separate, asserted checkpoint in the loaded test area fixed the fixture; the gameplay cleanup code did not need a chunk-ticket workaround. The test's embedded players acknowledge 26.3 world loading before fatal damage; without that, the server rejects damage and would not verify death handling.
Existing service/Discord exclusions from the supplied-pack tests still apply. This does not test every grave mod or real client latency/packet decoding. No jar was packaged/deployed and no installed files or live worlds were edited.
Recorded on 2026-10-11 after the review fixes: common/client compilation, 5,013 offline assertions including 628 template-contract checks, and independent schema validation passed. Both schemas were valid; 14 valid fixtures were accepted and 11 invalid fixtures rejected, including the reported null/omission/roar filename cases. All 29 native Minecraft GameTests passed in an isolated development server. Potion tests cover the actual remove command, offhand restoration, inventory/cursor copies, orphan cleanup, overlap, and authoritative full inventory packet delivery.
Two older Sonic Boom tests were updated to check the API's already implemented interruption contract: phase changes/reloads cancel pending action damage, and a replacement charge gets its complete wind-up. No combat implementation changed in this test correction. The ordinary offhand removal test passed before the cleanup change; the reported real client's exact cause remains unconfirmed. Retest that display after packaging. No jar was packaged/deployed, no live world was edited, and these checks do not verify a real client, high-latency network, the server modpack, browser forms or the live schema-export command.
Recorded on 2026-10-11: common/client compilation and 4,947 offline assertions passed, including 562 template-contract checks. Tests exercise every bundled preset, both production writers, version/duplicate rejection, UTF-8/nesting limits, unknown addon data, large numeric tokens, explicit nulls, nested metadata-like keys and encounter order. An isolated loader proved the portable codec runs with only the JDK, Gson and its decimal helper, with Minecraft/Fabric absent.
An independent Draft 2020-12 validator accepted both exported schemas, all seven
presets, the default document and a sample addon; six invalid fixtures were rejected.
The standalone export launches no Minecraft process. These results do not verify
browser behavior, the live /boss template schema command or new GUI interactions.
No jar was packaged/deployed for this work; 0.1-client-optional.1 predates it.
The website was still future work during those checks; they are not browser test
evidence. A later first web editor is described in
Templates and presets.
The latest server source adapts native Warden tracking for players without Clockwork Bosses. Install a newly built server jar to use it; previously released or installed 0.1 jars do not contain this change. Players who install the core client must still match the server build. The presence check reads Fabric's negotiated core editor channel; it grants no permissions and does not verify the jar version.
| Feature | Matching client mod | Without the client mod |
|---|---|---|
| Server attacks, targeting, phases and subphases | Full behavior | Same server behavior |
| Native boss bar, particles, scale, rewards and player support | Available | Available |
| Player/custom skin, glow, eyes and phase flash | Available | Vanilla Warden appearance |
| Custom OGG events, voice lines and music | Available | No custom file audio |
| Editor and enhanced selector feedback | Available to operators | No editor; use commands/files |
| Custom melee/Sonic animation timing | Synchronized visuals | Native timing may differ from damage |
Server-played vanilla sounds keep their configured volume. Client-local heartbeat volume requires the mod. An unmodded client retains its native max-health limits for local entity display; server health and boss-bar percentage remain authoritative.
How it works: the first tracking snapshot and later dirty updates remove only Clockwork Bosses' twelve visual metadata fields for clients without it. Later Warden fields from other mods keep their serializers and values, with IDs adjusted for the removed slots. Matching modded clients receive the original data. Ordinary Wardens use the same adapter because other-mod field IDs can be shifted there too; unrelated entities and attribute/movement packets keep their native path. Other required mods must still have compatible client/server layouts. Custom skin/sound/music channels already check whether each recipient supports them.
There is no additional watcher, presence map or handshake timer. The adapter uses Minecraft 26.3's existing pairing and filtered tracking broadcasts. It covers this core's Warden fields, not an addon's custom registries or direct packet formats. Native-only addons such as the lightning example can operate without a client addon or core; addons with new entities, items, renderers or networking may need installation on clients.
Status: common/client compilation passed on 2026-10-11. The development test jar clockwork_bosses-0.1-client-optional.1.jar is now packaged, including experimental API revision 1 and its safety updates. No tests, game launch or deployment were performed for this change. The previous release artifact remains separate; the new test jar is not a published release. Before production use, check one matching client and one without Clockwork Bosses tracking the same ordinary Warden and boss; every phase; late join/tracking; reconnect/dimension changes; high boss HP; support/rewards; full media on the modded client; and other-mod Warden fields with the intended pack. The earlier release checks below do not verify this source change.
The 0.1 release recorded:
- 4,384 config/media assertions
- 1,038 native GUI assertions
- 28/28 native server tests, both with and without the supplied server pack
- A production-jar startup and spawn/activate/save/remove check in a disposable local pack server, followed by normal shutdown
Native GUI assertions don't replace hands-on checks of every GUI scale and preview control. These results do not establish real multiplayer latency behavior, full-pack client play, or compatibility with every mod combination.
The later API source and lightning example have compiled, including core common/client code. Those checks do not establish in-game behavior or update the recorded 0.1 results above. The latest source must be packaged before installation; an older packaged development jar may lack subsequent changes.
Before a stable API release, check:
- Legacy combat/recovery and native roar timing, targeting and cooldowns.
- Server-only addon controls, type changes, invalid/stale saves and missing addons.
- Two bosses executing the same addon independently.
- Completion, phase change, reload, death, removal, unload and shutdown cleanup.
- Temporary entity persistence through chunk and passenger saves.
- Burrow terrain/scale safety, target movement/exit/death, surface restoration and restart recovery.
- Radius membership, support and music while buried and after emergence.
- Event order, final audiences, unload-versus-death reasons and failing listeners.
- Lithium, Sodium, ETF, EMF, the intended pack and real multiplayer connections.
Compiling the code and reviewing the docs don't tell us how it behaves in-game. Runtime testing and deployment are still separate steps; no new API gameplay result or deployment is claimed here.
Earlier targeted checks in the same release line covered:
- Native server tests with and without Lithium 0.26.2+mc26.3
- 2,700 native model comparisons in an isolated client with Sodium 0.9.2+mc26.3, ETF 7.2.4, EMF 3.3.8, and Lithium
- Offhand ownership and transfer cases, including copied stacks, changed counts/data, replacement offhand items, and ordinary-totem conversion in the supplied pack
Recovery guards native Brain.tick behavior calls while preserving Lithium's optimized implementations, memory expiry, and sensors. Only marked recovering bosses pause behavior execution.
Normal Wardens and foreign emissive textures keep their own rendering/AI paths. Custom file audio uses native channels without a resource-pack SoundInstance, so mods that process only SoundEngine.play may not apply their effects to these clips.
Better Combat, Combat Roll, visual encounters, real connection loss, and full multiplayer interactions still need hands-on checks in the intended pack. The supplied pack result covers that tested setup. It doesn't establish compatibility with every pack.
Run these checks in a disposable world or a backed-up test copy of the setup you plan to use.
- Load and permissions: join with matching jars; verify operator commands and that ordinary users cannot edit.
- Lifecycle: create/copy a template, set spawn, select regions, spawn dormant, activate, save/reload, and remove.
- Activation: test outside-to-inside entry, already-inside spawn, redstone edges, dimensions, and region height.
- Combat: cross every health cutoff; check melee/beam timing, close-range priority, target rotation, blocked swings, and cancelled wind-ups.
- Sequences: test ordered/random subphases, Recovery, roar interludes, and phase/reload interruption.
- Support: test late entry, exit/re-entry, health-percentage restoration, overlapping arenas, full inventory, moved offhand items, potion cooldown, death, and reconnect.
- Media and UI: test the skin/eye/brow preview at your GUI scale, first-use audio downloads, phase/death sounds, music exit/fade, resource reload, and live glow.
- Rewards: verify enabled source, expected default items, quantity/chance settings, vanilla-drop policy, and a single reward execution on death.
- Multiple clients: repeat important cases with actual players and the network conditions you expect.
Passing an isolated test is a good start. Testing with actual players also checks packet timing and what happens when their actions overlap.
Capture is operator-only, bounded, and disabled by default:
/boss debug on
/boss debug status
/boss debug dump
/boss debug off
/boss debug clear
Turn it on while you reproduce a specific attack/support problem. It does not add a periodic AI snapshot system or diagnostic packet stream. Configuration, skin, sound, and encounter errors still provide normal warnings.
Build requirements: Java 25 and the repository's Gradle 9.7.0 wrapper. Fabric/Minecraft versions are defined in gradle.properties.
Windows:
.\gradlew.bat build
Linux/macOS:
bash ./gradlew build
The universal client/server jar is written to build/libs/. build includes the dependency-free auditChecks suite. Native GameTests are a separate check.
Portable local checks on Windows:
.\gradlew.bat auditChecks runGametest
Linux/macOS:
bash ./gradlew auditChecks runGametest
GameTests create a disposable world under build/combat-gametest, so you don't need a production server to run them. The separate runClientcheck task loads native model assets, compares transformed poses, reports its result, and closes. Development test mods are excluded from the universal jar.
Keep source, bundled presets/assets, regression fixtures, and wrapper files in version control. Keep runtime worlds, private server configuration, credentials, logs, caches, and generated builds out.
The experimental API gained thread checks, interruption/cleanup guards, temporary-entity portal and cross-dimension rejection, relocation ownership checks, and signed 32-bit integer schema bounds. Java 25 / Minecraft 26.3 common/client compilation succeeded. Native injection signatures were inspected in the configured Minecraft bytecode. No game launch, runtime injection check, heap/load measurement or deployment occurred in this review.
Before release, verify interruption during start/stop/damage/relocation, simultaneous bosses, temporary entity portal rejection and unload, saved burrow recovery, and the editor with a server-only addon. Exercise the actual Lithium/Sodium/ETF/EMF environment. Existing release results do not verify this later source. See API safety and resource limits.
0.2.0-beta.4 combines core and companion 0.3.7. Recorded checks: offline full build, 5,216 core assertions, all workshop/file-worker suites, 37 native GameTests, 14 valid/11 invalid schema fixtures, 33 Cloudflare tests and real merged Java/local workerd upload/publish/reconnect/shutdown. Packaged disposable servers cover disabled access, enabled/unreachable TLS relay, legacy settings preservation, native commands and old-companion rejection before initialization. Windows junction escape and native/web stale publication are also rejected in regression fixtures.
No workshop tick watcher exists. Core commands use bounded workers; native editor and preset-copy jobs keep separate bounded I/O-pool ownership. Permission/entity access remains on Minecraft's thread. Retry has one timer with capped exponential backoff. Shutdown cancels streams/requests/tasks; reader Errors settle futures. No TPS/heap improvement is claimed from these short tests. Registry capture's 2 ms budget is soft per batch, not a guaranteed per-tick cap.
Rendered real-client/no-mod login, poor connections, full live-modpack fights and long-running TPS/heap checks remain manual. Native codec checks are not a rendered client session. The hosted website was not republished by this merge. Follow Workshop and Playtest checklist before release.
The isolated 26.3 suite now has 47 required GameTests, all passing with and without Lithium 0.26.2+mc26.3. The seven new PvP cases exercise direct native melee, sweeps, flaming/tipped arrows, splash healing/poison/instant harm, lingering clouds, sourced effects, operator commands, TNT damage/knockback, owner logout and save/read/reassignment, immediate radius entry/exit/reload/removal, fixed boxes, overlapping encounter end and nested effect-context exception cleanup, and player-caused versus natural lightning. Existing combat, rewards, support and workshop native cases also pass.
Full offline build passes 5,257 core audit assertions, bounded file-worker checks and all thirteen workshop suites. Independent schema validation passes 16 accepted and 12 rejected fixtures; portable contract export has 644 assertions. The browser's separate schema/default/null/legacy/preset/round-trip checks pass 31 assertions. Native client boot/mask/model checks pass with Sodium/Lithium, EMF 3.3.11 and ETF 7.2.5. This verifies loaded code, not rendered multiplayer PvP.
Real clients without the mod, high latency/loss, your live pack and Better Combat/Combat Roll still require multiplayer playtesting. No TPS benchmark or long-running heap profile was performed. No live jars were replaced and no server was restarted; the website candidate is not published.
Exact test environment: Minecraft 26.3, Java 25.0.4, Fabric Loader 0.19.5, Fabric API 0.161.0+26.3, Gradle 9.7.0 and Loom 1.18.2. Optional mods: Better Combat 3.2.2+26.3-fabric (metadata 3.2.2), Cloth Config 26.3.158 and Player Animation Library 1.2.8+mc.26.3. The official artifact's checksum and actual hand mask, weapon lookup, server handler and configuration handshake were inspected.
All 54 required dedicated-server GameTests pass with Better Combat, including the existing 47. Seven added cases cover hidden equipment and full inventory safety, native main-hand drinking/interruption/reuse, shared cooldown, weapon swaps, dual-wield attacks, death/exit cleanup, actual committed server hits, tested speeds, crits, scaled reach, phase crossing and protected multi-target melee/Fire Aspect/knockback. All 47 required native tests also pass without Better Combat. Full build passes 5,257 audit assertions, the file-worker checks, all 13 workshop suites and 644 portable contract assertions.
All 54 required tests also pass with Better Combat and Lithium 0.26.2 together. An initial intermittent fixed-box overlap failure passed on diagnostic rerun without a gameplay change. That fixture now moves the boss vertically within the same loaded chunk and asserts it stays loaded/alive; PvP production code is unchanged. The exact packaged jar boots dedicated servers with/without Better Combat, creates/activates/removes a fight and shuts down cleanly. Workshop disabled/unreachable, fixture migration and old-companion rejection pass. The separate native client recheck without Better Combat passes 2,700 model comparisons and 65,536 emissive pixels with Sodium/Lithium/EMF/ETF.
An intermittent preexisting catalog-test timeout was reproduced: accelerated
native GameTests consumed 300 ticks in 34 ms. The test now briefly yields while
its real worker is pending; production batch/deadline logic is unchanged.
Test-only doTick() calls advance embedded players without actual client
connections. Those calls and all test classes stay outside the distributable.
These are embedded native fixtures, not actual multiplayer. Client input and animations, latency/loss, mixed-client login, your full live pack and graves with Better Combat remain untested. Combat Roll was not included. Clockwork itself remains optional on clients; Better Combat's own exact configuration task rejects clients lacking its channel. No TPS or heap benchmark was run.
The only new gameplay integration checks hand usability at potion grant/refresh. It is optional and adds no combat callback or tick listener. Nothing is deployed or published; the 0.2.0 release snapshot is preserved. Use the focused checklist.
Common/client compilation and jar/source packaging succeed. No regression
tests or native game tests were added/run for this change. Source review shows
the callback runs only after a successful publication, on the existing file
worker. It updates one validated template name under the shared file-writer
monitor and publishes a sorted immutable snapshot for autocomplete. Save draft
does not call it. Current encounters retain their config snapshots; future
spawns continue to read disk normally. Failed notification reports publication
success with template_index_refreshed=false, leaving manual reload available.
The website/documentation notice is: Run /boss reload to apply these changes
to bosses that are already spawned. Legacy reload_required=true remains
valid for that purpose. Mod/website installation and beta.5 compatibility
declaration have not been performed; published beta.4/0.2.0 remain unchanged.
Beta declares exact support for mod 0.3.0-beta.4 and legacy 0.2.0, independently of its website version. All 29 public beta file hashes match the tested capture; root/scoped metadata GET/HEAD succeed. Foreign origins, invalid relay proofs and private assets remain denied. Production's version and all 27 pre/post file hashes are unchanged. No dev deployment, mod jar, server setting or credential change was made.
The exact beta.4 jar's normal Java HTTP client reads public beta metadata and reports compatible/writable. Against that actual declaration, 23 loopback API assertions pass for owner/CSRF/origin/session isolation, exact JSON edits, validated OGG upload, publication, withdrawn compatibility and revoked owner permissions. The unchanged released0.2.0 API and current browser SDK's legacy, autosave, catalog and upload paths pass; the captured website has 27 SDK/relay contract tests. Public browser rendering was checked by the website owner. Real Minecraft-account/cloud relay editing and publishing remain playtest work; the earlier workerd/SQLite restriction was not bypassed. The native Minecraft results below are historical, not a new game run for this website release.
The packaged channel is explicitly beta, selecting https://beta.clockworkboss.com
for new build-channel configurations. Existing explicit URLs remain pinned;
testing_channel=beta deliberately overrides them with a separate identity.
The build and all 14 Workshop suites pass, including 62 channel assertions and
5,257 core audit assertions. Jar metadata and shared browser/relay selection
were checked. Gameplay code is unchanged; the native results below are from
beta.3, not a new beta.4 Minecraft run. No deployment, hosted login, server
setting changes, credential migration or website compatibility declaration
was performed. Current beta supports only mod 0.2.0, so this preview remains
read-only there until tested support is explicitly declared.
- Full common/client build, 5,257 audits, file-worker checks and all 14 workshop suites pass. The new channel suite has 59 assertions for explicit build selection, legacy/pinned/custom URLs, independent identities, origin binding, no version-suffix inference, metadata/size/redirect checks, exact supported versions/capabilities and authenticated read-only/mutation gates.
- All 47 required native server GameTests pass; gameplay/PvP code is unchanged.
- The actual unchanged released 0.2.0 jar runs the owner/CSRF/draft/download/ publish regression in a separate Java classpath without new metadata. This is released API code with disposable HTTP/storage fixtures, not Minecraft account login or a hosted-cloud end-to-end test.
- Canonical browser checks pass for web0.2.1/mod0.2.0, empty dev allowlists, wrong origins/channels, missing/invalid/oversized metadata, read-only recovery, logout, autosave and a compatibility change immediately before raw XHR upload. Existing actual SDK autosave, item-catalog and sound-upload regressions pass.
The current beta declaration includes only 0.2.0; dev declares none. A new 0.3.0-beta.3 connection there is correctly read-only until explicit compatible site publication. Browser source/dev assets are prepared only. Captured release manifests and 0.2.0/0.2.1 website bytes are unchanged. No live/test settings, keys, deployments, commits or pushes are changed. Live cloud/real-account login, pixel GUI checks, latency and TLS/cloud relay end-to-end were not performed; the documented Windows workerd/SQLite restriction was not bypassed.
Prepared October 13, 2026, for existing friendly-fire, Better Combat/potion and
face controls. No additional roadmap mechanic was added. One universal jar:
clockwork_bosses-0.3.0-beta.6.jar, explicit beta build channel, API revision 1.
SHA-256: d917fbe4af296e5b54d839b6c04f0db9336f98549b1eff508f5f56b6f58473de.
- Full offline build/check passed: 74,241 audit assertions plus registered Workshop/file-worker suites.
- Native servers passed 56 required GameTests without Better Combat, 63 with Better Combat, and 63 with Better Combat plus Lithium.
- Native client passed 2,700 model comparisons, 65,536 emissive pixels and 393,217 face-mask assertions; editor passed 1,104 loot-GUI and 130 face-GUI assertions at three representative sizes, with a rendered preview.
- Exact jar/API passed 23 isolated session/publishing/security assertions. Packaged dedicated servers booted with/without Better Combat, exercised commands, handled disabled/unreachable Workshop and shut down cleanly. Loader rejected the old companion before duplicate initialization.
- Local website passed 68 regression checks and actual standalone browser Import/Download/edit/reimport with precise unknown data retained.
Versions: Minecraft 26.3; Temurin Java 25.0.4; Loader 0.19.5; Fabric API 0.161.0+26.3; Better Combat 3.2.2+26.3-fabric; Cloth Config 26.3.158; Player Animation Library 1.2.8+mc.26.3; Lithium 0.26.2+mc26.3; Sodium 0.9.2+mc26.3. Final native client/GUI used EMF 3.3.11 and ETF 7.2.5.
Hosted beta is not yet compatible. Its public declaration remains website 0.3.0-rc.3/build c68627b1, supporting only mod beta.4, beta.3 and 0.2.0. The actual jar's HTTPS client verified beta.6 is read-only for editing/publishing. Published beta controls/schema lack the new face fields. Local beta.6 website Save/Publish tests use a deliberately synthetic declaration/auth fixture; they do not establish live support. A separately approved beta website update is required. Stable/dev sites and live server settings were not changed.
These server tests use embedded players. No real multiplayer, high-latency/loss run, complete live modpack, actual gravestone interaction or heap/TPS benchmark was performed. Real optional-Clockwork login remains pending here; a server with Better Combat still follows Better Combat's own client requirements. No deployment, installation, commit or push occurred. Historical released 0.2.0 and its main/tag snapshot remain separate.
Test Mod 0.4.0-dev uses a fingerprinted beta.5 development core snapshot, not stable 0.2.0 or an automatically interchangeable beta.6 jar. Its historical six-cycle stability fixture passed native death, four phases and cleanup across empty offhand, occupied shield and full inventory cases. Each fight took 195 native ticks. This low-damage fixture is not balance validation, reward coverage or proof of a leak-free server.
The later native GUI/shared-service extension compiled, but the full profile-launch → GUI → saved-results flow and browser connection to that shared service remain unfinished/unverified. Migration checks did not rerun the stability suite. Boss Observatory and Test Mod lists supported workflows, evidence and remaining coverage.
Clockwork Bosses
- Home
- Versions and release status
- Installation and quick start
- Templates and presets
- In-game editor
- Hosted workshop
- Workshop troubleshooting
- Commands
Build the fight
- Phases and subphases
- Combat and targeting
- Arenas and activation
- Player support
- Skins and face controls
- Sounds and music
- Darkness and visual effects
- Loot
Reference and help
- Permissions and LuckPerms
- Configuration reference
- Troubleshooting
- Compatibility and testing
- In-game playtest checklist
Experimental addon development
Development testing tools