Compare commits

..
276 Commits
Author SHA1 Message Date
eba6978cc0 Add MineLights 2.4.0 (#136)
* Added MineLights 0.1.0

* Updated MineLights to 0.1.1

* Updated MineLights to 0.1.2

* Updated MineLights registry package to 2.3.8.5

* Updated MineLights registry package to 2.4.0

* Updated MineLights registry package for reviewed server

* Updated MineLights source revision

* Updated MineLights source revision

* Updated MineLights source revision

* Updated MineLights source revision

* Updated MineLights source revision

* Update MineLights 2.4.0 submission

* Update signed MineLights 2.4.0 package

* Clarify MineLights Horizon listing

* Clarify MineLights download notices

* Refresh MineLights 2.4.0 Horizon package

* Update MineLights 2.4.0 source revision

* Refresh signed MineLights 2.4.0 Horizon package

* Remove unreviewed MineLights versions from submission

* minelights: keep the icon in the registry, add categories

The registry requires icons/<id>.png and one to three categories. The icon
is assets/icon.png from MineLights@246c37d (128x128).

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-07 21:58:53 +01:00
levzzz 63daa89bcb Merge pull request #367 from horizon-rust/submit/right_click_crops-1.0.1
Update right_click_crops 1.0.1
2026-11-07 16:15:53 +05:00
Ludovic MarieandAyanoKaito 748c65d592 Update right_click_crops 1.0.1
Submitted by @AyanoKaito through the form.

Submission: WAZyOGCt_BUXQQkl_FVhcXCytMPmZKl59xs8ga3REfg
Co-authored-by: AyanoKaito <[email protected]>
2026-11-07 11:45:17 +01:00
Ludovic MarieandAyanoKaito 91ad350543 Update right_click_crops 1.0.1
Submitted by @AyanoKaito through the form.

Submission: WAZyOGCt_BUXQQkl_FVhcXCytMPmZKl59xs8ga3REfg
Co-authored-by: AyanoKaito <[email protected]>
2026-11-07 11:45:15 +01:00
Ludovic MarieandAyanoKaito e281e4024a Update right_click_crops 1.0.1
Submitted by @AyanoKaito through the form.

Submission: WAZyOGCt_BUXQQkl_FVhcXCytMPmZKl59xs8ga3REfg
Co-authored-by: AyanoKaito <[email protected]>
2026-11-07 11:45:13 +01:00
d3xc0andClaude 3a84022d8f Add projecte_core 0.1.0 and projecte 0.1.0 (#353)
Co-authored-by: Claude <[email protected]>
2026-11-07 09:49:30 +01:00
d3xc0 c16b061fe7 Add voltz_core 0.3.0 and voltz 0.3.0 (#349) 2026-11-07 09:49:24 +01:00
Ludovic MarieandScrapper1824 bc8fc88849 Add cpm 0.1.2 (#317)
* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

* Add cpm 0.1.2

Submitted by @Scrapper1824 through the form.

Submission: iBeHn_t_Faw7abmIkIcqAO14pwc2wXhv9IvkJsXd0cM
Co-authored-by: Scrapper1824 <[email protected]>

---------

Co-authored-by: Scrapper1824 <[email protected]>
2026-11-07 09:49:11 +01:00
e349124fc4 native-compat: remove [api] and [dependencies] before horizon-mixins, as the launcher does (#364)
The launcher strips these launcher-only tables before horizon-mixins reads a
bundle's manifest (native_mods/api.rs). The check passed them through, so a
mod with a trait package (cpm, #317) failed with E_MANIFEST "unknown field api"
while players' launchers apply it. Mods with an API package are applied but
not compiled, as health already leaves them out.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 09:35:45 +01:00
Ludovic MarieandLauch2 93a328a007 Update waymap 0.2.1 (#299)
Submitted by @Lauch2 through the form.

Submission: oGhoINdrgt53euuAJhTWXZXUK9MkZDtdP-MypG3iCJs

Co-authored-by: Lauch2 <[email protected]>
2026-11-07 09:35:40 +01:00
Ludovic MarieandNirokx 597e112e2b Add schematics 1.0.0 (#312)
* Add schematics 1.0.0

Submitted by @Nirokx through the form.

Submission: IPMlWgATI24rtG-B7hYNbx7AqLk8rJAAhd9iErhagsk
Co-authored-by: Nirokx <[email protected]>

* Add schematics 1.0.0

Submitted by @Nirokx through the form.

Submission: IPMlWgATI24rtG-B7hYNbx7AqLk8rJAAhd9iErhagsk
Co-authored-by: Nirokx <[email protected]>

---------

Co-authored-by: Nirokx <[email protected]>
2026-11-07 09:32:55 +01:00
Ludovic MarieandPx228-Da-Da b0406b82f1 Add worldmap 0.6.0 (#360)
* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

* Add worldmap 0.6.0

Submitted by @Px228-Da-Da through the form.

Submission: KK2VoWwVfpqSu7xszK-VgaJm52pu-4uf5bE9IXJ8gdY
Co-authored-by: Px228-Da-Da <[email protected]>

---------

Co-authored-by: Px228-Da-Da <[email protected]>
2026-11-07 09:32:21 +01:00
Ludovic Marieandtomasmendes01 b10af101ed Add spotify_hud 1.0.0 (#295)
* Add spotify_hud 1.0.0

Submitted by @tomasmendes01 through the form.

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

* Add spotify_hud 1.0.0

Submitted by @tomasmendes01 through the form.

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

* Add spotify_hud 1.0.0

Submitted by @tomasmendes01 through the form.

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

* Add spotify_hud 1.0.0

Submitted by @tomasmendes01 through the form.

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

---------

Co-authored-by: tomasmendes01 <[email protected]>
2026-11-07 09:31:31 +01:00
Ludovic Marieandluhnox 635cdd6c2c Add seedcrackerx 0.2.3 (#280)
* Add seedcrackerx 0.2.3

Submitted by @luhnox through the form.

Submission: 9eVbRNl_6QYJMiT-wO3i8P72MrOJTz9rlxDC_ZHD5E4
Co-authored-by: luhnox <[email protected]>

* Add seedcrackerx 0.2.3

Submitted by @luhnox through the form.

Submission: 9eVbRNl_6QYJMiT-wO3i8P72MrOJTz9rlxDC_ZHD5E4
Co-authored-by: luhnox <[email protected]>

---------

Co-authored-by: luhnox <[email protected]>
2026-11-07 09:31:26 +01:00
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
78853c19a6 Registry: record owner_ids for the 78 entries that predate them (#251)
Filled by horizon's tools/registry_backfill_owner_ids.py (horizon#9688): every owner login resolved and
matched the IDs the submission form recorded; nothing was left alone.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 07:30:52 +01:00
e53ad8220b SMP 0.33.0: no daily sale or /pay caps, no resale delay; a 20% price floor instead (#228)
* Remove SMP daily coin cap on sales and payments

Co-Authored-By: Codex gpt-6.1-sol <[email protected]>

* Remove SMP daily per-item sale limit

Co-Authored-By: Codex gpt-6.1-sol <[email protected]>

* Allow immediate resale of SMP market purchases

Co-Authored-By: Codex gpt-6.1-sol <[email protected]>

* SMP 0.33.0: a 20% price floor carries what the daily caps did

With no daily sale caps, the market's moving price is what bounds a farm:
- min_factor 0.6 -> 0.2 (a config still on the old default gets 0.2 at load)
- an item's depth is at most 50 items a 1% (was up to 400), so the cheap
  items farms make reach the floor within 10,000 sold; a family takes its
  step from its cheapest member, so every member does
- tests: 10,000 of any item sold a minute at a time end at the floor and
  bring under half their base value (diamond 21%, wheat 44%), and the price
  comes back within a day; buying and selling straight back (no resale
  delay) never earns, for every item traded both ways, 5 amounts, from a
  fresh price, the floor and the cap (495 round trips)
- proof: 1,000 wheat sold over four minutes, 250 a minute, the price lower
  after each sale

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

* SMP proof: the cobblestone stack's comment for the new depth

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

---------

Co-authored-by: Codex gpt-6.1-sol <[email protected]>
Co-authored-by: Ludovic Marie <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 00:14:07 +01:00
Ludovic MarieandClaude Opus 5.5 43fb2513a2 smp: /rtp (/wild): random safe spot 500-5000 blocks out, 30 min cooldown (#241)
* smp: /rtp (/wild) to a random safe spot 500-5000 blocks from the spawn, 30 min cooldown

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

* smp: /rtp draws until enough points fall inside a close border

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

* smp: /rtp undo as a struct; rustfmt

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

* smp: /rtp proof (2 clients, flat world) and SMP_PROOF=rtp tick cost on a normal world; per-/rtp read cost in the log

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

* smp: proof checks the /rtp landing with execute ... run say (block tags aside)

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

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-04 21:02:45 +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 MarieandThomas-Slot dfd2102274 Add armorhud 1.0.0 (#207)
Submitted by @Thomas-Slot through the form.

Submission: 76bkxGdXpb4ErocsWQ1eS7V4X2HKbITdM-3LpERXGcM

Co-authored-by: Thomas-Slot <[email protected]>
2026-11-04 18:12:52 +05:00
Ludovic Marieandtomasmendes01 35ce93db53 Add wisdom_horizon_lite 1.1.0 (#208)
Submitted by @tomasmendes01 through the form.

Submission: QMPtuLy0qMsJH6Y0KP2iDIvzdYTpPS0FOLtPdmcSYd8

Co-authored-by: tomasmendes01 <[email protected]>
2026-11-04 18:12:45 +05:00
Ludovic Marieandtomasmendes01 3f3103d070 Add wisdom_horizon 1.1.0 (#209)
Submitted by @tomasmendes01 through the form.

Submission: XSR34WRLB30OrdD_82S40jKedlhtfgeaXXKyxlVPyis

Co-authored-by: tomasmendes01 <[email protected]>
2026-11-04 18:12:38 +05:00
Ludovic Marieandeltanschauung ed4aa85442 Add tectonic_horizon 0.3.4 (#210)
Submitted by @eltanschauung through the form.

Submission: kwCxRPKxqLPLNKKKt1Y3GT_vcpxGHQAPWgryPVRQq2s

Co-authored-by: eltanschauung <[email protected]>
2026-11-04 18:12:31 +05:00
Ludovic MarieandLyvt-Dev 43010d3eb2 Add fast_items 0.1.0 (#211)
Submitted by @Lyvt-Dev through the form.

Submission: deFN4Tw-EYAlMF5JrYvuWRKVeE70Nz8_RLfc3kFSyaA

Co-authored-by: Lyvt-Dev <[email protected]>
2026-11-04 18:12:25 +05:00
Ludovic MarieandBioneisme 546deac561 Add wayfarer_stones_native 0.6.0 (#216)
Submitted by @Bioneisme through the form.

Submission: fY38YPhqMsck59uJmF_l2k0rbzIoxvjj_NXKnGXK-uE

Co-authored-by: Bioneisme <[email protected]>
2026-11-04 18:12:18 +05:00
Ludovic MarieandBioneisme 2eca4bc2ec Add wayfarer_stones 0.6.0 (#215)
Submitted by @Bioneisme through the form.

Submission: krIkX2eCFc4Ty6wnSxmrnN2eSsO80WFuPorufUdY52k

Co-authored-by: Bioneisme <[email protected]>
2026-11-04 18:12:10 +05:00
Ludovic Marieandtariksabanuz a2ae910123 Update resourcify 0.1.1 (#218)
Submitted by @tariksabanuz through the form.

Submission: 37-NCw4vlb5QvsaAc75XvzDGeWa_EI_NcX66Dhyeid8

Co-authored-by: tariksabanuz <[email protected]>
2026-11-04 18:11:57 +05:00
Ludovic MarieandJoeypc6 88b20af247 Add jade 26.3.5 (#224)
Submitted by @Joeypc6 through the form.

Submission: -nLkctmd58LSoR6W4adlvSoOf5EtRDl4mLByfRAlPK0

Co-authored-by: Joeypc6 <[email protected]>
2026-11-04 17:59:09 +05: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
Ludovic Marieanddumbnully ceb5b2275d Add smoothie_capes 0.2.0 (#181)
Submitted by @dumbnully through the form.

Submission: ecbheoPm6ddWs6BpG-lVx36GlbB0EJDmhRW2DH8WH6E

Co-authored-by: dumbnully <[email protected]>
2026-11-04 11:53:46 +01:00
e980583b96 Add Invisible Frames 0.1.0 native mod (#164)
* Add Invisible Frames native mod listing

MIT source, pinned build and initial game validation are published in the linked repository.

Co-Authored-By: Codex <[email protected]>

* Pin reviewed Invisible Frames 0.1.1 and remove automatic repo releases

Co-Authored-By: Codex <[email protected]>

---------

Co-authored-by: Codex <[email protected]>
Co-authored-by: AltMugen <[email protected]>
2026-11-04 11:53:40 +01:00
BenjiSySandClaude Opus 5.5 5c094254e5 Add Visuality (visuality_horizon) 1.0.2, a native mod (#166)
* Add Visuality (visuality_horizon) 1.0.0, a native mod

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

* visuality_horizon: 1.0.1 instead of 1.0.0 (reproducible stored package, lighter tick)

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

* visuality_horizon: 1.0.2 instead of 1.0.1 (bundle holds only .rs and .toml files)

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-04 10:55:30 +01:00
d8a3327ee3 Add Held Item Info 0.1.0 native mod (#165)
* Add Held Item Info native mod listing

MIT source, pinned build and initial game validation are published in the linked repository.

Co-Authored-By: Codex <[email protected]>

* Pin Held Item Info 0.1.0 for per-version review

Co-Authored-By: Codex <[email protected]>

---------

Co-authored-by: Codex <[email protected]>
Co-authored-by: AltMugen <[email protected]>
2026-11-04 10:52:16 +01:00
Ludovic Marieandrepositorykreml1n 239ce420fa Update basic_hud 0.5.0 (#217)
Submitted by @repositorykreml1n through the form.

Submission: jEsjBlLxuH_fH0gi0d1ZaAgPL2A5TB4NH7laEwo_zpY

Co-authored-by: repositorykreml1n <[email protected]>
2026-11-04 08:36:57 +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
ee1620f438 smp: /vanish for operators (#155)
An operator of level 3 leaves the Tab list and world of every player below
level 3 (in any game mode), with no join or leave messages for them;
operators still see them. A subtitle stays on screen the whole time. Vanished
players aren't counted online, don't hold the night up, aren't announced
AFK, and can't be reached by name (/tpa, /trade, /coinflip, /playtime).
Kept in vanish.json. Needs horizon#7003 (native_hide_player).

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Ludovic Marie <[email protected]>
2026-11-04 00:22:13 +01:00
a0dba26666 SMP: emergency switches for operators (/smp off|on|status) (#149)
Operators of level 3 turn parts of the SMP off while the server runs,
by name or all at once (land protection only by name). A part off refuses
its commands and menu clicks and its timed work waits; nothing held is
lost. Kept in switches.json across restarts, logged and audited.

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Ludovic Marie <[email protected]>
2026-11-04 00:08:24 +01:00
82e29462a9 SMP: the sidebar no longer lists the richest players (#148)
The sidebar keeps the player's own block (name, balance, playtime, online)
and the address. /baltop still ranks the richest. board.top is ignored.

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Ludovic Marie <[email protected]>
2026-11-03 22:35:19 +01:00
725ff7a410 Update chatheads 0.1.1 (#151)
* Update chatheads 0.1.1

Submitted by @Domanffe through the form.

Submission: m9iIfQyNTA6ee66EpcsIdlIFDTgx3mIakQro02chGVU
Co-authored-by: Domanffe <[email protected]>

* chatheads: fix the doubled icon URL and restore the name ChatHeads

The submission form pasted the icon URL twice and lowercased the name; the
in-game name is still ChatHeads.

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

---------

Co-authored-by: Domanffe <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-03 21:16:30 +01:00
Nuggetandadasjusk 64b5237f7c Add killc, stuck and rmotd native mods (#125)
Co-authored-by: adasjusk <[email protected]>
2026-11-03 21:16:24 +01:00
Ayano KaitoandGPT-6.1 Sol 7d17c4d63a Add Right-Click Crops 1.0.0 registry submission (#124)
Add the author's approved project page, icon and verified Minisign signature. Request maintainer staging because the web form rejects the submission origin.

Co-authored-by: GPT-6.1 Sol <[email protected]>
2026-11-03 21:16:18 +01:00
Matteo FranguelliandClaude Opus 5.5 aab9aa4c22 Add customhud (Beautiful Day Counter), a native mod (#115)
* Add customhud (Beautiful Day Counter), a native mod

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

* customhud: list version 1.6.0 explicitly instead of repo

Every version of a native mod is reviewed, so the entry names its file
and SHA-256 rather than following the repository's releases.

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

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-03 21:16:11 +01:00
tariksabanuzandClaude Sonnet 5.5 6d9a7492e2 PhysicsModHorizon (#191)
* Add files via upload

* Delete mods/mod_menu-0.3.0.hnmod

* Add Horizon Physics 0.12.1 (native mod)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PaZj999vuofU9gSEtyNeUq

* Horizon Physics 0.13.0

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PaZj999vuofU9gSEtyNeUq

* Horizon Physics 0.14.0

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PaZj999vuofU9gSEtyNeUq

* horizon_physics 0.15.0

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PaZj999vuofU9gSEtyNeUq

* horizon_physics 0.15.1

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PaZj999vuofU9gSEtyNeUq

---------

Co-authored-by: Claude <[email protected]>
2026-11-03 20:04:20 +01:00
expensiverest 96c7c46e41 Radiant shader pack (#184) 2026-11-03 19:53:27 +01:00
AkirabaneandClaude Sonnet 5.5 09f69374d9 smp: /spawn lands on a safe spot within spawn_radius of the spawn point (#190)
/spawn teleported to one fixed point, which on the anarchy server can sit in
a lava cast. After the tp it now runs vanilla's spreadplayers around the
spawn point with places.spawn_radius (default 250, like the live server's
respawn_radius), which picks a random column that is not fluid, fire or
magma and has solid ground, retrying until one is found. Warps, homes, /back
and /tpa are unchanged. Radius 0 keeps the exact point.

Refs #144

Co-authored-by: Claude Sonnet 5.5 <[email protected]>
2026-11-03 19:41:23 +01:00
Ludovic MarieandDomanffe 4e8a65e584 Update rightharvest 0.1.1 (#152)
Submitted by @Domanffe through the form.

Submission: raf1Of2yOgkT_BRuLqW580FVXVBZqItOyqTK-1tIrj4

Co-authored-by: Domanffe <[email protected]>
2026-11-03 18:37:21 +01:00
Ludovic MarieandDomanffe bba4bda2d7 Update blockscope 0.3.1 (#150)
Submitted by @Domanffe through the form.

Submission: yQxeJFeA1pxjYCJZusO7QY83yMPaOXOZ1mKmjvzqfiU

Co-authored-by: Domanffe <[email protected]>
2026-11-03 18:37:16 +01:00
Ludovic Marieandkeksi2k 6263473f81 Add horizonmatica 0.1.1 (#145)
Submitted by @keksi2k through the form.

Submission: DXHbuwRsHNMIModbM_217IiUgMiBXsORLzIecTtl5TI

Co-authored-by: keksi2k <[email protected]>
2026-11-03 18:37:10 +01:00
Ludovic MarieandVanishingTacos 1fc4bd47d5 Add inventory_wizard 2.3.3 (#120)
Submitted by @VanishingTacos through the form.

Submission: MV28vLDz8HAq_j0ApAE1yIC4BXlLuoDRF8RWnRBpWkg

Co-authored-by: VanishingTacos <[email protected]>
2026-11-03 18:37:04 +01:00
Ludovic MarieandLauch2 7558c0945c Add waymap 0.1.4 (#179)
Submitted by @Lauch2 through the form.

Submission: eLte5hlJxy2U5VIR8-lJIqN2qCkgJ-dqT4i3o95uIVY

Co-authored-by: Lauch2 <[email protected]>
2026-11-03 18:34:43 +01:00
Ludovic MarieandNirokx 467b17bf38 Add voicechat 1.0.0 (#169)
Submitted by @Nirokx through the form.

Submission: AG7Q9X_ycyCwuouRding4ld-wXJjIAaCwGlv0aXEloc

Co-authored-by: Nirokx <[email protected]>
2026-11-03 18:34:37 +01:00
Ludovic MarieandNirokx 3d113f473a Add waypoints 1.0.0 (#168)
Submitted by @Nirokx through the form.

Submission: Ad0rlAatq4jNcgAxUy5vaU21EsMFePIXwBTE_ARctBM

Co-authored-by: Nirokx <[email protected]>
2026-11-03 18:34:32 +01:00
Ludovic MarieandNirokx 792fa822f4 Add fullbright_nofog 1.0.0 (#167)
Submitted by @Nirokx through the form.

Submission: slTmWEe55jWWepzv9ESpVWpyu4VvTiF0Jcl-9vNxfoo

Co-authored-by: Nirokx <[email protected]>
2026-11-03 18:34:26 +01:00
Ludovic Marieandsoufied 7b65e9b10f Update appleskin 0.1.2 (#163)
Submitted by @soufied through the form.

Submission: 3Qw5P2ElK53IqvJ2sEHjEZ-MUba5C0tz8aAXwIK23OA

Co-authored-by: soufied <[email protected]>
2026-11-03 18:34:21 +01:00
Ludovic Marieandumbx-dot cd1f1c3970 Add flair 1.0.0 (#199)
Submitted by @umbx-dot through the form.

Submission: XpkshdIFDfLtP-GXJPDX1VGRlBjjT8geDr-JKyATzvk

Co-authored-by: umbx-dot <[email protected]>
2026-11-03 18:32:11 +01:00
Ludovic Marieandrepositorykreml1n be266234cb Update basic_hud 0.4.1 (#198)
Submitted by @repositorykreml1n through the form.

Submission: 9rPRCH2NULh3Iy5kRA1ctwN9shoKNDOc0jW7uTbaeNo

Co-authored-by: repositorykreml1n <[email protected]>
2026-11-03 18:32:06 +01:00
Ludovic MarieandLutziano888 cf1f608745 Add accurate_block_placement 1.0.0 (#196)
Submitted by @Lutziano888 through the form.

Submission: o1TJGn5bAsBJA0ZlAhulN0DVgOliaVK0rD2jxCIXlR8

Co-authored-by: Lutziano888 <[email protected]>
2026-11-03 18:31:59 +01:00
Ludovic MarieandMayonesu0 f1f5aba33a Add chop 1.0.1 (#194)
Submitted by @Mayonesu0 through the form.

Submission: ABM9UnrYSccp3Lk313QYJcJI19WMsFz5VGL2n2tr1bQ

Co-authored-by: Mayonesu0 <[email protected]>
2026-11-03 18:31:54 +01:00
Ludovic Marieandtaxtii 0062a1e27a Add hitbox_plus 1.3.0 (#193)
Submitted by @taxtii through the form.

Submission: rkAkGw06AMsDZfPvNUJJT6YIwW6BWpiWu_teeKlJdJU

Co-authored-by: taxtii <[email protected]>
2026-11-03 18:31:49 +01:00
Ludovic Marieandtariksabanuz e79b92ff2c Add resourcify 0.1.0 (#189)
Submitted by @tariksabanuz through the form.

Submission: z-ohfvwLJTjWO_6m0RzyB-KvPLI-vNMmUkZ-vVnklR8

Co-authored-by: tariksabanuz <[email protected]>
2026-11-03 18:31:43 +01:00
Ludovic Marieandtariksabanuz ce14e90beb Add mod_menu 0.3.0 (#188)
Submitted by @tariksabanuz through the form.

Submission: YwrDR2k6vkOZjxp4ucVa-sBOHH2mUnBd45UuaIDYwys

Co-authored-by: tariksabanuz <[email protected]>
2026-11-03 18:31:38 +01:00
Ludovic MarieandJustKarkat 93b3f04390 Update crossversion 0.8.0 (#186)
Submitted by @JustKarkat through the form.

Submission: v_bcduqKfPvkdT3qbeHXZ9scM3YNOSvwoWEXL7agSes

Co-authored-by: JustKarkat <[email protected]>
2026-11-03 18:30:54 +01:00
Ludovic MarieandClaude Opus 5.5 bc40e7bafe Take crossversion 0.7.1 down (revoked.toml) (#185)
* Revert "Add crossversion 0.7.1 (#180)"

This reverts commit 7645804495: the listing
comes down while the mod's account handling is reviewed with its author.

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

* revoked: turn installed crossversion 0.7.1 copies off

Removing the entry stops new installs only; the revocation also turns
copies players already installed off, with the reason shown to them.

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

* Keep the crossversion listing; the revocation alone takes 0.7.1 down

The registry refuses removing a listing ("take its files down in revoked.toml instead").

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

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-03 05:04:42 +01:00
Ludovic MarieandClaude Opus 5.5 5628be3e6b voicechat-server: proximity voice chat on Horizon's own server (native server mod) (#173)
* voicechat-server: proximity voice chat on Horizon's own server

A native server mod (voicechat_server 1.0.0): the server half for voice chat
clients that speak Simple Voice Chat 2.6.x's protocol, such as azetech's
Complex Voice Chat. The handshake rides Horizon's mod messages on voicechat:
channel names; voices go over UDP through the server, sealed per player with
AES-128-GCM, to the players nearby in the same dimension or in the speaker's
group. A player without a voice client is never sent anything, and the UDP
port opens only when the first voice client asks.

The relay is a bundle crate (horizon-mixins 0.6.0): every native mod now pins
horizon-mixins d9c83d7, since native.py builds them with one, and package
includes a bundle's crates.

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

* voicechat-server: replay-proof re-authentication; packages carry LICENSE

- A secret belongs to the first address that authenticates with it: an
  Authenticate copied and sent from another address is refused however long
  the client was quiet (the 5 s move rule is gone). Exact replays are dropped
  too: the last 64 control packets' nonces per player, and a 64-wide window
  on voice packets' sequence numbers.
- A client the server stops hearing for 10 keep-alives gets a fresh secret
  over the game connection (Complex Voice Chat 2.1.0 reconnects on any
  voicechat:secret), keeping its group; the old key then opens nothing. So
  a NAT that rebinds recovers without a rejoin (2.1.0 never re-sends
  Authenticate after its ack, so the old move rule never helped it).
- Secret requests: one answer a second a player (more requests meanwhile
  get one answer), the snapshot replaces what still waited. Group and state
  changes 2 a second (burst 10). At most 512 messages wait per player.
- Client pings aren't echoed (the server never pings; SVC's server doesn't
  echo either), and the relay thread never spins on a socket error.
- The glue lists the players on a message only when the sender is new, not
  on every voice chat message.
- native.py package puts native/<mod>/LICENSE into the .hnmod as
  mixins/<id>/LICENSE (Horizon's bundle reader accepts LICENSE* there); the
  CI check requires it. Every native mod's package now carries its licence.

Tests: a_replayed_handshake_after_a_silence_moves_nothing,
a_client_the_server_stops_hearing_gets_a_fresh_secret,
repeated_secret_requests_and_group_changes_stay_bounded.

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

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-03 04:16:31 +01:00
Ludovic MarieandClaude Opus 5.5 58fbad4a85 SMP 0.31.0: the auction house lists whole stacks (#183)
rdbt's ask: /ah refused anything that wasn't a plain item. A listing now
carries the whole stack (enchantments, name, damage, lore, a shulker box's
or a bundle's contents, every component) as the game writes it in player
files (ItemStack.CODEC NBT, hex), through listing, purchase, auction win,
mail and returns, saved in economy.json in the same step as the money.
Given back with native_give_stack; what doesn't fit waits in the mail.

Taken only when it reads back equal; not market charts, nor stacks over
32 KiB of data. Creative players are still refused. Listings and mail from
0.30 (no `stack`) load unchanged and give plain items as before.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-03 04:04:06 +01:00
Ludovic MarieandJustKarkat 7645804495 Add crossversion 0.7.1 (#180)
Submitted by @JustKarkat through the form.

Submission: eL0F1_shzScYc6vd_ujpkodYloPjMgUo2cfokvjAw28

Co-authored-by: JustKarkat <[email protected]>
2026-11-03 02:51:04 +01:00
levzzzandClaude Opus 5.5 e5d840dabf Add Motion Blur (native mod) (#171)
* Add Motion Blur (native mod, levzzz5154/horizon-motion-blur)

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

* motion_blur: the registry's current entry format

source and a [[versions]] entry instead of repo; the file is in the
staging release as <sha256>.hnmod, as the submission form puts it.

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

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-03 00:58:53 +05:00
Ludovic MarieandClaude Opus 5.5 b22a9c42a3 SMP 0.30.1: the claim-free zone covers every dimension (#162)
rdbt: the zone around 0 0 should apply in the Nether and the End too.
Claims there are refused and dropped at start in every dimension.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-02 17:01:15 +01:00
Ludovic MarieandClaude Opus 5.5 6ab145fce5 SMP 0.30.0: a claim-free zone around 0 0 (claims.free_radius) (#159)
Operators asked for the land near spawn to be free for all: no one may
claim a chunk that touches the zone, and claims already there are dropped
at start, each logged. Off by default (0).

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-02 16:09:20 +01:00
c240394cde smp: simplify the economy: no taxes, fees, Treasury, bank, jobs or futures (#153)
* smp: simplify the economy, drop the tax code

No more VAT on auction sales, weekly land and wealth taxes, /taxes and
/eco taxes, tax on market trades or teleport fees. The Treasury stays
(fees and house edges in, operators' grants out) with /treasury, now in
its own small module. Old taxes/tax_percent/fees config keys are ignored
and owed land tax is forgiven.

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

* smp: remove the Treasury, the bank, jobs and futures, and every fee

Operators make money with /eco give <player> <amount> <reason> (everyone
reads it) and take it with /eco take. The auction listing fee and the
coinflip/lottery fee are gone. The casino's pot gets its float once, made
for it, then keeps the house edge.

A world from before this gets its bank savings and open futures margins
back at the first start; the Treasury, insurance fund, contracts and land
tax owed are dropped.

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

* smp: keep the casino's float mark in economy.json

The "pot got its float" flag lived in casino.json while the money went to
economy.json, so a lost or unreadable casino.json, or a crash between the
two saves, made up to 20,000 again on the next start. The mark now sits in
the economy's ext, written in the same file as the pot.

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

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Ludovic Marie <[email protected]>
2026-11-02 15:02:43 +01:00
Ludovic MarieandClaude Opus 5.5 d57056b937 SMP 0.29.1: an operator may open their own ender chest with /endersee (#156)
/invsee on yourself stays refused (it would move stacks into the same
inventory); your own ender chest is a second container, so /endersee works.
Asked by bunchy7s (operator) on Discord.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-02 13:36:10 +01:00
Ludovic Marie 245ab9b4f6 Merge pull request #143 from horizon-rust/feat/smp-one-price
SMP 0.29.0: one market price per item, to buy and to sell
2026-11-02 00:43:42 +01:00
Ludovic MarieandClaude Opus 5.5 61e99d5df7 SMP 0.29.0: carry the old price history and futures entries over
A book from before 0.29 quotes its history in the old mid of buy and sell
(diamond 250); the one price is 200. Scaled once at load (the book now
records its bases), so charts, 1 h/24 h moves, the news and the futures'
TWAP see no cliff; open futures positions get the same ratio on their
entry, so none gains or loses by it. Each minute's band opens at the
loaded price rather than at the base.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 00:28:31 +01:00
Ludovic MarieandClaude Opus 5.5 59f2388a0f SMP 0.29.0: one market price per item, to buy and to sell
Ludovic: the market's buy and sell prices didn't make sense (diamond bought
for 400 and sold for 100, two numbers everywhere). Each item now has one
price, the geometric mean of the old pair (diamond 200, iron 15, wheat 2),
shown in /worth, /market, /shop, the chart maps and market.json (`price`;
`buy`/`sell` repeat it on the sides the market trades).

- A trade of N is priced along the curve it moves (each unit moves the log
  price by 1%/depth): buying N and selling them back returns exactly what
  was paid less the tax, for 1, 64 or past the band. Rounding goes against
  the trader (up when buying, down when selling).
- Prices move as trades happen; all trades together move an item at most
  5% a minute: past that a purchase is cut short and a sale keeps the
  rest (flat pricing at the edge would let slow buying plus a flat dump
  earn). At the 0.6/1.6 factor bounds the rest goes at the bound.
- Items linked by recipes share one moving price, a block moving it as its
  9 ingots do; the vanilla-recipe test checks every item at the worst
  drift too, and finds a block sold for its ingots once unlinked.
- The tax is its own receipt line ("Tax 2%: -12 coins. You get 583
  coins."). Daily sell limits unchanged.
- A config with two prices gets one at load, logged ("one price now").

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 00:20:33 +01:00
Ludovic Marie 5b0ae21c96 Merge pull request #141 from horizon-rust/fix/smp-casino-win-cap
SMP 0.28.0: casino daily win cap (10,000 net a day)
2026-11-01 22:53:26 +01:00
Ludovic Marie 097ccd28b0 Merge pull request #135 from horizon-rust/feat/smp-futures
SMP 0.25.0: futures with leverage on items (/futures)
2026-11-01 22:53:01 +01:00
Ludovic MarieandClaude Opus 5.5 31d77513fe SMP 0.28.0: the casino's daily win cap (10,000 net a day, configurable)
A player whose net casino winnings today reach casino.daily_win_cap
(10,000, same as the loss cap) is refused new bets until 00:00 UTC, with
a message saying why. The round that crosses the cap is paid in full; a
blackjack double inside a hand already dealt is still allowed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 22:43:50 +01:00
Ludovic MarieandClaude Opus 5.5 5ba617927f SMP 0.27.0: futures in the game (/futures menu, minute marking)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 22:43:47 +01:00
Ludovic MarieandClaude Opus 5.5 7257e32237 SMP futures: the rules (perpetuals on market prices, house = insurance fund)
Not wired into the game yet: the glue waits for the market's mark_price/twap/volume API.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 22:43:46 +01:00
Ludovic Marie 18102bf315 Merge pull request #134 from horizon-rust/feat/smp-dyn-market
smp 0.26.0: a moving market, /market, price charts on maps, pages pushed to Kira
2026-11-01 22:43:09 +01:00
Ludovic MarieandClaude Opus 5.5 7ec0a0516d smp proof: the selling limit counts Steve's /pay (#139), Moves may read 0.0% on a minute-old history
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 22:36:10 +01:00
Ludovic MarieandClaude Opus 5.5 c3839da0ef smp 0.26.0: a moving market, /market, price charts on maps, pages pushed to Kira
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 21:02:28 +01:00
Ludovic Marie 2f677e9337 Merge pull request #129 from horizon-rust/feat/smp-invsee
smp 0.25.0: /invsee and /endersee for operators
2026-11-01 19:52:00 +01:00
Ludovic MarieandClaude Opus 5.5 8295b4c1ef smp 0.25.0: /invsee and /endersee for operators
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 19:42:27 +01:00
Ludovic Marie cacc3360e0 Merge pull request #139 from horizon-rust/fix/smp-pay-cap
SMP 0.24.0: /pay received counts toward the daily selling limit
2026-11-01 19:36:55 +01:00
Ludovic MarieandClaude Opus 5.5 964325b819 SMP 0.24.0: /pay received counts toward the daily selling limit
Selling up to the cap on alts and paying it all to a main bypassed the daily sell
limit (reported by pointofpressure). A /pay now checks the receiver's remaining
daily_sell_coins and is refused past it; a payment made counts toward it. Trades
and auction sales are unaffected.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 19:30:11 +01:00
Ludovic Marie 9ce6a3f9a0 Merge pull request #137 from horizon-rust/feat/smp-casino
SMP 0.23.0: the casino (roulette, slots, crash, blackjack)
2026-11-01 19:07:18 +01:00
Ludovic MarieandClaude Opus 5.5 693205032b SMP 0.23.0: the casino (roulette, slots, crash, blackjack), paid from its own pot
/casino opens a lobby menu; each game is a chest menu a stock client plays,
animated at most 5 pictures a second per open menu and only while a round
moves, with sounds, titles, the action bar, a boss bar for crash, fireworks
and a line for everyone on a jackpot.

- European roulette (2.70% edge), slots with a published paytable (94.2%
  paid back), one shared crash round (96%), blackjack S17 3:2 (~1% edge).
- Draws by the server (ChaCha20 keyed from the system) before the
  animation. Bet limits, a daily loss cap a player, a cooldown.
- Bets are held, then settled once through settle_pool into the casino's
  pot (capped, never minted); hourly the pot above its float goes to the
  Treasury (casino_profit), below it the Treasury tops it up (casino_float).
- Closing the menu or leaving never loses a round.
- casino.json: the day's ledger, wins, totals. proof_casino.py plays every
  game on a real server with two clients.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 18:59:50 +01:00
Ludovic Marie e8b243b60d Merge pull request #126 from horizon-rust/feat/smp-nick-ops
smp 0.22.0: nicknames for operators only
2026-11-01 18:32:20 +01:00
Ludovic MarieandClaude Opus 5.5 409cac606e smp 0.22.0: nicknames for operators only
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 18:24:39 +01:00
Ludovic Marie d4463c5a82 Merge pull request #133 from horizon-rust/feat/smp-jobs
SMP 0.21.0: daily contracts (/jobs), paid from the Treasury
2026-11-01 18:22:51 +01:00
Ludovic Marie e001cceadd Merge pull request #132 from horizon-rust/feat/smp-report
SMP 0.20.0: /eco stats, the daily economy report, web/economy.json
2026-11-01 18:22:47 +01:00
Ludovic Marie 2b62bd35d9 Merge pull request #131 from horizon-rust/feat/smp-bank
SMP 0.19.0: the bank (/bank), savings paid by the Treasury
2026-11-01 18:20:31 +01:00
Ludovic MarieandClaude Opus 5.5 219c9302d9 SMP 0.21.0: daily contracts (/jobs), paid from the Treasury
Four contracts a day from farm, mine and mob produce; a delivery of 64 plain items
pays the market's sell price +30%, never over 90% of its ask (rechecked at
delivery), from the Treasury. 8 deliveries a contract, 2 a player a day, at most
10% of the Treasury a day, survival/adventure only.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 18:18:13 +01:00
Ludovic Marie e9f25bb1d7 Merge pull request #130 from horizon-rust/feat/smp-sinks
SMP 0.18.0: travel fees to the Treasury, a daily reward for playing
2026-11-01 18:14:15 +01:00
Ludovic MarieandClaude Opus 5.5 bb97027039 SMP 0.20.0: /eco stats, the daily economy report, web/economy.json
/eco stats: the supply and where it sits, what the server made and destroyed
today (new per-kind flows in economy.json), the day's taxes, Gini and top-10
share. At 00:00 UTC everyone reads the day before; 60 daily snapshots kept in
ext.report. web/economy.json once a minute, written off the tick thread, with
every Treasury movement and the tax code, for /hub.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 18:13:49 +01:00
Ludovic MarieandClaude Opus 5.5 27bfc9da13 SMP 0.19.0: the bank (/bank), savings paid by the Treasury
Deposits wait in the `bank` pool; interest 0.1% a day on up to 10,000 coins,
paid at 00:00 UTC from the Treasury on the day's lowest amount (no
deposit-before-midnight trick), at most 5% of the Treasury a night, pro rata.
At most 25,000 saved. The wealth tax counts savings. No loans.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 18:08:26 +01:00
Ludovic MarieandClaude Opus 5.5 fa61a38111 SMP 0.18.0: travel fees to the Treasury, a daily reward for playing
Teleports cost a fee (home 5, warp 10, back 10, tpa 10, spawn free), checked when
the command runs and paid to the Treasury when the teleport happens; one called off
costs nothing and keeps /back and the cooldown. The daily reward waits for 10
minutes of play that day (moving or commands), so alts that only log in get
nothing. Proof: fees and delay off to keep its sums; config_keys gets `auction`.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 18:04:22 +01:00
Ludovic Marie 169ac59750 Merge pull request #128 from horizon-rust/feat/smp-auction
SMP 0.17.0: the auction house (/ah)
2026-11-01 17:59:05 +01:00
Ludovic MarieandClaude Opus 5.5 7c850a3056 SMP 0.17.0: the auction house (/ah)
Players sell to players: fixed-price listings or timed auctions, browsed
in a chest menu by category (or a search), cheapest a unit first.

- Listing fee 1% (min 1 coin) and 5% VAT on each sale go to the Treasury.
- Listed items leave the inventory at once; unsold ones, auction wins and
  what didn't fit come back by mail (/ah claim, or the menu's mail page).
- A purchase is one step under the SMP's lock: the listing leaves first,
  so of two buyers at once the second finds it gone.
- Bids are held in the `auction` pool; the outbid get theirs back at once;
  a bid in the last 60 s moves the end back to 60 s; offline sellers are
  paid and get a note when they're back.
- Listings, bids, mail and notes are written in economy.json with the
  money (ext.auction): a crash can't split items from coins.
- Plain items only until native_give_stack is stamped.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 17:51:31 +01:00
Ludovic Marie e3ee0a7c45 Merge pull request #127 from horizon-rust/feat/smp-treasury
SMP 0.16.0: a state Treasury, nobody makes money, the tax code
2026-11-01 17:51:16 +01:00
Ludovic MarieandClaude Opus 5.5 3f115b7e06 SMP: the pools other parts use aren't dead code in the game build
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 17:47:43 +01:00
Ludovic MarieandClaude Opus 5.5 a864f877ec SMP 0.16.0: a state Treasury, nobody makes money, the tax code
Every tax, fee and house edge now goes into a Treasury pool kept in
economy.json with the balances; operators pay only from it, with a reason
everyone sees (/treasury pay, logged as `grant`). /eco give, /eco set and
/eco give * are gone: nobody can make money, operators included. /eco take
moves a cheat's gains into the Treasury.

- smp_economy: system pools (`pools`: treasury, insurance, casino...),
  to_pool / from_pool / pool_move / settle_pool, each one audit line; the
  Treasury's income and spending by kind (today, all time) and its last 50
  movements; `ext` for other parts' state written in the same step as the
  money. award()'s fee goes to the Treasury.
- smp_tax: the tax code (VAT 5% for the auction house, land tax 5 coins a
  week per chunk past 4, wealth tax 1/2/3% above 50k/250k/1M a week),
  collected on Monday 00:00 UTC (an O(1) check each second), unpaid land tax
  owed and blocking new claims; /treasury, /treasury log, /eco taxes,
  /eco taxes pay.
- proof: funds players from a seeded Treasury instead of /eco give, and
  checks /treasury, /treasury log, /eco taxes and the refusals.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 17:39:49 +01:00
Ludovic Marie 41874a0e0c Merge pull request #121 from horizon-rust/submit/astral_cruiser-0.1.0
Add astral_cruiser 0.1.0
2026-11-01 08:32:48 +01:00
Ludovic Marie 48ed3ea061 Merge pull request #122 from horizon-rust/submit/basic_hud-0.1.0
Add basic_hud 0.1.0
2026-11-01 08:32:11 +01:00
Ludovic MarieandClaude Opus 5.5 8e5a70b52b astral_cruiser: say what blasting breaks and where the ship is saved
Review fix by Ludovic's AI agent (Claude): the nose guns and beams blow up
blocks when blasting is on (off by default), and the ship is kept in the
world's folder (astral_cruiser/ship.json).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 08:31:51 +01:00
Ludovic Marieandrepositorykreml1n d31c2d7992 Add basic_hud 0.1.0
Submitted by @repositorykreml1n through the form.

Submission: aXw6Cm5ItBnfJZ5XYEO0w5xfcjfLs6I5Vvv5h9vqr6M
Co-authored-by: repositorykreml1n <[email protected]>
2026-11-01 07:15:41 +01:00
Ludovic Marieandrepositorykreml1n 9f691e7e83 Add astral_cruiser 0.1.0
Submitted by @repositorykreml1n through the form.

Submission: CCBrVRl_Te6V2LQUa8oSqf6mTpFOgWk62yydwskMFw4
Co-authored-by: repositorykreml1n <[email protected]>
2026-11-01 05:43:12 +01:00
Ludovic Marie c5d504a734 Merge pull request #119 from horizon-rust/docs/native-mods-build-path
docs: point native-mod build instructions at the Mods page
2026-11-01 02:54:07 +01:00
Ludovic MarieandClaude Sonnet 5.5 6c2a827c34 docs: point native-mod build instructions at the Mods page
"Settings → Game → Native mods (experimental)" no longer exists. The launcher builds
native mods from the Mods page (Build on the native build row); the game lists and
toggles them under Options → Mods. Prose only: no sha256, file or version changes.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-11-01 02:52:17 +01:00
Ludovic Marie 90f06bd473 Merge pull request #117 from horizon-rust/fix/smp-nick-abuse
SMP 0.15.0: nicknames that can't pass for someone else
2026-11-01 01:02:38 +01:00
Ludovic MarieandClaude Opus 5.5 3395149802 SMP 0.15.0: nicknames that can't pass for someone else
rdbt (Team moderator) reported /nick abuse on the official server. Nicknames now:
- show as ~name in chat, the Tab list and the sidebar;
- are compared case-insensitively, with _ dropped and look-alikes folded (0/o, 1/i/l, 3/e...);
- are refused when equal to, or containing, a known player's name (economy accounts, usercache.json), an
  operator's, a Team member's (nicks.protected) or another player's nickname, or when they read as a reserved
  word (server, console, admin, mod, owner, staff, op, horizon, kira, notch, mojang, herobrine...);
- need nicks.min_playtime_minutes (60) of play first, operators excepted; the chat filter and cooldown stay;
- that break these rules are taken off at start, each logged.

/pay, /tpa, /trade, /playtime, /tpaccept, /tpdeny and /eco take a nickname where they take a player's name;
/nick alone says how to take it off. The proof covers each rule end to end.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 00:58:13 +01:00
Ludovic Marie 3fc6964447 Merge pull request #116 from horizon-rust/feat/smp-scoreboard
SMP 0.14.0: the sidebar as an SMP scoreboard, the player's own block first
2026-10-31 23:50:36 +01:00
Ludovic MarieandClaude Opus 5.5 3749d679bd SMP 0.14.0: the sidebar as an SMP scoreboard, the player's own block first
Title "Horizon SMP": the player's name (their nickname if set), balance,
playtime and the players online; then the three richest; then the
server's address (board.footer, play.playhorizon.dev). The ranking is still
built once for everyone, on a balance change or every refresh_seconds; the
players' own lines are looked at on the same refresh_seconds and sent only
where they changed (and to newcomers). 0.13's untouched defaults (Richest
players, top 10) move to the new ones. Feedback from rdbt (Team moderator).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 23:46:25 +01:00
Ludovic Marie d933c333e6 Merge pull request #114 from horizon-rust/feat/smp-nick
SMP 0.13.0: nicknames (/nick, /realname)
2026-10-31 22:59:15 +01:00
Ludovic MarieandClaude Opus 5.5 c86a73887a SMP 0.13.0: nicknames (/nick, /realname)
/nick <name> and /nick off for players, /nick <player> <name|off> and
/realname <nick> for operators. The nickname shows in chat and the Tab list
(horizon API 62: native_set_nickname), the hover keeps the real name, and
the log, the anticheat and Discord keep the real one. Rules: 3-16 letters,
digits or _; never a known player's name, an operator's or another
player's nickname; through the chat filter (native_text_allowed); a
10-minute cooldown. Saved in world/horizon-smp/nicks.json.

Also: the redundant 'eco give * <amount>' literal is gone (the engine left
it out: '*' isn't a command word; <player:word> takes it).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:55:57 +01:00
Ludovic Marie 83c4269800 Merge pull request #109 from horizon-rust/docs/reviewable-licences
Policy: list only source reviewers may read; every update is reviewed
2026-10-31 22:46:29 +01:00
Ludovic MarieandClaude Opus 5.5 89d90c3376 Policy: list only source reviewers may read; every update is reviewed
MOD-POLICY gets the licence rule reviewers already follow: a new project or
a new version needs source under a permissive licence (MIT, MIT-0, BSD,
0BSD, Apache-2.0, ISC, zlib, Unlicense, CC0) or a written grant to the
Horizon reviewers. classic_zoom, distant_horizons, fly_speed and serverify,
listed before, stay as they are until their next version.

The README no longer promises owner updates without a review: every version
of a native mod runs with the player's account permissions, so a reviewer
reads it first.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:45:40 +01:00
Ludovic Marie 6b71454d1b Merge pull request #96 from horizon-rust/submit/freecam-0.1.0
Add freecam 0.1.0
2026-10-31 22:38:28 +01:00
Ludovic Marie 57f7902809 Merge pull request #94 from horizon-rust/submit/fair_freecam-1.2.0
Add fair_freecam 1.2.0
2026-10-31 22:38:22 +01:00
Ludovic Marie 7c2b9f3b80 Merge pull request #90 from horizon-rust/submit/freecam_plus-1.0.0
Add freecam_plus 1.0.0
2026-10-31 22:38:16 +01:00
Ludovic Marie 2a4307638f Merge pull request #83 from horizon-rust/submit/menu_panorama-panorama-1.0.0
Add menu_panorama panorama-1.0.0
2026-10-31 22:38:10 +01:00
Ludovic Marie 5108050b31 Merge pull request #100 from horizon-rust/submit/freelook-0.3.1
Add freelook 0.3.1
2026-10-31 22:37:32 +01:00
Ludovic Marie 706f3a6cb1 Merge pull request #95 from horizon-rust/submit/crosshair_indicator-1.0.0
Add crosshair_indicator 1.0.0
2026-10-31 22:37:24 +01:00
Ludovic Marie 6d05ae816f Merge pull request #89 from horizon-rust/submit/toggle_sprint-1.0.0
Add toggle_sprint 1.0.0
2026-10-31 22:37:16 +01:00
Ludovic Marie f5487d5b08 Merge pull request #88 from horizon-rust/submit/status_effect_hud-1.0.0
Add status_effect_hud 1.0.0
2026-10-31 22:37:09 +01:00
Ludovic Marie 4ede2e8aa7 Merge pull request #87 from horizon-rust/submit/light_overlay-1.0.0
Add light_overlay 1.0.0
2026-10-31 22:37:02 +01:00
Ludovic Marie 9e1a2b70a8 Merge pull request #85 from horizon-rust/submit/inventory_profiles-1.0.0
Add inventory_profiles 1.0.0
2026-10-31 22:36:56 +01:00
Ludovic Marie 969533780c Merge pull request #79 from horizon-rust/submit/fullbright_horizon-1.0.0
Add fullbright_horizon 1.0.0
2026-10-31 22:36:47 +01:00
Ludovic Marie 31e019dff8 Merge pull request #77 from horizon-rust/submit/armor_status-1.0.0
Add armor_status 1.0.0
2026-10-31 22:36:40 +01:00
Ludovic Marie cccfc99d37 Merge pull request #76 from horizon-rust/submit/appleskin_horizon-1.0.0
Add appleskin_horizon 1.0.0
2026-10-31 22:36:33 +01:00
Ludovic Marie 9c12738fb0 Merge pull request #71 from horizon-rust/submit/worldedit-1.2.1
Add worldedit 1.2.1
2026-10-31 22:36:28 +01:00
Ludovic Marie 6d9e3a2064 Merge pull request #59 from horizon-rust/docs/no-wasm-docs
Docs: drop the WebAssembly mod wording
2026-10-31 22:36:23 +01:00
Ludovic MarieandClaude Opus 5.5 9f7346e2e5 freecam: credit and link the original Freecam mod (MOD-POLICY, promise 2)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:35:17 +01:00
Ludovic Marie a04b258daf Merge remote-tracking branch 'origin/main' into fix-freecam 2026-10-31 22:35:16 +01:00
Ludovic MarieandClaude Opus 5.5 1b4ab4efe8 menu_panorama: clean the page, version 1.0.0, icon in the registry
The description started with the form's paste instructions; the version
was "panorama-1.0.0" (the pack's own version is 1.0.0); the launcher reads
icons from icons/<id>.png.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:35:10 +01:00
Ludovic Marie 0eee668de4 Merge remote-tracking branch 'origin/main' into fix-menu_panorama 2026-10-31 22:34:56 +01:00
Ludovic MarieandClaude Opus 5.5 a5fdef87fb freecam_plus: host the icon in the registry
The launcher reads icons from icons/<id>.png, not raw.githubusercontent.com.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:34:44 +01:00
Ludovic Marie 44fa384ad6 Merge remote-tracking branch 'origin/main' into fix-freecam_plus 2026-10-31 22:34:42 +01:00
Ludovic MarieandClaude Opus 5.5 f25ae007a7 fair_freecam: host the icon in the registry
The entry's icon URL pointed at the repository's old name; the launcher
reads icons from icons/<id>.png.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:34:36 +01:00
Ludovic Marie 181b9af7de Merge remote-tracking branch 'origin/main' into fix-fair_freecam 2026-10-31 22:34:35 +01:00
Ludovic Marie c6c309d01b Merge pull request #105 from horizon-rust/feat/smp-shop
SMP 0.12.0: /shop menu, daily selling limits, no profitable recipe loop, /money and /eco give *
2026-10-31 21:22:47 +01:00
Ludovic Marie a258ef03d9 Merge pull request #102 from horizon-rust/feat/smp-presence
SMP 0.11.0: first-join welcome, daily reward, AFK out of the sleep count, a command rate limit
2026-10-31 21:14:56 +01:00
Ludovic Marie acf5d8896a Merge pull request #101 from horizon-rust/feat/smp-polish
SMP 0.10.0: /back after a death or a teleport, /playtime, /claim show
2026-10-31 21:14:42 +01:00
Ludovic Marie 4dcb8fed29 Merge pull request #97 from horizon-rust/feat/smp-board
SMP 0.9.0: a sidebar of the richest players, /sidebar on|off, the Tab list's header and footer
2026-10-31 21:14:17 +01:00
Ludovic MarieandClaude Opus 5.5 f56752d74f SMP 0.12.0: /shop menu, daily selling limits, no profitable recipe loop, /money and /eco give *
- /shop: the market as a 6-row chest menu: categories (config.json `shop`), a click buys one, a shift-click 64,
  a click on a stack of yours sells it, "Sell all"; balance, today's limit and help in the bottom row. Through the
  market's own rules; items move by the console's clear/give, measured before and after.
- Market: buy always dearer than sell (else the sale closes), no recipe chain makes a sold item for less than it
  sells (smp_recipes, Bellman-Ford over the recipes; the tests walk every vanilla recipe when the data is there),
  daily limits per player (2,000 coins, 640 of each item, market.json), checked arithmetic, item ids validated.
- 56 default prices in 7 categories; a config still holding the 18 old defaults gets the new ones.
- /money give|take|set (= /eco), /eco give * <amount> for everyone on; recipients are told; all logged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 21:13:11 +01:00
Ludovic Marie 455a8b800f Merge branch 'feat/smp-presence' into feat/smp-shop 2026-10-31 20:47:27 +01:00
Ludovic Marie 238d9cd1f4 Merge branch 'feat/smp-polish' into feat/smp-presence 2026-10-31 20:47:18 +01:00
Ludovic Marie ddab3fa269 Merge branch 'feat/smp-board' into feat/smp-polish 2026-10-31 20:47:08 +01:00
Ludovic MarieandClaude Opus 5.5 a301fcc469 SMP: pinned to horizon main with #5390 (API 49)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 20:47:04 +01:00
Ludovic Marie c1ce388d41 WIP shop 2026-10-31 20:45:32 +01:00
Ludovic Marie 8bbf748e1f Merge pull request #72 from horizon-rust/feat/smp-grief
SMP: keep water, fire, pistons, explosions, buckets and blows out of claims
2026-10-31 20:17:02 +01:00
Ludovic Marie 50c23cb7d9 Merge pull request #69 from horizon-rust/feat/smp-claims
SMP: land claims (/claim, /trust)
2026-10-31 20:16:54 +01:00
Ludovic Marie 8d5c1ed7a3 Merge pull request #66 from horizon-rust/feat/smp-places
SMP: places (spawn, homes, warps, /tpa) and /rules
2026-10-31 20:16:44 +01:00
levzzz b6c1af58cd Merge pull request #103 from horizon-rust/registry/veinminer-repo
veinminer 0.3.2 (Nightly 2026-10-31)
2026-11-01 00:06:14 +05:00
Ludovic MarieandClaude Opus 5.5 3cf1b6aa8f SMP 0.11.0: first-join welcome, daily reward, AFK out of the sleep count, a command rate limit
A new presence module, looked at once a second: a player's first join is
announced and they read the welcome and the rules; each player gets a
daily reward (logged as daily_reward); a player who doesn't move, turn
or run a command for afk_minutes, or types /afk, leaves the sleep count
(native_sleep_ignored) until they move; and a player runs at most
spam_commands SMP commands in spam_seconds. All in config.json's
presence section.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 20:05:56 +01:00
Ludovic MarieandClaude Opus 5.5 a11db16db3 SMP 0.10.0: /back after a death or a teleport, /playtime, /claim show
/back returns to where the player died or where their last teleport took
them from, with the same warmup and cooldown. /playtime reads the time
played that places already counts. /claim show draws the chunk's border
with dust particles for 10 s, to that player only, coloured by whose
land it is.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 20:05:42 +01:00
Ludovic MarieandClaude Opus 5.5 dca26bf044 SMP: a sidebar of the richest players, /sidebar on|off, and the Tab list's header and footer
The sidebar lists the top 10 balances and the player's own rank and
balance; it is built again when a balance changed (at most every 5 s) or
every minute, and sent only to the players whose lines changed. /sidebar
off hides it, kept in board.json. The Tab list shows the server's name,
its TPS and the players on, every 5 s. An idle tick now costs a counter:
the SMP's work runs once a second, or each tick only while a teleport
warms up, a trade is open or a command's changes wait to be written.
On hooks API 43 (native_sidebar, native_tab_list, native_tick_stats). 0.9.0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 20:05:04 +01:00
levzzzandClaude Opus 5.5 95b8f15c6b veinminer 0.3.2: Nightly 2026-10-31
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 23:42:38 +05:00
levzzz be6b796a20 Merge pull request #98 from horizon-rust/remove/mod-menu
Remove mod_menu (superseded by the built-in Mods menu)
2026-10-31 23:35:44 +05:00
Ludovic MarieandKrzysix17 90e26686bd Add freelook 0.3.1
Submitted by @Krzysix17 through the form.

Submission: IvZxsJMgepBDFUkQDKiYoixlWAvyEWVFBoF6pQE1jkA
Co-authored-by: Krzysix17 <[email protected]>
2026-10-31 18:51:10 +01:00
levzzzandClaude Opus 5.5 2cd564f16b Remove mod_menu: superseded by Horizon's built-in Mods menu
The owner retires it: 0.1.1 needs an old launcher inventory feed and the game's own Mods screen now does the same job.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:39:59 +05:00
Ludovic Marieandhakergeniusz c64087836d Add freecam 0.1.0
Submitted by @hakergeniusz through the form.

Co-authored-by: hakergeniusz <[email protected]>
2026-10-31 18:19:07 +01:00
Ludovic MarieandCayMac97 40f3d42984 Add crosshair_indicator 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 17:46:08 +01:00
Ludovic MarieandLutziano888 9a7b8a0ffc Add fair_freecam 1.2.0
Submitted by @Lutziano888 through the form.

Co-authored-by: Lutziano888 <[email protected]>
2026-10-31 17:29:18 +01:00
Ludovic Marie b571298b58 Merge branch 'feat/smp-claims' into feat/smp-grief 2026-10-31 16:49:55 +01:00
Ludovic Marie fefd3e8c6b Merge branch 'feat/smp-places' into feat/smp-claims 2026-10-31 16:49:53 +01:00
Ludovic Marie 4364dbfba3 Merge remote-tracking branch 'origin/main' into feat/smp-places 2026-10-31 16:49:46 +01:00
Ludovic Marieandumbx-dot 8c837ede87 Add freecam_plus 1.0.0
Submitted by @umbx-dot through the form.

Co-authored-by: umbx-dot <[email protected]>
2026-10-31 13:38:36 +01:00
Ludovic MarieandCayMac97 36b3c994e6 Add toggle_sprint 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 12:25:24 +01:00
Ludovic MarieandCayMac97 1ab3acaf70 Add status_effect_hud 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 12:24:07 +01:00
Ludovic MarieandCayMac97 ca4f82c665 Add light_overlay 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 12:22:54 +01:00
Ludovic MarieandCayMac97 bcf749c4d8 Add inventory_profiles 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 12:20:00 +01:00
Ludovic Marieandform1t ff69e902c8 Add menu_panorama panorama-1.0.0
Submitted by @form1t through the form.

Co-authored-by: form1t <[email protected]>
2026-10-31 11:53:17 +01:00
Ludovic MarieandCayMac97 97170b869d Add fullbright_horizon 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 11:05:09 +01:00
Ludovic MarieandCayMac97 e09a094d25 Add armor_status 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 11:02:06 +01:00
Ludovic MarieandCayMac97 c5ba9aaf03 Add appleskin_horizon 1.0.0
Submitted by @CayMac97 through the form.

Co-authored-by: CayMac97 <[email protected]>
2026-10-31 10:58:21 +01:00
levzzz f7709827f6 Merge pull request #48 from Domanffe/blockscope-native-0.3.0
blockscope: a native-mod entry and 0.3.0
2026-10-31 09:19:01 +05:00
levzzzandClaude Sonnet 5.5 72250afe73 Merge main into
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-31 09:18:00 +05:00
levzzzandClaude Sonnet 5.5 5495b461fd Merge main into blockscope-native-0.3.0
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-31 09:15:27 +05:00
Ludovic MarieandClaude Opus 5.5 aaf6ccefcc SMP claims: pinned to horizon main with #4739 (API 22)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 00:56:05 +01:00
Ludovic MarieandClaude Opus 5.5 b0e3d98b52 SMP claims: pinned to horizon#4739's head (API 22)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 23:52:27 +01:00
Ludovic MarieandClaude Opus 5.5 803907aaa5 SMP: keep water, fire, pistons, explosions, buckets and blows out of claims (hooks 22)
On Horizon's API 22 hook points: a fluid or fire never spreads into a
claim from land of another owner (or of a player they don't trust), a
piston never pushes or pulls blocks into one, explosions spare claimed
blocks whoever lit them, buckets are guarded where they fill or empty, and
the claim's frames, armor stands, paintings, vehicles and animals
(`claims.protected_entities`) take no blows from untrusted players. The
spread and piston hooks read the open claims without allocating and never
wait on the SMP's lock. The proof adds a world_guard step on the dedicated
server, with controls outside the claim; the claims step no longer fails
when grass spreads onto its dirt. 0.8.0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 23:18:36 +01:00
Ludovic MarieandClaude Opus 5.5 ec056f9f02 SMP: land claims (/claim, /trust) on the block hooks
A player claims the chunk they stand in; only they, the players they
trust and operators break or right click blocks there
(native_destroy_block, native_right_click_block), told on the action
bar (native_action_bar, API 16). Chunks a player may hold grow with
the time played, counted by places. claims.json, written atomically.
Proved on a dedicated server: a lever, a dirt block and a placement
refused to Steve in Alex's chunk, then allowed once trusted.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 22:08:36 +01:00
Ludovic MarieandClaude Opus 5.5 63f2fa9f01 SMP places: pinned to horizon main with #4610 (API 21)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 22:08:34 +01:00
Ludovic MarieandClaude Opus 5.5 1ec378ac96 SMP places: hook points API 21 (main's mod screens took 18 to 20)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 21:59:14 +01:00
Ludovic MarieandXnotCykoX 04c0ee173a Add worldedit 1.2.1
Submitted by @XnotCykoX through the form.

Co-authored-by: XnotCykoX <[email protected]>
2026-10-30 21:28:41 +01:00
Ludovic MarieandClaude Opus 5.5 0eb6ca75c3 SMP places: hook points API 18 (main took 16 and 17)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:45:55 +01:00
Ludovic MarieandClaude Opus 5.5 26079e71ed SMP places: hook points API 16, and the proof waits for each answer
#3996's block entities took API 15 on main: horizon#4610's hooks are 16.
say() polls for the command's answer instead of a fixed 1.5 s, which a
busy machine outran.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:39:31 +01:00
Ludovic MarieandClaude Opus 5.5 b9bd159dcf SMP: places (spawn, homes, warps, /tpa) and /rules
Teleports wait a warmup that a move or a hit calls off, then run vanilla's
tp as the server (native_run_command, API 15), so they cross levels.
Homes grow with the time played here, counted by the mod. places.json
holds the spawn, warps, homes and time played, written atomically.
Proved on a dedicated server with two clients: home from the Nether,
called off by a move and by damage, /tpa, warps, operators only.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:24:05 +01:00
levzzzandClaude Sonnet 5.5 5b03ea2d0c Docs: drop the WebAssembly mod wording from READMEs and entry descriptions
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 23:08:24 +05:00
Alexander Krylov 08ca24a176 blockscope: a native-mod entry and 0.3.0
0.3.0 is the WebAssembly mod rewritten as a mixin bundle, so the entry
turns native-mod once (docs/native-mods.md). Its two .hmod versions stay
as they are. The bundle itself is not in staging yet.
2026-10-30 16:56:34 +03:00
378 changed files with 31594 additions and 400 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
+3 -1
View File
@@ -78,7 +78,9 @@ jobs:
names = zipfile.ZipFile(path).namelist()
manifest = json.loads(zipfile.ZipFile(path).read("horizon-native.json"))
assert manifest["hooks"] >= 1, manifest
assert all(n == "horizon-native.json" or (n.startswith(f"mixins/{manifest['id']}/") and n.endswith((".rs", ".toml"))) for n in names), names
bundle = f"mixins/{manifest['id']}/"
assert all(n == "horizon-native.json" or n == bundle + "LICENSE" or (n.startswith(bundle) and n.endswith((".rs", ".toml"))) for n in names), names
assert bundle + "LICENSE" in names, "the mod's LICENSE travels in its package"
print(path, manifest)
PY
- uses: actions/upload-artifact@v4
+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">
+15
View File
@@ -36,6 +36,21 @@ Submitting a project, through the form or a pull request, means you confirm that
You alone are responsible for what you publish and for any claim about it. The Horizon project may refuse, hide or
remove any project, at any time, without having to give a reason.
## Licences reviewers can read
Reviewers read a project's source before each version is listed; that is how they check it holds nothing harmful.
They may only read source under a licence that lets them, so a new project, and every new version of a listed one,
needs source under one of:
- MIT, MIT-0, BSD-2-Clause, BSD-3-Clause, 0BSD, Apache-2.0, ISC, zlib, Unlicense or CC0-1.0;
- or any licence, with a written grant from its authors that lets the Horizon reviewers read the source to review it
(say so in the pull request, with a link to the grant).
Source under GPL, LGPL, MPL or all rights reserved, without such a grant, can't be reviewed, so it can't be listed or
updated. The projects already listed under other licences when this rule was written (classic_zoom,
distant_horizons, fly_speed, serverify) stay listed as they are; their next version needs a licence above or a
grant. A port also has to follow promise 2 above.
## Copyright and takedowns
If a project in this registry uses your work without your permission:
+12 -8
View File
@@ -11,15 +11,16 @@ 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
owned by its own authors, not by the Horizon project or its maintainers. A listing is not an endorsement. See the
[mod policy](MOD-POLICY.md): what authors promise when they submit (ports of other mods included) and how to have
a project taken down.
[mod policy](MOD-POLICY.md): what authors promise when they submit (ports of other mods included), the licences
whose source reviewers can read, and how to have a project taken down.
## Submit
@@ -41,8 +42,9 @@ cargo install --git https://github.com/horizon-rust/horizon cargo-horizon-mod
cargo horizon-mod check target/horizon-mod/my_mod.hmod
```
**Updates** come the same way: the form adds a version to your entry. Only an entry's `owners` publish its updates
without a reviewer's extra look. A published file never changes: publish a new version.
**Updates** come the same way: the form adds a version to your entry, and a reviewer reads it before it is
published. Only an entry's `owners` can add versions, and every version of a native mod is reviewed, owner or
not: its code runs with the player's account permissions. A published file never changes: publish a new version.
**Signing** is optional and recommended: put your [minisign](https://jedisct1.github.io/minisign/) public key in your
entry, and every later version must be signed with it, so nobody else can publish an update in your name.
@@ -64,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`) |
@@ -82,7 +85,8 @@ The index: `https://horizon-rust.github.io/horizon-mods/index.json`.
[horizon-mixins](https://github.com/horizon-rust/horizon-mixins) bundles on Horizon's native hook points
([docs/native-mods.md](https://github.com/horizon-rust/horizon/blob/main/docs/native-mods.md)). Each folder keeps the
history of the repository it came from. A mod builds on any Horizon whose hook points are at least the version its
`compatibility.json` names; `horizon_revision` is the commit it was last tested on.
`compatibility.json` names; `horizon_revision` is the commit it was last tested on. `smp` and `voicechat-server`
are server mods, built into the official server's engine (see their READMEs).
```sh
python3 native/tools/native.py check zoom # apply on the tested Horizon and cargo check the game
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: 150 KiB

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.

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: 855 B

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: 1.2 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: 660 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 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: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 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: 2.6 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: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Loaded 100 of 378 files, more files were not shown because too many files have changed in this diff. Show more