Compare commits

...
Author SHA1 Message Date
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
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 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 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
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
levzzz 602a58cfd1 Merge pull request #63 from horizon-rust/fix/smp-audit-sync
SMP: the audit log syncs only after a tick that wrote to it (-2.8 ms MSPT)
2026-10-31 09:15:55 +05:00
levzzz f8a41e6c8b Merge pull request #62 from horizon-rust/feat/smp-lottery
SMP: the lottery (/lottery), part of gambling, off by default
2026-10-31 09:15:51 +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
levzzz d1e80f8485 Merge pull request #67 from horizon-rust/submit/fly_speed-0.1.0
Add fly_speed 0.1.0
2026-10-31 09:14:40 +05:00
levzzz 65aaaafe56 Merge pull request #70 from horizon-rust/submit/jei-0.1.0
Add jei 0.1.0
2026-10-31 09:14:36 +05:00
levzzz 634fc6cb7a Merge pull request #47 from horizon-rust/submit/serverify-0.1.0
Add serverify 0.1.0
2026-10-31 09:14:20 +05:00
levzzz fb9a47061c Merge pull request #65 from horizon-rust/submit/fullbright-1.0.0
Add fullbright 1.0.0
2026-10-31 09:14:16 +05:00
levzzz 0cebbbfad8 Merge pull request #73 from horizon-rust/submit/appleskin-0.1.1
Update appleskin 0.1.1
2026-10-31 09:13:43 +05:00
levzzz 52069c3e49 Merge pull request #74 from horizon-rust/submit/eatinganimation-0.1.1
Update eatinganimation 0.1.1
2026-10-31 09:13:39 +05:00
levzzzandClaude Sonnet 5.5 8479dec66f Ship the icon in the registry (icons/serverify.png): the launcher does not load raw.githubusercontent.com links
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-31 09:12:04 +05:00
levzzzandClaude Sonnet 5.5 f489d26358 Ship the icon in the registry (icons/fullbright.png): the launcher does not load raw.githubusercontent.com links
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-31 09:12:02 +05:00
levzzzandClaude Sonnet 5.5 4904b24c69 Ship the icon in the registry (icons/appleskin.png): the launcher does not load raw.githubusercontent.com links
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-31 09:11:39 +05:00
levzzzandClaude Sonnet 5.5 38421f5a8d Ship the icon in the registry (icons/eatinganimation.png): the launcher does not load raw.githubusercontent.com links
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-31 09:11:37 +05:00
Ludovic Marieandsoufied 3488a88696 Update eatinganimation 0.1.1
Submitted by @soufied through the form.

Co-authored-by: soufied <[email protected]>
2026-10-31 05:03:04 +01:00
Ludovic Marieandsoufied 2708b6a02f Update appleskin 0.1.1
Submitted by @soufied through the form.

Co-authored-by: soufied <[email protected]>
2026-10-31 04:52:23 +01: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 Marieandenderliker 3516095141 Add jei 0.1.0
Submitted by @enderliker through the form.

Co-authored-by: enderliker <[email protected]>
2026-10-30 21:17:57 +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 MarieandImmortalWhisper 7d2b14f53e Add fly_speed 0.1.0
Submitted by @ImmortalWhisper through the form.

Co-authored-by: ImmortalWhisper <[email protected]>
2026-10-30 20:27:24 +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
Ludovic Marieandbezi5kt 52980b81e0 Add fullbright 1.0.0
Submitted by @bezi5kt through the form.

Co-authored-by: bezi5kt <[email protected]>
2026-10-30 20:18:00 +01:00
Ludovic MarieandClaude Opus 5.5 4fbe64e376 SMP: the lottery (/lottery), part of gambling, off by default
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:55:25 +01:00
Ludovic MarieandClaude Opus 5.5 5aacb47cd4 SMP: the audit log syncs only after a tick that wrote to it
A sync_data on every server tick, even with nothing appended, cost about
2.8 ms of MSPT with 55 bots on the Mac mini.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:55:01 +01:00
levzzz ff18bb42d5 Merge pull request #58 from horizon-rust/feat/smp-coinflip
SMP: coinflips with held stakes (/coinflip), off by default
2026-10-30 23:26:49 +05:00
levzzzandClaude Sonnet 5.5 9121109717 Merge main into feat/smp-coinflip
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 23:14:04 +05:00
levzzz 0faf62da1c Merge pull request #57 from horizon-rust/feat/smp-trade
SMP: player trades (/trade) with an atomic swap
2026-10-30 23:14:00 +05: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
Ludovic MarieandClaude Opus 5.5 5dad8648b3 SMP: coinflips with held stakes (/coinflip), off by default
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:07:38 +01:00
Ludovic MarieandClaude Opus 5.5 7f1bb6920b SMP: pinned on horizon main (f533c3a, hooks 10 merged)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:06:15 +01:00
Ludovic MarieandClaude Opus 5.5 7bd4f6207b SMP proof: the 26.3 keep_inventory rule
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:06:06 +01:00
Ludovic MarieandClaude Opus 5.5 1d4cb83ca2 SMP: player trades (/trade) on server menus
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:06:05 +01:00
levzzz 37f573d08f Merge pull request #56 from horizon-rust/feat/smp-market
SMP: the server market (/worth, /sell, /buy)
2026-10-30 23:04:50 +05:00
levzzz 847fd2dcbe Merge pull request #54 from horizon-rust/submit/xtoxray-2026.29.0
Add xtoxray 2026.29.0
2026-10-30 23:03:06 +05:00
levzzz 2c41bdf9fd Merge pull request #52 from horizon-rust/submit/rightharvest-0.1.0
Add rightharvest 0.1.0
2026-10-30 23:02:59 +05:00
levzzz 7704c01acf Merge pull request #51 from horizon-rust/submit/chatheads-0.1.0
Add chatheads 0.1.0
2026-10-30 23:01:45 +05:00
levzzz c2f369fb2e Merge pull request #43 from horizon-rust/submit/shulker_peek-0.1.0
Add shulker_peek 0.1.0
2026-10-30 23:01:37 +05:00
levzzzandClaude Sonnet 5.5 c13658c430 Merge main into feat/smp-market
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 22:57:04 +05:00
levzzz 5c1b79862e Merge pull request #55 from horizon-rust/feat/smp-economy
SMP native server mod: the economy (/balance, /pay, /baltop, /eco)
2026-10-30 22:56:59 +05:00
levzzz 8366f89925 Merge pull request #53 from horizon-rust/submit/eatinganimation-0.1.0
Add eatinganimation 0.1.0
2026-10-30 22:56:28 +05:00
levzzz 2917b77de1 Merge pull request #49 from horizon-rust/submit/appleskin-1.0.0
Add appleskin 1.0.0
2026-10-30 22:56:21 +05:00
levzzz b75251443c Merge pull request #44 from horizon-rust/submit/distant_horizons-0.1.0
Add distant_horizons 0.1.0
2026-10-30 22:55:57 +05:00
levzzzandClaude Sonnet 5.5 5d26a0bde3 rightharvest: add the icon its entry points at
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 22:55:33 +05:00
levzzzandClaude Sonnet 5.5 7339aa2992 chatheads: add the icon its entry points at
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 22:55:31 +05:00
levzzzandClaude Sonnet 5.5 0096a8a835 xtoxray: host the icon in the repo, SPDX licence id
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 22:55:28 +05:00
levzzzandClaude Sonnet 5.5 5728b12cbb shulker_peek: host the icon in the repo
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 22:55:20 +05:00
Ludovic MarieandClaude Opus 5.5 830bc7884b SMP README: players install nothing
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 17:54:15 +01:00
Ludovic MarieandClaude Opus 5.5 7e795012ed SMP: the server market (/worth, /sell, /buy)
The server buys and sells vanilla items at config.json's market prices
(a starting list the owner edits): plain items only, players in
survival or adventure mode only. Items move first, then money, both in
the audit log; a sale the log refuses gives the items back, a purchase
checks money and room first. Needs hook points API 9 (the acting
player's items). config.json is written again when a version adds keys.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 17:48:10 +01:00
Ludovic MarieandClaude Opus 5.5 666479ad05 SMP native server mod: the economy (/balance, /pay, /baltop, /eco)
The official server's SMP, opt-in: not listed in the registry, built only
into the official server's engine. Balances by UUID in
world/horizon-smp/economy.json (written atomically, at most once a tick),
an audit line per change written before it, config.json with defaults.
Hooks only Horizon's hook points (API 8: server commands and players).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 17:48:08 +01:00
Ludovic MarieandRealCat1st b498e0a5fc Add xtoxray 2026.29.0
Submitted by @RealCat1st through the form.

Co-authored-by: RealCat1st <[email protected]>
2026-10-30 16:53:17 +01:00
Ludovic Marieandsoufied ebcadb8dd6 Add eatinganimation 0.1.0
Submitted by @soufied through the form.

Co-authored-by: soufied <[email protected]>
2026-10-30 15:53:17 +01:00
Ludovic MarieandDomanffe b1ad307e93 Add rightharvest 0.1.0
Submitted by @Domanffe through the form.

Co-authored-by: Domanffe <[email protected]>
2026-10-30 15:39:29 +01:00
Ludovic MarieandDomanffe 395b1422e0 Add chatheads 0.1.0
Submitted by @Domanffe through the form.

Co-authored-by: Domanffe <[email protected]>
2026-10-30 15:38:18 +01:00
Ludovic Marieandsoufied 1910ab8709 Add appleskin 1.0.0
Submitted by @soufied through the form.

Co-authored-by: soufied <[email protected]>
2026-10-30 15:00:11 +01: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
Ludovic MarieandLouchatfroff b27aeaa93f Add serverify 0.1.0
Submitted by @Louchatfroff through the form.

Co-authored-by: Louchatfroff <[email protected]>
2026-10-30 14:36:17 +01:00
Cosmic ae217daafd Merge pull request #46 from Domanffe/icon/blockscope
blockscope: an icon the launcher can fetch
2026-10-30 09:25:42 -04:00
Alexander KrylovandHermes Agent d6501160e1 blockscope: an icon the launcher can fetch
The entry points at raw.githubusercontent.com, which the launcher refuses: it
fetches project images only from Modrinth's and CurseForge's CDNs and this
registry's Pages (launcher/src/browser/images.rs, HOSTS). So Blockscope has
shown no icon in the launcher's Mods page while every registry icon does.

icons/blockscope.png is the mod's own 256x256 RGBA icon, the size the other
icons here use, and the entry now names the Pages URL the publish workflow
serves it from (publish.yml copies icons/ to the site root).

Checked: https://horizon-rust.github.io/horizon-mods/icons/biomecompass.png
answers 200 image/png, while icons/blockscope.png and icons/zoom.png (a mod
with no file here) answer 404, so the URL is live only once the file is.

Co-Authored-By: Hermes Agent (Nous Research) <[email protected]>
2026-10-30 16:02:44 +03:00
Ludovic Marieanddenizsahin7744 c3669e5412 Add distant_horizons 0.1.0
Submitted by @denizsahin7744 through the form.

Co-authored-by: denizsahin7744 <[email protected]>
2026-10-29 22:54:51 +01:00
Ludovic Marieandvstxx 0e7ed706b6 Add shulker_peek 0.1.0
Submitted by @vstxx through the form.

Co-authored-by: vstxx <[email protected]>
2026-10-29 22:18:15 +01:00
levzzz 678eb2d1af Merge pull request #40 from SU4G3/classic-zoom-native
classic_zoom 2.0.0: a native mod
2026-10-29 23:59:32 +05:00
levzzz 55e203b1cd Merge pull request #31 from d3grando/lookat-native
LookAt 0.2.1: turn native
2026-10-29 23:59:24 +05:00
levzzz e9f14ea77f Merge pull request #41 from d3grando/mod-icons
Icons for TreeFall, SmartF3, Item New, BiomeCompass, Enchantment Hints, Mouse Tricks and Carry Block
2026-10-29 23:45:09 +05:00
d3grandoandClaude Opus 5.5 190d8f9a60 Icons for d3grando's native mods, served from this repository
The entries pointed at raw.githubusercontent.com, which playhorizon.dev's
img-src and the launcher don't load. The same 256x256 PNGs now live in
icons/, as coords_hud's does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:51:23 +07:00
SU4G3andClaude Opus 5.5 bbe01b52ad classic_zoom 2.0.0: a native mod
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:04:39 +03:00
Ludovic Marie 0d8411b352 Merge pull request #39 from horizon-rust/native-coords-hud
Coordinates HUD turns native (2.0.0), on the hook points
2026-10-29 14:32:02 +01:00
Ludovic MarieandClaude Opus 5.5 890d330600 Coordinates HUD: drop a stray Python cache file
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:08:25 +01:00
Ludovic MarieandClaude Opus 5.5 7fd746624a Coordinates HUD turns native (2.0.0), on the hook points
The WebAssembly SDK's example mod, ported to a horizon-mixins bundle in
native/coords-hud: the position and facing box in the top left, /where and
/coords, and a Shown setting that /coords now keeps. The time of day line is
gone: the hook points don't give the game's clock yet. Tested on Nightly
4baa571, alone and with the five other native mods; the proof drives the
built game.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:08:17 +01:00
Ludovic MarieandClaude Opus 5.5 7ce014f8a9 Recipes turns native (2.0.0), on hook points version 2 (#38)
Pinned to Nightly 4baa571, the first with horizon#3435's hook points v2.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-29 13:26:55 +01:00
levzzzandOpenAI Codex e62054006e Merge pull request #36 from horizon-rust/submit/classic_zoom-1.0.0
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:13:16 +05:00
levzzzandOpenAI Codex b956bda63b Merge pull request #33 from horizon-rust/submit/mousetricks-0.2.0
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:13:12 +05:00
levzzzandOpenAI Codex ce12d21fe3 Merge pull request #32 from horizon-rust/submit/enchantmenthints-0.1.0
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:13:08 +05:00
levzzzandOpenAI Codex 34f8420003 Merge pull request #30 from horizon-rust/submit/biomecompass-0.2.2
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:13:04 +05:00
levzzzandOpenAI Codex ed256db6f7 Merge pull request #29 from horizon-rust/submit/itemnew-0.1.1
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:13:01 +05:00
levzzzandOpenAI Codex 4fb24a8263 Merge pull request #27 from horizon-rust/submit/treefall-0.3.0
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:12:57 +05:00
levzzzandOpenAI Codex 2cc76d1dc5 Merge pull request #25 from horizon-rust/submit/blockscope-0.2.0
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:12:53 +05:00
levzzzandOpenAI Codex ef5c5fe50b Merge pull request #23 from horizon-rust/submit/compass_bar-0.1.0
Merged by levzzz5154's AI agent (OpenAI Codex), following source and artifact review.

Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-29 15:12:50 +05:00
Ludovic MarieandSU4G3 c1c783574c Add classic_zoom 1.0.0
Submitted by @SU4G3 through the form.

Co-authored-by: SU4G3 <[email protected]>
2026-10-29 10:22:47 +01:00
levzzz 4b3311b800 Merge pull request #28 from horizon-rust/submit/smartf3-0.1.0
Add smartf3 0.1.0
2026-10-29 13:53:05 +05:00
levzzz b022d5b14f Merge pull request #34 from horizon-rust/submit/carryblock-0.1.2
Add carryblock 0.1.2
2026-10-29 13:40:22 +05:00
Ludovic Marieandd3grando 3a8c438ec5 Add carryblock 0.1.2
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-29 08:13:11 +01:00
Ludovic Marieandd3grando adea72cbdf Add mousetricks 0.2.0
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-29 08:13:01 +01:00
Ludovic Marieandd3grando bc79048b9a Add enchantmenthints 0.1.0
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-29 08:12:53 +01:00
d3grandoandClaude Opus 5.5 f6dade0df2 LookAt 0.2.1: turn native
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 13:18:27 +07:00
Ludovic Marieandd3grando fb9ab126f7 Add biomecompass 0.2.2
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-29 07:13:10 +01:00
Ludovic Marieandd3grando 4d975b9813 Add itemnew 0.1.1
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-29 07:13:01 +01:00
Ludovic Marieandd3grando e7a95dcbef Add smartf3 0.1.0
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-29 07:12:53 +01:00
Ludovic Marieandd3grando 266b6039d4 Add treefall 0.3.0
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-29 07:11:13 +01:00
Ludovic MarieandClaude Opus 5.5 22c6f14ea6 Zoom, FPS Counter, Keystrokes and Minimap turn native (2.0.0) (#26)
The four official entries switch from `mod` to `native-mod`, each with a
2.0.0 `.hnmod` built from native/<name>/ and pinned to Nightly 6f8c7a0
(nightly-source/2026-10-28-6f8c7a0), the first Nightly with the native
hook points v1 and the on/off from Options > Mods. Their 1.0.0 `.hmod`
stays published; the index lists only 2.0.0, and the launcher keeps a
player's installed `.hmod` until a native build has the mod. Settings
carry over: the same files and keys.

Recipes stays on 8f91683 (hook points v2) until a Nightly ships them.
native.py now builds mods pinned to different commits on the pin of the
mods that need the most hook points, as the launcher does, so `together`
checks the whole set without --horizon.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-29 05:32:54 +01:00
Ludovic MarieandDomanffe 0f556b3a89 Update blockscope 0.2.0
Submitted by @Domanffe through the form.

Co-authored-by: Domanffe <[email protected]>
2026-10-29 05:27:45 +01:00
Ludovic MarieandClaude Opus 5.5 d6a1ddd703 Recipes as a native mod (native/recipes, hook points v2) (#24)
* Recipes as a native mod (native/recipes, hooks 2)

Horizon's official Recipes viewer, ported from the WebAssembly mod to a
horizon-mixins bundle on the native hook points, API 2: the item panel
beside container screens, search (#tag, @namespace), recipes and uses per
station, + to fill the crafting grid, and "Click gives items" in creative.
It keeps the WebAssembly mod's setting file (give) and keys
(key.recipes.recipe, key.recipes.uses), and rests when turned off in
Options > Mods.

The viewer is runtime.rs (also the crate's library, with its tests); the
game's tables and panel events go through glue.rs, a second module.

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

* Native mods: pin all five to Horizon 8f91683 (hook points v2)

Zoom, FPS Counter, Keystrokes, Minimap and Recipes all name the commit
they were tested on: main after horizon-rust/horizon#3435, which brought
hook points v2 (the item panel and recipe tables). One commit for all of
them, so the `together` job builds the set without --horizon. The four
older mods still need only hooks 1.

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

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-29 02:23:19 +01:00
Ludovic MarieandClaude Opus 5.5 f539b5a584 Native mods: rest when turned off in Options > Mods (#22)
Each official mod checks `native_on` (horizon-rust/horizon#3346) first in its
HUD, minimap, key, wheel and zoom hooks, so turning it off in Options > Mods
takes effect at once; the launcher's next build leaves it out. Pinned to
Horizon 01d0f45, which has the helper.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-28 23:11:49 +01:00
Ludovic Marie b07b1fdef0 Merge pull request #21 from horizon-rust/feat/native-official-mods
Horizon's native mods: one folder each in native/, with their history and CI
2026-10-28 23:03:55 +01:00
Ludovic MarieandFernandes585 b6a69cc40e Add compass_bar 0.1.0
Submitted by @Fernandes585 through the form.

Co-authored-by: Fernandes585 <[email protected]>
2026-10-28 22:11:14 +01:00
Ludovic MarieandClaude Opus 5.5 bf91022ab9 Native mods: build with horizon-mixins 0d6b103, the launcher's default since horizon#3361
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:14:57 +01:00
Ludovic MarieandClaude Opus 5.5 876f7d1dc7 Native mods: one folder each in native/, shared tools and CI
Horizon's own native mods (zoom, fps-overlay, keystrokes, minimap) were one
repo each; they now live here under native/<name>/ with their history.
native/tools/native.py builds, packages and proves any of them, alone or
together; native.yml checks each changed folder (fmt, clippy, tests, the
.hnmod, the game with it applied), every mod together, and every Monday all
of them on the newest Nightly. Pinned to Horizon 1149c92 (hook points v1).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 20:59:14 +01:00
Ludovic MarieandClaude Opus 5.5 415352eed1 Move horizon-rust/horizon-mod-minimap into native/minimap (history kept)
Co-Authored-By: Claude Opus 5.5 <[email protected]>

git-subtree-dir: native/minimap
git-subtree-mainline: c444610bb8
git-subtree-split: d86ecb6c4f
2026-10-28 20:54:07 +01:00
Ludovic MarieandClaude Opus 5.5 c444610bb8 Move horizon-rust/horizon-mod-keystrokes into native/keystrokes (history kept)
Co-Authored-By: Claude Opus 5.5 <[email protected]>

git-subtree-dir: native/keystrokes
git-subtree-mainline: c3c335bcca
git-subtree-split: 2a04908a1a
2026-10-28 20:54:03 +01:00
Ludovic MarieandClaude Opus 5.5 c3c335bcca Move horizon-rust/horizon-mod-fps-overlay into native/fps-overlay (history kept)
Co-Authored-By: Claude Opus 5.5 <[email protected]>

git-subtree-dir: native/fps-overlay
git-subtree-mainline: 9dbee00d1f
git-subtree-split: 1c69d4ffc9
2026-10-28 20:53:59 +01:00
Ludovic MarieandClaude Opus 5.5 9dbee00d1f Move horizon-rust/horizon-mod-zoom into native/zoom (history kept)
Co-Authored-By: Claude Opus 5.5 <[email protected]>

git-subtree-dir: native/zoom
git-subtree-mainline: e1aa98d1ed
git-subtree-split: 5cfb57fa2c
2026-10-28 20:53:55 +01:00
Ludovic MarieandClaude Opus 5.5 d86ecb6c4f Proof: check the screen once more after the last Esc
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:14:26 +01:00
Ludovic MarieandClaude Opus 5.5 2a04908a1a Proof: check the screen once more after the last Esc
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:14:23 +01:00
Ludovic MarieandClaude Opus 5.5 1c69d4ffc9 Proof: check the screen once more after the last Esc
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:14:20 +01:00
Ludovic MarieandClaude Opus 5.5 5cfb57fa2c Proof: check the screen once more after the last Esc
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:14:16 +01:00
Ludovic MarieandClaude Opus 5.5 a683d6c60f Build on any Horizon whose hook points are at least the ones it needs
Hook points are only ever added, so a later NATIVE_HOOKS_API still has
every hook this mod uses.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:01:30 +01:00
Ludovic MarieandClaude Opus 5.5 d4beb82c4c Build on any Horizon whose hook points are at least the ones it needs
Hook points are only ever added, so a later NATIVE_HOOKS_API still has
every hook this mod uses.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:01:28 +01:00
Ludovic MarieandClaude Opus 5.5 1a48aa24dc Build on any Horizon whose hook points are at least the ones it needs
Hook points are only ever added, so a later NATIVE_HOOKS_API still has
every hook this mod uses.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:01:26 +01:00
Ludovic MarieandClaude Opus 5.5 59ab4e8fe2 Build on any Horizon whose hook points are at least the ones it needs
Hook points are only ever added, so a later NATIVE_HOOKS_API still has
every hook this mod uses.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 19:01:23 +01:00
Ludovic MarieandClaude Opus 5.5 6ca0d02406 Native mod: minimap on Horizon's native hook points
Port of Horizon's official WebAssembly mod to a horizon-mixins bundle,
keeping its settings files. Unit tests, a .hnmod packager, a native
check against Horizon by commit and an offscreen proof (tools/).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 18:57:27 +01:00
Ludovic MarieandClaude Opus 5.5 3448e187ca Native mod: keystrokes on Horizon's native hook points
Port of Horizon's official WebAssembly mod to a horizon-mixins bundle,
keeping its settings files. Unit tests, a .hnmod packager, a native
check against Horizon by commit and an offscreen proof (tools/).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 18:57:26 +01:00
Ludovic MarieandClaude Opus 5.5 d1fed6cd56 Native mod: fps-overlay on Horizon's native hook points
Port of Horizon's official WebAssembly mod to a horizon-mixins bundle,
keeping its settings files. Unit tests, a .hnmod packager, a native
check against Horizon by commit and an offscreen proof (tools/).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 18:57:26 +01:00
Ludovic MarieandClaude Opus 5.5 647fa375e6 Native mod: zoom on Horizon's native hook points
Port of Horizon's official WebAssembly mod to a horizon-mixins bundle,
keeping its settings files. Unit tests, a .hnmod packager, a native
check against Horizon by commit and an offscreen proof (tools/).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 18:57:25 +01:00
levzzz e1aa98d1ed Merge pull request #19 from horizon-rust/feat/mod-menu
Add Mod Menu 0.1.1
2026-10-28 22:28:46 +05:00
levzzz 815bdc50f7 Merge pull request #18 from horizon-rust/submit/lookat-0.1.0
Add lookat 0.1.0
2026-10-28 22:28:30 +05:00
levzzz 28c8bf4684 Merge pull request #9 from horizon-rust/submit/blockscope-0.1.0
Add blockscope 0.1.0
2026-10-28 22:28:11 +05:00
levzzzandHermes Agent 8eadd70568 Add Veinminer 0.3.0 native source mod (depends on Horizon native support) (#20)
* feat: submit Veinminer 0.3.0 native source bundle

Document native-mod permissions and exact tested source pins, and register the reproducible source-only hnmod uploaded to staging. Depends on the upcoming Horizon native-mod registry and launcher support; do not merge before that dependency ships.

Co-Authored-By: Hermes Agent (OpenAI) <[email protected]>

* docs: describe upstream native builds and pinned compatibility

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

---------

Co-authored-by: Hermes Agent (OpenAI) <[email protected]>
2026-10-28 18:04:54 +01:00
OpenAI Codex 25fb233630 Add Mod Menu 0.1.1 for installed Horizon mods
Co-Authored-By: OpenAI Codex <[email protected]>
2026-10-28 14:41:59 +05:00
Ludovic Marieandd3grando 7dfe89f942 Add lookat 0.1.0
Submitted by @d3grando through the form.

Co-authored-by: d3grando <[email protected]>
2026-10-28 08:04:41 +01:00
Ludovic Marie bcc5317bac Merge pull request #17 from horizon-rust/codeowners-horizon-team
CODEOWNERS: the Horizon Team reviews mods
2026-10-28 01:01:18 +01:00
Ludovic MarieandClaude Opus 5.5 b66cfbbee9 CODEOWNERS: the Horizon Team reviews registry entries (no separate mod-reviewers team)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 01:00:55 +01:00
Ludovic Marie 9b51200853 Merge pull request #16 from horizon-rust/codeowners-team
CODEOWNERS: the mod-reviewers team
2026-10-28 00:48:49 +01:00
Ludovic MarieandClaude Opus 5.5 d8c85d1484 CODEOWNERS: the mod-reviewers team instead of names (adds levzzz5154)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 00:47:23 +01:00
Ludovic MarieandClaude Opus 5.5 d96322f963 Mod policy: authors own and answer for their mods; ports, takedowns (#14)
Third-party projects are made and owned by their authors, not by the
Horizon project; listing is not endorsement. Authors confirm their right to
publish (ports included), and rights holders get a takedown form.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-27 23:25:30 +01:00
Ludovic MarieandClaude Opus 5.5 006ca9fa3c Point links at the horizon-rust organization (#12)
The repositories moved from ludovic111 to horizon-rust. GitHub redirects the
repository URLs, but not GitHub Pages: the index now lives at
https://horizon-rust.github.io/horizon-mods/. The build passes --site so icon
URLs use the new address without waiting for a new cargo-horizon-mod.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-27 21:22:11 +01:00
Ludovic Marie 3cbaffd145 Merge pull request #11 from ludovic111/reviewers/online5277
CODEOWNERS: Online5277 instead of levzzz5154
2026-10-27 17:57:56 +01:00
Ludovic MarieandClaude Opus 5.5 38890426e1 CODEOWNERS: Online5277 instead of levzzz5154 as the third approver
Ludovic asked for his top three contributors by merged pull requests: kacpherek, rdbtCVS and Online5277.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 17:56:00 +01:00
Ludovic Marie 645ea37852 Merge pull request #10 from ludovic111/reviewers/kacpherek-levzzz
CODEOWNERS: kacpherek and levzzz5154 review registry entries
2026-10-27 15:38:50 +01:00
Ludovic MarieandClaude Opus 5.5 3d4b3488bb CODEOWNERS: kacpherek and levzzz5154 review registry entries beside rdbtCVS
Ludovic's decision (2026-10-27): the three trusted contributors approve submissions; /.github/ and revoked.toml
stay his.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 15:20:13 +01:00
Ludovic MarieandDomanffe f64dc8688a Add blockscope 0.1.0
Submitted by @Domanffe through the form.

Co-authored-by: Domanffe <[email protected]>
2026-10-27 13:58:56 +01:00
Ludovic Marie 3b73fc7a62 Merge pull request #8 from ludovic111/add-recipes
🤖 Agent: merging (as #4–#7, the official mods). The registry check passes with the checker moved to main (0c7f6b7f0), the file is byte-identical to #2446's build, and the mod's e2e passes in all five modes on main.
2026-10-26 22:42:05 +01:00
Ludovic MarieandClaude Opus 5.5 8bcff08bf2 Add recipes 1.0.0 (Horizon's official Recipes mod)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 22:35:26 +01:00
Ludovic Marie 53564d9cfe Merge pull request #7 from ludovic111/feat/download-counts
publish: each project's download count, refreshed every hour
2026-10-26 14:24:03 +01:00
Ludovic MarieandClaude Opus 5.5 2181eec3ce publish: each project's download count, refreshed every hour
publish.yml runs every hour as well as on merges. It sums GitHub's
download_count of each version's release asset into the project's
`downloads` field of index.json, which the launcher and playhorizon.dev/mods
show.

publish and check keep `files/` in the Actions cache, so CI doesn't fetch
every release asset again on each run (each fetch counts as a download).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 14:21:16 +01:00
Ludovic Marie 98f8ab5da3 Merge pull request #6 from ludovic111/official-minimap
Add minimap 1.0.0 (Horizon's official Minimap mod)
2026-10-26 10:00:03 +01:00
Ludovic MarieandClaude Opus 5.5 efe164dd3e 🤖 Agent: Add minimap 1.0.0 (Horizon's official Minimap mod)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:42:58 +01:00
Ludovic Marie b19da5d805 Merge pull request #5 from ludovic111/official-zoom
Add zoom 1.0.0 (Horizon's official Zoom mod)
2026-10-26 08:34:18 +01:00
Ludovic MarieandClaude Opus 5.5 5b42b91bd8 🤖 Agent: Add zoom 1.0.0 (Horizon's official Zoom mod)
The zoom extra as a mod, built from Horizon's main at c58af30ca
(mods/official/zoom).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 08:30:32 +01:00
Ludovic Marie 69290f7c42 Merge pull request #4 from ludovic111/official-hud-mods
Add fps_overlay 1.0.0 and keystrokes 1.0.0 (Horizon's official mods)
2026-10-26 07:06:21 +01:00
Ludovic MarieandClaude Opus 5.5 d05cb8cb56 🤖 Agent: Add fps_overlay 1.0.0 and keystrokes 1.0.0 (Horizon's official mods)
The FPS counter and Keystrokes extras as mods, built from Horizon's main
at 5bcc87983 (mods/official/fps-overlay, mods/official/keystrokes).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 06:48:30 +01:00
Ludovic Marie 81b7ac9bdf Merge pull request #3 from ludovic111/codeowners-reviewers
CODEOWNERS: rdbtCVS reviews beside Ludovic
2026-10-25 16:43:27 +01:00
Ludovic MarieandClaude Opus 5.5 a222e3d816 CODEOWNERS: rdbtCVS reviews beside Ludovic
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 16:43:22 +01:00
Ludovic MarieandClaude Opus 5.5 74c7d6d7bd 🤖 Agent: Remove e2e_check (end-to-end test)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:13:42 +01:00
Ludovic MarieandClaude Opus 5.5 0895ef6b5c 🤖 Agent: Add e2e_check 0.1.0 (registry end-to-end test, reverted next)
Test of the submission form and publishing; reverted right after.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:11:14 +01:00
Ludovic MarieandClaude Opus 5.5 52e1f7d0f9 The registry: coords_hud, the checks, publishing to Pages, the weekly cleanup
- mods/coords_hud.toml: the SDK's example mod, MIT, built from
  crates/horizon-mod-sdk/examples/coords-hud in Horizon.
- check.yml: a pull request's changes, each new file's checks and a trial
  run in the sandbox, the index it would publish (cargo horizon-mod from
  Horizon at HORIZON_REV).
- publish.yml: on main, new versions become releases, index.json and the
  icons go to GitHub Pages.
- cleanup.yml: staging copies nobody needs, weekly.
- CODEOWNERS, the report form, the pull request template, revoked.toml.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:01:10 +01:00
276 changed files with 35515 additions and 9 deletions

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
# Every change needs a review from one of these before it merges (branch protection:
# "Require review from Code Owners"). The reviewers are the Horizon Team, GitHub team horizon-rust/horizon-team
# (Ludovic decides who is in it). /.github/ and takedowns stay Ludovic's.
* @ludovic111 @horizon-rust/horizon-team
/.github/ @ludovic111
/revoked.toml @ludovic111
+8
View File
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Submit a project
url: https://playhorizon.dev/mods/submit
about: Mods, modpacks and resource packs for Horizon. Each submission is reviewed.
- name: Horizon itself
url: https://github.com/horizon-rust/horizon/issues
about: Bugs in the game or the launcher.
+43
View File
@@ -0,0 +1,43 @@
name: Report a project
description: Something in the registry does harm, breaks the game, isn't what it says, or isn't its author's to publish.
title: "Report: "
labels: [report]
body:
- type: markdown
attributes:
value: |
Thanks. Reviewers read every report. If it is dangerous (it deletes files, steals
accounts, spreads), say so in the first line: it can be taken down within hours, and
the launcher then turns installed copies off. Bugs in a mod go to its source repository.
- type: input
id: project
attributes:
label: Project id
description: The last part of its page's address, playhorizon.dev/mods/<id>
placeholder: coords_hud
validations:
required: true
- type: input
id: version
attributes:
label: Version
placeholder: 0.1.0, or "all"
- type: dropdown
id: why
attributes:
label: What is wrong
options:
- It does harm (files, accounts, chat it shouldn't send, anything malicious)
- It isn't what its page says
- It breaks the game or other mods
- It isn't the submitter's to publish (copyright, licence, stolen)
- Something else
validations:
required: true
- type: textarea
id: details
attributes:
label: What happened
description: Steps, what you saw, and logs if you have them (the game's log is latest.log in its folder).
validations:
required: true
+37
View File
@@ -0,0 +1,37 @@
name: Takedown request (copyright)
description: A project in the registry uses your work without your permission.
title: "Takedown: "
labels: [takedown]
body:
- type: markdown
attributes:
value: |
Thanks for telling us. A project that uses your work without permission is removed
(see [MOD-POLICY.md](https://github.com/horizon-rust/horizon-mods/blob/main/MOD-POLICY.md)).
This issue is public: to write privately instead, use [lu4ovic.com](https://lu4ovic.com/#contact).
- type: input
id: project
attributes:
label: Project id
description: The last part of its page's address, playhorizon.dev/mods/<id>
validations:
required: true
- type: textarea
id: work
attributes:
label: Your work
description: What it is, where it is published, and what the project copies from it.
validations:
required: true
- type: input
id: contact
attributes:
label: How to reach you
description: An email or profile, if not this GitHub account.
- type: checkboxes
id: rights
attributes:
label: Statement
options:
- label: I own the rights to this work, or I act for whoever does, and I believe this use is not allowed.
required: true
+14
View File
@@ -0,0 +1,14 @@
<!-- Changing mods/<id>.toml by hand? The form at https://playhorizon.dev/mods/submit does this for you. -->
**Project:** <!-- id, and new project or update -->
- [ ] I made it, or I am allowed to publish it, under the licence the entry names.
- [ ] If it ports or translates another mod, the original's licence allows it (or its authors agreed), and my page
credits and links the original.
- [ ] It has no code, assets or data from Minecraft, Mojang or Microsoft, and nothing that harms players.
- [ ] I read and accept the [mod policy](https://github.com/horizon-rust/horizon-mods/blob/main/MOD-POLICY.md): I am this
project's author or publisher and responsible for it; the Horizon project is not.
- [ ] The `source` link has the code this file was built from.
- [ ] I ran `cargo horizon-mod check <file>` and it passed.
The file goes in the `staging` release as `<sha256>.<extension>` (the form uploads it; by hand, ask a reviewer).
+89
View File
@@ -0,0 +1,89 @@
# A pull request's checks: what it changes compared with main, each new file's
# own check (its kind's, its signature, a trial run of a mod in the sandbox), and
# the index it would publish. Runs with a read-only token and no secrets; the tool
# comes from Horizon, never from the pull request, and a submission's code only
# runs inside Horizon's mod sandbox.
name: check
on:
pull_request:
branches: [main]
permissions:
contents: read
concurrency:
group: check-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
timeout-minutes: 30
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
HORIZON_REV: ${{ vars.HORIZON_REV || 'main' }}
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
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin
~/.cargo/horizon-rev
key: cargo-horizon-mod-${{ env.HORIZON_REV }}
# main's scripts, not the pull request's.
- run: base/scripts/install-tool.sh
- name: Who submitted it
id: author
env:
LOGIN: ${{ github.event.pull_request.user.login }}
BODY: ${{ github.event.pull_request.body }}
BOT: ${{ vars.REGISTRY_BOT || 'horizon-mods-bot' }}
run: |
# The submission form opens pull requests as the bot and names the
# GitHub account that signed in to it.
author="$LOGIN"
if [ "$LOGIN" = "$BOT" ] || [ "$LOGIN" = "${BOT}[bot]" ]; then
author="$(printf '%s' "$BODY" | sed -n 's/.*<!-- submitted-by: \([A-Za-z0-9-]*\) -->.*/\1/p' | head -1)"
fi
echo "login=${author:-$LOGIN}" >> "$GITHUB_OUTPUT"
- name: What it changes
run: |
set -o pipefail
{ echo "## Changes"; echo '```'; } >> "$GITHUB_STEP_SUMMARY"
status=0
cargo horizon-mod registry review base head --author "${{ steps.author.outputs.login }}" 2>&1 \
| tee -a "$GITHUB_STEP_SUMMARY" || status=1
echo '```' >> "$GITHUB_STEP_SUMMARY"
exit $status
# main's files, kept by publish: each download from a release counts as a
# player's.
- uses: actions/cache/restore@v4
with:
path: files
key: files-${{ hashFiles('head/mods/*.toml') }}
restore-keys: files-
- name: Download its files
run: base/scripts/fetch.sh head
- name: Check each new file
run: |
set -o pipefail
{ echo "## New files"; echo '```'; } >> "$GITHUB_STEP_SUMMARY"
status=0
cargo horizon-mod registry check base head --files files 2>&1 | tee -a "$GITHUB_STEP_SUMMARY" || status=1
echo '```' >> "$GITHUB_STEP_SUMMARY"
exit $status
- name: The index it would publish
run: |
cargo horizon-mod registry build head --files files --out index.json --generated "$(date -u +%FT%TZ)"
python3 - >> "$GITHUB_STEP_SUMMARY" <<'PY'
import json
index = json.load(open("index.json"))
print("## index.json")
for p in index["projects"]:
print(f"- {p['kind']} `{p['id']}` {p['versions'][0]['version']}")
PY
+43
View File
@@ -0,0 +1,43 @@
# The submission form uploads files to the `staging` prerelease as
# <sha256>.<extension>. Once a version is published in its own release, or when
# no open pull request lists a file any more, its staging copy goes:
# published ones after 7 days, abandoned ones after 30.
name: cleanup
on:
schedule:
- cron: "17 4 * * 1"
workflow_dispatch:
permissions:
contents: write
pull-requests: read
jobs:
cleanup:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
steps:
- uses: actions/checkout@v4
- name: Delete staging files nobody needs
run: |
set -euo pipefail
# Hashes main lists (published), and those open pull requests add.
grep -ho 'sha256 = "[0-9a-f]\{64\}"' mods/*.toml | cut -d'"' -f2 | sort -u > published.txt || true
: > pending.txt
for pr in $(gh pr list --state open --json number --jq '.[].number'); do
gh pr diff "$pr" | grep -o '^+sha256 = "[0-9a-f]\{64\}"' | cut -d'"' -f2 >> pending.txt || true
done
now=$(date +%s)
gh api --paginate "repos/$GH_REPO/releases/tags/staging" --jq '.assets[] | [.id, .name, .created_at] | @tsv' |
while IFS=$'\t' read -r id name created; do
sha="${name%%.*}"
age=$(( (now - $(date -d "$created" +%s)) / 86400 ))
grep -qx "$sha" pending.txt && continue
if grep -qx "$sha" published.txt; then
[ "$age" -ge 7 ] || continue
else
[ "$age" -ge 30 ] || continue
fi
echo "Deleting $name ($age days)"
gh api -X DELETE "repos/$GH_REPO/releases/assets/$id"
done
+119
View File
@@ -0,0 +1,119 @@
# Horizon's own native mods (native/<name>/): each changed folder's tests and .hnmod, and the game with it applied
# on the Horizon it was tested on; every mod together, as a player's set. Every Monday, all of them on the newest
# Nightly, to catch a change of the hook points early.
name: native
on:
pull_request:
branches: [main]
paths: ["native/**", ".github/workflows/native.yml"]
push:
branches: [main]
paths: ["native/**", ".github/workflows/native.yml"]
schedule:
- cron: "17 5 * * 1"
workflow_dispatch:
inputs:
horizon:
description: "Horizon commit, tag, or `latest` (the newest Nightly); empty: the mods' tested commit"
default: latest
permissions:
contents: read
concurrency:
group: native-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
# The Rust the launcher builds native mods with (launcher/src/rust_toolchain.rs).
RUST: "1.99.1"
jobs:
changes:
runs-on: ubuntu-latest
outputs:
mods: ${{ steps.mods.outputs.mods }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: mods
env:
BASE: ${{ github.event.pull_request.base.sha || github.event.before }}
EVENT: ${{ github.event_name }}
run: |
all=$(ls -d native/*/compatibility.json | cut -d/ -f2 | jq -R . | jq -sc .)
if [ "$EVENT" = schedule ] || [ "$EVENT" = workflow_dispatch ] || [ -z "$BASE" ] \
|| ! git cat-file -e "$BASE" 2>/dev/null; then
echo "mods=$all" >> "$GITHUB_OUTPUT"; exit 0
fi
changed=$(git diff --name-only "$BASE" HEAD)
# The shared tools or this workflow: every mod.
if grep -qE '^(native/tools/|\.github/workflows/native\.yml)' <<< "$changed"; then
echo "mods=$all" >> "$GITHUB_OUTPUT"; exit 0
fi
mods=$(grep -oE '^native/[^/]+/' <<< "$changed" | cut -d/ -f2 | sort -u \
| while read -r m; do [ -f "native/$m/compatibility.json" ] && echo "$m"; done | jq -R . | jq -sc .)
echo "mods=$mods" >> "$GITHUB_OUTPUT"
mod:
needs: changes
if: needs.changes.outputs.mods != '[]'
strategy:
fail-fast: false
matrix:
mod: ${{ fromJson(needs.changes.outputs.mods) }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: native/${{ matrix.mod }}
steps:
- uses: actions/checkout@v4
- run: rustup toolchain install $RUST --profile minimal --component rustfmt --component clippy && rustup default $RUST
- run: cargo fmt --check
- run: cargo clippy --all-targets --locked -- -D warnings
- run: cargo test --locked
- name: Package the .hnmod and check what it holds
working-directory: .
run: |
python3 native/tools/native.py package ${{ matrix.mod }}
python3 - <<'PY'
import json, zipfile, glob
path, = glob.glob("native/target/*.hnmod")
names = zipfile.ZipFile(path).namelist()
manifest = json.loads(zipfile.ZipFile(path).read("horizon-native.json"))
assert manifest["hooks"] >= 1, manifest
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
with:
name: hnmod-${{ matrix.mod }}
path: native/target/*.hnmod
horizon:
needs: changes
if: needs.changes.outputs.mods != '[]'
strategy:
fail-fast: false
matrix:
mod: ${{ fromJson(needs.changes.outputs.mods) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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
- name: Apply on Horizon and check the game
env:
GITHUB_TOKEN: ${{ github.token }}
HORIZON: ${{ github.event_name == 'schedule' && 'latest' || inputs.horizon || '' }}
run: python3 native/tools/native.py check ${{ matrix.mod }} ${HORIZON:+--horizon "$HORIZON"}
together:
needs: changes
if: needs.changes.outputs.mods != '[]'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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
- name: Every native mod applied together, on Horizon
env:
GITHUB_TOKEN: ${{ github.token }}
HORIZON: ${{ github.event_name == 'schedule' && 'latest' || inputs.horizon || '' }}
run: python3 native/tools/native.py check all ${HORIZON:+--horizon "$HORIZON"}
+89
View File
@@ -0,0 +1,89 @@
# 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
# 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.
name: publish
on:
push:
branches: [main]
schedule:
- cron: "23 * * * *"
workflow_dispatch:
permissions:
contents: write
pages: write
id-token: write
concurrency:
group: publish
cancel-in-progress: false
jobs:
publish:
runs-on: ubuntu-latest
timeout-minutes: 30
environment:
name: github-pages
url: ${{ steps.pages.outputs.page_url }}
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
HORIZON_REV: ${{ vars.HORIZON_REV || 'main' }}
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin
~/.cargo/horizon-rev
key: cargo-horizon-mod-${{ env.HORIZON_REV }}
- run: scripts/install-tool.sh
# Files kept from the last run: GitHub counts every download of a release
# asset, so fetching them all again each hour would count as players.
- uses: actions/cache@v4
with:
path: files
key: files-${{ hashFiles('mods/*.toml') }}
restore-keys: files-
- run: scripts/fetch.sh .
- name: Build the index
run: |
mkdir -p site
cargo horizon-mod registry build . --files files --out site/index.json --site https://horizon-rust.github.io/horizon-mods/ --generated "$(date -u +%FT%TZ)"
- name: Publish new files as releases
run: |
cargo horizon-mod registry list . | while read -r sha id version file; do
tag="$id-$version"
gh release view "$tag" >/dev/null 2>&1 && continue
dir="$(mktemp -d)"
cp "files/$sha" "$dir/$file"
gh release create "$tag" "$dir/$file" --title "$id $version" --latest=false \
--notes "Reviewed in the registry: mods/$id.toml. SHA-256 $sha."
done
- name: Download counts
run: |
# Each version's file is the asset at its URL: a project's downloads
# are its files' counts, every version together.
gh api --paginate "repos/$GH_REPO/releases?per_page=100" \
--jq '.[].assets[] | {key: .browser_download_url, value: .download_count}' \
| jq -s from_entries > counts.json
jq --slurpfile counts counts.json '
.projects |= map(
([.versions[].file.url | $counts[0][.] // 0] | add) as $n
| 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: The site
run: |
cp -R icons site/icons
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">
<p><a href="https://playhorizon.dev/mods">playhorizon.dev/mods</a> · <a href="index.json">index.json</a></p>
HTML
- uses: actions/configure-pages@v5
- uses: actions/upload-pages-artifact@v3
with:
path: site
- id: pages
uses: actions/deploy-pages@v4
+2
View File
@@ -1,3 +1,5 @@
/files/
/site/
/bootstrap/
/native/target/
/native/*/target/
+70
View File
@@ -0,0 +1,70 @@
# Mod policy
This registry lists mods, modpacks and packs for [Horizon](https://github.com/horizon-rust/horizon). This page says
who makes them, who is responsible for them, and how to have one removed. By submitting to the registry you accept it.
## Who makes the mods
- **Mods made by the Horizon project** are marked **Official**: their author is "Horizon" and their source is in a
[horizon-rust](https://github.com/horizon-rust) repository. They are the only mods the Horizon
project makes and is responsible for.
- **Every other mod is made, owned and maintained by its own authors**, named on its page. The Horizon project and
its maintainers are not their authors. They don't own these mods, sell them, or license them to you; each mod's
licence is the one its authors chose.
- **A listing is not an endorsement.** Reviewers check that an entry is complete, that its files match their pinned
hashes, that it builds or loads against the Horizon version it names, and that nothing obviously harmful is in it.
That review is not a legal review, a security audit or a guarantee. Mods are provided as they are, without
warranty, by their authors.
- **Native mods** (built into the game with [horizon-mixins](https://github.com/horizon-rust/horizon-mixins)) run
with the same access to your computer as the game. Install them only from authors you trust.
## What authors promise when they submit
Submitting a project, through the form or a pull request, means you confirm that:
1. You made it, or you have the right to publish it, under the licence its entry names.
2. **If it is a port or a translation of another mod** (for example from Java Edition), the original's licence allows
that, or its authors gave you permission. You keep the original's copyright and licence notices, and you credit
its authors and link the original on your page. A port of a mod whose licence reserves all rights needs its
authors' written permission.
3. It contains no code, assets or data from Minecraft, Mojang or Microsoft beyond what their
[usage guidelines](https://www.minecraft.net/usage-guidelines) and EULA allow. Horizon players bring their own
copy of the game.
4. It contains nothing that harms players: no malware, no stealing of accounts or data, no hidden network access.
5. The `source` link has the code the published files were built from.
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:
- [Open a takedown request](../../issues/new?template=takedown.yml) (public), or
- write privately to the maintainer through [lu4ovic.com](https://lu4ovic.com/#contact).
Say which project, which of your work it uses, and how to reach you. A claim that holds gets the project removed and
listed in [`revoked.toml`](revoked.toml): the registry stops listing it and the launcher stops offering it and turns
installed copies off. Clear claims are acted on quickly. The project's author is told, and can answer the claim in the
same issue.
Authors whose project was removed by mistake can ask for it back in that issue.
## Changes
This policy can change. The version in this repository's `main` branch is the one that applies.
+45 -9
View File
@@ -1,12 +1,25 @@
# Horizon mods
The registry of what is made for [Horizon](https://github.com/ludovic111/horizon): mods (`.hmod`), modpacks (`.hpack`)
The registry of what is made for [Horizon](https://github.com/horizon-rust/horizon): mods (`.hmod`), modpacks (`.hpack`)
and resource packs, each one reviewed before it is published. Browse them at
[playhorizon.dev/mods](https://playhorizon.dev/mods) or in the launcher (Mods, then Horizon beside Modrinth).
Players install from here through the launcher, which checks every file's SHA-256 and, when the author signs, its
signature before the game sees it. Mods run in Horizon's sandbox, with no file, network or clock access, and can only
do what their page lists.
signature before the game sees it. Sandboxed `.hmod` mods run in Horizon's sandbox,
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`
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), the licences
whose source reviewers can read, and how to have a project taken down.
## Submit
@@ -24,19 +37,21 @@ What the registry takes now: mods, modpacks of registry mods, and resource packs
shader pack format is out (Iris and OptiFine packs are on Modrinth). Before you submit a mod, run what the checks run:
```sh
cargo install --git https://github.com/ludovic111/horizon cargo-horizon-mod
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.
## Report
Something wrong with a project? [Report it](../../issues/new?template=report.yml). A project that does harm is taken
Something wrong with a project? [Report it](../../issues/new?template=report.yml). Your work published without your
permission? [Ask for a takedown](../../issues/new?template=takedown.yml) ([mod policy](MOD-POLICY.md)). A project that does harm is taken
down in [`revoked.toml`](revoked.toml): the launcher then refuses it and turns installed copies off, telling players
why.
@@ -50,11 +65,32 @@ 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.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`) |
| `scripts/` | What the workflows share |
The format of the entries and of `index.json` is
[docs/api/mod-index.md](https://github.com/ludovic111/horizon/blob/main/docs/api/mod-index.md) in Horizon's repository;
[docs/api/mod-index.md](https://github.com/horizon-rust/horizon/blob/main/docs/api/mod-index.md) in Horizon's repository;
the checks are `cargo horizon-mod check` and `cargo horizon-mod registry`, from Horizon at the commit in the
repository variable `HORIZON_REV` (else `main`).
The index: `https://ludovic111.github.io/horizon-mods/index.json`.
The index: `https://horizon-rust.github.io/horizon-mods/index.json`.
## Horizon's native mods
`native/<name>/` holds the source of Horizon's official mods, as
[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. `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
python3 native/tools/native.py check all # every native mod together
python3 native/tools/native.py package all # native/target/<id>-<version>.hnmod, for a registry entry
python3 native/tools/native.py proof zoom --resources /path/to/.local/horizon-client/26.3
```
To make your own, start from [horizon-native-mod-template](https://github.com/horizon-rust/horizon-native-mod-template).
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

+32
View File
@@ -0,0 +1,32 @@
id = "accurate_block_placement"
kind = "native-mod"
name = "Accurate Block Placement"
summary = "Hold right click with a block and every new spot you look at gets one, however fast you move."
description = """
Placing blocks fast is all about timing: vanilla places a block every four ticks while you hold right click, so moving fast skips spots and moving slowly stacks extra blocks. **Accurate Block Placement** times it for you: hold right click and every *new* spot you look at gets a block at once.
- **A new spot, a block**: bridging, building walls and floors, or sweeping along a row; no spot skipped, however fast you move.
- **No extra blocks**: staring at one spot places nothing more.
- **A single click stays a single block**: right after the click it waits as vanilla does, unless you turn the view.
- **Building backwards**: walking backwards while placing toward yourself places one block per step.
- Doors, chests, buttons and other blocks you click still work as usual.
**Settings** (Options > Mods > Accurate Block Placement): turn it on or off, bind a key to toggle it (unbound by default), and choose whether it works on servers.
Some servers see fast, accurate placing as a cheat: check their rules, or turn "Allowed on servers" off.
A port of [Accurate Block Placement: Reborn](https://modrinth.com/mod/accurate-block-placement-reborn) (MIT) by Clayborn, Flourick, schwar and KadTheHunter, rewritten in Rust for Horizon."""
authors = ["Lutziano888"]
owners = ["Lutziano888"]
owner_ids = [129792568]
license = "MIT"
source = "https://github.com/Lutziano888/horizon-accurate-block-placement"
icon = "https://raw.githubusercontent.com/Lutziano888/horizon-accurate-block-placement/main/icon.png"
[[versions]]
version = "1.0.0"
published = "2026-11-03"
game = "26.3"
file = "accurate_block_placement-1.0.0.hnmod"
sha256 = "e631745f6d267360de6eb51995ee995bf1ab3d64393d287b7b93c332b85939ce"
changelog = "First release."
+59
View File
@@ -0,0 +1,59 @@
id = "appleskin"
kind = "native-mod"
name = "AppleSkin"
summary = "Shows how much HP, hunger, and saturation will be restored."
description = """
AppleSkin for Horizon, a native mod.
Renders saturation, exhaustion, and held-food values over the hunger bar, as the original AppleSkin does.
Based on AppleSkin by squeek502. See the LICENSE in the source for the
original copyright and licence notices."""
authors = ["soufi"]
owners = ["soufied"]
owner_ids = [47915535]
license = "MIT"
source = "https://github.com/soufied/AppleSkin-Horizon"
icon = "https://raw.githubusercontent.com/soufied/AppleSkin-Horizon/refs/heads/main/icons/appleskin.png"
key = "RWT6eNq4e5WfVDA2lzOOi6XCm/+jJgilqT1+HUUM33ie5MCjcRfSg760"
[[versions]]
version = "0.1.2"
published = "2026-11-02"
game = "26.3"
file = "appleskin-0.1.2.hnmod"
sha256 = "627d1e7c4b4fa3dd191a4ff5887fe38b20ceb7d7d7f1197c1e03d1f25b6b6b92"
signature = """
untrusted comment: signature from minisign secret key
RUT6eNq4e5WfVJqiP4tt8vQGW6sVLSxiLXLeVunyGuyfS9aZWqPilg77biu/2B+HUDS1FlBE31F/HOhBR2YWy0GSmdwhUO7xNAs=
trusted comment: timestamp:1793633868\tfile:appleskin-0.1.2.hnmod\thashed
IW9M2qJIktmQDlARS6ZTJ1IA9BoGCfMZvatnjIlSpVPkpeG/Qpr5QKRRRPFhnZa93a5KcUG34ok+cgFxipRjBg=="""
changelog = "animation fix"
[[versions]]
version = "0.1.1"
published = "2026-10-31"
game = "26.3"
file = "appleskin-0.1.1.hnmod"
sha256 = "182117d2a9767bc22a7c6652efd24551990cea015193784f20aeb8a7ba35b4ac"
signature = """
untrusted comment: signature from minisign secret key
RUT6eNq4e5WfVPcAN+WeTYujFNeWw6oMKKV7nXxfIfyeqg83qrFNNA/LYfOrmxwV0DgO+tf5Sk5piJjS7hEtyKhl9rs0VpBOfgg=
trusted comment: timestamp:1793418678\tfile:appleskin-0.1.1.hnmod\thashed
gK9BQoCtM8sRPSvSiBzAT2IE8nZlCDfUa7tWCG7cG/v7H41E+4DnflE0KtAPdqi/9+MQT3ONmT4qbGFVio58BA=="""
changelog = """
dumped to 0.1.1
added icon"""
[[versions]]
version = "1.0.0"
published = "2026-10-30"
game = "26.3"
file = "appleskin-1.0.0.hnmod"
sha256 = "3c25b916f74f47faf40070a8654c546d15cb79ac3947f140e257f4cb041aeb96"
signature = """
untrusted comment: signature from minisign secret key
RUT6eNq4e5WfVEMHvcSGm73mmamWosNGGcdt7Qn05wqgRuAlDj/DyzH66lS2u8nvB43GnZJ7xCmgoM5xArHJuN9kD30iIKj0zws=
trusted comment: timestamp:1793368049\tfile:appleskin-1.0.0.hnmod\thashed
gjEf247x8XwHpOI2Ra3ngk6umC/mFZiHOCfZyzxg5IFJ7CNJVpofnw/l7ITtePPeyi4r3+0D6FvmmhtuiqVAAg=="""
changelog = "First release. AppleSkin for Horizon as a native mod: saturation, exhaustion and the food in your hand, drawn over the food bar."
+30
View File
@@ -0,0 +1,30 @@
id = "appleskin_horizon"
kind = "native-mod"
name = "AppleSkin"
summary = "1:1 Minecraft Java parity food value preview & saturation HUD overlay."
description = """
1:1 Minecraft Java parity port of AppleSkin for the native Horizon Rust client.
Features
Saturation Overlay: Golden border and glow around active saturation drumsticks matching original icons.png pixel art.
Food Value Preview: Pulsing preview drumsticks and preview saturation border when holding edible items.
Clean Integration: Easily toggled via Options > Mods > AppleSkin."""
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/appleskin"
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "appleskin_horizon-1.0.0.hnmod"
sha256 = "38a729f1aad00f6148f29578a2725cb5e7f9aea79a870fcf3cee76f39838c5ff"
signature = """
untrusted comment: signature from minisign secret key\r
RUS411U2KXdTNzxiQEELascXv6v/RXLycX9k/IkVf5ggI7lL2qjyDEVxdDl5nPxbdCJ3epwwHIE6D8ZHw6QGXCFQjRz3I6Z/UA0=\r
trusted comment: timestamp:1793440355\tfile:appleskin_horizon-1.0.0.hnmod\thashed\r
6kGj1vQ1DJypzS0iDdvwksQ2FFAB1jBcycZL83OgBgQgUzbQzKRhGtleKwqAuIrRLdpQO93ale4hSMAv1z/EDg=="""
changelog = "Initial release for Horizon 26.3."
+31
View File
@@ -0,0 +1,31 @@
id = "armor_status"
kind = "native-mod"
name = "Armor Status"
summary = "Displays equipped armor & held items with authentic Java durability colors."
description = """
A native ArmorStatusHUD mod for the Horizon Rust client.
Features
Displays all 4 armor slots plus main and off-hand items on the HUD.
Authentic Java durability color coding (Green > Yellow > Orange > Red).
Item count display for non-damageable held items (torches, food, blocks).
Default position: Bottom Right (freely customizable in Options > Mods)."""
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/armor-status"
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "armor_status-1.0.0.hnmod"
sha256 = "82c8672fa2c43d7946a26a560fd56fdd8f34beecf4bcb459c2d508b3d09eeee6"
signature = """
untrusted comment: signature from minisign secret key\r
RUS411U2KXdTN+dR+lW2uDL5+FJfKRnHJvelJnWmhWGQeS/p0lNFVDFfq3BjZ2LCuNEtza8cZvcuKuuYF5asmxsnbtB/MMykYQA=\r
trusted comment: timestamp:1793439927\tfile:armor_status-1.0.0.hnmod\thashed\r
LTwf1kuPLucJIBfHPdx1nsp0YuHSlxbFG6PYKG2HnMxMf4acAsZbWR0QdQnzkn+7Oc/T60iQPh3X14RBST3+Bg=="""
changelog = "Initial release for Horizon 26.3."
+25
View File
@@ -0,0 +1,25 @@
id = "armorhud"
kind = "native-mod"
name = "Armor HUD"
summary = "Armor HUD mod"
description = "A mod that adds 4 armor durability viewing slots to the hotbar."
authors = ["Thomas9950"]
owners = ["Thomas-Slot"]
owner_ids = [265566914]
license = "MIT"
source = "https://github.com/Thomas-Slot/horizon-armor-hud"
icon = "https://github.com/Thomas-Slot/horizon-armor-hud/blob/main/icon.png"
key = "RWQNLUB+Hf9pa54kEx/ItgJHmDivzpAZxK9lqvv9wnecj34yzNVQHQur"
[[versions]]
version = "1.0.0"
published = "2026-11-04"
game = "26.3"
file = "armorhud-1.0.0.hnmod"
sha256 = "8bd85e1584f307201bce5de2e60466d603b61d4807803d4ebc02772b4f6b704b"
signature = """
untrusted comment: signature from minisign secret key
RUQNLUB+Hf9pa0KnzbNFmdhyi6xpMr56two0l9g3QlnoBYyrHFtJt5luXXEl9FnJQpP6GH7Y9KDqYUSAac7QZEQDejqrM2gA7A4=
trusted comment: timestamp:1793750475\tfile:armorhud-1.0.0.hnmod\thashed
q840egwiCqF5Ptn8MCP/0VqaPUQQgaWzyXwhnFhD47GLeblsZWdvPyaTnEUbsGxHCgHGT5FFrqJ54Mu1OSz/DQ=="""
changelog = "First upload."
+33
View File
@@ -0,0 +1,33 @@
id = "astral_cruiser"
kind = "native-mod"
name = "Astral Cruiser"
summary = "A huge pilotable starship with a walkable interior, lasers, dash and live portals between dimensions."
description = """
A huge starship you fly yourself, with a large walkable interior that moves with it.
- **Flight:** WASD with the ship following your view, and F5 views including the ship's own.
- **Weapons:** turrets, nose guns and two beams.
- **Travel:** coordinate dash and jump. Long dashes show only a small strip of far terrain around the ship.
- **Portals:** a portal shows the real destination dimension live, and you cross it aboard or on foot.
- **Start:** `/astral spawn`, then `/astral board`. N opens the control panel; keys are in Options > Mods > Settings.
**What it does as a native mod.** It is compiled into the game with no sandbox. It changes the game's rendering, ticking and chunk loading for the ship and portals, and registers a thread-exit callback in builds made with MinGW so the allocator frees finished threads' memory.
**What it does not do.** It adds no network access of its own beyond the game's own, and it reads no accounts or files outside the game's data. It keeps the ship in the world's own folder (`astral_cruiser/ship.json`). It holds no Minecraft code or assets.
Weapons hurt the mobs they hit. With blasting turned on in the control panel (off by default), the nose guns and beams also blow up the blocks they hit. Portals can hang in the air, so a player on foot falls if there is no ground at the exit, including into the End's void.
Built for this Horizon commit only: `68ac6f647e7022b2c696e81863d7cface28c9416`."""
authors = ["repositorykreml1n"]
owners = ["repositorykreml1n"]
owner_ids = [271232376]
license = "MIT"
source = "https://github.com/repositorykreml1n/astral-cruiser"
[[versions]]
version = "0.1.0"
published = "2026-11-01"
game = "26.3"
file = "astral_cruiser-0.1.0.hnmod"
sha256 = "69100219f92307f9190712da2854bfd43f15cf81773d89d89d6dd22411caa2f2"
changelog = "First release, built for Horizon 68ac6f6."
+79
View File
@@ -0,0 +1,79 @@
id = "basic_hud"
kind = "native-mod"
name = "The Basic HUD"
summary = "A visual HUD editor with 14 customizable widgets, recent pickups, effect timers, durability, coordinates, FPS and a customizable Tab list."
description = """
A client-side visual HUD for Horizon. Move, resize and style fourteen independent widgets directly over the game.
Includes effects and timers, consumable counts, durability, observed totem uses, available player health, item cooldowns, coordinates, FPS, ping, speed, CPS, world clock, mini armour and recent item pickups.
Recent pickups aggregates matching items and refreshes their expiry: 4 torches + 2 torches becomes x6. Five seconds by default, adjustable from 1 to 60 seconds. Includes icon + count mode.
Customize each widget's position, scale, colours, opacity, padding and shadows. Includes a customizable Tab list and ten interface languages. A short tutorial appears on the first settings visit and can be replayed with ?. Reset requires confirmation; leaving with edits offers Save / Discard / Stay.
Controls: Right Shift, or Options > Mods > The Basic HUD > Settings > Edit HUD.
Install the .hnmod through Horizon and choose Performance. Minecraft 26.3; pinned Horizon 68ac6f647e7022b2c696e81863d7cface28c9416. Compatibility with other Nightlies is not claimed.
Client-side only: unknown health stays unknown, unobserved totem uses cannot be counted, and server-plugin-only cooldowns are unavailable. No FPS improvement is claimed.
Release notes and verification: https://github.com/repositorykreml1n/the-basic-hud/releases/tag/v0.5.0"""
authors = ["repositorykreml1n"]
owners = ["repositorykreml1n"]
owner_ids = [271232376]
license = "MIT"
source = "https://github.com/repositorykreml1n/the-basic-hud"
icon = "https://raw.githubusercontent.com/repositorykreml1n/the-basic-hud/v0.5.0/icon.png"
[[versions]]
version = "0.5.0"
published = "2026-11-04"
game = "26.3"
file = "basic_hud-0.5.0.hnmod"
sha256 = "97011cc7374354c6293678c7ab593240d0512bffde1d7b642dad521e1df3f8ac"
changelog = """
## 0.5.0 — Recent pickups
- New movable widget for recently collected items: pick up 4 torches, then 2 more before expiry, and it shows x6. Each repeat pickup refreshes that item's timer.
- Default display time: 5 seconds; adjustable from 1 to 60 seconds.
- Supports icon + count mode, dragging, scale, colours and opacity.
- Partial pickups count only the amount that fits. Giving, crafting and inventory rearrangement do not by themselves create entries.
- New pixel-art totem icon; new labels translated into all ten interface languages. Existing layouts and settings are preserved.
Verified: 75 strict Rust test executions, warning-free pinned native build, real in-game aggregation/expiry/partial-pickup checks, editor persistence and ordinary startup without a controller.
Русский: добавлен блок недавнего подбора с суммированием количества, обновлением таймера и настройкой 1–60 секунд (по умолчанию 5). Новая иконка — тотем.
Deutsch: Neues Widget für aufgehobene Gegenstände mit addierten Mengen und einstellbarer Dauer von 1–60 Sekunden.
Français : nouveau widget des objets ramassés, quantités cumulées et durée réglable de 1 à 60 secondes.
Español: nuevo widget de objetos recogidos, cantidades acumuladas y duración ajustable de 1 a 60 segundos."""
[[versions]]
version = "0.4.1"
published = "2026-11-03"
game = "26.3"
file = "basic_hud-0.4.1.hnmod"
sha256 = "36431d3a2d810e2aefbd8611767a80f9184e3df032e4cc2b9b9fd9398f794560"
changelog = """
Major update from 0.1.0 to 0.4.1.
- Visual in-game editor: drag, individual scale, colours, opacity, shadows, padding and snap.
- 13 widgets, including FPS, coordinates, available player health and actual item cooldowns.
- Icons + values: ×16, 1:45 and durability without long labels.
- Mini armour beside the hotbar, including elytra.
- Custom Tab list: numeric ping, bars, player counts, sorting and scale.
- Smoothed optional speed; single-player ping labelled Local.
- Ten UI languages plus Auto; first-visit tutorial, replay through ?.
- Reset confirmation; Save / Discard changes / Stay on leaving with edits; failed-save recovery.
Pinned to Minecraft 26.3 / Horizon 68ac6f6. Use the Performance build profile on Windows; Dev can overflow the startup stack on this baseline. No compatibility with other Nightlies or FPS gain is claimed.
Validated: 67 Rust test executions, native build, isolated gameplay/editor tests, restart persistence and ordinary asynchronous startup.
Full notes (English + Russian, Ukrainian, German, French and Spanish summaries): https://github.com/repositorykreml1n/the-basic-hud/blob/main/CHANGELOG.md"""
[[versions]]
version = "0.1.0"
published = "2026-11-01"
game = "26.3"
file = "basic_hud-0.1.0.hnmod"
sha256 = "fe2c5d9da681b4f575bff867df70d6e2f61614b0215a206fb7a0c3b0027db994"
changelog = "First release."
+28
View File
@@ -0,0 +1,28 @@
id = "biomecompass"
kind = "native-mod"
name = "BiomeCompass"
summary = "Craft a Biome Compass, pick a biome and its needle points to the nearest one."
description = """
**A native Horizon mod**: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's rights, so read the source before you build it. Pinned to Horizon 142388e and horizon-mixins 0d6b103.
Craft a **Biome Compass** (a compass with a sapling on each of its four sides, any kinds), right-click it and pick a biome from the list (with a search box). The world generator is searched around you, a little every tick, and the compass's needle then points to the nearest one, with its distance and direction on the action bar.
- Works in single player, on LAN and on a server running the native build, for vanilla clients too (the picker is a vanilla dialog).
- `/biomecompass find|list|status|stop|tp` as well; a small HUD box is optional.
- Settings: search radius, sample spacing, per-tick budget, HUD.
Inspired by [Nature's Compass](https://modrinth.com/mod/natures-compass); not affiliated, no code from it."""
authors = ["d3grando"]
owners = ["d3grando"]
owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/biomecompass"
icon = "icons/biomecompass.png"
[[versions]]
version = "0.2.2"
published = "2026-10-29"
game = "26.3"
file = "biomecompass-0.2.2.hnmod"
sha256 = "d9a4aedcf22318774e1ac6bed6f1e00aca13a38c8dc3426d5a7800e4d8c61bf5"
changelog = "First release."
+43
View File
@@ -0,0 +1,43 @@
id = "blockscope"
kind = "native-mod"
name = "Blockscope"
summary = "The block under your crosshair: its name, id, distance and icon, plus hardness, states and a container's slots."
description = "A Jade-style tooltip for Horizon: the block under your crosshair with its name in your language, block id, distance and icon, plus its hardness and the tool it wants, its state properties, a crop's growth and, for a container, its slots. Ten switches on its own settings page."
authors = ["Domanffe"]
owners = ["Domanffe"]
owner_ids = [94391234]
license = "MIT"
source = "https://github.com/Domanffe/blockscope"
icon = "https://horizon-rust.github.io/horizon-mods/icons/blockscope.png"
[[versions]]
version = "0.3.1"
published = "2026-11-02"
game = "26.3"
file = "blockscope-0.3.1.hnmod"
sha256 = "4fea94e5337aa82df3d981fc6231fecc80161262add577b596bb6661e0e303d1"
changelog = "Rebuilt on the 2026-11-01 Nightly (Horizon `4aa6854`). All five hook points are named now — `mods`, `settings`, `settings_click`, `hud`, `tick` — so the bundle still applies when the game moves them."
[[versions]]
version = "0.3.0"
published = "2026-10-30"
game = "26.3"
file = "blockscope-0.3.0.hnmod"
sha256 = "ba4a1c887ab26a2a9189c671cbdbea3ce2ed212a6e3d32f1fffaa60386198358"
changelog = "Native: the WebAssembly mod rewritten as a mixin bundle for the launcher's native mods, with hardness and the tool's icon, block states, crop growth, a container's slots and a creature's health, each on its own switch. Its settings carry over from 0.2.0."
[[versions]]
version = "0.2.0"
published = "2026-10-29"
game = "26.3"
file = "blockscope-0.2.0.hmod"
sha256 = "dcb8a3d3eefe37ebc7fd1886412dc9799c5fa4dee88fd419e7f46a712df00c12"
changelog = "Reach, placement, background, coordinates and the item icon on its own settings page (Options > Mods > Blockscope), kept between games."
[[versions]]
version = "0.1.0"
published = "2026-10-27"
game = "26.3"
file = "blockscope-0.1.0.hmod"
sha256 = "8c9de32150bc845c6e1d1d28a28d6f1746cea8c124aa7e683acdd597c1b49325"
changelog = "First release: the block under the crosshair, its name, id and distance, in a box beside the crosshair."
+29
View File
@@ -0,0 +1,29 @@
id = "carryblock"
kind = "native-mod"
name = "Carry Block"
summary = "Sneak and right-click with an empty hand to pick up a chest (with its items) or a small mob, carry it and put it down."
description = """
**A native Horizon mod**: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's rights, so read the source before you build it. Pinned to Horizon 142388e and horizon-mixins 0d6b103.
Sneak and right-click with an empty hand to pick up a block with its contents (chests, furnaces, barrels...) or a small, friendly mob, and carry it; right-click to put it down where you want, with everything it held.
- Slowness while carrying; a small HUD box shows the load.
- Never an item: nothing to duplicate. On death the load is put down nearby, or dropped as its item with its contents.
- Follows the game's rules: spawn protection, world border, reach, adventure mode, game master blocks; no pick-up of a container someone has open, a mob being traded with, a monster, a boss or another player's pet. Spawners and similar are denied by default.
- Deny lists, survival/creative rules and slowness are settings (Options → Mods → Carry Block).
Inspired by [Carry On](https://modrinth.com/mod/carry-on); not affiliated, no code from it."""
authors = ["d3grando"]
owners = ["d3grando"]
owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/carryblock"
icon = "icons/carryblock.png"
[[versions]]
version = "0.1.2"
published = "2026-10-29"
game = "26.3"
file = "carryblock-0.1.2.hnmod"
sha256 = "9a6ebd26f640a477815862eb36846fe3289046d0f4c06ef3a815f463ca9a3701"
changelog = "First release."
+30
View File
@@ -0,0 +1,30 @@
id = "chat_animation"
kind = "native-mod"
name = "ChatAnimationHorizon"
summary = "ChatAnimation for Horizon"
description = """
By tariksabanuz
ChatAnimationHorizon brings smooth chat animations to Horizon, recreating Ezzenix's Chat Animation mod. New chat messages slide and fade in instead of popping onto the screen.
Features
- Messages animate in smoothly when they arrive
- Works with the game's normal chat, no setup needed
Notes
- Native Horizon mod, built from source by the launcher.
- Based on Ezzenix's Chat Animation (MIT licensed), recreated for Horizon.
Source code: https://github.com/tariksabanuz/ChatAnimationHorizon"""
authors = ["tariksabanuz"]
owners = ["tariksabanuz"]
license = "MIT"
source = "https://github.com/tariksabanuz/ChatAnimationHorizon"
icon = "https://raw.githubusercontent.com/tariksabanuz/ChatAnimationHorizon/3794c3c1ede07a1c7ebb80856b246a1ad4339101/icon.png"
[[versions]]
version = "0.1.0"
published = "2026-11-04"
game = "26.3"
file = "chat_animation-0.1.0.hnmod"
sha256 = "aee273e2861a185ed2667679c0f943dcc73693b46eded6c078cde8bdf13ee49a"
+27
View File
@@ -0,0 +1,27 @@
id = "chatheads"
kind = "native-mod"
name = "ChatHeads"
summary = "A player's head left of every chat line they wrote."
description = "Each chat line from a player gets their 8x8 skin face in the strip to its left; lines without a player stay as they are, and the face fades with its line. The switch lives in Options > Mods."
authors = ["Domanffe"]
owners = ["Domanffe"]
owner_ids = [94391234]
license = "MIT"
source = "https://github.com/Domanffe/chatheads"
icon = "https://horizon-rust.github.io/horizon-mods/icons/chatheads.png"
[[versions]]
version = "0.1.1"
published = "2026-11-02"
game = "26.3"
file = "chatheads-0.1.1.hnmod"
sha256 = "16f5e1db33255c550c087fcf3ed982a4be9abf61b547b470a08f471d309ad1fe"
changelog = "Rebuilt on the 2026-11-01 Nightly (Horizon `4aa6854`). The three hook points it shares — `mods`, `settings`, `settings_click` — are named now instead of pinned to raw source targets, so a Horizon update that moves them no longer breaks the bundle."
[[versions]]
version = "0.1.0"
published = "2026-10-30"
game = "26.3"
file = "chatheads-0.1.0.hnmod"
sha256 = "c20605c24e29a762b9aea85cba1b0cc7955955a40a031efae70a5b01e4e79df4"
changelog = "First release: a native mod for Horizon 26.3. Every chat line from a player gets their 8x8 skin face in the strip to its left; system lines, /me and wrapped continuations get none. Settings in Options > Mods."
+42
View File
@@ -0,0 +1,42 @@
id = "chop"
kind = "native-mod"
name = "Chop!"
summary = "Cut one log and the whole tree tips over, crashes down and breaks apart, with soft vanilla sounds and particles."
description = """
Cut one log with an axe: the whole tree tips over like a real falling tree, crashes to the ground, and breaks apart from the base to the top in little pops. Everything is made of vanilla sounds and particles: no resource pack.
- **The log shakes while you cut it**, then pops when it gives way.
- **A physical fall**: the trunk drops onto the stump, creaks, tips over with gravity and stops where it meets the ground. Leaves in the way are crushed.
- **Falls in front of you**, within an adjustable angle, toward the clearest side.
- **A cute break-up** from the base to the top, with clouds, sparkles and hearts.
- **Replants a sapling** of the tree's kind (from its loot, or always).
- **Chain reactions**: a falling trunk can knock over the next tree.
- **Adjustable damage**: hurts monsters by default; animals, allies and players are spared unless you turn them on.
- Vanilla loot (Fortune, Silk Touch), honest axe wear, fall preview, shaking trees with an empty hand, giant mushrooms and Nether fungi, angry bees, birds, apples, biome-tinted leaves, optional loot into your inventory.
- **Everything is configurable in game**, with commands or by clicking in the chat: `/chop config` (operators), `/chop perso` (each player's sounds, particles and preview), `/chop stats`, `/chop aide`. The menus are in French.
**What it does and doesn't do.** It runs server-side, where the world runs: players who join install nothing. No network access, no telemetry, never runs a program. It reads and writes one file, `<world>/data/chop.txt` (settings, stats, player-placed logs). It only touches trees, the sapling it replants, its own `block_display` entities and what a falling tree hits. Besides the game's functions, it runs a few vanilla commands as the server: `kill` on its own tagged displays, `item modify` for the axe's wear, `damage` on a player the tree hits (off by default), and `summon item` / `setblock … keep` for loot and replanting when the tree is in another dimension.
Native source mod: install it on the launcher's Mods page, press Build there, and confirm the native-code warning. The launcher builds a separate game with it, and it runs with your account's permissions. Each version is pinned to one Horizon Nightly and Horizon Mixins revision, named in its changelog; the launcher builds those exact revisions.
Original mod by Mayonesu0. All rights reserved, except the grants in its [LICENSE](https://github.com/Mayonesu0/chop/blob/main/LICENSE): players may use it unchanged, Horizon's registry may distribute it, and Horizon's reviewers may read it to review it."""
authors = ["Mayonesu0", "Claude"]
owners = ["Mayonesu0"]
owner_ids = [350298764]
license = "LicenseRef-Chop-1.0"
source = "https://github.com/Mayonesu0/chop"
icon = "https://raw.githubusercontent.com/Mayonesu0/chop/main/registry/icon.png"
key = "RWSwx1v4zUCUjQ8rssfZCXvXkvgVc9TbA60RJyCtVCeMx4lSTanIleIs"
[[versions]]
version = "1.0.1"
published = "2026-11-03"
game = "26.3"
file = "chop-1.0.1.hnmod"
sha256 = "5abac195c54da7716f35f641489c0dba780444c91b0b3e4f3387ecd4cb2b260b"
signature = """
untrusted comment: signature from minisign secret key\r
RUSwx1v4zUCUjfR+WYS97be0UecaBcKGyNXNsCQAPVG0j2U2yeMfnNPkWMEU9CMOobMI6nKaPj/Kqv0EPAuw2xiPnRaduNgI8wA=\r
trusted comment: timestamp:1793711491\tfile:chop-1.0.1.hnmod\thashed\r
eOi2t+LMQ4LOM/nsJqmpvAraWsLcgdRZA4OJotjBkgxcANkG3MeZ9tbAKbEaidIy1kBSZyc4Dri+3MtOsd+xBA=="""
changelog = "First release (1.0.0 was never published: its package carried a LICENSE file the registry's checker refuses; the code is the same). Pinned to Horizon Nightly 2026-11-01 (c9d474d) and Horizon Mixins ddd9700; the launcher builds those exact revisions."
+78
View File
@@ -0,0 +1,78 @@
id = "classic_zoom"
kind = "native-mod"
name = "Classic Zoom"
summary = "Hold V to zoom 3x, scroll for more, release to snap back. Instant, no settings, inspired by WI Zoom."
description = """
## Controls
| Action | Result |
|---|---|
| Hold **V** | Zoom in 3x |
| Scroll while holding V | Zoom from 1x to 10x, x1.1 per wheel step |
| Release V | Back to normal view at once |
While V is held, the mouse wheel zooms instead of switching hotbar slots, and turning slows down in step with the zoom so aiming stays steady. Rebind the key on the mod's page in Options > Mods.
## How it differs from Horizon's own Zoom
| | Horizon Zoom | Classic Zoom |
|---|---|---|
| Default key | Z | V |
| Starting zoom | 4x (configurable) | 3x |
| Range | 1.25x to 10x | 1x to 10x |
| Wheel step | x1.25 | x1.1, finer |
| Transition | Smooth by default | Instant |
| Settings page | Yes | None |
Both can be installed at once: they use different keys.
## Notes
- Horizon caps zoom at 10x, so there is no 50x as in WI Zoom.
- Written from scratch for Horizon's mod API. Not affiliated with Wurst-Imperium.
- Some servers forbid zoom mods: check the rules before you join.
**Now a native mod (2.0.0)**: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's permissions, so read the source before you build it: it is one small bundle on Horizon's native hook points (key, wheel, zoom, mods list). Tested against Horizon `6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a` with Horizon Mixins `0d6b103c70633d8fd9443d8d0acd3aadaacedb06`. A key set in 1.0.0 carries over.
Source and issues: [github.com/SU4G3/classic-zoom](https://github.com/SU4G3/classic-zoom)"""
authors = ["Surge"]
owners = ["SU4G3"]
owner_ids = [92383635]
license = "GPL-3.0-or-later"
source = "https://github.com/SU4G3/classic-zoom"
icon = "icons/classic_zoom.png"
key = "RWTOxMcIG6MtC0QQnhWEMC+nLKJ6+u4trV/rF+4juSRuow8W4b5P+CPS"
[[versions]]
version = "2.0.0"
published = "2026-10-29"
game = "26.3"
file = "classic_zoom-2.0.0.hnmod"
sha256 = "a8bdeba615ed31b9bd10280fcf8ba04a31935bc65fff429fc0e83d1c8090dac9"
signature = """
untrusted comment: signature from minisign secret key
RUTOxMcIG6MtCyXVhFrgrbWwg3pEBeR8iQ6g3w8MlWbzunH02kAF3swud3hq59EQvuoNpQxj7eTNRy6IJ4l+++7H1EazgGLV3AY=
trusted comment: timestamp:1793286240\tfile:classic_zoom-2.0.0.hnmod\thashed
bbYFmm0wap7Mgnt+wxSMkC/FqklbuAZage02x4Kt5Mi2mzknFbhWij/6sOx5ojRAquDT1XLRpRd2UrrAy4x4Bg=="""
changelog = "Now a native mod (WebAssembly code mods are going away). Same zoom: V by default, 3x, x1.1 per wheel step within 1x-10x, instant, slower turning while zoomed; a key set in 1.0.0 carries over. Pinned to Horizon 6f8c7a0 and Horizon Mixins 0d6b103."
[[versions]]
version = "1.0.0"
published = "2026-10-29"
game = "26.3"
file = "classic_zoom-1.0.0.hmod"
sha256 = "d8bc299202d9760299a3901841adef950d46cfcc1a54e0729379d24885e9ca5d"
signature = """
untrusted comment: signature from minisign secret key
RUTOxMcIG6MtC63o8q5cdLDamPDTVjscmZ1LMdBd8xhKmsCNy6c77sBps3h65Z2/AO+apNyH6zkbnViYtwI3eAQjgrhJvR88cQs=
trusted comment: timestamp:1793265658\tfile:classic_zoom-1.0.0.hmod\thashed
QLysIbvTRiUzChl9NiUchhmO1Nn4nh4HLkJwtseTccYm3YsKz4nVieLsC6tIY6xItPGDT/43EWu89GhlnO60DA=="""
changelog = """
Initial release.
- Hold V to zoom in 3x; release to snap back to normal view.
- Scroll while holding V to zoom from 1x to 10x (x1.1 per wheel step); the hotbar doesn't move while zooming.
- Instant zoom with no transition, in the style of WI Zoom.
- Mouse turning slows down in step with the zoom for steady aiming.
- Key rebindable on the mod's page in Options > Mods.
- Permissions: render (camera zoom) and input (the zoom key and mouse wheel) only."""
+40
View File
@@ -0,0 +1,40 @@
id = "compass_bar"
kind = "mod"
name = "Compass Enhanced"
summary = "A compass bar with degrees and colored directions, plus death points that guide you back."
description = """
A compass bar at the top of your screen that shows where you are facing, in degrees, and slides smoothly as you turn.
## Features
- Compass letters (N, NE, E, SE, S, SW, W, NW) in a color you choose
- Death points: every time you die, a marker stays on the bar with the distance to where you died
- Reaching a death point turns it into an X with a countdown, or look at it and press X to dismiss it
- Arrows with the distance at the edge of the bar for death points out of view
- Optional background box and four sizes (75% to 150%)
- No commands
Settings are in Options → Mods → Compass Bar. Death points are not saved: they vanish when you close the game."""
authors = ["Isaac"]
owners = ["Fernandes585"]
owner_ids = [344517364]
license = "MIT"
source = "https://github.com/Fernandes585/Compass-Enhanced"
key = "RWScU5xtTnTnu55tXSTPbhM2BQ6KG2FLeMD9aTeX111NlQPh7cCafm1w"
[[versions]]
version = "0.1.0"
published = "2026-10-28"
game = "26.3"
file = "compass_bar-0.1.0.hmod"
sha256 = "bb8f191f89f5ea963301fd2d28315b251dfb8df9656b640975eddffaec3e6b00"
signature = """
untrusted comment: signature from minisign secret key\r
RUScU5xtTnTnuz0T7EECJHdaPC5PHAOud+04Uwen4mw75K38TKOCnK9eCKn44pX113qFMvkrP+P4CwF9FJBFX5qws5BedBPbpA0=\r
trusted comment: timestamp:1793221575\tfile:target/horizon-mod/compass_bar.hmod\thashed\r
DedLxzyaxaXaNO8y8pICM4Th3nL0N4oxamDGm0eoQb+6UDBj6pLXbtQLxqnMrbDQYmCE2gX6PGS86G1C33GGDg=="""
changelog = """
First release.
- Compass bar with degrees and compass letters (N, NE, E, SE, S, SW, W, NW)
- Death points with distance, arrival countdown and a key to dismiss them (X by default)
- Settings: bar on/off, background, scale, letter color, arrival distance, X time and death points kept"""
+32
View File
@@ -0,0 +1,32 @@
id = "connected_textures"
kind = "native-mod"
name = "ContinuityHorizon"
summary = "Continuity for Horizon"
description = """
By tariksabanuz
ContinuityHorizon brings Continuity-style connected textures to Horizon. Neighbouring blocks of the same kind join up into one seamless surface instead of showing a border on every block.
What it connects
- Glass and glass panes
- Bookshelves
- Sandstone
Notes
- Works with the game's own textures; no resource pack needed.
- Native Horizon mod, built from source by the launcher.
- Inspired by Continuity (MIT licensed), recreated for Horizon.
Source code: https://github.com/tariksabanuz/ContinuityHorizon"""
authors = ["tariksabanuz"]
owners = ["tariksabanuz"]
license = "MIT"
source = "https://github.com/tariksabanuz/ContinuityHorizon"
icon = "https://raw.githubusercontent.com/tariksabanuz/ContinuityHorizon/cd5301759efef6b1819ed7a8590a0d76e15d6d7e/icon.png"
[[versions]]
version = "0.1.2"
published = "2026-11-04"
game = "26.3"
file = "connected_textures-0.1.2.hnmod"
sha256 = "e86d1d3fd92045737b90218de51c158b60519afc6618c063c87f64ca68d36adf"
+40
View File
@@ -0,0 +1,40 @@
id = "coords_hud"
kind = "native-mod"
name = "Coordinates HUD"
summary = "Your coordinates and facing in a corner of the screen."
description = """
Your block position and the direction you face in the top-left corner of the screen.
- `/where` puts your coordinates and dimension in chat.
- `/coords` hides or shows the box, and the game keeps your choice (also Options > Mods > Coordinates HUD > Settings).
It reads the player's position, draws on the HUD and writes to chat: nothing else.
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
(install it on the launcher's Mods page, then press Build there). The time of
day line is gone, since Horizon's hook points don't give the game's clock yet. Turn it off in Options > Mods: it
rests at once, and the next build leaves it out. Its source is
[horizon-mods/native/coords-hud](https://github.com/horizon-rust/horizon-mods/tree/main/native/coords-hud).
"""
authors = ["Horizon"]
owners = ["ludovic111"]
owner_ids = [136255825]
license = "MIT"
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/coords-hud"
icon = "icons/coords_hud.png"
[[versions]]
version = "2.0.0"
published = "2026-10-29"
game = "26.3"
file = "coords_hud-2.0.0.hnmod"
sha256 = "432376fad3062b3517e274d3b8c0d0b52fc5d6de2aee20a0b340c8cab5a8cf08"
changelog = "Native: built into the game by the launcher on Horizon's native hook points; /coords is kept; turn it off in Options > Mods. The time of day line is gone for now."
[[versions]]
version = "0.1.0"
published = "2026-10-24"
game = "26.3"
file = "coords_hud-0.1.0.hmod"
sha256 = "612335e4e00d638f8b97b6c2f5c718c069c7a13811ba922557c27cb2612daf59"
changelog = "First release: the panel, `/where` and `/coords`."
+34
View File
@@ -0,0 +1,34 @@
id = "create"
kind = "native-mod"
name = "Create for Horizon"
summary = "Build rotating machines and small factories in Horizon with gears, belts, presses and fans."
description = """
An experimental Rust port of [Create](https://github.com/Creators-of-Create/Create).
- Drive machines with water wheels, hand cranks or a Creative Motor.
- Route power through shafts, gears, gearboxes, clutches and encased chain drives.
- Move items on basic belts and depots. Press sheets, mill ingredients, mix in a Basin or process items with a fan.
Install it as a native mod in Horizon Launcher and build the instance. It uses simple built-in models and standard Minecraft textures out of the box.
**The original models and textures require the original Create 6.0.10 JAR for Minecraft 1.21.1 (NeoForge).** Place one copy in the instance's `horizon-mods/create-resources/` folder and restart Horizon. The JAR is optional and resources are imported locally. [Supported JAR](https://modrinth.com/mod/create/version/UjX6dr61)
Moving contraptions, trains and Ponder are planned. [Setup and compatibility](https://github.com/Delete228/create-horizon)"""
authors = ["Delete228"]
owners = ["Delete228"]
owner_ids = [31237303]
license = "MIT"
source = "https://github.com/Delete228/create-horizon/commit/236c87a889cd76f7e663d1d182c28dc1145f7b14"
[[versions]]
version = "0.7.0-alpha.2"
published = "2026-11-05"
game = "26.3"
file = "create-0.7.0-alpha.2.hnmod"
sha256 = "13638c5571ef7ac32be5bb19ddac90959796d6c102122de09f6a81d39be74d97"
changelog = """
First experimental registry submission for Minecraft 26.3. This build includes kinetic transmission, basic belts, depots, pressing, milling, Basin recipes, fans and stationary drilling. Built-in models use standard Minecraft textures. The optional original JAR is supplied by the player.
Horizon is pinned to `9c7f9b2215dfed497aba5522c44f38926628648d` and Horizon Mixins to `e8cd0aa38cffef49cb2e088ef716baa107148c02`. The macOS ARM64 Launcher 0.2.42 Performance build completed after restoring a truncated source download. The player verified the built-in appearance and the original resources in that profile.
Archive SHA-256: `13638c5571ef7ac32be5bb19ddac90959796d6c102122de09f6a81d39be74d97`. [Validation](https://github.com/Delete228/create-horizon/blob/236c87a889cd76f7e663d1d182c28dc1145f7b14/VALIDATION.md#optional-resources-in-070-alpha2)"""
+34
View File
@@ -0,0 +1,34 @@
id = "crosshair_indicator"
kind = "native-mod"
name = "Crosshair Indicator"
summary = "Dynamic target reach awareness: visual feedback on your crosshair when hovering over an entity in attack range."
description = """
Crosshair Indicator
A native Horizon mod by CayMac that ports the popular Java Crosshair Indicator mod into Horizon:
Dynamic Target Reach Awareness: Real-time visual feedback directly on your crosshair when hovering over an entity in attack reach (<= 3.0 blocks).
Iconic PvP Target Reticle: Default crisp white corner brackets [ + ] hugging the crosshair, matching classic competitive PvP clients.
Multiple Styles: Choose between Brackets [ + ], Center Dot, Diamond, and Tactical Chevron.
Custom Color Themes: Classic White (Default), Dynamic (Green/Orange cooldown awareness), Combat Red, Pink Aesthetic, Diamond Cyan, and Gold.
Cooldown Bar: Optional subtle weapon cooldown progress indicator below the crosshair.
Configurable: Easily customize styles, themes, and keybinds in Options > Mods > Crosshair Indicator."""
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/crosshair-indicator"
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "crosshair_indicator-1.0.0.hnmod"
sha256 = "96beba1f7c94fca492b552fb12af0d20047dc1799f0801607841d56b12786226"
signature = """
untrusted comment: signature from minisign secret key\r
RUS411U2KXdTNz67XDjUwaJ8if7+jDk+qXnJLdhtyjh8mk04UuZ2bme/Tzcpi1Od4ppYmvqzfZ+rEAeG2hb9Lytn+J2nFy1u8gc=\r
trusted comment: timestamp:1793461576\tfile:crosshair_indicator-1.0.0.hnmod\thashed\r
zF7EJHDjJPwVG+cYcSgvGJv4kjjYRMdMZipUQyABH0DEMIZ2Fe13hb2nbYYRZlNDG1j4kjhgEYQTODFiAlaCBQ=="""
changelog = "Initial release for 26.3 Horizon."
+42
View File
@@ -0,0 +1,42 @@
id = "crossversion"
kind = "native-mod"
name = "Cross Version"
summary = "Allows version hopping offline."
description = """
Hop versions, offline.
Uses ViaProxy as an inbetween for now."""
authors = ["JustKarkat"]
owners = ["JustKarkat"]
owner_ids = [50185858]
license = "MIT"
source = "https://github.com/JustKarkat/horizon-crossversion/"
icon = "https://github.com/JustKarkat/horizon-crossversion/blob/master/icon.png?raw=true"
key = "RWTcPJHJYjPW0pV3lPwr45crCu0wJxW5HbDLc3fr3Eom1TzxO++kHOo4"
[[versions]]
version = "0.8.0"
published = "2026-11-03"
game = "26.3"
file = "crossversion-0.8.0.hnmod"
sha256 = "5b371f1b7b3582e0c92aa1dc22b491b50c024fe95833aa2bd9457189631caafd"
signature = """
untrusted comment: signature from rsign secret key
RUTcPJHJYjPW0vc8h9pG+LC/9EkYg60UM28gNkxJ31iDOXapyV80qqnB9H12OuOtzBmPkbB33fkh0IKE5O8zcCzat0jyj6Tpqw8=
trusted comment: timestamp:1793679858\tfile:crossversion-0.8.0.hnmod\thashed
3hY5NK517bzva/2q54Pmj9QXO3z6WF0WWMfuA8T9H8qCuOe6TYnmYB5eEagRMpZUNK/ICcrfPEx+DE303XIOAQ=="""
changelog = "Offline mode only. "
[[versions]]
version = "0.7.1"
published = "2026-11-02"
game = "26.3"
file = "crossversion-0.7.1.hnmod"
sha256 = "deb9cf8a84838e6c48999f70fbd3c81db90992c456d6e85a0e0746b088c5b8fa"
signature = """
untrusted comment: signature from minisign secret key
RUTcPJHJYjPW0nmeON4u6rxOS7AxK+s/e3kPaLkJ3lm618iPPc8oP8nWdJQ8k9yYriSZSu091TZ5m7qX56nNovAjeZyTcOdrUAk=
trusted comment: timestamp:1793657606\tfile:crossversion-0.7.1.hnmod\thashed
q2Oy6yVv5T+GHc2iM+HxNDImfPcaKGV/XPToNCTQFHSTKJ8+rz5IV4LfJnOBwBp1rZQZoGkExopDrXfZyQybCQ=="""
changelog = """
Version: 0.7.1
Changelog: The MIT notice now ships inside the .hnmod (it is the header of the bundled engine source). The settings page's 'Delete the downloaded ViaProxy' deletes the jars only, so the account added to ViaProxy and its refresh token in saves.json stay. Also: a version switch on Edit Server and Direct Connect: choose what version ViaProxy tells that server it is (auto, 1.8, 1.9, 1.12.2, 1.16.5, 1.20.1, 1.21.1, 1.21.4, 26.3), kept per address, for servers whose status reports the wrong version."""
+29
View File
@@ -0,0 +1,29 @@
id = "customhud"
kind = "native-mod"
name = "Beautiful Day Counter"
summary = "A lightweight day counter, clock and day/night cycle bar for the HUD, with an in-game settings screen."
description = """
Beautiful Day Counter for Horizon, a native mod.
Shows the current survival day, an in-game clock and a color-shifting bar that follows the day/night cycle, without changing gameplay. It is a port of the author's own Fabric/NeoForge mod [CustomHUD](https://github.com/sonoFrangu/CustomHUD), with the same HUD and the same settings screen.
- Day counter with the game mode icon; a golden apple or totem, a rainbow counter and a sound on milestone days (50, 100, 365, every 100).
- 12-hour or 24-hour clock; the clock icon turns into a bed when you can sleep.
- Day/night bar with four color themes (Classic, Pastel, Colorblind, Mono), night marks, countdown to night or day, moon phase.
- Top or bottom placement, size, opacity, offsets, optional background; vanilla boss bars move below the HUD when it is at the top.
- Settings screen opened with H (or from Options > Mods): Elements, Look and Behavior, with tooltips.
- English, Italian, German, Spanish, French and Portuguese."""
authors = ["SCARABOCCHIO100"]
owners = ["sonoFrangu"]
owner_ids = [205944444]
license = "MIT"
source = "https://github.com/sonoFrangu/CustomHUD-Horizon"
icon = "icons/customhud.png"
[[versions]]
version = "1.6.0"
published = "2026-10-31"
game = "26.3"
file = "customhud-1.6.0.hnmod"
sha256 = "ab255d3c722b40f4d068a762857d6c027c11381308bfe23196e2974307814a7f"
changelog = "First release for Horizon: the CustomHUD 1.6.0 HUD and settings screen as a native mod."
+24
View File
@@ -0,0 +1,24 @@
id = "deepbore_quarry"
kind = "mod"
name = "Deepbore Quarry (assets)"
summary = "The textures, text and recipes of Deepbore Quarry. Needs the Deepbore Quarry native mod."
description = """
**This is one of the two parts of [Deepbore Quarry](https://playhorizon.dev/mods/deepbore_quarry_native), and does nothing alone.** Install both: this one, the assets, and the native part. If one is missing, the game says so in chat.
It holds the mod's models and textures, its English and Russian text, its recipes and drops, and its screen's menu. It has no code. The code, and the description of what the mod does, are in Deepbore Quarry.
All the art is original. No Minecraft assets are included. MIT licensed."""
authors = ["bioneisme"]
owners = ["Bioneisme"]
owner_ids = [92920845]
license = "MIT"
source = "https://github.com/Bioneisme/deepbore-quarry"
icon = "https://raw.githubusercontent.com/Bioneisme/deepbore-quarry/main/icon.png"
[[versions]]
version = "0.1.0"
published = "2026-11-05"
game = "26.3"
file = "deepbore_quarry-0.1.0.hmod"
sha256 = "2a75f3adc59aaf273fd833545c50a63a7f829916156b74d85bebbb6273b0d8b6"
changelog = "First release."
+34
View File
@@ -0,0 +1,34 @@
id = "deepbore_quarry_native"
kind = "native-mod"
name = "Deepbore Quarry"
summary = "A machine that digs a square pit down to bedrock on furnace fuel and fills a chest, under a moving gantry with a drill."
description = """
**This mod has two parts, and you need both.** Install this one, the native part, and [Deepbore Quarry (assets)](https://playhorizon.dev/mods/deepbore_quarry), then press Build. If one is missing, the game says so in chat.
- **Place** a quarry. The pit lies beyond it, the way you are looking, and goes from the quarry's own level down to bedrock.
- **Put a chest** against another side of it, and fuel in its slot: anything a furnace burns. One coal digs eight blocks.
- **Watch** the gantry: a drill runs over the pit on a moving bridge, row by row. The screen says what the quarry is doing, and why when it stands still.
- **Choose** four upgrades: Area up to 17×17, Speed up to a block in 0.25 s, Fluids to plug water and lava and dig on, Chunk to keep working when you are away.
- **Keep** what matters: it leaves bedrock and any block with contents, and only its owner or an operator can open or break it.
English and Russian.
**Commands:** operators have `/deepbore maxsize` and `/deepbore maxsize <5|9|13|17>`, the largest area a world allows.
Native source mod: install it on the launcher's Mods page, press Build there, and confirm the native-code warning. It runs with your account's permissions. It is pinned to one Horizon Nightly and Horizon Mixins revision, named in each version's changelog.
No Minecraft code or assets are included. MIT licensed."""
authors = ["bioneisme"]
owners = ["Bioneisme"]
owner_ids = [92920845]
license = "MIT"
source = "https://github.com/Bioneisme/deepbore-quarry"
icon = "https://raw.githubusercontent.com/Bioneisme/deepbore-quarry/main/icon.png"
[[versions]]
version = "0.1.0"
published = "2026-11-05"
game = "26.3"
file = "deepbore_quarry_native-0.1.0.hnmod"
sha256 = "bda03ffe35cca7973ec8a19cbcd5b50dade5f698c30faea8f84b9343cfeb31ef"
changelog = "First release. Pinned to Nightly 2026-11-04 (67dad0d) and Horizon Mixins e8cd0aa."
+34
View File
@@ -0,0 +1,34 @@
id = "distant_horizons"
kind = "native-mod"
name = "Distant Horizons for Horizon Client"
summary = "See far past your render distance: Distant Horizons' level-of-detail terrain, ported to Rust as a native mod."
description = """
An unofficial Rust port of [Distant Horizons](https://gitlab.com/distant-horizons-team/distant-horizons) by James Seibel and contributors: the world past your render distance, drawn at lower detail the farther it is.
- Far terrain built from the chunks you visit, and in single player from the world generator, out to 64–1024 chunks.
- Detail drops with distance by Distant Horizons' own rule, with its five quality presets.
- LODs are kept on disk per world, so they load at once next time.
- Drawn by Horizon's far-terrain renderer with block textures and biome tints.
Settings: Options > Mods > Distant Horizons. In chat: `/dh` for status, `/dh distance 512`, `/dh quality high`, `/dh debug on` and more (Tab completes them).
Native source mod: install it on the launcher's Mods page, press Build there and confirm the native-code warning. The launcher downloads its own Rust and builds a separate game (10–30 minutes the first time). It runs with your account's permissions.
Pinned to Horizon nightly `d009ebd140476b5bdc958c00f56a75e82abec691` (2026-10-29) and Horizon Mixins `0d6b103c70633d8fd9443d8d0acd3aadaacedb06`; the launcher builds these exact revisions. Other Horizon revisions have not been validated. It builds together with Horizon's official native mods; it can't be built with a native mod pinned to a different Horizon commit. Turn Video Settings > LOD Distance off: Horizon's own far terrain draws in the same place.
Known limits: heavy at 256+ chunks (about 30–40 fps on an Apple M5 MacBook Pro); water at LOD edges can show see-through walls.
LGPL-3.0, as Distant Horizons; its copyright notices are kept. Not made or endorsed by the Distant Horizons team. No Minecraft code or assets are included. Ported by Deniz Şahin with Claude (Anthropic)."""
authors = ["denizsahin7744", "Deniz7744"]
owners = ["denizsahin7744"]
owner_ids = [144704661]
license = "LGPL-3.0-only"
source = "https://github.com/denizsahin7744/distant-horizons-for-horizon-client"
[[versions]]
version = "0.1.0"
published = "2026-10-29"
game = "26.3"
file = "distant_horizons-0.1.0.hnmod"
sha256 = "c53a2501f14efb624839329aac6999ddf8c64a399d41bec42a0c878902feea81"
changelog = "First release: pinned to Horizon nightly d009ebd and Horizon Mixins 0d6b103."
+33
View File
@@ -0,0 +1,33 @@
id = "dynamic_fps_for_rust"
kind = "native-mod"
name = "Dynamic FPS for rust"
summary = "Reduce resource usage while Minecraft is in the background, idle, or on battery"
description = """
Dynamic FPS for Horizon: it lowers the frame rate, and optionally the volume, while the game window is in the background, hovered but not focused, minimised or idle, or while Horizon's battery mode is on.
- Caps by default: 30 FPS hovered, 10 unfocused (after half a second), 1 minimised, 20 after a minute idle, 30 on battery; no cap while you play.
- At 1 FPS the game still runs its input, network and ticks up to 20 times a second.
- Volume lowering is off by default.
- Settings: `config/dynamic-fps-for-rust.json` in the game folder, written with the defaults on first start. There is no settings screen yet.
An independent implementation after the public description of Dynamic FPS; it holds none of its code. It changes no shared game settings and has no network access."""
authors = ["Lyvt (dc: _.lyvt)"]
owners = ["Lyvt-Dev"]
license = "MIT"
source = "https://github.com/Lyvt-Dev/dynamic-fps-for-rust"
icon = "https://raw.githubusercontent.com/Lyvt-Dev/dynamic-fps-for-rust/main/logo/dynamic-fps.png"
key = "RWQ84d8BvD1EaarVDgHgXyz+MDiL7ONsCZc0BUrJqTmqzXBItnJy918A"
[[versions]]
version = "0.1.0"
published = "2026-11-04"
game = "26.3"
file = "dynamic_fps_for_rust-0.1.0.hnmod"
sha256 = "50fad9a8d1d481a3862479b313c04e0dc6f8494a84d4cd007583822f5671e17e"
signature = """
untrusted comment: signature from minisign secret key\r
RUQ84d8BvD1EaVhURO1FuYGMB/oFMSego05WqzetlxYu+Xqw833gPsVaui5/duBbZ3lGVErA0gcc/vxslYvhhaGkPRciB+/40wg=\r
trusted comment: Dynamic FPS for rust 0.1.0; dynamic-fps-for-rust-0.1.0.hnmod\r
V1fosOt0MvcQQm5uFTaFubXeoX1nt3411VAeox/pIV+R/GbcsiJGGRO/p1NcY39sOFOFkF3qWg9pNt/J4EXaDA=="""
changelog = """
First release: frame rate and optional volume caps for an unfocused, hovered, minimised or idle window, and on battery."""
+47
View File
@@ -0,0 +1,47 @@
id = "eatinganimation"
kind = "native-mod"
name = "Eating Animation"
summary = "While you eat food, or drink a potion or milk, the item in your hand shows its bitten frames."
description = """
It is a port of [Eating Animation](https://github.com/Theoness1/EatingAnimation) for Horizon.
While you eat food, or drink a potion or milk, the item in your hand shows its bitten frames.
The frames come from a resource pack you build from your own copy of the EatingAnimation download with `tools/make_frame_pack.py`, and drop into Horizon's `resourcepacks/` folder.
~~Or you can just download it from GitHub Releases...~~"""
authors = ["soufi"]
owners = ["soufied"]
owner_ids = [47915535]
license = "MIT"
source = "https://github.com/soufied/EatingAnimation-Horizon"
icon = "icons/eatinganimation.png"
key = "RWT6eNq4e5WfVDA2lzOOi6XCm/+jJgilqT1+HUUM33ie5MCjcRfSg760"
[[versions]]
version = "0.1.1"
published = "2026-10-31"
game = "26.3"
file = "eatinganimation-0.1.1.hnmod"
sha256 = "3b4d7ce3c9791facc862da7727c2c7c71025cd9bb3ee4cbeaf40f48c72bf5cb0"
signature = """
untrusted comment: signature from minisign secret key
RUT6eNq4e5WfVC2NLoRuU8m5JDlH1mh8dNmGbAZUj6bB4grd487xtihz4OLxxJRyO7jzQHrOz6nAPjcZjT/o1RIxebtX+A3tPg8=
trusted comment: timestamp:1793419092\tfile:eatinganimation-0.1.1.hnmod\thashed
OeN+0r/c6BVNO4b82/T9jp/Wh9iGpvL/B0enoxWiIB31W+7E2OmKWhceMaIZqc4w3N3gn3D8+sFrDICK55WoDQ=="""
changelog = """
dumped to v0.1.1
added icon"""
[[versions]]
version = "0.1.0"
published = "2026-10-30"
game = "26.3"
file = "eatinganimation-0.1.0.hnmod"
sha256 = "07ef4fde3ebbc4f132aab593b12187bce15e1a46689ab40bd3067c685aca85b9"
signature = """
untrusted comment: signature from minisign secret key
RUT6eNq4e5WfVJPSxJOh730W1FMzydyVRO2S58rux9xbEtEU+mDgsqWX65rscWaUH3zqOkLan6quW/u9nEZDgXrNz1n6IHnT5Aw=
trusted comment: timestamp:1793371727\tfile:eatinganimation-0.1.0.hnmod\thashed
qCCGAWAc39kDujbX9CsdXu/URjpNybAOxkomTi18GnzJhMLtsbj0ZfVJaVCSxnh0VvznGQvoH9/DEdRAxBAVBg=="""
changelog = "First release. Eating Animation for Horizon as a native mod: the food, milk and potion in your hand show bitten frames while you eat or drink them."
+70
View File
@@ -0,0 +1,70 @@
id = "elytratrails"
kind = "native-mod"
name = "ElytraTrails"
summary = "A Horizon mod that adds elytra trails with additional features."
description = """
A native mod for Horizon. The idea comes from [ElytraTrails](https://github.com/dbrighthd/elytratrails) by dbrighthd.
What it does
Lines stream from the outer tip of each wing while you glide and fade out over time. Only players get trails.
- Colors: ice, gold, rose, violet, white, rainbow, or speed (cold blue when slow, orange and thicker when fast).
- Patterns: solid, dashed or wavy. Built in only.
- Pulse: gently breathing brightness.
- Night: lines are brighter at night and dimmer in the day.
- Boost: a sudden speed jump, such as a firework, lights the whole trail up for two seconds.
- Formation: gliding players close to each other are joined by white lines between their wingtips.
- Lines taper toward the tail, the wingtip has a soft glow, and fading eases in and out.
- Singleplayer: without LAN or a server, all code for other players is skipped.
- Sharing: your color and pattern are sent through the server, so other players see them (single player, LAN and servers). (Untested, I don't have friends)
Settings
Open Options > Mods > ElytraTrails:
- **Trails**: turns every line on or off.
- **Your trail**: your own lines.
- **Your trail in first person**: on by default. Turn it off to see your lines only in third person (F5).
- **Other players' trails**: the lines of other players within 48 blocks.
- **Color**: see the list above.
- **Duration**: how long a line lasts, 1 to 12 seconds (default 5).
- **Width**: thin, normal or wide.
- **Pattern**: solid, dashed or wavy.
- **Pulse**: on or off.
- **Day/night brightness**: off by default (same brightness at any time). On: lines are brighter at night and dimmer in the day.
- **Optimization** (submenu):
- **Your wings**: dynamic (the lines follow the real wing movement) or fixed (the line is computed once when gliding starts and then only moves with your body, which is cheaper).
- **Other players' wings**: dynamic or fixed, the same for other players.
- **Line detail**: full or half (half draws every second segment, about half the lines).
- **Other players' range**: 24, 48 or 96 blocks.
- **Formation lines**: on or off.
- **Boost flash**: on or off.
## Credits
- ElytraTrails by [dbrighthd](https://github.com/dbrighthd/elytratrails) (MPL-2.0), the original mod. The idea of wing trails comes from it.
- This is a separate implementation for Horizon, written from scratch in Rust. It does not contain code from the original mod.
License
MIT. See LICENSE."""
authors = ["soufi"]
owners = ["soufied"]
license = "MIT"
source = "https://github.com/soufied/ElytraTrails-Horizon"
icon = "https://raw.githubusercontent.com/soufied/ElytraTrails-Horizon/refs/heads/main/icons/elytratrails.png"
key = "RWT6eNq4e5WfVDA2lzOOi6XCm/+jJgilqT1+HUUM33ie5MCjcRfSg760"
[[versions]]
version = "0.1.1"
published = "2026-11-04"
game = "26.3"
file = "elytratrails-0.1.1.hnmod"
sha256 = "feea003d336b3275be563c1a1ae7c4d455385d6c1b75712ef879861e121ba198"
signature = """
untrusted comment: signature from minisign secret key
RUT6eNq4e5WfVKBjiTqR7gbjglmDfuhOIdATC/awPevLUyV9sM16EwDCZwn4VxOgfNuuN0TmYr2ibtINbtsiO5NM2H8yzVwmkAw=
trusted comment: timestamp:1793818562\tfile:elytratrails-0.1.1.hnmod\thashed
+74DRK4ausg/UhM7gcmF5VgafBkcLHJ8TmIk2V1dRk/h+9rMuNhLV7YIeCnplg8BOstJUuBRauVxNkcn9uEnAw=="""
changelog = "Rewritten."
+27
View File
@@ -0,0 +1,27 @@
id = "enchantmenthints"
kind = "native-mod"
name = "Enchantment Hints"
summary = "A short description under every enchantment in item tooltips, in English and Russian."
description = """
**A native Horizon mod**: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's rights, so read the source before you build it. Pinned to Horizon 142388e and horizon-mixins 0d6b103.
Every enchantment on books and gear gets a one-line description in its tooltip: what it does, in plain words. Our own text for every 26.3 enchantment, in English and Russian.
- Always, or only while Shift is held (with a reminder line).
- Colour and line width are settings.
Settings: Options → Mods → Enchantment Hints. Inspired by [Enchantment Descriptions](https://modrinth.com/mod/enchantment-descriptions); not affiliated, no code or text from it."""
authors = ["d3grando"]
owners = ["d3grando"]
owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/enchantmenthints"
icon = "icons/enchantmenthints.png"
[[versions]]
version = "0.1.0"
published = "2026-10-29"
game = "26.3"
file = "enchantmenthints-0.1.0.hnmod"
sha256 = "6f1b80a7c22e02b086d5eea2ed6f7c5481b3e40d6a974bf9e382a3df4a2de9df"
changelog = "First release."
+35
View File
@@ -0,0 +1,35 @@
id = "fair_freecam"
kind = "native-mod"
name = "Fair Freecam"
summary = "Fly the camera freely while your player stays where it is, with an optional fair play mode."
description = """
Press **F4** to leave your body and fly the camera anywhere. Your player stays where it is and you see it from outside. Press **F4** again to snap back.
**Controls while flying:**
- **W A S D**: fly where you look
- **Space / Shift**: up / down
- **Ctrl**: 2.5x faster
- **Mouse wheel**: change the speed
**Settings** (Options > Mods > Fair Freecam):
- **Speed**: 2, 5, 10, 20, 40 or 80 blocks per second.
- **Fair play**: the camera can't fly through blocks, so no peeking into caves or bases through walls. Glass, fences and doors stop it, grass and flowers don't.
- **Allowed on servers**: turn it off to only use freecam in your own worlds.
While flying, your player doesn't move, attack, mine or use items.
Some servers don't allow freecam, so check their rules first."""
authors = ["Lutziano888"]
owners = ["Lutziano888"]
owner_ids = [129792568]
license = "MIT"
source = "https://github.com/Lutziano888/horizon-freecam"
icon = "icons/fair_freecam.png"
[[versions]]
version = "1.2.0"
published = "2026-10-31"
game = "26.3"
file = "fair_freecam-1.2.0.hnmod"
sha256 = "4fdd0b3067a00d23fe30ee4d594293ef0705325bb5e6e5b292f90c1e8b8a5f8a"
changelog = "First release as Fair Freecam (id fair_freecam), so it doesn't clash with other freecam mods."
+36
View File
@@ -0,0 +1,36 @@
id = "fast_items"
kind = "native-mod"
name = "Fast Items for Horizon"
summary = "Optimize item rendering by transforming item entities to 2D"
description = """
Fast Items (2D Items)
Optimizes item rendering by transforming items to 2D forms.
For 2D items(such as potions), this mod avoids rendering their sides, so they are completely flat
For 3D items(such as cube blocks), this mod makes them always face to camera, just as the same behaviour in Lunar Client/BLC."""
authors = ["Lyvt (dc: _.lyvt)"]
owners = ["Lyvt-Dev"]
owner_ids = [138261776]
license = "MIT"
source = "https://github.com/Lyvt-Dev/FastItems-for-Horizon"
icon = "https://github.com/Lyvt-Dev/FastItems-for-Horizon/tree/main/logo/fastitems.png"
key = "RWQ84d8BvD1EaarVDgHgXyz+MDiL7ONsCZc0BUrJqTmqzXBItnJy918A"
[[versions]]
version = "0.1.0"
published = "2026-11-04"
game = "26.3"
file = "fast_items-0.1.0.hnmod"
sha256 = "c3acd8adfeac6450c3a13b5172c8abb298cb3ceb355dfc539b4bdd653ef15502"
signature = """
untrusted comment: signature from minisign secret key\r
RUQ84d8BvD1EaR6fPq1+iCBwAhUosfQDHMjVQLYQkIRcmU7I9Ls7Z3nC8wFUF4BOzgB4DaP5UonvlkAG4wqNMZH6EnRLmwaGqgw=\r
trusted comment: Fast Items for Horizon 0.1.0; fast-items-0.1.0.hnmod\r
iqcDMYeA2LekavHGy7yMhtCtH6kCyjq7x76cVPD994O+CYj0lfW4tZL1HSgtXQJFM+3Gw3h2xr55DndjcqFiAA=="""
changelog = """
Optimizes item rendering by transforming items to 2D forms.
For 2D items(such as potions), this mod avoids rendering their sides, so they are completely flat
For 3D items(such as cube blocks), this mod makes them always face to camera, just as the same behaviour in Lunar Client/BLC."""
+25
View File
@@ -0,0 +1,25 @@
id = "flair"
kind = "native-mod"
name = "flair"
summary = "Custom accessory mod"
description = "A cosmetics catalog for Horizon. Open it from the title screen or the pause menu and wear HD capes that move like cloth, animated bandanas with Japanese script, hats, wings, shoulder pets and auras with colour themes. Turn your player in a live preview, hide your armor, and add your own capes and Blockbench cosmetics with animations. Only you see them."
authors = ["_idom_"]
owners = ["umbx-dot"]
owner_ids = [203141410]
license = "MIT"
source = "https://github.com/umbx-dot/horizon-flair"
icon = "https://raw.githubusercontent.com/umbx-dot/horizon-flair/main/icon.png"
key = "RWT9Ujo/oCprPGHHiSLHFNOJV1ZzoJdAU6EdZyiQcBwT2iMXfiYms4hD"
[[versions]]
version = "1.0.0"
published = "2026-11-03"
game = "26.3"
file = "flair-1.0.0.hnmod"
sha256 = "64e4d645d5bda3c363603d483af2095d6d3673d91803954f338d54265bf4fab5"
signature = """
untrusted comment: signature from minisign secret key\r
RUT9Ujo/oCprPBIbqV9rmrjRgpF9gnCIL+4FlZXSTq0Qi4kkklSKfjNDx9YFIw1DuufGVSL3+lOieSX4Fx0nRl7j/CCUNjiWIQs=\r
trusted comment: timestamp:1793723044\tfile:flair-1.0.0.hnmod\thashed\r
QPCGNEAWFCaZLdZLgkUVY9v+hRP4/gJe4H2hCMh7YT7k/V4tynkQ0AM3hZqEdrBoPn4q5SFHDVIcloGkqCTzDw=="""
changelog = "Initial Release."
+24
View File
@@ -0,0 +1,24 @@
id = "fly_speed"
kind = "native-mod"
name = "Fly Speed"
summary = "Allows you to change your fly speed"
description = "Fly 0.1x to 20x your normal speed: /flyspeed, /flyspeed +1 to step, /flyspeed reset for 1x. Native Horizon mod."
authors = ["ImmortalDev"]
owners = ["ImmortalWhisper"]
owner_ids = [147957682]
license = "All Rights Reserved"
source = "https://github.com/ImmortalWhisper/Fly-Speed"
key = "RWSy3RAfbzD2a0WMm0tQlVl+3GHigjwvwXKvzvnwfmoYrIAoIffbrSbP"
[[versions]]
version = "0.1.0"
published = "2026-10-30"
game = "26.3"
file = "fly_speed-0.1.0.hnmod"
sha256 = "c50a3dcfd9ff68af00560f9cd330c4d18b3d9028113b6769ded54997d5267ddf"
signature = """
untrusted comment: signature from minisign secret key\r
RUSy3RAfbzD2a/1H3F6VX9i5wllM8eP2z7FagPND9tqKj76TY2RNWvF/b4xYcqPLU7OLKAPDVY2+HglKTx9GKnAPPt0KQUYwmQQ=\r
trusted comment: fly_speed-0.1.0.hnmod\r
FcLZSTLhxoNvfQAXmKtGb96iTxdJgh2llOMq4GlGhJPgjrhCvllUHEsHWvXnk0sNKEJREKxQ3CVy8VmYcNQzBQ=="""
changelog = "Created Mod"
+39
View File
@@ -0,0 +1,39 @@
id = "fps_overlay"
kind = "native-mod"
name = "FPS Counter"
summary = "Frames per second in a corner of the screen, with the minimum and the 1% low."
description = """
Horizon's own FPS counter, formerly an extra in Options > Horizon Extras.
- Frames in the last second, in a small box in the corner you pick.
- Optionally the slowest frame and the 1% low of the last 5 seconds.
- Settings: Options > Mods > FPS Counter > Settings (corner; minimum and 1% low).
It reads the game's own frame counter and draws on the HUD: nothing else.
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
(install it on the launcher's Mods page, then press Build there). Your settings carry over from 1.0.0. Turn it off in
Options > Mods: it rests at once, and the next build leaves it out. Its source is
[horizon-mods/native/fps-overlay](https://github.com/horizon-rust/horizon-mods/tree/main/native/fps-overlay).
"""
authors = ["Horizon"]
owners = ["ludovic111"]
owner_ids = [136255825]
license = "MIT"
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/fps-overlay"
[[versions]]
version = "2.0.0"
published = "2026-10-29"
game = "26.3"
file = "fps_overlay-2.0.0.hnmod"
sha256 = "bedb670e2490ce8239906c86eabd3a0c131ef5037b2937607231bdbdba38c171"
changelog = "Native: built into the game by the launcher on Horizon's native hook points; settings carry over; turn it off in Options > Mods."
[[versions]]
version = "1.0.0"
published = "2026-10-26"
game = "26.3"
file = "fps_overlay-1.0.0.hmod"
sha256 = "46109c3da01c058c0c15a9e43206b749627e69cd5cd023167621bb5dbdb88bcb"
changelog = "First release: the FPS counter extra as a mod, same look and options."
+24
View File
@@ -0,0 +1,24 @@
id = "freecam"
kind = "native-mod"
name = "Freecam"
summary = "Freecam mod ported for Horizon"
description = "A rewrite for Horizon of the Freecam mod by the Freecam authors (https://github.com/MinecraftFreecam/Freecam, MIT; on Modrinth as freecam). Its licence notice is kept in the source."
authors = ["hakergeniusz"]
owners = ["hakergeniusz"]
owner_ids = [117102435]
license = "MIT"
source = "https://github.com/hakergeniusz/freecam"
key = "RWR4cJC6Jj3EWGi26o29Rs3hAIPWqf8koFdXV4bBLF/Tm84QPfRAYjO5"
[[versions]]
version = "0.1.0"
published = "2026-10-31"
game = "26.3"
file = "freecam-0.1.0.hnmod"
sha256 = "6314ed87d3b58ed0244bed388201c64bffb8deab4f5ff7beed2a3791b391a6da"
signature = """
untrusted comment: signature from rsign secret key
RUR4cJC6Jj3EWN7yDLuEFss9Xir36oWeHI3yyIK+PlIffoXzHXcZ4eBAN/UcOwGpniH+lJl9uU1vzg8yRe9i6SKNMFhI6qbHkAQ=
trusted comment: freecam 0.1.0 for Horizon (Minecraft 26.3), built from github.com/hakergeniusz/freecam commit 78d8f05
6sfFvM54vZFE+02rwu0EJVbCnv5dJAJ7PDEWp64QnyEjlWYEnzXDzDAyLzKdZAfXwtvX+igaCS2KJKCk5UY5CA=="""
changelog = "Release."
+28
View File
@@ -0,0 +1,28 @@
id = "freecam_plus"
kind = "native-mod"
name = "Freecam+"
summary = "Fly the camera anywhere while your player stays perfectly still."
description = """
Press U and your camera leaves your body. Fly it with WASD, Space and Shift, hold Ctrl to go faster and use the mouse wheel to change the speed. Your player does not move or turn, so the server sees you standing still. Through walls and speed can be changed in Options, Mods, Freecam.
Since this is a native mod it will not work in v0.2.97 as there are no native hooks possible. This works on all nightly releases and LIKELY on version upwards from v0.2.97."""
authors = ["_idom_"]
owners = ["umbx-dot"]
owner_ids = [203141410]
license = "MIT"
source = "https://github.com/umbx-dot/horizon-freecam"
icon = "icons/freecam_plus.png"
key = "RWT9Ujo/oCprPGHHiSLHFNOJV1ZzoJdAU6EdZyiQcBwT2iMXfiYms4hD"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "freecam_plus-1.0.0.hnmod"
sha256 = "264218191c32e7107982eab297b30a43076c5f1467d4e292cb844213258b5eb1"
signature = """
untrusted comment: signature from minisign secret key\r
RUT9Ujo/oCprPAR7aucj7Ez3exPIc7MGDVH8ns9azj3ilxe+G4JTWb0PnF0YYxAm0FQJJs3DcmHxHjEEfiiWymsAnTG/cdggrQI=\r
trusted comment: timestamp:1793450278\tfile:freecam_plus-1.0.0.hnmod\thashed\r
/4Di5+zUUSOmYB56u/GDYran5upJjtmfdUff5uKER6lknPGYjsgeLfENH8trB+d8g2hhn70b5+lGxy9mrBfJBg=="""
changelog = "Initial Release. "
+20
View File
@@ -0,0 +1,20 @@
id = "freelook"
kind = "native-mod"
name = "Freelook"
summary = "Hold a key for a third person camera you can look around in"
description = """
Freelook is a Freelook/Perspective Mod for Fabric, allowing you to move your camera freely without changing your player's rotation.
Camera distance can be adjusted by scrolling."""
authors = ["Krzysix17"]
owners = ["Krzysix17"]
owner_ids = [350813197]
license = "MIT"
source = "https://github.com/Krzysix17/horizon-freelook"
[[versions]]
version = "0.3.1"
published = "2026-10-31"
game = "26.3"
file = "freelook-0.3.1.hnmod"
sha256 = "9c0c92ce9f0fc8e7bc1bd34349e26d42b32b8abd2c7a09ec710936f9b6ce9aaf"
changelog = "First release"
+30
View File
@@ -0,0 +1,30 @@
id = "fullbright"
kind = "native-mod"
name = "MoreGamma"
summary = "Brightness past 100%: set your own gamma with /gamma, or toggle full brightness with /fullbright."
description = """
A native Horizon mod: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's rights, so read the source before you build it. Uses only Horizon's native hook points (hooks 1); tested on Horizon 41672b1 and horizon-mixins 0d6b103.
See in the dark without torches or night vision. MoreGamma lets you set the brightness (gamma) far past the video settings' 100% "Bright" limit, with a chat command, and switch full brightness on and off.
- `/gamma <value>`: your own gamma. `1` is vanilla's "Bright", `15` is fullbright, up to `100`; `/gamma 1500%` works too.
- `/gamma` shows the gamma in effect.
- `/gamma reset` (or `off`) goes back to your video settings slider; `/gamma on` turns your last custom gamma on again.
- `/fullbright` toggles full brightness (gamma 15).
- Options → Mods → Fullbright: an on/off button, a button cycling 100/200/500/1000/1500%, and a toggle key you can bind.
Client-side: the commands are handled by your game before anything reaches a server, so it works in single player, on LAN and on servers. Your brightness slider and `options.txt` are never changed, so turning it off gives your own brightness back. Settings are remembered between sessions."""
authors = ["bezi5kt"]
owners = ["bezi5kt"]
owner_ids = [45046654]
license = "MIT"
source = "https://github.com/bezi5kt/gamma-rust"
icon = "icons/fullbright.png"
[[versions]]
version = "1.0.0"
published = "2026-10-30"
game = "26.3"
file = "fullbright-1.0.0.hnmod"
sha256 = "573c5e04188e0b1a26eb42a8aeaeeefeb6fb334a096afaa834e71b8efa353ad7"
changelog = "First release."
+30
View File
@@ -0,0 +1,30 @@
id = "fullbright_horizon"
kind = "native-mod"
name = "Fullbright"
summary = "Toggle maximum 1000% gamma cave and night brightness with smooth fade via keybind G."
description = """
Maximum brightness and night illumination for the Horizon Rust client.
Features
Press G (rebindable in Options > Mods > Fullbright) to immediately toggle 1000% Gamma cave and night illumination without shadows.
Smooth 250ms brightness fade transition and HUD status notification.
100% client-side lightmap modification, safe for multiplayer."""
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/fullbright"
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "fullbright_horizon-1.0.0.hnmod"
sha256 = "db6175eec1711dbc5ab2a2edc40eee9cbc4080ec1d706a3cef688e54ba9cb017"
signature = """
untrusted comment: signature from minisign secret key\r
RUS411U2KXdTN70A+lNWzZF2M2MiOMfjOIqVnTGNY05bQXW47Ov/mHp8io8o9HZiOYQXOYbxhazjWOfGU3WWuRzqj05swkoG/QY=\r
trusted comment: timestamp:1793440355\tfile:fullbright_horizon-1.0.0.hnmod\thashed\r
mJGiv7YnJHRGreiX5K3mx6zwEtRTC4rAygoIC+rkp1tjUeazIwyehtojb6T+iQBQaq2p97PTor410KnbK675BA=="""
changelog = "Initial release for Horizon 26.3."
+26
View File
@@ -0,0 +1,26 @@
id = "fullbright_nofog"
kind = "native-mod"
name = "Fullbright & NoFog"
summary = "Toggle full brightness and the world's fog with a key (G / N), /fullbright or /nofog."
description = """
A native Horizon mod: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's rights, so read the source before you build it. Uses only Horizon's native hook points (hooks 80, for `render_fog`); tested on Nightly 2026-11-01 (c9d474d) and horizon-mixins 0d6b103.
- **Fullbright**: press G (or `/fullbright`, `/fb`) to toggle full brightness (gamma 1500%). Your brightness slider and `options.txt` are never changed; turning it off gives your own brightness back.
- **NoFog**: press N (or `/nofog`) to remove the world's fog. `/nofog fluids` also clears water, lava and powder snow fog.
- `/fullbright on|off` and `/nofog on|off` set them directly.
- Options → Mods → Fullbright & NoFog: a button for each toggle and both keys, rebindable.
Toggling is silent (no chat messages). Client-side: works in single player, on LAN and on servers. Settings are remembered between sessions."""
authors = ["Nirokx"]
owners = ["Nirokx"]
owner_ids = [95123456]
license = "MIT"
source = "https://github.com/Nirokx/horizon-fullbright-nofog"
[[versions]]
version = "1.0.0"
published = "2026-11-02"
game = "26.3"
file = "fullbright_nofog-1.0.0.hnmod"
sha256 = "07a13abd8af2405343241f8985db7595a03bfb8ced2f1dfab8a105848eb1b7d7"
changelog = "First release."
+50
View File
@@ -0,0 +1,50 @@
id = "gyro"
kind = "native-mod"
name = "Gyro"
summary = "Full 6DOF flight physics and immersive gyro camera tilt for Minecraft Horizon, inspired by Do a Barrel Roll."
description = """
**Fly an elytra like an aircraft.** Gyro swaps Horizon's locked horizon for full six-degree-of-freedom control: bank into a roll, pull through it to carve a turn, push the nose past vertical and loop. Inspired by the feel of the Java mod *Do a Barrel Roll*, written from scratch on Horizon's native hook points.
| While gliding | What it does |
|---|---|
| Mouse left / right | Roll — a full 360° with no snap-back |
| Mouse up / down | Pitch through your current bank, so a wing-down pull carves a turn |
| `A` / `D` | Rudder yaw for fine heading corrections |
In third person your avatar, elytra and held item stay pinned to the camera while the world, sky and entities roll around you. When you stop gliding, the view eases back to level and the mouse is an ordinary camera again. Everything else stays vanilla — no keybinds, no config, no setup, just one row in **Options > Mods**.
**What it actually touches.** Client-side camera matrices and the player's own model only. There is no network, filesystem or process access anywhere in the source, no server hooks and no server component; the server never hears about the roll. It declares `hooks: 3`, so the launcher builds it on any Horizon whose native hook API is ≥ 3 rather than one pinned commit. Built and tested against Horizon `ba6344a` with horizon-mixins `d9c83d70`. The whole mod is seven short Rust files plus one mixin manifest under `mixins/gyro/` — read them before you build.
*Native mods are unsandboxed code running with your account's permissions; install only from authors you trust.*
Source & build guide: https://github.com/CGRLabs/gyro
Community discovery & mod docs: https://horizon-hub-seven.vercel.app (independent, unofficial — indexes the official registry)
"""
authors = ["CGRLabs"]
owners = ["CGRLabs"]
license = "MIT"
source = "https://github.com/CGRLabs/gyro"
icon = "https://weaigubwhdajcehreyau.supabase.co/storage/v1/object/public/icons/gyro.png"
key = "RWSjKGIJUKKXHvvhxzNN2VPPrXSEr47JXVgGpCwrOOHoneuQjTWWvk1g"
[[versions]]
version = "1.4.1"
published = "2026-11-05"
game = "26.3"
file = "gyro-1.4.1.hnmod"
sha256 = "2271d5b7e1559544a12e9198523c643bddd2551828ecf0a39b92f7d120b1921b"
signature = """
untrusted comment: signature from Horizon Hub signing key (CGRLabs)
RUSjKGIJUKKXHmpe6jlROY1yCZ3ZOf3ud+zshvosQahcCBCr1PIsSnnLgeLiuaxjxr55MkO9i9r4pKIUqRkcIY8y/R3pfi+QSgY=
trusted comment: timestamp:1793853001\tfile:gyro-1.4.1.hnmod
uqpsuNh06lQVrKGSKBbJ9J6y4A3bg0TlGEepMy+5F3G3Iuokw6bu2WqSOjNWS7u8qZdzVBLXontxfjb6gzUkBQ=="""
changelog = """
The bundle now declares native hook points (`hooks: 3`), so the launcher builds it on any Horizon with native hook API v3 or newer instead of only the pinned commit.
- Deterministic packaging: identical sources give identical bytes and SHA-256; `tools/package.py --check-hooks` cross-checks the pinned commit's real API.
- Mod row (id, version, description) now comes from `runtime.rs` constants.
- Added `proof.py`, an in-game proof harness driving the modded client on throwaway data folders.
- Player-facing README rewrite.
Client-side camera and player-model changes only; no network writes and no server component."""
+18
View File
@@ -0,0 +1,18 @@
id = "held_item_info"
kind = "native-mod"
name = "Held Item Info"
summary = "Selected-item durability, count and enchantment names above the hotbar."
description = "Minimal client-only selected-item text HUD for Horizon 26.3. Displays remaining/maximum durability, stack count and up to six translated enchantment names; long strings are shortened to GUI width. Original MIT implementation inspired by A5b84/held-item-info; no LGPL source was read or included. Potion details, layout options and fading are not implemented. Existing Armor Status covers equipped-item icons/durability; this mod focuses on selected-item text and enchantment names. See the source for validation and exact engine/mixin pins."
authors = ["AltMugen"]
owners = ["AltMugen"]
owner_ids = [108084724]
license = "MIT"
source = "https://github.com/AltMugen/horizon-held-item-info"
[[versions]]
version = "0.1.0"
published = "2026-11-02"
game = "26.3"
file = "held_item_info-0.1.0.hnmod"
sha256 = "37a11d98f0afabe37f8ffa9982dc710ad2985817db6b5e094d807c24d30a6a6a"
changelog = "Initial reviewed native release."
+39
View File
@@ -0,0 +1,39 @@
id = "hitbox_plus"
kind = "native-mod"
name = "Hitbox+"
summary = "Customizable entity hitboxes with exact weapon & spear in-reach colors, thickness, eye rays, and sprint HUD."
description = """
Hitbox+ for Horizon
Hitbox+ is a high-performance native mod ported to Horizon that revamps vanilla F3+B debug hitboxes with full customization and PvP reach indicators.
Key Features:
Dynamic In-Reach Detection: Hitboxes automatically change to your chosen reach color when your crosshair is within hitting distance.
Spear Reach: Accurately extends reach to 4.5 blocks (survival) and 6.5 blocks (creative).
Melee Reach: Standard 3.0 blocks for swords, axes, maces, and fists.
11 Selectable Reach Colors: Choose between Bright Green, Neon Cyan, Aqua Mint, Gold Yellow, Sunset Orange, Hot Pink, Neon Purple, Electric Blue, Crimson Red, Pure White, or smooth dynamic Rainbow.
Hitbox Styles & Thickness: Custom styles (White, Cyan, Yellow, Red, Rainbow) and 3 thickness modes (1.5px Thin, 2.5px Default, 4.0px Thick).
Eye-Ray & Looking Direction: Toggle looking direction lines and forehead level markers.
Always-On Sprint HUD: Built-in sprint status indicator with customizable screen corner placement (Top-Left, Top-Right, Bottom-Left, Bottom-Right).
Zero FPS Cost: Pure lock-free atomic architecture.
Controls:
Press H to toggle hitboxes on/off.
Access Options > Mods > Hitbox+ to customize all colors, thickness, and HUD positions."""
authors = ["taxtii", "itzglecni"]
owners = ["taxtii"]
owner_ids = [347672997]
license = "MIT"
source = "https://github.com/taxtii/hitbox_plus.git"
[[versions]]
version = "1.3.0"
published = "2026-11-03"
game = "26.3"
file = "hitbox_plus-1.3.0.hnmod"
sha256 = "8d1b95e7461e38fc40994b35a82c1f753a58e9751ce27af1dc101a4717dba8a4"
changelog = """
- Added dynamic spear attack reach support (4.5 blocks in survival, 6.5 blocks in creative with 0.125 hitbox margin).
- Standard melee weapons (swords, axes, fists) use exact 3.0-block in-reach detection.
- Added 11 selectable reach color options (Bright Green, Neon Cyan, Aqua Mint, Gold Yellow, Sunset Orange, Hot Pink, Neon Purple, Electric Blue, Crimson Red, Pure White, Rainbow).
- Removed red hit flashing when attacking entities.
- Zero-overhead lock-free atomic rendering with configurable line thickness, eye rays, and always-on toggle sprint HUD."""
+46
View File
@@ -0,0 +1,46 @@
id = "horizon_physics"
kind = "native-mod"
name = "PhysicsModHorizon"
summary = "Physics for Horizon, inspired by PhysicsMod: ragdolls, waves, physical particles and capes."
description = """
By tariksabanuz
Physics for Horizon, inspired by PhysicsMod by Haubna. It is a clean-room version for Horizon: it contains none of PhysicsMod's code or assets and is not made or endorsed by Haubna. Everything is built as a native Horizon mod, so no other mods or loaders are needed.
Features
- **Realistic water**: waves that never repeat, built from several swells with wave groups, wind gusts, sun glints, foam on the crests and along the shore, and rain rings on the surface. Boats and the camera follow the same waves you see.
- **Ragdolls**: mobs fall and tumble with their bodies instead of just disappearing.
- **Physical particles**: block cracks, sprint dust and broken or eaten items become small physical pieces that fall, bounce and settle.
- **Capes** that move with you.
- **Quick Setup**: on first launch everything is off, so the game starts fast. A short setup lets you pick how much you want, and then turns it on.
- **Physics Settings** in Options, with categories, switches and sliders for every effect, so you can tune it to your PC.
Notes
- Built for Horizon Nightly `6475f62`. Other versions may need an updated build.
- Works with Vulkan and DirectX 12.
- If the game feels slow, lower the wave height or turn effects off in Physics Settings.
Source code and issues: https://github.com/tariksabanuz/PhysicsModHorizon"""
authors = ["tariksabanuz"]
owners = ["tariksabanuz"]
owner_ids = [332662152]
license = "MIT"
source = "https://github.com/tariksabanuz/PhysicsModHorizon"
icon = "icons/horizon_physics.png"
[[versions]]
version = "0.18.0"
published = "2026-11-04"
game = "26.3"
file = "horizon_physics-0.18.0.hnmod"
sha256 = "213f6264a20bed7fef64f12f539d0b2364f710857a3acaa351b96e78b3239dc1"
[[versions]]
version = "0.15.1"
published = "2026-11-03"
game = "26.3"
file = "horizon_physics-0.15.1.hnmod"
sha256 = "d7cf1201f0a47a852aa1a4c9684ef9e658ec3c86852104d44716d05f11281ca3"
changelog = "First release: block, mob, item, snow, water, smoke, cloth, weather and collapse physics, with a Physics Settings screen."
+101
View File
@@ -0,0 +1,101 @@
id = "horizonmatica"
kind = "native-mod"
name = "Horizonmatica"
summary = "Litematica for Horizon: schematics as ghost blocks, a verifier, material lists and a printer that builds the missing blocks for you."
description = """
Horizonmatica is a re-creation of **Litematica** (with its **printer**) for Horizon. Load a schematic, see it as ghost blocks in your world, check your build against it, get a material list, and let the printer place the missing blocks.
## Features
- **Formats:** `.litematic` (versions 1–7, several regions), `.schem` (Sponge v1–v3: WorldEdit, FAWE, Amulet, Axiom), `.schematic` (MCEdit / WorldEdit up to 1.12) and vanilla structure `.nbt`. Older files are upgraded with Horizon's data fixer, the same way old worlds are.
- **Overlay:** missing blocks as translucent real block models (chests, banners, heads and other block entities included), optionally visible through walls.
- **Verifier:** wrong block (red), wrong state (orange), extra block (pink), plus a progress HUD.
- **Layers:** all / one layer / above / below / range.
- **Placements:** several at once; move, rotate, mirror, show or hide each; a move mode for mouse wheel and arrow keys. The placements are remembered per world and dimension and restored when you join again.
- **Save your own:** select an area with the selection tool (a stick: left and right click set the corners, the wheel grows and moves the box) and save it as a `.litematic` (blocks and their states), chunk by chunk as in Litematica: chunks not loaded yet show as frames to fly to.
- **Material list:** missing, total and carried, with item icons, in the HUD or in the menu, and copied to the clipboard as a table for spreadsheets.
- **Menu (M):** a screen of its own, drawn with the game's widgets.
- **Pick block:** middle-click a ghost block to take that block in hand, for building by hand.
- **Highlights:** mark missing and wrong blocks through everything, however far away, for all items or just one you pick in the material list.
- **Printer:** places one missing block within reach every few ticks, from the bottom up. It only clicks when Horizon's own placement logic says the click produces exactly the wanted state (stairs, slabs, logs, furnaces…). Redstone-aware order, repeater, comparator and note block setup after placing, double slabs and stacks, chests, falling blocks. The camera never moves.
Usage: put schematics into `schematics/` next to `options.txt` of your instance (`/hm folder` shows the path), then `/hm load <name>` or press **M**. All commands and keys are in the [README](https://github.com/keksi2k/horizonmatica#usage).
## What it does and doesn't do
- **Reads** only files in the instance's `schematics/` folder, and creates that folder if it's missing.
- **Writes** only the `.litematic` files you save (`/hm save`), into that folder. Settings and remembered placements go through Horizon's mod settings.
- **Network:** no connections of its own. The only thing sent to a server is what the printer does: the same block-placing clicks a player would make (with the matching look direction), and hotbar slot changes.
- **"Open folder"** in the menu opens the schematics folder in your file manager through Horizon's own function.
- No telemetry, no downloads, no code run from schematic files. Schematics are parsed as data only.
⚠️ On other people's servers, automatic placing may break the rules or trip anti-cheat. The printer is off until you turn it on (`K` or `/hm printer on`). Its *air place* option (off by default) is noticed by anti-cheat plugins such as Grim.
**Version:** native mods use game internals, so Horizonmatica is pinned to one Horizon commit (currently Nightly 2026-11-04, `67dad0d`). A new Nightly needs a new release.
## Credits
The idea, the way it's used, the file format and the behaviour come from **[Litematica](https://github.com/maruohon/litematica)** by masa (maruohon), maintained by **[Sakura-Ryoko](https://github.com/sakura-ryoko/litematica)**, and from **[Litematica Printer](https://github.com/aleksilassila/litematica-printer)** by aleksilassila. Horizonmatica is not an official project of these authors, isn't made or endorsed by them, and contains none of their code. Only the file format and the behaviour are re-created. If you like it, go and support the originals.
Menus built with [horizon-menus](https://github.com/keksi2k/horizon-menus). MIT licensed.
"""
authors = ["keksi2k"]
owners = ["keksi2k"]
owner_ids = [32579030]
license = "MIT"
source = "https://github.com/keksi2k/horizonmatica"
icon = "https://raw.githubusercontent.com/keksi2k/horizonmatica/main/icon.png"
key = "RWS+BRoCJslNCFapck3cbG2VFQcjlr1MUH5m3+CWA8zhJecoBoja7X94"
[[versions]]
version = "0.2.0"
published = "2026-11-04"
game = "26.3"
file = "horizonmatica-0.2.0.hnmod"
sha256 = "5afe38269722867cb60b9b7cc1ba9efa2efb998580eae2949ab7f7e5399ebb7b"
signature = """
untrusted comment: signature from minisign secret key\r
RUS+BRoCJslNCEWE8zNb6tQ44aUFyzfzbB8nRghjhfhf5s5NQSRSKgo9YknwdPAX5WtloUfJNMMHFNzl6WaK9yHBLeeNBHU4ggo=\r
trusted comment: timestamp:1793803241\tfile:horizonmatica-0.2.0.hnmod\thashed\r
85Peoj95TjmdBwJ2xoerobEzqhmT6RNT2m+4RaaKtbParx/MnEXYmXpEw5XqYzw8Z/u1+trBQULwmNuY8MWKAQ=="""
changelog = """
### Added
- Highlights: mark missing and wrong blocks through everything, however far away, for all items or just one you pick in the material list (`/hm highlight`).
- Pick block: middle-click a ghost block to take that block in hand.
- Several placements at once: select, show, hide, lock and unload each.
- Select an area with the selection tool (a stick) and save it as a `.litematic` (`/hm save`).
- Copy the material list to the clipboard as a table for spreadsheets (`/hm materials copy`).
- Command completion for `/hm` in chat.
- A wiki in `docs/wiki`: every tab, button and key, with the matching command.
### Changed
- Air place is off by default.
- Printer without air place: only blocks next to a real block whose face you can see are tried, blocks that can't be placed from where you stand aren't tried again until you move or a neighbour changes, and in each layer the item in hand comes first.
- Logs, froglights and other pillars get their direction from the clicked face alone. Without air place they need a real block on the matching side, and the printer's note says so.
- Pinned to Nightly 2026-11-04 `67dad0d` (was `c9d474d`).
### Fixed
- The printer places bamboo, crops, stems, berry bushes and vines. They count as correct at any stage of growth, and the material list includes them.
Built for Horizon Nightly 2026-11-04 (67dad0d, hook API 359)."""
[[versions]]
version = "0.1.1"
published = "2026-11-02"
game = "26.3"
file = "horizonmatica-0.1.1.hnmod"
sha256 = "2ddc562dd2ea0f9a76a47eb761c64c803def68a8c81b92cb5d15ec26c5d432aa"
signature = """
untrusted comment: signature from minisign secret key\r
RUS+BRoCJslNCOkWo88+wHXYmMr1C6TzXpxZIGwzFuUN+K4lbd9RT6tLC8sIQQ5uD3QZQZx2rawTHRJvUvRhCgUNDoqhIek18w4=\r
trusted comment: timestamp:1793599192\tfile:horizonmatica-0.1.1.hnmod\thashed\r
BmryY+OjbG0qZnnFappBEO2tR8zx+a5BmqBFA4AVytjqvLnuvDWYE0PUwZLLodqbN218NM0JluVGpstnI3DvBQ=="""
changelog = """
First release in the registry.
- Loads .litematic, .schem (Sponge v1–v3), .schematic (MCEdit, 1.12 ids) and structure .nbt; older files are upgraded with Horizon's data fixer
- Ghost overlay with real block models, see-through mode, verifier colours and layer modes
- Placements remembered per world and dimension; move mode, rotate, mirror
- Own menu screen (M) and a material list with item icons
- Printer: places missing blocks within reach, checked against the game's own placement logic; the camera never moves
Since 0.1.0 on GitHub: loading another schematic no longer shows the previous one's blocks.
Built for Horizon Nightly 2026-11-01 (c9d474d, hook API 80)."""
+24
View File
@@ -0,0 +1,24 @@
id = "inventory_profiles"
kind = "native-mod"
name = "Inventory Profiles"
summary = "R-key & UI sorting (Category, A-Z, Count, ID), Auto-Refill depleted stacks, Tool Break Protection, and Quick-Stack to chests."
description = "A 1:1 native Rust port of Inventory Profiles Next & Inventory Sorter for Horizon. Press R or click the UI sort buttons to merge partial stacks and sort chests or your inventory using 4 selectable modes: Category (Creative Tab), Alphabetical (A-Z), Stack Count (High-Low), or Item ID. Includes automatic hand stack refilling when placing blocks or consuming items, Tool Break Protection that swaps out low-durability tools before they break, and G-key Quick-Stacking to move matching items into open containers."
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/inventory-profiles"
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "inventory_profiles-1.0.0.hnmod"
sha256 = "1e5d1c75d05230172820b5bc016d7d3ac792adf473de7dbfb84394d8b795a633"
signature = """
untrusted comment: signature from minisign secret key\r
RUS411U2KXdTNzTcNlnhp0xG8ZqxNqwzpSnc+ghT4/m+aR0dga48gdD04aioDSIPK5DBUtd4i2Vf+e4r7LKX3zb6T90aDdYJjgI=\r
trusted comment: timestamp:1793443789\tfile:inventory_profiles-1.0.0.hnmod\thashed\r
RcTkkWUMpp4nRQ4uXRFCD4m67ir4J0y3lo2nhOVUgriLIMndinAsVjnNsrfAoJLvKN9DO5vT/xp2+oW1iW7xAQ=="""
changelog = "Initial release for 26.3 Horizon. "
+40
View File
@@ -0,0 +1,40 @@
id = "inventory_wizard"
kind = "native-mod"
name = "InventoryWizard"
summary = "InventoryWizard's one-click sorting as a native mod for Horizon"
description = """
## Features
- **Smart sorting** by category (stone, earth, wood, ores, blocks, tools, weapons, armor, food, redstone,
transportation, decoration), from item tags and components, so other mods' items are sorted too
- **Survival-friendly hotbar**: weapons, tools, food, building blocks, utility items, then the rest
- **Stacks merged**, but enchanted or named items are never combined
- **Three modes**: Default, Alphabetical and Stack-based
- **Sort buttons** by the inventory and container titles, plus a mode button (it shows the mode's letter)
- **Locked slots**: **Alt+Click** a hotbar or inventory slot to lock it, and sorting leaves it alone
- **Keys**: **R** (or **Shift+Right Click**) sorts the part under the cursor: the hotbar sorts everything, the
inventory the inventory, a container the container. Outside a screen, R sorts the whole inventory.
**Shift+Right Click** on the middle hotbar slot cycles the mode. The mode also has its own key, unbound by default.
- **Commands**: `/iwiz [hotbar|inventory|all|mode]` (also `/inventorywizard`)
- **Works on** the inventory, hotbar, chests, barrels, shulker boxes and ender chests, **in singleplayer and on any
server**: every sort is made of ordinary left clicks, as a player could click them, so a vanilla server accepts it"""
authors = ["VanishingTacos"]
owners = ["VanishingTacos"]
owner_ids = [16919284]
license = "MIT"
source = "https://github.com/VanishingTacos/InventoryWizard-Horizon"
icon = "https://cdn.modrinth.com/data/cU0ynk3p/21b58402405493964af438e3e3b9551676b68433.png"
key = "RWTos7ZtiqwDTrtjtHk3WhMJJc1+sSTTyTu9CaDtIYWSQvww2D9WrAN1"
[[versions]]
version = "2.3.3"
published = "2026-11-01"
game = "26.3"
file = "inventory_wizard-2.3.3.hnmod"
sha256 = "03a7c8a528148611e5f309f3d05294a97b6766ca5e3bda9b3f1f79458fe65a42"
signature = """
untrusted comment: signature from minisign secret key\r
RUTos7ZtiqwDTmRp04qx/n5ZXozvaeOig3nJZFeNqmfmZ1PjB/2JUcfiF0JLZZJBkqpwm6sZQAvrt4HNce0juB5KaxJUOQJtAAo=\r
trusted comment: timestamp:1793498930\tfile:inventory_wizard-2.3.3.hnmod\thashed\r
Q0SE4CMnaFQHCmizFD0JcIPkUfiYQVs3KyGCCpS99m3OfFNhnS0gQt20ul0QlyYDAC8bAPJRjyrSIgcD1KzPAQ=="""
changelog = "Full native port of InventoryWizard for Horizon "
+18
View File
@@ -0,0 +1,18 @@
id = "invisible_frames"
kind = "native-mod"
name = "Invisible Frames"
summary = "Sneak-right-click a filled frame to hide and lock it, or restore it."
description = "Server-side frame visibility toggling for Horizon 26.3. Ordinary and glowing frames are supported. Empty visible frames remain visible. Original MIT implementation inspired by ADHDMC/InvisibleFrames; no Java source or assets included. See the source repository for tested engine/mixin pins, build instructions and validation scope."
authors = ["AltMugen"]
owners = ["AltMugen"]
owner_ids = [108084724]
license = "MIT"
source = "https://github.com/AltMugen/horizon-invisible-frames"
[[versions]]
version = "0.1.1"
published = "2026-11-03"
game = "26.3"
file = "invisible_frames-0.1.1.hnmod"
sha256 = "76128b48ce5c826007379c85634b934ae6bad51c134fbaead7c46b36fecd9274"
changelog = "Use the acting player's authoritative server sneak input instead of physical keyboard state."
+27
View File
@@ -0,0 +1,27 @@
id = "itemnew"
kind = "native-mod"
name = "Item New"
summary = "Newly picked-up items glow in your hotbar and inventory until you look at them."
description = """
**A native Horizon mod**: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's rights, so read the source before you build it. Pinned to Horizon 142388e and horizon-mixins 0d6b103.
Items you just got (picked up, crafted, taken from a chest, given) get a soft glow in the hotbar and in inventory and container screens, until you point at them or close the screen.
- Styles: glow, glow with a star, by rarity colour.
- Which screens, and when a mark clears, are settings; `/itemnew` shows or clears the marks.
Settings: Options → Mods → Item New. Inspired by [Item Highlighter](https://modrinth.com/mod/item-highlighter); not affiliated, no code from it."""
authors = ["d3grando"]
owners = ["d3grando"]
owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/itemnew"
icon = "icons/itemnew.png"
[[versions]]
version = "0.1.1"
published = "2026-10-29"
game = "26.3"
file = "itemnew-0.1.1.hnmod"
sha256 = "cdc68c9911736703ebc4b8b81895a719edd74ba9d08fe01ddb34fe09b8d490e9"
changelog = "First release."
+35
View File
@@ -0,0 +1,35 @@
id = "jade"
kind = "native-mod"
name = "Jade"
summary = "The look-at tooltip: what you're pointing at, its mod, its details and its state."
description = """
An unofficial port of [Jade](https://github.com/Snownee/Jade) 26.3.5 by Snownee to Horizon: the look-at overlay for blocks and entities, with its providers, its settings under Options > Mods, its keys, and the `/jade` and `/jadec` commands.
Rewritten in Rust for Horizon's hooks, so no original code runs. Not made or endorsed by Snownee, so please report problems to this project, not to them.
**Ported:** themes, opacity, text background, profiles, ignore lists, boss bar overlap, TTS, perspective mode, reach, icon positions, the item mod name and the plugin sub-options.
**What differs from Jade:**
- Themes are drawn with solid fills in the theme's colours, not Jade's sprites.
- The position adjust screen is a setting you cycle through, not a screen you drag on.
- The sniffer's dig cooldown isn't shown.
- Energy Storage has nothing to show, because Horizon has no shared energy API for other mods.
- Access variant and NPC details are approximate.
Tested on Windows, in single player and on LAN with one guest. Dedicated servers don't build native mods, so "server" here means a LAN host.
Licence: CC BY-NC-SA 4.0, noncommercial use only, the same licence as Jade."""
authors = ["Snownee", "Joeypc6"]
owners = ["Joeypc6"]
owner_ids = [35495484]
license = "CC-BY-NC-SA-4.0"
source = "https://github.com/Joeypc6/Jade-Horizon"
icon = "https://media.forgecdn.net/avatars/thumbnails/207/323/256/256/636965628804677340.png"
[[versions]]
version = "26.3.5"
published = "2026-11-04"
game = "26.3"
file = "jade-26.3.5.hnmod"
sha256 = "676a129f55db075284313a39ff4387674c426ebd9be04a8830ffb8955281c7ec"
changelog = "First Horizon release, a port of Jade 26.3.5. Built and tested on Horizon commit c9d474d."
+97
View File
@@ -0,0 +1,97 @@
id = "jei"
kind = "native-mod"
name = "JEI for Horizon"
summary = "An item and recipe viewer for Horizon: every item beside container screens, with search, recipes and uses"
description = """
An item and recipe viewer for [Horizon](https://playhorizon.dev), the Rust reimplementation of Minecraft: Java Edition.
Horizon JEI is inspired by [JustEnoughItems (JEI)](https://github.com/mezz/JustEnoughItems). JEI serves as the reference specification, while this project is a completely new Rust implementation built around Horizon's native hook points.
**Version 0.1.0 — Core Viewer**
### Features
- **Item Browser:** Browse every item registered by the game through a paginated panel alongside container screens, with a search bar supporting JEI's search grammar: words, `"quoted phrases"`, `-exclusions`, `|` alternatives, `@namespace`, and `#tag`.
- **Recipe Viewer:** Press **R** to view an item's recipes or **U** to see its uses. Both work over the item panel and container slots.
- **Recipe Categories:** Dedicated tabs for crafting, furnace, blast furnace, smoker, campfire, stonecutter, smithing, and brewing, supporting all five of the game's recipe layouts, including cooking time and XP.
- **Recipe Navigation:** Browse recipe history with **Back** and click recipe slots to open the corresponding item.
- **Recipe Placement:** Use the **+** button to place a recipe into the open crafting grid, provided it is available in the recipe book.
- **Item Giving:** Give items through Options → Mods → JEI or `/jei give`. In creative mode, left-click gives one item and right-click gives a full stack. In survival mode, clicking opens the recipe viewer instead.
- **Localization:** English and Spanish interface translations. Item names are retrieved directly from the game and respect the player's language.
- **Diagnostics:** `/jei` reports the game's recipe table sizes.
### Current Limitations
The 0.1.0 release focuses on the core viewer. Bookmarks, container slot click integration, tooltips, creative inventory integration, non-recipe categories (anvil, grindstone, composter, and fuel), and shift-click recipe placement are not yet supported.
Some of these features require native hook points that Horizon does not currently expose. See the [JEI parity matrix](https://github.com/enderliker/horizon-jei/blob/main/docs/jei-parity.md) for implementation details.
### Requirements & Security
Requires Horizon **26.3**, hook points version **2**, and the current Nightly build.
Horizon native mods are compiled directly into the game and are **not sandboxed**. Only build source code you trust.
Horizon JEI reads the game's tables, container interface, chat, and its own settings directory (`horizon-mods/.horizon-mod-data/jei/`). It does not write to any other location.
*Unofficial project. Not affiliated with mezz, Mojang, Microsoft, or the Horizon project.*"""
authors = ["enderliker"]
owners = ["enderliker"]
owner_ids = [166346005]
license = "MIT"
source = "https://github.com/enderliker/horizon-jei"
key = "RWRqzx718YYz/OHRM+pAnFWlDv8Rrgar5C4NszQg3EKJWQZWNel5Sslf"
[[versions]]
version = "0.1.0"
published = "2026-10-30"
game = "26.3"
file = "jei-0.1.0.hnmod"
sha256 = "c5590e0d4618d435fc0c56abcc9cdabf253be694710068a3dd4643ac25466b5b"
signature = """
untrusted comment: signature from minisign secret key
RURqzx718YYz/AZEFNcRh0lQFAgg8JsladNTOULcWqBnZFoFoApH0UvoQQkTk8wC/LfZpfJkrn7XRzSUOPUOfudUebBSHHdVYQ0=
trusted comment: jei 0.1.0 for Horizon 26.3
OqC3JuFFGuGNdxATsGIvM20nrld1ME2ks3tI2hfaMX2s5bCgwYjieUDk7FbDQD8zxd3KHqOYaUTz6T+njgUNCw=="""
changelog = """
The first playable Horizon JEI viewer, built on Horizon's native hook points (version 2).
### Item Browser & Search
- Added an item panel alongside container screens, displaying every item known to the game with pagination.
- Implemented JEI's search grammar:
- Words and `"quoted phrases"`.
- `-exclusions` and `|` alternatives.
- `@namespace` and `#tag` filters.
- `$tooltip` and `%creative tab` are not supported yet, pending access to the required data.
### Recipe & Usage Viewer
- Press **R** to view an item's recipes and **U** to view its uses.
- Works over the item panel and any slot in a container screen.
- Clicking an item in the panel opens the same views.
- Added recipe pages with dedicated tabs for:
- Crafting
- Furnace
- Blast Furnace
- Smoker
- Campfire
- Stonecutter
- Smithing
- Brewing
- Supports all five of the game's recipe layouts, including cooking time and XP.
- Added a **Back** button to navigate through viewing history.
- Clicking a recipe slot opens that item's recipes.
### Recipe Placement
- Added the **+** button to place recipes into the open crafting grid when the recipe book contains them.
- The button remains disabled until the recipe is available in the recipe book.
- Shift-click is not supported yet because the panel's action event does not expose modifier keys.
### Item Giving
- Added item giving through **Options → Mods → JEI** or `/jei give`.
- In creative mode, left-click gives one item and right-click gives a full stack.
- In survival mode, clicking an item opens its recipes instead.
### Localization & Diagnostics
- Added English and Spanish UI translations, configurable through the mod's **Language** setting.
- Item names are retrieved directly from the game and always respect the player's language.
- Added `/jei` to report the game's table sizes."""
+39
View File
@@ -0,0 +1,39 @@
id = "keystrokes"
kind = "native-mod"
name = "Keystrokes"
summary = "Your movement keys, mouse buttons and space bar in a corner, lit while held, with clicks per second."
description = """
Horizon's own keystrokes overlay, formerly an extra in Options > Horizon Extras.
- Forward, left, back and right as you bound them, the two mouse buttons and the space bar, lit while held.
- Clicks per second under each mouse button (can be turned off).
- Settings: Options > Mods > Keystrokes > Settings (corner; clicks per second).
It reads which keys you hold and your clicks, and draws on the HUD: nothing else.
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
(install it on the launcher's Mods page, then press Build there). Your settings carry over from 1.0.0. Turn it off in
Options > Mods: it rests at once, and the next build leaves it out. Its source is
[horizon-mods/native/keystrokes](https://github.com/horizon-rust/horizon-mods/tree/main/native/keystrokes).
"""
authors = ["Horizon"]
owners = ["ludovic111"]
owner_ids = [136255825]
license = "MIT"
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/keystrokes"
[[versions]]
version = "2.0.0"
published = "2026-10-29"
game = "26.3"
file = "keystrokes-2.0.0.hnmod"
sha256 = "bed34d2f8049e92c52cd7c91c0c4c8c9d165faaf0183500cf4021d9e04783a7d"
changelog = "Native: built into the game by the launcher on Horizon's native hook points; settings carry over; turn it off in Options > Mods."
[[versions]]
version = "1.0.0"
published = "2026-10-26"
game = "26.3"
file = "keystrokes-1.0.0.hmod"
sha256 = "fc7ab8fffba4d9df9da2b5aa84dd9ed33be4712fe65a0b518094f5feb64966d4"
changelog = "First release: the keystrokes extra as a mod, same look and options."
+35
View File
@@ -0,0 +1,35 @@
id = "killc"
kind = "native-mod"
owners = ["Vakarux12"]
owner_ids = [167799729]
key = "RWS5u/7lEyKbzVHC6uMJRlhM/N7vzKp5fZe2LCDUlHsDK4lvPupxJbqQ"
name = "KillC"
summary = "/killc, /killc <player> and /suicide, with an optional random respawn near (0, 0)."
description = """
A Horizon port of [adasjusk's KillC](https://github.com/adasjusk/KillC), the kill command plugin for Paper, Folia, Velocity and Fabric.
- `/killc` and `/suicide` kill you.
- `/killc <player>` kills another player (operator level 2).
- After a death in the Overworld, players respawn at a random surface spot within `randomSpawnRadius` of (0, 0).
- Config: `config/killc.json` (`enabled`, `useRandomSpawn`, `randomSpawnRadius`), the same file as the Fabric build.
Vanilla keeps `/kill`. Runs where the world is hosted: single player and worlds opened to LAN (Horizon's dedicated server cannot build native mods yet). Native mods run with the player's account permissions and are not sandboxed.
Source: `horizon/` in https://github.com/Vakarux12/KillC, a fork of the original. CC-BY-SA-4.0, the original's licence, with a grant for Horizon's reviewers in `horizon/REVIEW-GRANT.md`.
"""
authors = ["adasjusk", "Vakarux12"]
license = "CC-BY-SA-4.0"
source = "https://github.com/Vakarux12/KillC/tree/main/horizon"
[[versions]]
version = "5.1.0"
published = "2026-11-01"
game = "26.3"
file = "killc-5.1.0.hnmod"
sha256 = "6c44d0a5e93aef42f2a33df8286980d9957a04526ff2c1884dfe7aa83f837086"
signature = """
untrusted comment: signature from minisign secret key
RUS5u/7lEyKbzbHxeuREFeXgBYM6FjB/wiwBtmdu5na35k0DXINdt3FILWvtW7yDekrFYjn4Xrl5pv9ttijPbocgpNbqZpPqLgY=
trusted comment: timestamp:1793694719 file:killc-5.1.0.hnmod hashed
vC2AGwA5JYAw1yjFLScjYyy+ef03gA5lxE3mwpD/D6CqKRblrpIKtHacgjYViC714ob5w1fgXFPya8AobYmVBg=="""
changelog = "First Horizon release, ported from adasjusk's KillC."
+24
View File
@@ -0,0 +1,24 @@
id = "light_overlay"
kind = "native-mod"
name = "Light Overlay"
summary = "1:1 Light Overlay & MiniHUD (F7): visualizes mob-spawnable blocks with 3D Yellow (night spawn) and Red (always/cave spawn) crosses (X) or 3D light level numbers"
description = "A 1:1 native Rust port of Light Overlay and MiniHUD's F7 Light Level Overlay for Horizon. Press F7 during gameplay to scan nearby spawnable block surfaces and render depth-tested 3D markers directly on block tops. Red markers indicate blocks where hostile mobs can spawn at any time (caves/indoor darkness), Yellow markers indicate blocks where hostile mobs can spawn at night, and optional Green markers show safe blocks. Supports Crosses (X), 3D Numbers (0-15), or Both, with configurable scan radius (8 to 20 blocks) and Modern (== 0) or Legacy (<= 7) spawn thresholds."
authors = ["CayMac"]
owners = ["CayMac97"]
owner_ids = [197672048]
license = "MIT"
source = "https://github.com/CayMac97/light-overlay"
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "light_overlay-1.0.0.hnmod"
sha256 = "b4aeb56b13d9c73df267a1dc7b1f588f4db39bfd55f7beaef97a014fffb5b076"
signature = """
untrusted comment: signature from minisign secret key\r
RUS411U2KXdTNy4CWemZ33Twp2eJ5FybX79KHuEbkVXRfv1C8+lWasqO1vOdx2A+8oN9eTR9XIh+QKjjw6xwrkG1u2nDoYkk5ww=\r
trusted comment: timestamp:1793444149\tfile:light_overlay-1.0.0.hnmod\thashed\r
3mGbUejwekJoW98TqQVK9QKS0aXMamM9rfCVOEwot/Xq/ZbaT1kUdDJMo6mn0iJIeodvdAFd7TnDEoguj7jkCA=="""
changelog = "Initial release for 26.3 Horizon. "
+36
View File
@@ -0,0 +1,36 @@
id = "lookat"
kind = "native-mod"
name = "LookAt"
summary = "The block or mob under your crosshair as a vanilla tooltip: icon, name in your language, health, the tool it needs and where it comes from"
description = """
The block or entity under your crosshair at the top of the screen, drawn as a vanilla tooltip: its item's icon, its name in your language and the namespace it comes from.
- **Blocks**: up to 1024 blocks away, across distant terrain.
- **Mobs and players**: name and health as hearts or numbers; boats, minecarts, armor stands, paintings and item frames (with what they hold).
- **Harvest tool**: ✔ or ✘ with the tool a block needs.
**Settings** (Options → Mods → LookAt): range, position (top, top left, top right), size, background opacity, item icon, where it comes from, position and distance, entities, health, harvest tool. Boxes keep clear of F3, boss bars, the minimap and effect icons.
**Now a native mod (0.2.1)**: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's permissions, so read the source before you build it. Tested against Horizon `142388e1c136e622652ec7505af15d8ad195e041` with Horizon Mixins `0d6b103c70633d8fd9443d8d0acd3aadaacedb06`; the launcher builds these exact pinned revisions. Settings from 0.1.0 carry over."""
authors = ["d3grando"]
owners = ["d3grando"]
owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/lookat"
icon = "icons/lookat.png"
[[versions]]
version = "0.2.1"
published = "2026-10-29"
game = "26.3"
file = "lookat-0.2.1.hnmod"
sha256 = "6c15726116825b5955984223d0e1bccd5d18375005af243a061b2ba2b9139f33"
changelog = "Now a native mod (WebAssembly code mods are going away). New: mobs, players and other entities under the crosshair with their health, the harvest tool a block needs, a size setting, and boxes that keep clear of F3, boss bars, the minimap and effect icons. Pinned to Horizon 142388e and Horizon Mixins 0d6b103."
[[versions]]
version = "0.1.0"
published = "2026-10-28"
game = "26.3"
file = "lookat-0.1.0.hmod"
sha256 = "f3da841f96ffc4d43a636c4aa6503907281ed36cd8711c498447ef5402943970"
changelog = "First release."
+39
View File
@@ -0,0 +1,39 @@
id = "menu_panorama"
kind = "resourcepack"
name = "Menu Panorama"
summary = "Put your own wallpaper behind the main menu in Horizon — Minecraft 26.3, rewritten in Rust."
description = """
Menu Panorama is a resource pack for **Horizon** — Minecraft: Java Edition 26.3, rewritten from scratch in **Rust**.
It replaces the six textures of the main-menu background with a picture you choose. It is a plain resource pack, not a Java mod: no mod loader, no Java, and no code from the pack is executed. Horizon loads it natively.
- **Any photo** in the `room` mode: the picture is shown whole on the four walls, with mirrored seams and soft colours above and below.
- **A 360° equirectangular panorama** in the `360` mode: the sphere is cut into six cube faces, so the view stays seamless when the camera turns.
- **Auto** picks the mode from the image's aspect ratio.
Build a pack in the browser with `panorama-maker.html`: drop an image, choose a face size, download the `.zip`. Everything runs locally; the picture never leaves the computer. `make_panorama.py` does the same from the command line.
The pack only changes `assets/minecraft/textures/gui/title/background/panorama_0..5.png`; gameplay, sounds and other textures are untouched. `pack.mcmeta` is made for Horizon 26.3 (resource format 97) and also declares formats 15–999, so the same file loads in Minecraft Java 1.21+. A demo pack is attached to every release.
MIT licensed. Source, the browser generator and the CLI are in the repository."""
authors = ["form1t"]
owners = ["form1t"]
owner_ids = [230844871]
license = "MIT"
source = "https://github.com/form1t/menu-panorama"
icon = "icons/menu_panorama.png"
[[versions]]
version = "1.0.0"
published = "2026-10-31"
game = "26.3"
file = "menu_panorama-1.0.0.zip"
sha256 = "e0403b003e6c93dec683037202cebb47880025cfe21e2d8fc7818321ee362401"
changelog = """
First release.
- Demo sunset pack: six 1024×1024 faces and a 128×128 icon.
- `panorama-maker.html`: browser generator with drag & drop, auto/room/360 modes and 512/1024/2048 face sizes.
- `make_panorama.py`: CLI with the same modes, preview output and `--description`.
- `pack.mcmeta` for Horizon 26.3: resource format 97, `pack_format` 34, formats 15–999.
- MIT licence."""
+39
View File
@@ -0,0 +1,39 @@
id = "minimap"
kind = "native-mod"
name = "Minimap"
summary = "A map of the world around you in a corner of the screen."
description = """
Horizon's own minimap, formerly an extra in Options > Horizon Extras.
- A map of the land around you, drawn like a map item: vanilla's map colours with their height shading and water depth, and your arrow.
- Underground, under a roof and in the Nether it maps the floor around your height.
- Settings: Options > Mods > Minimap > Settings (corner; size; square or round; zoom, 0.5 to 4 blocks per pixel; turn with the player).
It shows a map in a corner of the screen: nothing else.
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
(install it on the launcher's Mods page, then press Build there). Your settings carry over from 1.0.0. Turn it off in
Options > Mods: it rests at once, and the next build leaves it out. Its source is
[horizon-mods/native/minimap](https://github.com/horizon-rust/horizon-mods/tree/main/native/minimap).
"""
authors = ["Horizon"]
owners = ["ludovic111"]
owner_ids = [136255825]
license = "MIT"
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/minimap"
[[versions]]
version = "2.0.0"
published = "2026-10-29"
game = "26.3"
file = "minimap-2.0.0.hnmod"
sha256 = "6f5dbca0699562b088a04b3f5abdc1b7faf8da51257a96da0a4ed639c6644ed9"
changelog = "Native: built into the game by the launcher on Horizon's native hook points; settings carry over; turn it off in Options > Mods."
[[versions]]
version = "1.0.0"
published = "2026-10-26"
game = "26.3"
file = "minimap-1.0.0.hmod"
sha256 = "2906eb2832f4e64075be2aa55da0829f40b2eccf26727951dd19d7607e9fe704"
changelog = "First release: the minimap extra as a mod, same look and options."
+30
View File
@@ -0,0 +1,30 @@
id = "mod_menu"
kind = "native-mod"
name = "Mod Menu"
summary = "ModMenu For Horizon"
description = """
Adds a Mods button next to Accessibility on the title screen. It opens a Mod Menu style screen that lists every mod you have installed, with its icon, name, version and description.
- Search by name, id or description, and filter by on, off, native or content mods.
- Pick a mod to see its details, turn it on or off, or open its own settings page.
- Open Mods Folder and Done at the bottom, as in the Java mod."""
authors = ["tariksabanuz"]
owners = ["tariksabanuz"]
owner_ids = [332662152]
license = "MIT"
source = "https://github.com/tariksabanuz/ModMenuHorizon"
icon = "https://raw.githubusercontent.com/tariksabanuz/ModMenuHorizon/caec7c4c3a2c6c7746a97d137ccf8f8904801e72/icon.png"
[[versions]]
version = "0.3.3"
published = "2026-11-05"
game = "26.3"
file = "mod_menu-0.3.3.hnmod"
sha256 = "657b0b6ce1f1ac44afa8d7410aa5b16ccf9b6a271024b4e5c1767fa377f98825"
[[versions]]
version = "0.3.0"
published = "2026-11-03"
game = "26.3"
file = "mod_menu-0.3.0.hnmod"
sha256 = "7896b3b5ad727ef6e2bc56039796713809483fb157daa385f78ebd3353d653bd"
+23
View File
@@ -0,0 +1,23 @@
id = "motion_blur"
kind = "native-mod"
name = "Motion Blur"
summary = "Blurs what moves: mobs, players, items and vehicles along their own motion, with optional camera blur."
description = """
Moving mobs, players, items, minecarts and boats blur along their own motion. The camera's motion (turning, walking) can blur too, and is off by default.
Each frame the mod works out every pixel's motion since the last frame (the world's from the depth buffer and the camera, entities from last frame's vertices), finds the largest motion near each tile, and gathers along it with depth-aware weights (McGuire et al., "A Reconstruction Filter for Plausible Motion Blur", 2012).
Settings are in Options → Mods → Motion Blur: strength for moving things and the camera, shutter angle or a fixed exposure, the longest blur, quality, blurring yourself in third person, and a view that shows each pixel's motion."""
authors = ["levzzz5154"]
owners = ["levzzz5154"]
owner_ids = [86072227]
license = "MIT"
source = "https://github.com/levzzz5154/horizon-motion-blur"
[[versions]]
version = "0.1.0"
published = "2026-11-02"
game = "26.3"
file = "motion_blur-0.1.0.hnmod"
sha256 = "4cdaa6369fffea8116b013edfc618358ca989f48ed65c83306d2102f0e506c47"
changelog = "First release, built against Nightly 2026-11-01: motion blur for moving mobs, players, items and vehicles, with optional camera blur."
+27
View File
@@ -0,0 +1,27 @@
id = "mousetricks"
kind = "native-mod"
name = "Mouse Tricks"
summary = "Inventory mouse tricks: drag to spread or gather, the wheel moves items one by one, and R sorts."
description = """
**A native Horizon mod**: the launcher builds it into the game (install it on the launcher's Mods page, then press Build there). Native mods are not sandboxed and run with your account's rights, so read the source before you build it. Pinned to Horizon 142388e and horizon-mixins 0d6b103.
- **Right-drag**: one item into each slot you pass.
- **Left-drag**: gather the same items; with Shift, quick-move many stacks.
- **Mouse wheel** over a slot: move items one at a time between your inventory and a container.
- **Sort** (R, or middle click on an empty spot): merges partial stacks and sorts the part under the mouse (a chest, or your main inventory; the hotbar only if you ask). Creative-tab order, by name or by count. Items with other names, enchantments or damage never merge; bundles stay put.
Everything goes through the game's own container clicks, so servers accept it. Each trick is a setting (Options → Mods → Mouse Tricks). Inspired by [Mouse Tweaks](https://modrinth.com/mod/mouse-tweaks); not affiliated, no code from it."""
authors = ["d3grando"]
owners = ["d3grando"]
owner_ids = [36463198]
license = "MIT"
source = "https://github.com/d3grando/mousetricks"
icon = "icons/mousetricks.png"
[[versions]]
version = "0.2.0"
published = "2026-10-29"
game = "26.3"
file = "mousetricks-0.2.0.hnmod"
sha256 = "48c60955371963f8e320a9efbe8285bb276d255c29178a8a021e7e2b47535cbe"
changelog = "First release."
+5
View File
@@ -0,0 +1,5 @@
id = "radiant"
kind = "shader"
repo = "expensiverest/radiant"
owners = ["expensiverest"]
owner_ids = [281485024]
+43
View File
@@ -0,0 +1,43 @@
id = "recipes"
kind = "native-mod"
name = "Recipes"
summary = "Every item beside your inventory, with its recipes and uses."
description = """
Horizon's own recipe viewer.
- Every item sits in a panel beside your inventory and container screens, with a search box: words in the name or the id, `@minecraft` for a namespace, `#logs` for a tag.
- R over an item (in the panel, in any slot, or in a recipe) shows its recipes, and U shows its uses. A click does the same: a left click for recipes, a right click for uses. Both keys can be rebound in Controls.
- Recipes have a tab for each station: crafting table, furnace, blast furnace, smoker, campfire, stonecutter, smithing table and brewing stand. Back returns through the pages you opened.
- + beside a crafting recipe you know fills the crafting grid, as the recipe book does.
- In creative mode, turn on "Click gives items" in its settings: a click on an item in the panel then gives you one, and a right click gives a stack.
- On servers that are not Horizon, it shows this game's own 26.3 recipes. Which recipes you know, and what + can fill, follow the server's recipe book.
It reads the game's items and recipes, hears its own keys and your clicks on the panel, and places recipes or gives items only when you ask: nothing else.
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
(install it on the launcher's Mods page, then press Build there). It needs Horizon's native hook points version 2, in the
Nightlies from 4baa571 on. Your settings and keys carry over from 1.0.0. Turn it off in Options > Mods: it rests at
once, and the next build leaves it out. Its source is
[horizon-mods/native/recipes](https://github.com/horizon-rust/horizon-mods/tree/main/native/recipes).
"""
authors = ["Horizon"]
owners = ["ludovic111"]
owner_ids = [136255825]
license = "MIT"
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/recipes"
[[versions]]
version = "2.0.0"
published = "2026-10-29"
game = "26.3"
file = "recipes-2.0.0.hnmod"
sha256 = "51fddf300709404170061355afdf0b407f28eb928bcc0a9133c241cd63f4a0ed"
changelog = "Native: built into the game by the launcher on Horizon's native hook points (version 2); settings and keys carry over; turn it off in Options > Mods."
[[versions]]
version = "1.0.0"
published = "2026-10-26"
game = "26.3"
file = "recipes-1.0.0.hmod"
sha256 = "d393b6f0061377113eeb3bfd710dbf68f564de1c2949da694c8e4de1b6b983c6"
changelog = "First release: search, recipes and uses (R/U), station tabs, filling the grid, and giving items in creative mode."
+39
View File
@@ -0,0 +1,39 @@
id = "resourcify"
kind = "native-mod"
name = "ResourcifyHorizon"
summary = "Resourcify for Horizon"
description = """
Find and install resource packs from Modrinth without leaving the game. By tariksabanuz.
A **+** button appears in the top right of the Resource Packs screen. It opens a browser with:
- a search box that searches while you type, a sort button (Relevance, Downloads, Newest, Updated) and a switch between "for this game version" and "all versions";
- a list of packs with pictures, authors and download counts, loaded as you scroll;
- a detail pane with the versions of the selected pack and an **Install** button.
Installing downloads the file from Modrinth's own server (`cdn.modrinth.com` only), checks it against the SHA-1 hash Modrinth provides, and saves it in `resourcepacks/`. Nothing is turned on for you.
Source code: https://github.com/tariksabanuz/ResourcifyHorizon"""
authors = ["tariksabanuz"]
owners = ["tariksabanuz"]
owner_ids = [332662152]
license = "MIT"
source = "https://github.com/tariksabanuz/ResourcifyHorizon"
icon = "https://github.com/tariksabanuz/ResourcifyHorizon/blob/364648324ac0e67489a3f06faa716d96d24668ed/icon.png"
[[versions]]
version = "0.1.1"
published = "2026-11-04"
game = "26.3"
file = "resourcify-0.1.1.hnmod"
sha256 = "a6611819c9401dc7370dece7453cdda2356747f2a34c32940bf82ccd6abdcf53"
changelog = """
- Version 0.1.1.
- Rebuilt and re-checked against the current Horizon revision."""
[[versions]]
version = "0.1.0"
published = "2026-11-03"
game = "26.3"
file = "resourcify-0.1.0.hnmod"
sha256 = "789447fb454864af2a711ad8204f395331248d70dba570016b248766b959a2a2"
Loaded 100 of 276 files, more files were not shown because too many files have changed in this diff. Show more