Releases: xToast-dev/komet
Release list
Komet 1.2.0
Built from 5551a562f24e6a7d5ed773b40cd7542ca6f62919.
The build is reproducible: check out v1.2.0 and run
./build.sh release to get files with exactly these checksums.
734ef7732a9c1500030b65fa438d6df3b487d8bc43ad39b6554d0ab7a2e71e2e KometBaseline_v1.1.0.zip
4a1d0352e5d6e2fa017e3a6909ed54b5eb3ecacbdd6291dc37df82d5b74a2cb7 Komet_v1.2.0.zip
Komet 1.2.0 preview (39c9db6)
Preview build from nightly, commit 39c9db673f967ac3b8330068c7e47ce6361ab68a.
Not a release: it has passed the checks, nothing more.
The build is reproducible: check out preview-39c9db6 and run
./build.sh release to get files with exactly these checksums.
8c8eace7dd33ed4d12e980c02abb001b4e913fcfe8ca30c8c1866b48a174c8ab KometBaseline_v1.1.0.zip
e34eba4fb1abc3b8f1f1e4ae7eda92224b52e363f44192565dff368f866be24b Komet_v1.2.0.zip
Komet 1.2.0-pre.4
Built from 42d7f975d9742c104eb9dbc87a56446ba2bfb3f6.
The build is reproducible: check out v1.2.0-pre.4 and run
./build.sh release to get files with exactly these checksums.
72a852ab5a936fc6478b1b149f65fd4b9247488466cbb70cf6a274b522980dc2 KometBaseline_v1.1.0.zip
d643a8e24ac1ce5e514fec3746f3e07f689b51bec6563de6ceccc2f74425590d Komet_v1.2.0-pre.4.zip
Komet 1.2.0-pre.3
Built from 4f67b79785ee782e765fafc2922a617c5515afa1.
The build is reproducible: check out v1.2.0-pre.3 and run
./build.sh release to get files with exactly these checksums.
ac1df7c397bccd8a8cac340e0a5ca9fcf4f6936a562faa63d6c30d4cf74ce063 KometBaseline_v1.1.0.zip
d80c94ed06854f9a8d7cdcfc7fd56272481df03e1efcbc11ab7ef4b99be9fb59 Komet_v1.2.0-pre.3.zip
--
Changelog:
1.2.0-pre.3
Everything here answers a report from someone running pre.2, or follows from one.
Fixed
- Joining a world could crash the client with a
NullReferenceExceptionin
WeatherSystemClient.OnRenderFrame. pre.2 introduced a per-frame budget on the main-thread
task drain, and a world join queues hundreds of those tasks — including the one that
finalises the level. Spreading that backlog over frames let a renderer that was already
registered draw before the packet initialising it had run. The budget now starts only once
the world is finalised: everything a join queues runs in the frame it arrives, exactly like
vanilla. Joining is lifecycle, not load, and it is not the place to save milliseconds. - Two budgets could stop working instead of falling back. The entity tesselation and
entity loading budgets reopen their window on the frame boundary and nowhere else. If that
signal ever stopped arriving while the patch stayed applied, the tesselation budget skipped
every further entity shape — permanently, for every animated creature in the world — and
held entities were never loaded. Both now notice the missing signal, run vanilla instead,
and count it on the HUD; and neither arms itself at all if the measurement it depends on
failed to apply. A budget that loses its reset has to degrade to slower, never to never. - The patch guard was quiet about the collisions that matter most. Where Komet replaces an
engine method outright (its prefix returns false), another mod's transpiler never runs, a
prefix ordered behind Komet's is never called, and a postfix sees the result of Komet's
transcription rather than the original's. All three used to be reported as "info". They are
now high/high/medium with the reason spelled out — this is the shape behind reports of the
"entities are invisible since I installed this mod" kind, and it should not need a bisect.
Added
- German HUD and chat. The F7 overlay and the
.kometreplies follow the game language;
English and German ship inassets/komet/lang. Missing translations fall back to the English
text in the source, never to a raw key. - Reproducible release builds with a published checksum. The same commit produces the same
bytes, so the SHA-256 on the download page can be recomputed rather than merely trusted. The
number is also published on the GitHub release, written by the build job.
Changed
- Logs, reports and hitch lines are English. They used to be German. These end up in bug
reports and get read by people who do not run the client that produced them — the HUD and the
chat replies are the surfaces that follow the player's language, and nothing else does. - The mod zip is stored, not compressed (~180 KB → ~450 KB). Identical data does not give
identical deflate streams across zlib implementations, so compressing would have made the
checksum unreproducible on a different machine. The download is larger; the promise holds. - The unused
MeasureRenderStagessetting is gone from the config class. It was never read.
The config layout version stays at 11 on purpose: an existingkomet.jsonkeeps working,
the leftover key is ignored, and nobody's settings get regenerated over a dead entry.
Internals
- Every build runs on GitHub Actions: both mods built, the full patch and behaviour suite run
against the real game assemblies, the packaged zips attached to the run, previews published
under Releases. The SDK version is pinned inglobal.json— a different patch level produces
a different assembly, which is measurable and would otherwise break reproducibility silently. - Source folders sit next to the project file and each one is its own namespace
(Culling/→Komet.Culling,Measure/→Komet.Measure). Not cosmetic: an editor rule
that derives namespaces from paths had rewritten a generated file and silently disabled the
engine-drift check.