Compare commits

...
Author SHA1 Message Date
Ludovic Marieandoxi-does-dev 91b1cef4b2 Add hud_plus 4 (#347)
* Add hud_plus 4

Submitted by @oxi-does-dev through the form.

Submission: E7QvlGS8WgWudmiynwnyKWatgHM2Heg8Ur8C4te986M
Co-authored-by: oxi-does-dev <[email protected]>

* Add hud_plus 4

Submitted by @oxi-does-dev through the form.

Submission: E7QvlGS8WgWudmiynwnyKWatgHM2Heg8Ur8C4te986M
Co-authored-by: oxi-does-dev <[email protected]>

---------

Co-authored-by: oxi-does-dev <[email protected]>
2026-11-07 09:29:58 +01:00
Ludovic MarieandDenoxyYT 1858aa143c Add ayynoxs_map_pack 0.4.2 (#301)
* Add ayynoxs_map_pack 0.4.2

Submitted by @DenoxyYT through the form.

Submission: M1rGfhQ8WOukC1_9Hqji6xN1S9n7BeLUbqJ2VaYFHrY
Co-authored-by: DenoxyYT <[email protected]>

* Add ayynoxs_map_pack 0.4.2

Submitted by @DenoxyYT through the form.

Submission: M1rGfhQ8WOukC1_9Hqji6xN1S9n7BeLUbqJ2VaYFHrY
Co-authored-by: DenoxyYT <[email protected]>

---------

Co-authored-by: DenoxyYT <[email protected]>
2026-11-07 09:26:04 +01:00
Danil Sheremetyev 93fbabcb60 Add PVP Music 1.2.0 (native port) (#333)
* Add PVP Music 1.2.0 registry entry

* Add PVP Music icon
2026-11-07 09:20:24 +01:00
Danil Sheremetyev aff9324c5c Add fast_trading 1.0.0 (#328)
* Add fast_trading 1.0.0

* Add fast_trading icon

* fix sha256 for rebuilt mixins-layout hnmod
2026-11-07 09:19:33 +01:00
Ludovic MarieandStink-O da49d87193 Add orbital 0.5.10 (#343)
* Add orbital 0.5.10

Submitted by @Stink-O through the form.

Submission: UhxCJpE6NeGS2rlo4B0KBaacOmRp-aYkbPXTW3_gGjA
Co-authored-by: Stink-O <[email protected]>

* Add orbital 0.5.10

Submitted by @Stink-O through the form.

Submission: UhxCJpE6NeGS2rlo4B0KBaacOmRp-aYkbPXTW3_gGjA
Co-authored-by: Stink-O <[email protected]>

* Add orbital 0.5.10

Submitted by @Stink-O through the form.

Submission: UhxCJpE6NeGS2rlo4B0KBaacOmRp-aYkbPXTW3_gGjA
Co-authored-by: Stink-O <[email protected]>

* Add orbital 0.5.10

Submitted by @Stink-O through the form.

Submission: UhxCJpE6NeGS2rlo4B0KBaacOmRp-aYkbPXTW3_gGjA
Co-authored-by: Stink-O <[email protected]>

* Add orbital 0.5.10

Submitted by @Stink-O through the form.

Submission: UhxCJpE6NeGS2rlo4B0KBaacOmRp-aYkbPXTW3_gGjA
Co-authored-by: Stink-O <[email protected]>

* Add orbital 0.5.10

Submitted by @Stink-O through the form.

Submission: UhxCJpE6NeGS2rlo4B0KBaacOmRp-aYkbPXTW3_gGjA
Co-authored-by: Stink-O <[email protected]>

---------

Co-authored-by: Stink-O <[email protected]>
2026-11-07 09:19:01 +01:00
Ludovic MarieandJoeypc6 83886de13c Add ae2 15.4.14 (#340)
* Add ae2 15.4.14

Submitted by @Joeypc6 through the form.

Submission: OzOvPXHw2IN0HTSD1M-b8-tMaqNjG8-uOGcXwSNsdR0
Co-authored-by: Joeypc6 <[email protected]>

* Add ae2 15.4.14

Submitted by @Joeypc6 through the form.

Submission: OzOvPXHw2IN0HTSD1M-b8-tMaqNjG8-uOGcXwSNsdR0
Co-authored-by: Joeypc6 <[email protected]>

---------

Co-authored-by: Joeypc6 <[email protected]>
2026-11-07 09:17:08 +01:00
Ludovic MarieandDemerobit df3e843284 Add chat_heads_rust 1.0.2 (#321)
* Add chat_heads_rust 1.0.2

Submitted by @Demerobit through the form.

Submission: tV10BBalf8kHDuDheoa4TICqdLKCV6mDcM2GBGLAfbE
Co-authored-by: Demerobit <[email protected]>

* Add chat_heads_rust 1.0.2

Submitted by @Demerobit through the form.

Submission: tV10BBalf8kHDuDheoa4TICqdLKCV6mDcM2GBGLAfbE
Co-authored-by: Demerobit <[email protected]>

---------

Co-authored-by: Demerobit <[email protected]>
2026-11-07 09:11:28 +01:00
Ludovic MarieandUniDex101 5798ba209e Add movement_status 0.1.0 (#304)
* Add movement_status 0.1.0

Submitted by @UniDex101 through the form.

Submission: sicPoqM12PnKQ3e1dnDx8memNU2Ll3GXtcq1TGOahU0
Co-authored-by: UniDex101 <[email protected]>

* Add movement_status 0.1.0

Submitted by @UniDex101 through the form.

Submission: sicPoqM12PnKQ3e1dnDx8memNU2Ll3GXtcq1TGOahU0
Co-authored-by: UniDex101 <[email protected]>

---------

Co-authored-by: UniDex101 <[email protected]>
2026-11-07 09:11:22 +01:00
Ludovic Marieandplatinum7048 8984945062 Add pastel_mystic 1.0.0 (#354)
* Add pastel_mystic 1.0.0

Submitted by @platinum7048 through the form.

Submission: 495BAQEYTjDXIUoMLKZ2W9smnAO28NDdx4aIObEhe6w
Co-authored-by: platinum7048 <[email protected]>

* Add pastel_mystic 1.0.0

Submitted by @platinum7048 through the form.

Submission: 495BAQEYTjDXIUoMLKZ2W9smnAO28NDdx4aIObEhe6w
Co-authored-by: platinum7048 <[email protected]>

* Add pastel_mystic 1.0.0

Submitted by @platinum7048 through the form.

Submission: 495BAQEYTjDXIUoMLKZ2W9smnAO28NDdx4aIObEhe6w
Co-authored-by: platinum7048 <[email protected]>

* Add pastel_mystic 1.0.0

Submitted by @platinum7048 through the form.

Submission: 495BAQEYTjDXIUoMLKZ2W9smnAO28NDdx4aIObEhe6w
Co-authored-by: platinum7048 <[email protected]>

* Add pastel_mystic 1.0.0

Submitted by @platinum7048 through the form.

Submission: 495BAQEYTjDXIUoMLKZ2W9smnAO28NDdx4aIObEhe6w
Co-authored-by: platinum7048 <[email protected]>

* Add pastel_mystic 1.0.0

Submitted by @platinum7048 through the form.

Submission: 495BAQEYTjDXIUoMLKZ2W9smnAO28NDdx4aIObEhe6w
Co-authored-by: platinum7048 <[email protected]>

* Add pastel_mystic 1.0.0

Submitted by @platinum7048 through the form.

Submission: 495BAQEYTjDXIUoMLKZ2W9smnAO28NDdx4aIObEhe6w
Co-authored-by: platinum7048 <[email protected]>

---------

Co-authored-by: platinum7048 <[email protected]>
2026-11-07 09:10:15 +01:00
Ludovic MarieandLutziano888 b8778d8a89 Add lumen 2.1.0 (#345)
* Add lumen 2.1.0

Submitted by @Lutziano888 through the form.

Submission: dPkF-7GhPr1k3iwXRqAsT4wdCx9lMwfyOFFi-UPa5qc
Co-authored-by: Lutziano888 <[email protected]>

* Add lumen 2.1.0

Submitted by @Lutziano888 through the form.

Submission: dPkF-7GhPr1k3iwXRqAsT4wdCx9lMwfyOFFi-UPa5qc
Co-authored-by: Lutziano888 <[email protected]>

---------

Co-authored-by: Lutziano888 <[email protected]>
2026-11-07 09:10:09 +01:00
Ludovic Marieandcosmo-jar 5b2524fe4d Add lumina 1.0.0 (#339)
* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

* Add lumina 1.0.0

Submitted by @cosmo-jar through the form.

Submission: 59v7aMAs_D1nZGbda5vg46_p4nvpHxvmOLiQkO3afso
Co-authored-by: cosmo-jar <[email protected]>

---------

Co-authored-by: cosmo-jar <[email protected]>
2026-11-07 09:10:03 +01:00
HannesandClaude Opus 5.5 6f3babddd3 Daybreak: a new icon and three screenshots for its page (#274)
* Daybreak: three screenshots for its page

A sunset over the sea, a lake by day and the same lake at night, the
README's screenshots from hildlabs/horizon-shaders: 1920 x 1080 JPEGs,
144 to 370 KiB each. Page fields only; versions, owners and kind unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Daybreak: a new icon

The pack's own new icon.png (hildlabs/horizon-shaders c475da2): its sunset
over the sea with the name across the water. A square 512 x 512 PNG,
244 KiB.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 09:09:30 +01:00
Ludovic MarieandJoeypc6 6134bd3735 Edit jade's page (#357)
* Edit jade's page

Submitted by @Joeypc6 through the form.

Co-authored-by: Joeypc6 <[email protected]>

* Edit jade's page

Submitted by @Joeypc6 through the form.

Co-authored-by: Joeypc6 <[email protected]>

---------

Co-authored-by: Joeypc6 <[email protected]>
2026-11-07 09:09:24 +01:00
Ludovic Marieandsoufied b44db64e1e Edit appleskin's page (#326)
Submitted by @soufied through the form.

Co-authored-by: soufied <[email protected]>
2026-11-07 09:09:19 +01:00
Ludovic Marieandtomasmendes01 9d9bfd868d Edit wisdom_horizon_lite's page (#303)
* Edit wisdom_horizon_lite's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon_lite's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon_lite's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon_lite's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon_lite's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

---------

Co-authored-by: tomasmendes01 <[email protected]>
2026-11-07 09:09:14 +01:00
Ludovic Marieandtomasmendes01 fb19e0fa84 Edit wisdom_horizon's page (#302)
* Edit wisdom_horizon's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

* Edit wisdom_horizon's page

Submitted by @tomasmendes01 through the form.

Co-authored-by: tomasmendes01 <[email protected]>

---------

Co-authored-by: tomasmendes01 <[email protected]>
2026-11-07 09:09:08 +01:00
Ludovic MarieandVakarux12 88ab8d85cb Edit killc's page (#284)
* Edit killc's page

Submitted by @Vakarux12 through the form.

Co-authored-by: Vakarux12 <[email protected]>

* Edit killc's page

Submitted by @Vakarux12 through the form.

Co-authored-by: Vakarux12 <[email protected]>

---------

Co-authored-by: Vakarux12 <[email protected]>
2026-11-07 09:09:03 +01:00
Ludovic MarieandBioneisme e49f05cd1d Edit deepbore_quarry_native's page (#283)
* Edit deepbore_quarry_native's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

* Edit deepbore_quarry_native's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

* Edit deepbore_quarry_native's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

* Edit deepbore_quarry_native's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

* Edit deepbore_quarry_native's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

---------

Co-authored-by: Bioneisme <[email protected]>
2026-11-07 09:08:58 +01:00
Ludovic MarieandBioneisme 573e129dee Edit deepbore_quarry's page (#282)
* Edit deepbore_quarry's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

* Edit deepbore_quarry's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

* Edit deepbore_quarry's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

* Edit deepbore_quarry's page

Submitted by @Bioneisme through the form.

Co-authored-by: Bioneisme <[email protected]>

---------

Co-authored-by: Bioneisme <[email protected]>
2026-11-07 09:08:53 +01:00
Ludovic MarieandsonoFrangu c01152b3fc Edit customhud's page (#279)
* Edit customhud's page

Submitted by @sonoFrangu through the form.

Co-authored-by: sonoFrangu <[email protected]>

* Edit customhud's page

Submitted by @sonoFrangu through the form.

Co-authored-by: sonoFrangu <[email protected]>

* Edit customhud's page

Submitted by @sonoFrangu through the form.

Co-authored-by: sonoFrangu <[email protected]>

* Edit customhud's page

Submitted by @sonoFrangu through the form.

Co-authored-by: sonoFrangu <[email protected]>

* Edit customhud's page

Submitted by @sonoFrangu through the form.

Co-authored-by: sonoFrangu <[email protected]>

* Edit customhud's page

Submitted by @sonoFrangu through the form.

Co-authored-by: sonoFrangu <[email protected]>

* Edit customhud's page

Submitted by @sonoFrangu through the form.

Co-authored-by: sonoFrangu <[email protected]>

---------

Co-authored-by: sonoFrangu <[email protected]>
2026-11-07 09:08:48 +01:00
62ef8d3be8 publish: GitHub stars for each project, and the screenshots on the site (#285)
- `stars`: each project's source repository's GitHub stars (owner/repo of
  a https://github.com/ source), asked once per repository every hour, as
  `downloads` is; a repository that can't be read is left out. The index
  field is horizon-rust/horizon's `projects[].stars`; the launcher shows
  it on a project's page with a "Star on GitHub" button.
- `screenshots/` goes to GitHub Pages beside `icons/`: the index lists
  screenshots at <site>screenshots/<id>/<name>, and only the icons were
  copied, so the first gallery to be merged would show only 404s.

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Horizon agent <[email protected]>
2026-11-07 09:08:15 +01:00
Ludovic MarieandsonoFrangu 29bdf93a39 Update customhud 1.7.0 (#359)
* Update customhud 1.7.0

Submitted by @sonoFrangu through the form.

Submission: -KlKb4A0fyuALHd4Fnv391eCZoDfX-2st3bM6_xVbgs
Co-authored-by: sonoFrangu <[email protected]>

* Update customhud 1.7.0

Submitted by @sonoFrangu through the form.

Submission: -KlKb4A0fyuALHd4Fnv391eCZoDfX-2st3bM6_xVbgs
Co-authored-by: sonoFrangu <[email protected]>

---------

Co-authored-by: sonoFrangu <[email protected]>
2026-11-07 09:06:48 +01:00
Ludovic Marieandumbx-dot 0f0f7be986 Update skins_3d 1.1.0 (#350)
Submitted by @umbx-dot through the form.

Submission: uVNt0_c6kPphOyhDgr0xT6y1v1Kmx170-TQapT0Tr_k

Co-authored-by: umbx-dot <[email protected]>
2026-11-07 09:06:42 +01:00
Ludovic MarieandNirokx 81d6eba98b Update waypoints 1.1.0 (#310)
Submitted by @Nirokx through the form.

Submission: 0fr6bDS3LxaH3ZLyYD9iiinloI7b5oEeqHYTuEJqDdU

Co-authored-by: Nirokx <[email protected]>
2026-11-07 09:06:37 +01:00
Ludovic Marieandsoufied 08ba86bf79 Update eatinganimation 0.2.0 (#325)
Submitted by @soufied through the form.

Submission: sBdG-5Dhyv0suz88NoBpF_EWo6OE8F44egZlzmAECmo

Co-authored-by: soufied <[email protected]>
2026-11-07 09:05:52 +01:00
Ludovic Marieandumbx-dot 8e9427d775 Update flair 1.0.1 (#352)
Submitted by @umbx-dot through the form.

Submission: 7tJSx-eI0tUVC2PJUBooeh53mOgw8Wawbs3eZIdXjIQ

Co-authored-by: umbx-dot <[email protected]>
2026-11-07 09:04:49 +01:00
Ludovic Marieandumbx-dot 54c59cfd8a Update freecam_plus 1.0.1 (#351)
Submitted by @umbx-dot through the form.

Submission: FQH4G9UdldgdDyyVDFp3iN0qfJBvwba1YuNuwhJdOxc

Co-authored-by: umbx-dot <[email protected]>
2026-11-07 09:04:45 +01:00
Ludovic MarieandBioneisme 4d5cb3f2a4 Update wayfarer_stones_native 0.6.1 (#291)
Submitted by @Bioneisme through the form.

Submission: ZXWn4hH87XjYWCIrt5RDkWFdJ8gAemyK5n-kEPdGJ_U

Co-authored-by: Bioneisme <[email protected]>
2026-11-07 09:04:38 +01:00
Ludovic MarieandBioneisme 77d41657aa Update wayfarer_stones 0.6.1 (#290)
Submitted by @Bioneisme through the form.

Submission: 89hvKkgRGBcfPYMIYWNiUy90D44Py6eMJSamocAynGg

Co-authored-by: Bioneisme <[email protected]>
2026-11-07 09:04:34 +01:00
Ludovic Marieandsoufied 5a5b8d2bd2 Update elytratrails 0.1.2 (#287)
* Update elytratrails 0.1.2

Submitted by @soufied through the form.

Submission: UgLHazhxMahAFp4rTM30Udt9QuyHoK8P9njDGHHRd_U
Co-authored-by: soufied <[email protected]>

* Update elytratrails 0.1.2

Submitted by @soufied through the form.

Submission: UgLHazhxMahAFp4rTM30Udt9QuyHoK8P9njDGHHRd_U
Co-authored-by: soufied <[email protected]>

---------

Co-authored-by: soufied <[email protected]>
2026-11-07 09:04:29 +01:00
d2de4c18de native health: cargo check the mods that apply, and mark those whose own code doesn't compile (#313)
* native health: also cargo check, and mark the mods whose own code doesn't compile

The daily check only applied the mods, so versions that apply but don't
compile on the newest Nightly (eatinganimation's ItemRenderState, hitbox_plus's
module path, carryblock's removed Dim::min_y...) weren't marked broken_on,
while every player's build leaves them out.

After the apply pass, the mods that apply are checked together (cargo check,
with Horizon's `mods` feature) in rounds: each round's errors are traced to the
mod whose helper or support module holds them (scripts/native_trace.py, the
launcher's rule), those mods and the ones needing them leave, and the rest
compile again. An error of the kind two mods cause together (a name defined
twice...) is checked again with that mod alone, so a pair is never marked.
Mods that use an API the launcher prepares ([api], trait_method) aren't
compiled here. Dependencies and horizon-mixins come from the Actions cache.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* native health: trace helpers whose signature holds an array type, mask each file once

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* native health: an error in the call horizon-mixins generates for a helper is the helper's mod's

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-06 00:53:49 +01:00
037298b5a7 native health: mark only the mods that don't apply with just what they need (#309)
The first daily run (42099210086) marked horizon_physics broken for an
E_OVERWRITE_CONFLICT with another mod: a pair conflict, not a mod that
fails on the Nightly. Each mod refused in the full set is now applied
again with only the mods it needs, and is broken on that Horizon only if
horizon-mixins still refuses it.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 21:19:25 +01:00
68bd653d9c Check native mods on the newest Nightly, together, before publish (#308)
Players' native builds broke on mods made for an older Horizon (targets moved
by the crate split, a support module refused by a glob) and the whole build
failed. scripts/native_compat.py applies mods as the launcher builds them:

- check (pull requests): each new native-mod version on the newest Nightly
  with the 20 most downloaded native mods, horizon-mixins apply then cargo
  check, and its support modules' (file, name) against every registry mod's.
- health (daily, native-compat.yml): every native mod's newest version on the
  newest Nightly; the ones horizon-mixins refuses go to the native-health
  release, and publish marks them `broken_on` in index.json so the launcher
  warns before an install.

The PR job runs main's script with a read-only token; the submission's build
scripts run under that token only.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 20:59:55 +01:00
Ludovic Marieandsoufied c7432500fc Update appleskin 0.1.3 (#292)
Submitted by @soufied through the form.

Submission: xVzH0PsQT1RhD-WbhlYnhTwha3LQOS70M03EJw_JQyQ

Co-authored-by: soufied <[email protected]>
2026-11-05 18:41:17 +01:00
d0d3e68ec4 SMP: the /vanish reminder sits on the action bar, not mid-screen (#298)
rdbt (operator, #mod-chat 11-05): the centred 'Vanished: only operators see
you' line covers the view. It is now an action bar line refreshed once a
second; unvanishing sends an empty action bar instead of clearing titles.
proof.py checks the action bar and that nothing shows mid-screen.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 18:38:01 +01:00
0da4e7d52e SMP: say 0.35.0 at start; claims proof skips the engine's start-up error (#286)
glue.rs's VERSION still read 0.34.0 after #261 (0.35.0). proof.py's claims mode checks the version line and counts errors from the server's Done on (the engine logs one "No key layers" error while loading the world).

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 15:31:11 +01:00
ef6ef9e6a2 registry: serverify's description no longer says Horizon can't join online-mode servers (#281)
Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 15:01:38 +01:00
aad3b35a3a SMP: /ledger minted says partial only when the end read misses hours (#263)
* /ledger minted: say "partial" only when the end read stops short of the six hours

The official audit.log is ~9 MB (~1.8 MB a day), so a 1 MiB end read
covers the six hours; the note now depends on whether the lines read
reached back past the window's start, not on the file's size.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* proof.py: config.json now has a reports section

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 14:52:13 +01:00
dc20a5e020 Backfill pages: server_browser (#275)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 14:19:39 +01:00
Ludovic MarieandMusti3214 d0cf2b0811 Add server_browser 2.2.1 (#264)
Submitted by @Musti3214 through the form.

Submission: TrdnJ6J-SRlFi1XYg5ZwsWKHe-OAdqTg2HpTCAPQaMs

Co-authored-by: Musti3214 <[email protected]>
2026-11-05 13:49:58 +01:00
6e79b7f740 SMP 0.35.0: claims stop griefing from outside, chat pings (#261)
* SMP 0.35.0: claims stop griefing from outside, chat pings

Claims: blocks placed (or fire, buckets, spawn eggs) against a claim's
border from outside, dispensers acting into a claim, lava lighting a
claim's blocks from outside, projectiles of non-members (buttons, targets,
chorus, pots, TNT, crystals, pearls, potions, animals, frames), animals,
frames and stands used by non-members, frames and animals hit by blasts
are all kept. Trust lookups no longer allocate.

Chat pings (jaszka's ask): naming an online player in chat, or /msg to
them, plays the experience orb sound to them alone (3 s apart, never the
sender), /pingsound on|off.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP 0.35.0: rustfmt; the chat queue's module has plain comments

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP 0.35.0: the dispenser hook binds its facing as a parameter

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP 0.35.0: no attribute on the impact helper

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP 0.35.0: README for the claims' new guards and chat pings

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP: log each chat ping on the server

One info line per ping (at most one each 3 s per player), so bots and ops can see pings work.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP: test on eaa7da4, the Horizon the minimap uses

Native mods on the newest hooks (359) must share one Horizon for the together check; r9.1 (52882c1) descends from eaa7da4 with the same hooks.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP: end crystals always guarded in claims; proof SMP_PROOF=claims

A snowball or a punch from someone not trusted no longer sets off a crystal in a claim, even in worlds whose config.json lists protected entities from before. proof.py's claims mode runs two bots on a dedicated server: blocks and fire against the border, dispensers' water and arrows, a crystal, a pearl, TNT by animals and a frame, shears, and the chat pings.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* SMP README: end crystals always guarded

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:45:57 +01:00
e736186084 Backfill pages: baritone, viahorizon (#273)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:43:26 +01:00
56930b532a Backfill pages: elytratrails, enchantmenthints, fair_freecam, fast_items, flair, fly_speed, fps_overlay, freecam, freecam_plus, freelook, fullbright, fullbright_horizon, fullbright_nofog (#269)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:43:20 +01:00
1bf7fa9614 Backfill pages: voicechat, wayfarer_stones, wayfarer_stones_native, waymap, waypoints, wisdom_horizon, wisdom_horizon_lite, worldedit, xtoxray, zoom (#272)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:42:42 +01:00
25ab2d7ea1 Backfill pages: shulker_peek, skins_3d, smartf3, smoothie_capes, speedrun_timer, spider_man, status_effect_hud, stuck, tectonic_horizon, toggle_sprint, treefall, veinminer, visuality_horizon (#271)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:42:37 +01:00
a1198c687e Backfill pages: light_overlay, lookat, menu_panorama, minimap, mod_menu, motion_blur, mousetricks, recipes, resourcify, right_click_crops, rightharvest, rmotd, serverify (#270)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:41:34 +01:00
aa6d96e803 Backfill pages: gyro, held_item_info, hitbox_plus, horizon_physics, horizonmatica, inventory_profiles, inventory_wizard, invisible_frames, itemnew, jade, jei, keystrokes, killc (#268)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:41:28 +01:00
b49e1fd97d Backfill pages: classic_zoom, compass_bar, connected_textures, coords_hud, create, crosshair_indicator, crossversion, customhud, deepbore_quarry, deepbore_quarry_native, distant_horizons, dynamic_fps_for_rust, eatinganimation (#267)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:41:22 +01:00
8a6980d33b Pin daybreak, montarc and radiant to their release files (#266)
Registry v2 lists no repository-linked entries: each of these shader packs
becomes a pinned version of its newest GitHub release's .hshader (staged
as <sha256>.hshader), with the page from the repository's
horizon-registry.toml written into the entry, categories, tags and an icon.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:41:16 +01:00
8514f5774b Backfill pages: accurate_block_placement, appleskin, appleskin_horizon, armor_status, armorhud, astral_cruiser, basic_hud, biomecompass, blockscope, carryblock, chat_animation, chatheads, chop (#265)
Registry v2 backfill (docs/design/registry-v2.md): categories and tags for
each entry, descriptions extended where they were short or unformatted, and
every icon stored in icons/<id>.png (creators' own icons mirrored, the
missing ones drawn). No owners, versions or keys change.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:39:00 +01:00
32d977bf99 registry: say Create for Horizon is an unofficial port (#262)
* registry: mark Create for Horizon as an unofficial port

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* icons: scale customhud's icon to 64x64 (the registry now needs 64 to 1024 px)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 13:29:42 +01:00
levzzz d0bd59f735 Merge pull request #256 from horizon-rust/submit/jade-26.3.6
Update jade 26.3.6
2026-11-05 17:25:27 +05:00
levzzz 21155c06fb Merge pull request #233 from horizon-rust/submit/viahorizon-0.8.5-dev
Add viahorizon 0.8.5-dev
2026-11-05 17:25:20 +05:00
levzzz e0ac4551c2 Merge pull request #221 from horizon-rust/submit/baritone-1.1.38
Add baritone 1.1.38
2026-11-05 17:25:13 +05:00
levzzz e799b04b82 Merge pull request #230 from horizon-rust/submit/fly_speed-0.2.0
Update fly_speed 0.2.0
2026-11-05 17:25:00 +05:00
levzzz c2d42eba1b Merge pull request #214 from eltanschauung/minimap-outline-coordinates
Minimap: add optional outline styles and coordinate display
2026-11-05 17:19:17 +05:00
levzzz 070bddc417 Merge pull request #260 from horizon-rust/smp/report-ledger-rtp10k
SMP 0.34.0: /rtp to 10,000 blocks every 5 minutes, /report, /ledger
2026-11-05 17:16:17 +05:00
levzzzandCodex f3d5967ae6 Merge main and preserve control-tool support for both layouts
Co-Authored-By: Codex <[email protected]>
2026-11-05 17:12:28 +05:00
levzzzandCodex 72c0912c7b Fix ledger accounting for pool funding and starting balances
Mark truncated hourly totals and cover real economy writes in a regression test.

Co-Authored-By: Codex <[email protected]>
2026-11-05 17:11:55 +05:00
crystaldevandmakscoder 89020e2062 Fix native.py: pick the newest nightly by date, and build horizon-ctl from its own package (#229)
latest_nightly() chose the newest nightly-source tag by comparing the ref
string, so two tags on the same date were ordered by their short SHA and it
could return an earlier build (2026-11-04-67dad0d over the newer
2026-11-04-3fb4c31, both on 2026-11-04). Pick the newest by the tag's date
and break a same-date tie by the tagged commit's own date.

cargo(action="build") named --bin horizon-ctl under -p horizon-client, but
horizon-ctl is a bin of horizon-client-lib (its path is the client's
src/bin), so the build failed with "no bin target named horizon-ctl in
horizon-client package" (only check worked). Build the ctl under its own
package: -p horizon-client-lib --bin horizon-ctl.

Closes #220
Closes #222

Co-authored-by: makscoder <[email protected]>
2026-11-05 12:58:03 +01:00
HannesandClaude Opus 5.5 a617775941 Add daybreak (shader) (#201)
Daybreak, a Horizon shader pack listed from the releases of
hildlabs/horizon-shaders, with its icon.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 12:56:12 +01:00
mimandMuurrcc b9e03dbb7b Add montarc (shader) (#223)
Co-authored-by: Muurrcc <[email protected]>
2026-11-05 12:56:06 +01:00
Thomas-Slot 96d7f7673b Update mod icon and description in armorhud.toml (#242)
Updated the mod icon and enhanced the description to provide more details about the features.
2026-11-05 12:56:00 +01:00
a2a18e41c3 Add spider_man (native mod) (#206)
* Add spider_man (native mod)

* spider_man: add owner_ids

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* spider_man: pin 0.2.0 by hash instead of following the repository's releases

A native mod's code runs unsandboxed and every version is read by a reviewer before it is listed (README). An entry with repo = … would take later releases with no review. The page fields come from the repository's horizon-registry.toml at v0.2.0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: wyddy7 <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Horizon agent <[email protected]>
2026-11-05 12:55:54 +01:00
iDomandumbx-dot e2fcb0f5c2 Host Flair's icon in the registry (#232)
The launcher only loads icons from the registry's GitHub Pages and the Modrinth and CurseForge CDNs, so the raw.githubusercontent.com link showed no icon.

Co-authored-by: umbx-dot <[email protected]>
2026-11-05 12:53:37 +01:00
Horizon agentandClaude Opus 5.5 ed1a281c9c proof.py: describe the /rtp range and the /report and /ledger step
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-05 12:53:20 +01:00
Ludovic MarieandDelete228 9844193547 Add create 0.7.0-alpha.2 (#252)
Submitted by @Delete228 through the form.

Submission: Xw99Fin1SWw-wzTtC0kzA5T3PqXaLz3V_cCH3wvnNmU

Co-authored-by: Delete228 <[email protected]>
2026-11-05 12:50:07 +01:00
Ludovic Marieandtomasmendes01 e9d402b60c Update wisdom_horizon_lite 1.3.7 (#244)
Submitted by @tomasmendes01 through the form.

Submission: -p-AKjDZoFl_Kou4es3JCbFL84AL8_02MDTCf4ZsUoY

Co-authored-by: tomasmendes01 <[email protected]>
2026-11-05 12:48:49 +01:00
Ludovic Marieandtomasmendes01 71323383d8 Update wisdom_horizon 1.3.7 (#245)
Submitted by @tomasmendes01 through the form.

Submission: T6p3r_WvUBM66p1RumW8TjWkXawwML_QUuN9_pda2LE

Co-authored-by: tomasmendes01 <[email protected]>
2026-11-05 12:48:42 +01:00
Ludovic Marieandkeksi2k 3b34bef27e Update horizonmatica 0.2.0 (#226)
Submitted by @keksi2k through the form.

Submission: 9WU886yY97mH3Qd_G7XFc7D90_gi-n-eYDkVbzCjGJk

Co-authored-by: keksi2k <[email protected]>
2026-11-05 12:48:18 +01:00
Ludovic MarieandLauch2 23402771cf Update waymap 0.2.0 (#246)
Submitted by @Lauch2 through the form.

Submission: g1Kq_w-QIXd5YfEanpqysPmBFDPmMJxedjrLOWImc9Q

Co-authored-by: Lauch2 <[email protected]>
2026-11-05 12:47:48 +01:00
Ludovic MarieandBioneisme 6480bf8b8d Add deepbore_quarry_native 0.1.0 (#259)
Submitted by @Bioneisme through the form.

Submission: JZJtjV0G2UmbhsCp03CRLav3G7az40BHgvFL0OMFhDM

Co-authored-by: Bioneisme <[email protected]>
2026-11-05 12:46:00 +01:00
Ludovic MarieandBioneisme f64587952e Add deepbore_quarry 0.1.0 (#258)
Submitted by @Bioneisme through the form.

Submission: 4gUZ0dPDAcrsO5-uE1ePHUVZLMpkconw6Gob8wP8SbU

Co-authored-by: Bioneisme <[email protected]>
2026-11-05 12:45:55 +01:00
ad5e3b12b7 Add dynamic_fps_for_rust 0.1.0 (#225)
* Add dynamic_fps_for_rust 0.1.0

Submitted by @Lyvt-Dev through the form.

Submission: MAyCnE4TcnIo3B05CCph3VzW4RMBdFYO_0S76ynJA-M
Co-authored-by: Lyvt-Dev <[email protected]>

* dynamic_fps_for_rust: describe what 0.1.0 does

The page listed Dynamic FPS's toast pausing and battery HUD and toasts, which this build doesn't have. It now names the caps it sets, the JSON config file, and that it has no settings screen.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Lyvt-Dev <[email protected]>
Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 12:45:14 +01:00
f1cdfcb3e8 Add connected_textures 0.1.2 (#236)
* Add connected_textures 0.1.2

Submitted by @tariksabanuz through the form.

Submission: 8z1xdnIhXYT7sDm0v6CCif30RGP2lYOLB6q2V6C9ef8
Co-authored-by: tariksabanuz <[email protected]>

* connected_textures: icon from raw.githubusercontent.com (the blob page is HTML, not the image)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: tariksabanuz <[email protected]>
Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 12:45:08 +01:00
4931f3a819 Add chat_animation 0.1.0 (#237)
* Add chat_animation 0.1.0

Submitted by @tariksabanuz through the form.

Submission: gypApON8d6DU7sdJ81St9xAxOONKxb_edS-LUEh95yQ
Co-authored-by: tariksabanuz <[email protected]>

* chat_animation: icon from raw.githubusercontent.com (the blob page is HTML, not the image)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: tariksabanuz <[email protected]>
Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 12:45:02 +01:00
7b74fe93b1 Update horizon_physics 0.18.0 (#247)
* Update horizon_physics 0.18.0

Submitted by @tariksabanuz through the form.

Submission: dUwtD3FcOST_rD7zK-b-0LW83RvCQatWATzx8eZplT0
Co-authored-by: tariksabanuz <[email protected]>

* horizon_physics: keep the hosted icon, and say it is a clean-room project not made by PhysicsMod's author

The new icon was a GitHub blob page (HTML) of a 250 KB animated preview; the entry's own icons/horizon_physics.png stays. The summary and description keep the 0.15.1 page's statement that it holds none of PhysicsMod's code or assets.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: tariksabanuz <[email protected]>
Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 12:44:57 +01:00
4ccc44d612 Update mod_menu 0.3.3 (#249)
* Update mod_menu 0.3.3

Submitted by @tariksabanuz through the form.

Submission: l0GzXMA1DQh20OewDGgMOQvMM_CnMnPSnV7Imjga354
Co-authored-by: tariksabanuz <[email protected]>

* mod_menu: icon from raw.githubusercontent.com (the blob page is HTML, not the image)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: tariksabanuz <[email protected]>
Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 12:44:51 +01:00
Ludovic Marieandsoufied 08e63434d8 Add elytratrails 0.1.1 (#243)
Submitted by @soufied through the form.

Submission: s-vCQDWUb2ERuokdGrsb7f0aqZNnC0RFvIDDTpNA4-0

Co-authored-by: soufied <[email protected]>
2026-11-05 12:44:23 +01:00
Ludovic Marieandumbx-dot 40dc440cbb Add skins_3d 1.0.1 (#234)
Submitted by @umbx-dot through the form.

Submission: iq1lwNozVHP5zvlI6m_6dkYCzKr7r9aqelCutm6TPoQ

Co-authored-by: umbx-dot <[email protected]>
2026-11-05 12:44:17 +01:00
Ludovic MarieandDemerobit 7581c129bb Add speedrun_timer 1.0.1 (#235)
Submitted by @Demerobit through the form.

Submission: V9L2aX5TnIMFZh4odJG2RZ3epEL8ioxf9RWAz1f8HVQ

Co-authored-by: Demerobit <[email protected]>
2026-11-05 12:44:10 +01:00
Ludovic MarieandCGRLabs 259d022945 Add gyro 1.4.1 (#250)
Submitted by @CGRLabs through the form.

Submission: XVefLjtdKX_5c0lXClOAPfR4M89zoIQkU6l36mtbd7I

Co-authored-by: CGRLabs <[email protected]>
2026-11-05 12:44:05 +01:00
Horizon agentandClaude Opus 5.5 e44816b65a SMP 0.34.0: /rtp 500-10,000 blocks every 5 minutes, /report, /ledger
- /rtp: rtp_max_distance 5000 -> 10000, rtp_cooldown_seconds 1800 -> 300
  (defaults; the official config.json has no rtp_* keys, so they apply).
  Same safety: no water, lava or void, chunks loaded with forceload.
- /report <player> <reason> for everyone: a reason is required, one report
  per player every reports.cooldown_seconds (120). Appended to reports.log,
  told at once to the level-3 operators on, logged in the server log; an
  operator who joins later hears how many came in the last 24 hours.
  /reports [page] lists them for operators. (No Kira route exists for
  messages to Discord; Kira only takes the market/economy pages.)
- /ledger for level-3 operators: audit.log already records every coin
  movement before it happens; /ledger [page], /ledger <player> [page] and
  /ledger minted (coins made and destroyed per hour, last 6 h) read the
  end of it (1 MB) when asked, nothing on the tick. Economy::adjust lines
  now carry flow: minted|burned so the hourly count is exact.
- utc_minute and tail() moved to smp_store for both.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-05 12:39:24 +01:00
Ludovic MarieandJoeypc6 b300e7efd4 Update jade 26.3.6
Submitted by @Joeypc6 through the form.

Submission: -Xl5NtwLgYH63i1umoR2CbERZmJ9srBu982BbuNuxKM
Co-authored-by: Joeypc6 <[email protected]>
2026-11-05 11:49:09 +01:00
Ludovic Marieandhhhhsffd c909eea98f Add viahorizon 0.8.5-dev
Submitted by @hhhhsffd through the form.

Submission: U0RY7lIhhxNEscXAfdDW4hnKZte6wNgBjU5VWtbao5s
Co-authored-by: hhhhsffd <[email protected]>
2026-11-04 18:16:39 +01:00
Ludovic MarieandImmortalWhisper 1f1240298a Update fly_speed 0.2.0
Submitted by @ImmortalWhisper through the form.

Submission: 765YnzbfBhAVyZAv1UoXeiUShV3tjRRGT3C-A3VjDIg
Co-authored-by: ImmortalWhisper <[email protected]>
2026-11-04 17:18:30 +01:00
Ludovic Marieandluhnox 6a3454953c Add baritone 1.1.38
Submitted by @luhnox through the form.

Submission: _zFl-VdJdnzLqG0PpGX2RUk7WD8OxHReFOjrzFiv4QQ
Co-authored-by: luhnox <[email protected]>
2026-11-04 12:54:41 +01:00
eltanschauungandCodex 13d6b9fbaa Add optional minimap outline styles and coordinate display
Preserve upstream defaults and existing settings. Include the supplied screenshot, settings regression checks, and the native tool pins and split control-target support needed to validate this renderer integration.

Co-Authored-By: Codex <[email protected]>
2026-11-03 23:16:37 -05:00
279 changed files with 5538 additions and 298 deletions

No files matched your search

+103
View File
@@ -0,0 +1,103 @@
# Native mods on the newest Nightly, as players' launchers build them (scripts/native_compat.py):
# - on a pull request, each new native-mod version, applied together with the most downloaded native mods
# and compiled (`cargo check`); its support modules' names against every registry mod's;
# - every day after the Nightly, every native mod's newest version, applied, then the rest compiled
# (`cargo check`): the ones horizon-mixins refuses alone and the ones whose own code doesn't compile go
# to the `native-health` release, which publish adds to the index (`broken_on`) so the launcher warns
# before an install.
# The check compiles the submission, whose crates may have build scripts: it runs with a token that can
# only read, and main's script, never the pull request's.
name: native-compat
on:
pull_request:
branches: [main]
paths: ["mods/*.toml"]
schedule:
- cron: "40 18 * * *"
workflow_dispatch:
inputs:
horizon:
description: "Horizon commit, or `latest` (the newest Nightly)"
default: latest
upload:
description: "Publish the result (native-health release); `false` for a trial run"
default: "true"
permissions:
contents: read
concurrency:
group: native-compat-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
# The Rust the launcher builds native mods with (Horizon's launcher/src/rust_toolchain.rs).
RUST: "1.99.1"
jobs:
check:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.sha }}
path: base
- uses: actions/checkout@v4
with:
path: head
persist-credentials: false
- name: Does it change a native mod?
id: native
run: |
if [ -n "$(python3 base/scripts/native_compat.py new base head)" ]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- if: steps.native.outputs.changed == 'true'
run: rustup toolchain install $RUST --profile minimal && rustup default $RUST
- if: steps.native.outputs.changed == 'true'
run: sudo apt-get update && sudo apt-get install -y libasound2-dev libudev-dev pkg-config
- if: steps.native.outputs.changed == 'true'
name: On the newest Nightly, with the popular native mods
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
set -o pipefail
python3 base/scripts/native_compat.py check base head | tee -a "$GITHUB_STEP_SUMMARY"
health:
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
# Each mod horizon-mixins refuses costs one more apply of the whole set.
timeout-minutes: 300
permissions:
contents: write
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
steps:
- uses: actions/checkout@v4
- run: python3 -m unittest discover -s scripts -p 'test_*.py'
- run: rustup toolchain install $RUST --profile minimal && rustup default $RUST
- run: sudo apt-get update && sudo apt-get install -y libasound2-dev libudev-dev pkg-config
# Yesterday's dependencies, checked, and horizon-mixins: only Horizon's own crates and the mods compile again.
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git/db
native/target/compat/cargo
native/target/horizon-mixins
key: native-health-${{ env.RUST }}-${{ github.run_id }}
restore-keys: native-health-${{ env.RUST }}-
- name: Every native mod's newest version on the newest Nightly
env:
GITHUB_TOKEN: ${{ github.token }}
HORIZON: ${{ inputs.horizon || 'latest' }}
run: |
set -o pipefail
python3 scripts/native_compat.py health --horizon "$HORIZON" --out native-health.json | tee -a "$GITHUB_STEP_SUMMARY"
- name: Keep it for publish
if: inputs.upload != 'false'
run: |
gh release view native-health >/dev/null 2>&1 \
|| gh release create native-health --prerelease --title "Native mods' health" \
--notes "native-health.json: the native mods that don't apply on the newest Nightly (native-compat.yml). publish adds them to the index as broken_on."
gh release upload native-health native-health.json --clobber
+43 -4
View File
@@ -1,9 +1,9 @@
# Merging publishes: each new version's file becomes a release asset
# (<id>-<version>/<file>), then index.json and the icons go to GitHub Pages
# (https://horizon-rust.github.io/horizon-mods/index.json), which the launcher and
# (<id>-<version>/<file>), then index.json, the icons and the screenshots go to GitHub
# Pages (https://horizon-rust.github.io/horizon-mods/index.json), which the launcher and
# playhorizon.dev/mods read. Nothing is published if any entry fails its checks.
# Every hour it runs again to refresh each project's `downloads`: GitHub's
# download counts of its release assets.
# Every hour it runs again to refresh each project's `downloads` (GitHub's download
# counts of its release assets) and `stars` (its source repository's GitHub stars).
name: publish
on:
push:
@@ -73,9 +73,48 @@ jobs:
| if $n > 0 then .downloads = $n else . end)' site/index.json > index.counted.json
mv index.counted.json site/index.json
jq -r '.projects[] | "\(.id) \(.downloads // 0)"' site/index.json
- name: GitHub stars
run: |
# A project's stars are its source repository's (owner/repo of a
# https://github.com/ source, a folder of it or .git included), asked
# once per repository. One that can't be read is left out, not zero.
jq -r '.projects[].source // empty' site/index.json \
| sed -nE 's#^https://github\.com/([A-Za-z0-9-]+)/([A-Za-z0-9._-]+).*#\1/\2#p' \
| sed -E 's/\.git$//' | tr 'A-Z' 'a-z' | sort -u \
| while read -r repo; do
n="$(gh api "repos/$repo" --jq .stargazers_count 2>/dev/null)" || continue
echo "{\"key\": \"$repo\", \"value\": $n}"
done | jq -s from_entries > stars.json
jq --slurpfile stars stars.json '
.projects |= map(
(first((.source // "") | ascii_downcase
| capture("^https://github[.]com/(?<r>[a-z0-9-]+/[a-z0-9._-]+)").r
| sub("[.]git$"; "")) // "") as $r
| ($stars[0][$r] // 0) as $n
| if $n > 0 then .stars = $n else . end)' site/index.json > index.starred.json
mv index.starred.json site/index.json
jq -r '.projects[] | "\(.id) \(.stars // 0)"' site/index.json
- name: Native mods that don't apply on the newest Nightly
run: |
# native-compat.yml's daily health: the version each names gets `broken_on`, the Horizon
# commit horizon-mixins refused it on and its code, so the launcher warns before an install.
if gh release download native-health --pattern native-health.json --dir health 2>/dev/null; then
jq --slurpfile h health/native-health.json '
$h[0] as $health
| .projects |= map(. as $p | .versions |= map(
($health.broken[$p.id] // null) as $b
| if $b != null and $b.version == .version
then .broken_on = [{horizon: $health.horizon, code: $b.code}] else . end))' \
site/index.json > index.health.json
mv index.health.json site/index.json
jq -r '.projects[] | select(.versions[0].broken_on) | "\(.id) \(.versions[0].version): \(.versions[0].broken_on[0].code)"' site/index.json
fi
- name: The site
run: |
cp -R icons site/icons
# Screenshots are served beside the icons: the index lists them at
# <site>screenshots/<id>/<name>.
if [ -d screenshots ]; then cp -R screenshots site/screenshots; fi
cat > site/index.html <<'HTML'
<!doctype html><meta charset="utf-8"><title>Horizon mods</title>
<meta http-equiv="refresh" content="0; url=https://playhorizon.dev/mods">
+5 -3
View File
@@ -11,9 +11,10 @@ with no file, network or clock access, and can only do what their page lists.
Native source mods (`.hnmod`, kind `native-mod`) are built into an isolated game by
a launcher with native-mod support. They run with the player’s account permissions.
Their bundles pin the exact Horizon and Horizon Mixins revisions used for the build.
Other revisions have not been validated. Registry checks inspect the source bundle without
executing native code; reviewers must also examine the source and pinned-build
validation. Publishing these requires the native-mod changes to `cargo-horizon-mod`
Other revisions have not been validated. Registry checks inspect the source bundle and compile it
on the newest Nightly with the most downloaded native mods (in a job whose token
can only read) without running it; reviewers must also examine the source and
pinned-build validation. Publishing these requires the native-mod changes to `cargo-horizon-mod`
and the launcher to have shipped first.
**Who is responsible.** Except the projects marked Official (made by the Horizon project), everything here is made and
@@ -65,6 +66,7 @@ why.
| `.github/workflows/check.yml` | A pull request's checks |
| `.github/workflows/publish.yml` | On merge: releases, then `index.json` on Pages |
| `.github/workflows/cleanup.yml` | Weekly: staging files nobody needs any more |
| `.github/workflows/native-compat.yml` | Native mods on the newest Nightly, as the launcher builds them: a pull request's new version applied and compiled with the most downloaded native mods, its module names against every mod's; daily, every mod's newest version, the ones that don't apply marked `broken_on` in the index (`scripts/native_compat.py`) |
| `.github/workflows/native.yml` | Horizon's native mods: each changed one's tests, `.hnmod` and game check, all of them together, and weekly on the newest Nightly |
| `native/<name>/` | Horizon's own native mods (Zoom, FPS Counter, Keystrokes, Minimap, Recipes, Coordinates HUD): the source of their `.hnmod` files |
| `native/tools/` | Shared by them: apply on Horizon, check, build, package, prove (`native/tools/native.py`) |
Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 990 B

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+3 -1
View File
@@ -21,7 +21,9 @@ owners = ["Lutziano888"]
owner_ids = [129792568]
license = "MIT"
source = "https://github.com/Lutziano888/horizon-accurate-block-placement"
icon = "https://raw.githubusercontent.com/Lutziano888/horizon-accurate-block-placement/main/icon.png"
icon = "icons/accurate_block_placement.png"
categories = ["utility", "game-mechanics"]
tags = ["building", "block-placement", "bridging", "port"]
[[versions]]
version = "1.0.0"
+59
View File
@@ -0,0 +1,59 @@
id = "ae2"
kind = "native-mod"
name = "Applied Energistics 2"
summary = "Unofficial port of Applied Energistics 2 15.4.12: ME networks, autocrafting, spatial storage and more."
description = """
An unofficial port of Applied Energistics 2 15.4.12 to Horizon, not made or endorsed by its authors. Please report problems to this port, not to them.
Rewritten in Rust: ME networks, storage cells, autocrafting, the cable bus with facades, P2P tunnels, spatial storage, the guide and the Fluix Researcher.
**One file, no separate content mod.**
### Optional integrations
Each is compiled in only when its mod is in the same build, so adding or removing JEI or Jade takes effect at the next build.
- **With JEI:** AE2's recipes and information pages, "+" transfer into terminals, and dragging items onto config slots.
- **With Jade:** network state, channels, P2P links, charge, crafting and stored power.
### Missing or not the same
- **No spatial dimension.** Horizon mods can't add one. A player in a spatial cell goes to a walled plot far out in the End, so `/tp` and F3 say `minecraft:the_end`. A swap with a player takes up to about a second.
- **No Java addons.** AE2's Java API isn't available, and the integrations work only with the Horizon ports of JEI and Jade.
- **Two storage buses on one inventory:** only the first reaches it.
- **Moving items** costs power through terminals, interfaces, export buses and wireless terminals. An IO port and the crafting terminal's refills pay nothing yet.
- **Power** is judged once a second, so a network with too little goes down at the next look and comes back after about 40 ticks, where AE2's is at once and 32.
- **Unformed crafting, quantum and spatial blocks** join a network before they're formed.
- **Autocrafting gaps:** a pattern input of more than one is a single template, so some plans report items missing that AE2 would find. Blocking mode looks at all six sides, provider priority is ignored, and a machine's request for more than it can make crafts nothing.
- **Other differences:** machines have 6 or 4 orientations rather than 24, menus are in English, fluix tools are diamond tools, and guide scenes have no annotations.
- **Crafting ETA is an estimate:** 1.1% off on average on the test rig, 2.0% at worst.
- **Nested P2P error** is an approximation.
- **World height:** parts on cables assume -64 to 319.
The Fluix Researcher and its trades rely on mixins, so they are the part most likely to break on a Horizon update.
### Tested
Tested on Horizon commit 6475f62, on Windows, in single player, on LAN with one guest, and on a dedicated server with one client, including attacks by a non-operator with a modified client. This version is built for Horizon commit 66f3981, where AE2 alone compiles but hasn't been run, and the JEI and Jade integrations haven't been compiled. Other platforms, more than one guest, pipes from other mods and speed against the Java mod were not tested.
### Known issue
In some test runs, placing a part into a cable cell did nothing. It isn't one specific part, and it's probably lost test clicks, but that isn't proven.
Textures and models are CC BY-NC-SA 3.0: noncommercial use only."""
authors = ["AlgorithmX2", "TeamAppliedEnergistics", "Joeypc6"]
owners = ["Joeypc6"]
owner_ids = [35495484]
license = "LGPL-3.0-only AND CC-BY-NC-SA-3.0"
source = "https://github.com/Joeypc6/AE2-Horizon"
icon = "icons/ae2.png"
categories = ["technology", "utility", "storage"]
tags = ["ae2", "applied-energistics", "storage", "autocrafting", "automation"]
[[versions]]
version = "15.4.14"
published = "2026-11-06"
game = "26.3"
file = "ae2-15.4.14.hnmod"
sha256 = "584ec574b2620ccb9810a61f30b8bc4e639b5bf819bef7c3612835efbbdc278f"
changelog = """
First release on the registry, ported from AE2 15.4.12 (Fabric). 15.4.14 is this port's own version number, not an AE2 release.
Built for Horizon commit 66f3981. It compiles on that Horizon but wasn't run there; it was last tested on 6475f62.
One file: the blocks, items and textures, and the JEI and Jade integrations, are all in this mod. This replaces the earlier submissions, and fixes the `ae2:debug` vulnerability reported on them, along with others found by further reviews, and many defects from an outside review (PLAN.md, Rounds 24 to 26)."""
+26 -6
View File
@@ -3,20 +3,40 @@ kind = "native-mod"
name = "AppleSkin"
summary = "Shows how much HP, hunger, and saturation will be restored."
description = """
AppleSkin for Horizon, a native mod.
A port of [AppleSkin](https://github.com/squeek502/AppleSkin) by squeek502 for Horizon, as a native mod. It
draws the hunger details AppleSkin shows over the food bar:
Renders saturation, exhaustion, and held-food values over the hunger bar, as the original AppleSkin does.
- **Saturation**: how much saturation you have, as food icons over the food bar.
- **Exhaustion**: a thin strip showing how close you are to losing the next food point.
- **Held food preview**: the food in your hand, with how much food and saturation it would restore.
- **Animation**: fade in, pulse, or both (the default).
Based on AppleSkin by squeek502. See the LICENSE in the source for the
original copyright and licence notices."""
authors = ["soufi"]
Each part can be turned on or off, and the animation changed, in the mod's settings (Options > Mods > AppleSkin).
Based on AppleSkin by squeek502. See the LICENSE in the source for the original copyright and licence notices."""
authors = ["sillysoufi"]
owners = ["soufied"]
owner_ids = [47915535]
license = "MIT"
source = "https://github.com/soufied/AppleSkin-Horizon"
icon = "https://raw.githubusercontent.com/soufied/AppleSkin-Horizon/refs/heads/main/icons/appleskin.png"
icon = "icons/appleskin.png"
categories = ["utility", "food"]
tags = ["hud", "hunger", "saturation", "food", "port"]
key = "RWT6eNq4e5WfVDA2lzOOi6XCm/+jJgilqT1+HUUM33ie5MCjcRfSg760"
[[versions]]
version = "0.1.3"
published = "2026-11-05"
game = "26.3"
file = "appleskin-0.1.3.hnmod"
sha256 = "2dac91d4c4c4ab65684f41a3279c6b27beffa7407e5362b0d7a97c28c07914a6"
signature = """
untrusted comment: signature from minisign secret key
RUT6eNq4e5WfVGmizdOQdqc3jXpjW/MxBBP/JE8iFYmkrE0cKbEOUP5t11senfkM2hkDW2JLSOEJCfQJT7PMS/LnYbXET1ux0Ag=
trusted comment: timestamp:1793891067\tfile:appleskin-0.1.3.hnmod\thashed
r7jcpfe0pAz6c2FZAuAd6EUJojhQ56mGoq/H9hYXyC8rZ6QuwErQt/nEM4ly1VjMIKS7pbn6vCz0wK7jIak+DQ=="""
changelog = "Fix for https://github.com/horizon-rust/horizon-mods/issues/289"
[[versions]]
version = "0.1.2"
published = "2026-11-02"
+8 -5
View File
@@ -3,17 +3,20 @@ kind = "native-mod"
name = "AppleSkin"
summary = "1:1 Minecraft Java parity food value preview & saturation HUD overlay."
description = """
1:1 Minecraft Java parity port of AppleSkin for the native Horizon Rust client.
A port of AppleSkin for Horizon, as a native mod, drawn to match the Java Edition HUD.
Features
Saturation Overlay: Golden border and glow around active saturation drumsticks matching original icons.png pixel art.
Food Value Preview: Pulsing preview drumsticks and preview saturation border when holding edible items.
Clean Integration: Easily toggled via Options > Mods > AppleSkin."""
- **Saturation overlay**: a golden border and glow around the drumsticks your saturation covers.
- **Food value preview**: pulsing preview drumsticks, and a preview of the saturation border, while you hold
something you can eat.
- **On or off** at any time in Options > Mods > AppleSkin."""
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/appleskin"
icon = "icons/appleskin_horizon.png"
categories = ["utility", "food"]
tags = ["hud", "hunger", "saturation", "food", "port"]
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
+12 -6
View File
@@ -3,18 +3,24 @@ kind = "native-mod"
name = "Armor Status"
summary = "Displays equipped armor & held items with authentic Java durability colors."
description = """
A native ArmorStatusHUD mod for the Horizon Rust client.
An ArmorStatusHUD-style overlay for Horizon, as a native mod: your armor and the items in your hands, with
their durability, on the HUD.
Features
Displays all 4 armor slots plus main and off-hand items on the HUD.
Authentic Java durability color coding (Green > Yellow > Orange > Red).
Item count display for non-damageable held items (torches, food, blocks).
Default position: Bottom Right (freely customizable in Options > Mods)."""
- **All four armor slots** (helmet, chestplate, leggings, boots) plus the main hand and the off hand.
- **Durability colours** as in Java Edition: green above 50%, yellow from 25%, orange from 10%, red below 10%.
- **Stack counts** for held items that don't wear out (food, blocks, torches).
**Settings** (Options > Mods > Armor Status): position (bottom right by default; hotbar left or right, top left or
right, bottom left), durability as the remaining value, a percentage or a fraction, which hand items to show (both,
main hand, off hand or armor only), and a translucent background box."""
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/armor-status"
icon = "icons/armor_status.png"
categories = ["utility", "equipment"]
tags = ["hud", "armor", "durability", "inventory-hud"]
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
+14 -4
View File
@@ -1,14 +1,24 @@
id = "armorhud"
kind = "native-mod"
name = "Armor HUD"
summary = "Armor HUD mod"
description = "A mod that adds 4 armor durability viewing slots to the hotbar."
summary = "Your worn armor and its durability in a column left to the off-hand slot."
description = """
Your worn armor and its durability in a column of four slots left of the hotbar's off-hand slot, as a
native mod for Horizon.
- **Durability numbers**: press **K** (rebindable in Options > Mods) to show or hide them; a notice above the
hotbar says which. Off by default.
- **Low-durability alerts**: a piece about to break pulses so you notice it in time. On by default.
Both switches are also on the mod's settings page (Options > Mods > Armor HUD)."""
authors = ["Thomas9950"]
owners = ["Thomas-Slot"]
owner_ids = [265566914]
license = "MIT"
source = "https://github.com/Thomas-Slot/horizon-armor-hud"
icon = "https://github.com/Thomas-Slot/horizon-armor-hud/blob/main/icon.png"
icon = "icons/armorhud.png"
categories = ["utility", "equipment"]
tags = ["hud", "armor", "durability"]
key = "RWQNLUB+Hf9pa54kEx/ItgJHmDivzpAZxK9lqvv9wnecj34yzNVQHQur"
[[versions]]
@@ -22,4 +32,4 @@ untrusted comment: signature from minisign secret key
RUQNLUB+Hf9pa0KnzbNFmdhyi6xpMr56two0l9g3QlnoBYyrHFtJt5luXXEl9FnJQpP6GH7Y9KDqYUSAac7QZEQDejqrM2gA7A4=
trusted comment: timestamp:1793750475\tfile:armorhud-1.0.0.hnmod\thashed
q840egwiCqF5Ptn8MCP/0VqaPUQQgaWzyXwhnFhD47GLeblsZWdvPyaTnEUbsGxHCgHGT5FFrqJ54Mu1OSz/DQ=="""
changelog = "First upload."
changelog = "Changed mod icon and description."
+3
View File
@@ -23,6 +23,9 @@ owners = ["repositorykreml1n"]
owner_ids = [271232376]
license = "MIT"
source = "https://github.com/repositorykreml1n/astral-cruiser"
icon = "icons/astral_cruiser.png"
categories = ["transportation", "adventure"]
tags = ["starship", "vehicle", "flying", "portals", "weapons", "dimensions"]
[[versions]]
version = "0.1.0"
+54
View File
@@ -0,0 +1,54 @@
id = "ayynoxs_map_pack"
kind = "native-mod"
name = "ayynoxs map pack"
summary = "Minimap and full-screen world map with waypoints, cave layers and opt-in map sharing between players."
description = """
A **minimap** and a **full-screen world map** for Horizon, written from scratch as a native mod. Inspired by the well-known Java map mods, but no code or graphics are taken from them.
## ayynoxs minimap
- Built on Horizon's own minimap renderer, with coordinates and facing direction below it
- Square or round, north-up or rotating, 4 sizes, zoom with `I` / `O`
- **Waypoints:** `B` opens a window for the name, `Backspace` removes the one you aim at. They show on the minimap, on the world map and in the world with their distance in metres.
- Automatic death point
- Chat commands: `/wp add|del|rename|share|sync|list|clear|help`
## ayynoxs world map
- Full-screen map on `M`: drag or WASD to pan, wheel to zoom
- Drawn like a vanilla map item, one block per cell
- Saves every chunk you explore, per world/server, dimension and layer
- Same layers as the minimap: the surface outside, your head height in caves and in the Nether
## Sharing (off by default)
- `/wp share <nr> <player>` sends a waypoint as a private message, on any server. Only private messages to you can add waypoints.
- Live map sharing is **off by default** and chosen per server with `/wp sync on|off`. When on, explored chunks and new waypoints go to the other players who turned it on, through a Horizon host (co-op/LAN, Horizon servers) or the AyynoxsMapSync plugin on Paper servers.
- What arrives is limited: only your current level, within 2048 blocks of you, at most 1000 waypoints per world.
Languages: English (default), Deutsch, Français, Italiano, Русский.
## What it does and doesn't
- **Hooks:** the native hook points (frame, tick, HUD, keys, commands, minimap, settings, mods list, screen keys and characters, mod messages, player join/leave), plus the Advancements screen's draw, mouse, scroll and close (the world map is drawn in its place), `extras_connecting` (the server address, for the map's folder) and the chat HUD's `add` / `add_signed` (to hide shared-waypoint private messages).
- **Files:** writes only under `horizon-mods/.horizon-mod-data/ayynoxs_minimap/` (settings, waypoints) and `ayynoxs_worldmap/` (map tiles).
- **Network:** no internet access. It only sends Horizon mod messages on `ayynoxs_map:sync` to the server you play on (shares only after `/wp sync on`), and `/msg` commands you start yourself with `/wp share <nr> <player>`.
- Pinned to nightly `6475f62` (2026-11-04)."""
authors = ["DenoxyYT (Ayynox)"]
owners = ["DenoxyYT"]
owner_ids = [94991632]
license = "MIT"
source = "https://github.com/DenoxyYT/ayynoxs-map-pack"
icon = "icons/ayynoxs_map_pack.png"
categories = ["utility", "adventure", "social"]
tags = ["minimap", "world", "map", "waypoints", "multiplayer"]
[[versions]]
version = "0.4.2"
published = "2026-11-05"
game = "26.3"
file = "ayynoxs_map_pack-0.4.2.hnmod"
sha256 = "d5cef20531720a594969b7b7acfd20d2d32d644d7b0ae230dd68a46f98172371"
changelog = """
Changes from the review of 0.4.1:
- Map sharing is off by default and chosen per server: /wp sync on (or the setting) turns it on. When a server can pass shares on, the pack says so once in chat.
- Waypoints arrive only through private messages to the player (commands.message.display.incoming); the marker in public chat does nothing.
- Shared chunks are taken only for the player's current level, a real layer and within 2048 blocks of the player; shared waypoints stop at 1000 per world.
Also: the world map is drawn like a map item again (one block per cell), which is cheaper while dragging.
Built for Horizon nightly 6475f62 (2026-11-04)."""
+36
View File
@@ -0,0 +1,36 @@
id = "baritone"
kind = "native-mod"
name = "Baritone"
summary = "A Rust port of the Baritone pathfinder: #goto, #mine, #farm, #build, #explore, #follow, #elytra and the rest."
description = """
A port to Rust of Baritone 1.21.4 for Horizon, written from the Java source: the pathfinder (A* with walking, sprinting, parkour, bridging, pillaring, doors, ladders and water bucket landings), `#goto`, `#mine`, `#farm`, `#follow`, `#explore`, `#build` (schematics and shapes), `#tunnel`, `#elytra`, waypoints, and every setting and command of the Java mod. Type `#help` in chat. PARITY.md in the source lists every Java class and what became of it.
What it does not do: it draws the cached chunks semitransparent (`renderCachedChunks`) only if Horizon later offers a renderer for it. Like the Java mod it plays for you, so many multiplayer servers ban it: that choice is the player's.
For reviewers:
- No network access of its own: nothing in the source opens a socket or an HTTP request.
- It writes only its settings, cached chunks and waypoints under `horizon-mods/.horizon-mod-data/baritone/`, and reads the schematic and explore-filter files the player names in a command.
- It starts an operating system program in two places, both in `src/utils/notification.rs`: desktop notifications (PowerShell on Windows, osascript on macOS, notify-send on Linux), which are off unless the player sets `desktopNotifications true`, and `#pizza`, which opens a web page in the browser (the Java mod has the same command).
- The `.hnmod` is built from the source of the tagged release, `python tools/pack.py`, and is the same file every time.
- Pinned to Nightly 2026-10-30 (ba6344a): the launcher builds the game on that commit, and so does not depend on the Nightly the player has."""
authors = ["luhnox (this port); Baritone by leijurv and the Baritone contributors"]
owners = ["luhnox"]
license = "LGPL-3.0-or-later (a derivative of Baritone, https://github.com/cabaletta/baritone)"
source = "https://github.com/luhnox/horizon-baritone"
icon = "icons/baritone.png"
categories = ["utility", "transportation"]
tags = ["pathfinding", "automation", "bot", "mining", "elytra", "port"]
key = "RWRTLwnAmb4dyVYWM1egwotcybd6nw1ILTIWGHmQVwiMROClbjW0JoKZ"
[[versions]]
version = "1.1.38"
published = "2026-11-04"
game = "26.3"
file = "baritone-1.1.38.hnmod"
sha256 = "b1a79d09061c30f757f428d9702a1a9f39a3c11d7ad17c96d48e101150e98e0c"
signature = """
untrusted comment: signature from minisign secret key\r
RURTLwnAmb4dyQdoJpJlo6cHKjQifEH+yI6oUn+h7Qt0U0nujno7s1PO+nfhF4AxS8m8SVGgPrTl6JPTLuVYXai08leFO6JlVAY=\r
trusted comment: timestamp:1793793185\tfile:dist/baritone.hnmod\thashed\r
Rur3Vc4xI4A+zxLLeLBlPg+T3D0yNMhoPgjOutE/SxtQJ9J1Mjh5LsceEF0Peql/fBP+Ja5+2s5iH7BJWCjfBA=="""
changelog = "`#mine` and `#goto <block>` of a block that is not found underground now explore the surface instead of digging down; the full Mask family, IOpenSet and LinkedListOpenSet; the goal beam shows through terrain; 247 of 297 Baritone 1.21.4 classes ported, none missing (PARITY.md)."
+3 -1
View File
@@ -23,7 +23,9 @@ owners = ["repositorykreml1n"]
owner_ids = [271232376]
license = "MIT"
source = "https://github.com/repositorykreml1n/the-basic-hud"
icon = "https://raw.githubusercontent.com/repositorykreml1n/the-basic-hud/v0.5.0/icon.png"
icon = "icons/basic_hud.png"
categories = ["utility"]
tags = ["hud", "hud-editor", "widgets", "coordinates", "fps", "status-effects", "durability", "tab-list"]
[[versions]]
version = "0.5.0"
+2
View File
@@ -18,6 +18,8 @@ owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/biomecompass"
icon = "icons/biomecompass.png"
categories = ["utility", "adventure"]
tags = ["compass", "biomes", "exploration", "navigation"]
[[versions]]
version = "0.2.2"
+14 -2
View File
@@ -2,13 +2,25 @@ id = "blockscope"
kind = "native-mod"
name = "Blockscope"
summary = "The block under your crosshair: its name, id, distance and icon, plus hardness, states and a container's slots."
description = "A Jade-style tooltip for Horizon: the block under your crosshair with its name in your language, block id, distance and icon, plus its hardness and the tool it wants, its state properties, a crop's growth and, for a container, its slots. Ten switches on its own settings page."
description = """
A Jade-style tooltip for Horizon: the block under your crosshair, in a small box you can place where you
want.
- Its name in your language, its block id and its distance, with its icon.
- Its hardness and the tool it wants, and whether what you hold harvests it.
- Its state properties, a crop's growth, and a container's slots laid out as its own screen has them.
- Its coordinates on request, and a creature's name and health when you look at one.
Nothing shows when you look at no block within reach, while a screen is open, or with the HUD hidden (F1). Ten
switches on its settings page (Options > Mods > Blockscope > Settings) choose what the box shows."""
authors = ["Domanffe"]
owners = ["Domanffe"]
owner_ids = [94391234]
license = "MIT"
source = "https://github.com/Domanffe/blockscope"
icon = "https://horizon-rust.github.io/horizon-mods/icons/blockscope.png"
icon = "icons/blockscope.png"
categories = ["utility"]
tags = ["tooltip", "hud", "block-info", "waila"]
[[versions]]
version = "0.3.1"
+2
View File
@@ -19,6 +19,8 @@ owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/carryblock"
icon = "icons/carryblock.png"
categories = ["game-mechanics", "utility"]
tags = ["carry", "chests", "pick-up", "animals"]
[[versions]]
version = "0.1.2"
+30
View File
@@ -0,0 +1,30 @@
id = "chat_animation"
kind = "native-mod"
name = "ChatAnimationHorizon"
summary = "ChatAnimation for Horizon"
description = """
Smooth chat for Horizon, recreating Ezzenix's Chat Animation mod as a native mod.
- **New messages slide up**: the chat starts one line lower and eases into place while the new message fades in.
- **The input field slides up** from the bottom of the screen when you open the chat.
- **The indicator line** (the coloured bar left of some messages) can be hidden.
**Settings**: "Chat Animation Settings..." on the Options screen, or Options > Mods > Chat Animation: animate
messages (150 ms by default), hide the indicator line, animate opacity, animate the input field (170 ms), each with
a reset button.
Based on Ezzenix's Chat Animation (MIT), recreated for Horizon."""
authors = ["tariksabanuz"]
owners = ["tariksabanuz"]
license = "MIT"
source = "https://github.com/tariksabanuz/ChatAnimationHorizon"
icon = "icons/chat_animation.png"
categories = ["utility", "social"]
tags = ["chat", "animation", "ui", "port"]
[[versions]]
version = "0.1.0"
published = "2026-11-04"
game = "26.3"
file = "chat_animation-0.1.0.hnmod"
sha256 = "aee273e2861a185ed2667679c0f943dcc73693b46eded6c078cde8bdf13ee49a"
+26
View File
@@ -0,0 +1,26 @@
id = "chat_heads_rust"
kind = "native-mod"
name = "Chat Heads Horizon"
summary = "Chat Heads displays player heads in the chat before the players name making it easier to see who is writing"
description = "Chat Heads displays player heads in the chat before the players name making it easier to see who is writing. with options being to turn off your own head display "
authors = ["Demerobit"]
owners = ["Demerobit"]
owner_ids = [193929759]
license = "MIT"
source = "https://github.com/Demerobit/Chat-Heads-For-Horizon"
icon = "icons/chat_heads_rust.png"
categories = ["utility", "optimization", "decoration"]
tags = ["optimization", "display"]
key = "RWQ8B3u8yfza0a/X/QmiRXnrl8+l/dZFkWlWTSPsfshlLWbzHlb3AjU4"
[[versions]]
version = "1.0.2"
published = "2026-11-06"
game = "26.3"
file = "chat_heads_rust-1.0.2.hnmod"
sha256 = "b4dd7f7b8e5689dc0718821d7926ff3e3c9107fc11737903c195aed19c6cb7a1"
signature = """
untrusted comment: signature from minisign secret key
RUQ8B3u8yfza0SgDJ0cjYatSuZ4rK5ILraOltdS3g0iq0usoRVymHortTv33u7Qxer3I0NXrTup0b7DIvbfB3Wa3VP587yFlbQI=
trusted comment: timestamp:1793952467\tfile:chat_heads_rust-1.0.2.hnmod\thashed
U+qTKpDMR7PFaX5fsvLfLvhVeS23ypKgCBavykz5gTUEPDNzQNzzB9mIOt4DLi0v3Sezb6F06Mhw07EsJmzgDA=="""
+12 -2
View File
@@ -2,13 +2,23 @@ id = "chatheads"
kind = "native-mod"
name = "ChatHeads"
summary = "A player's head left of every chat line they wrote."
description = "Each chat line from a player gets their 8x8 skin face in the strip to its left; lines without a player stay as they are, and the face fades with its line. The switch lives in Options > Mods."
description = """
A player's 8x8 skin face left of every chat line they wrote, as a native mod for Horizon.
- The face comes from the skin the game resolved for that player; with none, a default skin picked by the name, so a
player always keeps the same head.
- System messages, `/me` lines and wrapped continuations get no head, and the head fades with its line.
- F1 hides it as it hides the chat.
Turn it on or off in Options > Mods > ChatHeads > Settings."""
authors = ["Domanffe"]
owners = ["Domanffe"]
owner_ids = [94391234]
license = "MIT"
source = "https://github.com/Domanffe/chatheads"
icon = "https://horizon-rust.github.io/horizon-mods/icons/chatheads.png"
icon = "icons/chatheads.png"
categories = ["social", "utility"]
tags = ["chat", "player-heads", "skins"]
[[versions]]
version = "0.1.1"
+3 -1
View File
@@ -25,7 +25,9 @@ owners = ["Mayonesu0"]
owner_ids = [350298764]
license = "LicenseRef-Chop-1.0"
source = "https://github.com/Mayonesu0/chop"
icon = "https://raw.githubusercontent.com/Mayonesu0/chop/main/registry/icon.png"
icon = "icons/chop.png"
categories = ["game-mechanics"]
tags = ["trees", "tree-felling", "axe", "lumberjack", "animation", "server-side"]
key = "RWSwx1v4zUCUjQ8rssfZCXvXkvgVc9TbA60RJyCtVCeMx4lSTanIleIs"
[[versions]]
Loaded 100 of 279 files, more files were not shown because too many files have changed in this diff. Show more