Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96c7c46e41 | ||
|
|
09f69374d9 | ||
|
|
4e8a65e584 | ||
|
|
bba4bda2d7 | ||
|
|
6263473f81 | ||
|
|
1fc4bd47d5 | ||
|
|
7558c0945c | ||
|
|
467b17bf38 | ||
|
|
3d113f473a | ||
|
|
792fa822f4 | ||
|
|
7b65e9b10f | ||
|
|
cd1f1c3970 | ||
|
|
be266234cb | ||
|
|
cf1f608745 | ||
|
|
f1f5aba33a | ||
|
|
0062a1e27a | ||
|
|
e79b92ff2c | ||
|
|
ce14e90beb | ||
|
|
93b3f04390 | ||
|
|
bc40e7bafe | ||
|
|
5628be3e6b | ||
|
|
58fbad4a85 | ||
|
|
7645804495 | ||
|
|
e5d840dabf | ||
|
|
b22a9c42a3 | ||
|
|
6ab145fce5 | ||
|
|
c240394cde | ||
|
|
d57056b937 | ||
|
|
245ab9b4f6 | ||
|
|
61e99d5df7 | ||
|
|
59f2388a0f | ||
|
|
5b0ae21c96 | ||
|
|
097ccd28b0 | ||
|
|
31d77513fe | ||
|
|
5ba617927f | ||
|
|
7257e32237 | ||
|
|
18102bf315 | ||
|
|
7ec0a0516d | ||
|
|
c3839da0ef | ||
|
|
2f677e9337 | ||
|
|
8295b4c1ef | ||
|
|
cacc3360e0 | ||
|
|
964325b819 | ||
|
|
9ce6a3f9a0 | ||
|
|
693205032b | ||
|
|
e8b243b60d | ||
|
|
409cac606e | ||
|
|
d4463c5a82 | ||
|
|
e001cceadd | ||
|
|
2b62bd35d9 | ||
|
|
219c9302d9 | ||
|
|
e9f25bb1d7 | ||
|
|
bb97027039 | ||
|
|
27bfc9da13 | ||
|
|
fa61a38111 | ||
|
|
169ac59750 | ||
|
|
7c850a3056 | ||
|
|
e3ee0a7c45 | ||
|
|
3f115b7e06 | ||
|
|
a864f877ec | ||
|
|
41874a0e0c | ||
|
|
48ed3ea061 | ||
|
|
8e5a70b52b | ||
|
|
d31c2d7992 | ||
|
|
9f691e7e83 | ||
|
|
c5d504a734 | ||
|
|
6c2a827c34 | ||
|
|
90f06bd473 | ||
|
|
3395149802 | ||
|
|
3fc6964447 | ||
|
|
3749d679bd | ||
|
|
d933c333e6 | ||
|
|
c86a73887a | ||
|
|
83c4269800 | ||
|
|
89d90c3376 | ||
|
|
6b71454d1b | ||
|
|
57f7902809 | ||
|
|
7c2b9f3b80 | ||
|
|
2a4307638f | ||
|
|
5108050b31 | ||
|
|
706f3a6cb1 | ||
|
|
6d05ae816f | ||
|
|
f5487d5b08 | ||
|
|
4ede2e8aa7 | ||
|
|
9e1a2b70a8 | ||
|
|
969533780c | ||
|
|
31e019dff8 | ||
|
|
cccfc99d37 | ||
|
|
9c12738fb0 | ||
|
|
6d9e3a2064 | ||
|
|
9f7346e2e5 | ||
|
|
a04b258daf | ||
|
|
1b4ab4efe8 | ||
|
|
0eee668de4 | ||
|
|
a5fdef87fb | ||
|
|
44fa384ad6 | ||
|
|
f25ae007a7 | ||
|
|
181b9af7de | ||
|
|
c6c309d01b | ||
|
|
a258ef03d9 | ||
|
|
acf5d8896a | ||
|
|
4dcb8fed29 | ||
|
|
f56752d74f | ||
|
|
455a8b800f | ||
|
|
238d9cd1f4 | ||
|
|
ddab3fa269 | ||
|
|
a301fcc469 | ||
|
|
c1ce388d41 | ||
|
|
8bbf748e1f | ||
|
|
50c23cb7d9 | ||
|
|
8d5c1ed7a3 | ||
|
|
b6c1af58cd | ||
|
|
3cf1b6aa8f | ||
|
|
a11db16db3 | ||
|
|
dca26bf044 | ||
|
|
95b8f15c6b | ||
|
|
be6b796a20 | ||
|
|
90e26686bd | ||
|
|
2cd564f16b | ||
|
|
c64087836d | ||
|
|
40f3d42984 | ||
|
|
9a7b8a0ffc | ||
|
|
b571298b58 | ||
|
|
fefd3e8c6b | ||
|
|
4364dbfba3 | ||
|
|
8c837ede87 | ||
|
|
36b3c994e6 | ||
|
|
1ab3acaf70 | ||
|
|
ca4f82c665 | ||
|
|
bcf749c4d8 | ||
|
|
ff69e902c8 | ||
|
|
97170b869d | ||
|
|
e09a094d25 | ||
|
|
c5ba9aaf03 | ||
|
|
f7709827f6 | ||
|
|
72250afe73 | ||
|
|
602a58cfd1 | ||
|
|
f8a41e6c8b | ||
|
|
5495b461fd | ||
|
|
d1e80f8485 | ||
|
|
65aaaafe56 | ||
|
|
634fc6cb7a | ||
|
|
fb9a47061c | ||
|
|
0cebbbfad8 | ||
|
|
52069c3e49 | ||
|
|
8479dec66f | ||
|
|
f489d26358 | ||
|
|
4904b24c69 | ||
|
|
38421f5a8d | ||
|
|
3488a88696 | ||
|
|
2708b6a02f | ||
|
|
aaf6ccefcc | ||
|
|
b0e3d98b52 | ||
|
|
803907aaa5 | ||
|
|
ec056f9f02 | ||
|
|
63f2fa9f01 | ||
|
|
1ec378ac96 | ||
|
|
04c0ee173a | ||
|
|
3516095141 | ||
|
|
0eb6ca75c3 | ||
|
|
26079e71ed | ||
|
|
7d2b14f53e | ||
|
|
b9bd159dcf | ||
|
|
52980b81e0 | ||
|
|
4fbe64e376 | ||
|
|
5aacb47cd4 | ||
|
|
ff18bb42d5 | ||
|
|
9121109717 | ||
|
|
0faf62da1c | ||
|
|
5b03ea2d0c | ||
|
|
5dad8648b3 | ||
|
|
7f1bb6920b | ||
|
|
7bd4f6207b | ||
|
|
1d4cb83ca2 | ||
|
|
37f573d08f | ||
|
|
847fd2dcbe | ||
|
|
2c41bdf9fd | ||
|
|
7704c01acf | ||
|
|
c2f369fb2e | ||
|
|
c13658c430 | ||
|
|
5c1b79862e | ||
|
|
8366f89925 | ||
|
|
2917b77de1 | ||
|
|
b75251443c | ||
|
|
5d26a0bde3 | ||
|
|
7339aa2992 | ||
|
|
0096a8a835 | ||
|
|
5728b12cbb | ||
|
|
830bc7884b | ||
|
|
7e795012ed | ||
|
|
666479ad05 | ||
|
|
b498e0a5fc | ||
|
|
ebcadb8dd6 | ||
|
|
b1ad307e93 | ||
|
|
395b1422e0 | ||
|
|
1910ab8709 | ||
|
|
08ca24a176 | ||
|
|
b27aeaa93f | ||
|
|
ae217daafd | ||
|
|
d6501160e1 | ||
|
|
c3669e5412 | ||
|
|
0e7ed706b6 | ||
|
|
678eb2d1af | ||
|
|
55e203b1cd | ||
|
|
e9f14ea77f | ||
|
|
190d8f9a60 | ||
|
|
bbe01b52ad | ||
|
|
0d8411b352 | ||
|
|
890d330600 | ||
|
|
7fd746624a | ||
|
|
7ce014f8a9 | ||
|
|
e62054006e | ||
|
|
b956bda63b | ||
|
|
ce12d21fe3 | ||
|
|
34f8420003 | ||
|
|
ed256db6f7 | ||
|
|
4fb24a8263 | ||
|
|
2cc76d1dc5 | ||
|
|
ef5c5fe50b | ||
|
|
c1c783574c | ||
|
|
4b3311b800 | ||
|
|
b022d5b14f | ||
|
|
3a8c438ec5 | ||
|
|
adea72cbdf | ||
|
|
bc79048b9a | ||
|
|
f6dade0df2 | ||
|
|
fb9ab126f7 | ||
|
|
4d975b9813 | ||
|
|
e7a95dcbef | ||
|
|
266b6039d4 | ||
|
|
22c6f14ea6 | ||
|
|
0f556b3a89 | ||
|
|
d6a1ddd703 | ||
|
|
f539b5a584 | ||
|
|
b07b1fdef0 | ||
|
|
b6a69cc40e | ||
|
|
bf91022ab9 | ||
|
|
876f7d1dc7 | ||
|
|
415352eed1 | ||
|
|
c444610bb8 | ||
|
|
c3c335bcca | ||
|
|
9dbee00d1f | ||
|
|
d86ecb6c4f | ||
|
|
2a04908a1a | ||
|
|
1c69d4ffc9 | ||
|
|
5cfb57fa2c | ||
|
|
a683d6c60f | ||
|
|
d4beb82c4c | ||
|
|
1a48aa24dc | ||
|
|
59ab4e8fe2 | ||
|
|
6ca0d02406 | ||
|
|
3448e187ca | ||
|
|
d1fed6cd56 | ||
|
|
647fa375e6 | ||
|
|
e1aa98d1ed | ||
|
|
815bdc50f7 | ||
|
|
28c8bf4684 | ||
|
|
8eadd70568 | ||
|
|
25fb233630 | ||
|
|
7dfe89f942 | ||
|
|
bcc5317bac | ||
|
|
b66cfbbee9 | ||
|
|
9b51200853 | ||
|
|
d8c85d1484 | ||
|
|
d96322f963 | ||
|
|
006ca9fa3c | ||
|
|
3cbaffd145 | ||
|
|
38890426e1 | ||
|
|
645ea37852 | ||
|
|
3d4b3488bb | ||
|
|
f64dc8688a | ||
|
|
3b73fc7a62 | ||
|
|
8bcff08bf2 | ||
|
|
53564d9cfe | ||
|
|
2181eec3ce | ||
|
|
98f8ab5da3 | ||
|
|
efe164dd3e | ||
|
|
b19da5d805 | ||
|
|
5b42b91bd8 | ||
|
|
69290f7c42 | ||
|
|
d05cb8cb56 | ||
|
|
81b7ac9bdf | ||
|
|
a222e3d816 | ||
|
|
74c7d6d7bd | ||
|
|
0895ef6b5c | ||
|
|
52e1f7d0f9 |
No files matched your search
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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).
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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"}
|
||||
@@ -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
|
||||
@@ -1,3 +1,5 @@
|
||||
/files/
|
||||
/site/
|
||||
/bootstrap/
|
||||
/native/target/
|
||||
/native/*/target/
|
||||
@@ -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.
|
||||
@@ -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).
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 543 B |
|
After Width: | Height: | Size: 975 B |
|
After Width: | Height: | Size: 336 B |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 855 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 644 B |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 140 KiB |
@@ -0,0 +1,31 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,58 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,29 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,30 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,32 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,73 @@
|
||||
id = "basic_hud"
|
||||
kind = "native-mod"
|
||||
name = "The Basic HUD"
|
||||
summary = "A visual HUD editor with movable widgets, FPS, coordinates, effect timers, cooldowns, mini armour and a customizable Tab list."
|
||||
description = """
|
||||

|
||||
|
||||
## Your HUD, your layout
|
||||
|
||||
Arrange 13 independent widgets directly over the game. Drag, resize and style each block with colours, opacity, padding and shadows. Use full labels or compact icons with useful values such as ×16 and 1:45.
|
||||
|
||||
Includes effects, consumables, durability, observed totem uses, available player-health data, item cooldowns, coordinates, FPS, ping, optional speed/CPS/clock, and mini armour next to the hotbar. Customize the Tab list with coloured numeric ping, bars, counts, sorting, scale and opacity.
|
||||
|
||||
Ten interface languages plus Auto. A short first-visit guide can be replayed through ?. Reset requires confirmation; leaving unsaved edits offers Save / Discard changes / Stay. Failed writes retain the draft.
|
||||
|
||||
## Install and compatibility
|
||||
|
||||
Native .hnmod for Minecraft 26.3, pinned to Horizon **68ac6f647e7022b2c696e81863d7cface28c9416**. Install through the launcher and select **Performance**. Dev can overflow the startup stack on this Windows baseline. Other Nightlies require separate verification.
|
||||
|
||||
Client-side only. Unknown player health remains unknown, unseen totem uses cannot be counted and server-plugin-only timers are unavailable. No server mod is required. No FPS improvement is promised. Native mods compile into the game and run with the player’s rights, without a sandbox. Tested on Windows; other platforms were not tested.
|
||||
|
||||
## Other languages
|
||||
|
||||
**Русский:** редактор поверх игры, размер и оформление каждого блока, значки с числами, FPS, координаты, кулдауны, мини-броня и настройка Tab. Обучение один раз; подтверждение сброса и выхода с правками.
|
||||
|
||||
**Українська:** редактор поверх гри, розмір і стиль кожного віджета, значки зі значеннями, FPS, координати, час відновлення, мініброня та налаштування Tab. Навчання під час першого входу й захист незбережених змін.
|
||||
|
||||
**Deutsch:** Editor direkt im Spiel, frei verschiebbare und skalierbare Widgets, Symbole mit Werten, FPS, Koordinaten, Abklingzeiten, Rüstungsanzeige und anpassbare Tab-Liste. Einführung beim ersten Besuch und Schutz ungespeicherter Änderungen.
|
||||
|
||||
**Français :** éditeur superposé au jeu, widgets déplaçables et redimensionnables, icônes avec valeurs, FPS, coordonnées, délais de récupération, petite vue de l’armure et liste Tab personnalisable. Tutoriel initial et protection des modifications non enregistrées.
|
||||
|
||||
**Español:** editor superpuesto al juego, widgets movibles y ajustables, iconos con valores, FPS, coordenadas, tiempos de recarga, vista pequeña de la armadura y lista Tab personalizable. Tutorial inicial y protección de cambios sin guardar.
|
||||
|
||||
[Full update notes in six languages](https://github.com/repositorykreml1n/the-basic-hud/blob/main/CHANGELOG.md)
|
||||
|
||||
MIT. Not an official Horizon, Mojang or Microsoft product. Cover is a generated promotional illustration, not a gameplay screenshot or measured FPS claim."""
|
||||
authors = ["repositorykreml1n"]
|
||||
owners = ["repositorykreml1n"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/repositorykreml1n/the-basic-hud"
|
||||
icon = "https://raw.githubusercontent.com/repositorykreml1n/the-basic-hud/main/icon.png"
|
||||
|
||||
[[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."
|
||||
@@ -0,0 +1,27 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,42 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,28 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,23 @@
|
||||
id = "chatheads"
|
||||
kind = "native-mod"
|
||||
name = "ChatHeads"
|
||||
summary = "A player's head left of every chat line they wrote."
|
||||
description = """
|
||||
Each chat line from a player gets their 8x8 skin face in the strip to its left, like the Chat Heads Java mod. Lines without a player (system messages, /me, wrapped continuations) stay as they are; the face fades with its line.
|
||||
|
||||
Settings: Options > Mods > ChatHeads > Settings (on or off).
|
||||
|
||||
Known limit: the chat's hit-test does not know about the 10 px indent, so clicking a link in chat lands 10 px left of its pixels."""
|
||||
authors = ["Domanffe"]
|
||||
owners = ["Domanffe"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/Domanffe/chatheads"
|
||||
icon = "https://horizon-rust.github.io/horizon-mods/icons/chatheads.png"
|
||||
|
||||
[[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."
|
||||
@@ -0,0 +1,41 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,77 @@
|
||||
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"]
|
||||
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."""
|
||||
@@ -0,0 +1,39 @@
|
||||
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"]
|
||||
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"""
|
||||
@@ -0,0 +1,39 @@
|
||||
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"]
|
||||
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`."
|
||||
@@ -0,0 +1,33 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,41 @@
|
||||
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"]
|
||||
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."""
|
||||
@@ -0,0 +1,33 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,46 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,26 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,34 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,24 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,23 @@
|
||||
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"]
|
||||
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"
|
||||
@@ -0,0 +1,38 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,23 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,27 @@
|
||||
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"]
|
||||
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. "
|
||||
@@ -0,0 +1,19 @@
|
||||
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"]
|
||||
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"
|
||||
@@ -0,0 +1,29 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,29 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,25 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,38 @@
|
||||
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"]
|
||||
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."""
|
||||
@@ -0,0 +1,64 @@
|
||||
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.
|
||||
- **Placement:** move, rotate, mirror; a move mode for mouse wheel and arrow keys. Each placement is remembered per world and dimension and restored when you join again.
|
||||
- **Material list:** missing, total and carried, with item icons, in the HUD, in chat or in the menu.
|
||||
- **Menu (M):** a screen of its own, drawn with the game's widgets.
|
||||
- **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** nothing itself: 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 (on 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-01, `4aa6854`). 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"]
|
||||
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.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)."""
|
||||
@@ -0,0 +1,23 @@
|
||||
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"]
|
||||
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. "
|
||||
@@ -0,0 +1,39 @@
|
||||
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"]
|
||||
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 "
|
||||
@@ -0,0 +1,26 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,96 @@
|
||||
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"]
|
||||
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."""
|
||||
@@ -0,0 +1,38 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,23 @@
|
||||
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"]
|
||||
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. "
|
||||
@@ -0,0 +1,35 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,38 @@
|
||||
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"]
|
||||
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."""
|
||||
@@ -0,0 +1,38 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,22 @@
|
||||
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"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/tariksabanuz/ModMenuHorizon"
|
||||
icon = "https://raw.githubusercontent.com/tariksabanuz/ModMenuHorizon/main/icon.png"
|
||||
|
||||
[[versions]]
|
||||
version = "0.3.0"
|
||||
published = "2026-11-03"
|
||||
game = "26.3"
|
||||
file = "mod_menu-0.3.0.hnmod"
|
||||
sha256 = "7896b3b5ad727ef6e2bc56039796713809483fb157daa385f78ebd3353d653bd"
|
||||
@@ -0,0 +1,22 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,26 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,4 @@
|
||||
id = "radiant"
|
||||
kind = "shader"
|
||||
repo = "expensiverest/radiant"
|
||||
owners = ["expensiverest"]
|
||||
@@ -0,0 +1,42 @@
|
||||
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"]
|
||||
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."
|
||||
@@ -0,0 +1,24 @@
|
||||
id = "resourcify"
|
||||
kind = "native-mod"
|
||||
name = "Resourcify"
|
||||
summary = "Download resource packs in Horizon"
|
||||
description = """
|
||||
Resourcify lets you browse and download resource packs without ever leaving Horizon.
|
||||
|
||||
Features:
|
||||
- Browse resource packs right inside the game
|
||||
- One-click download and install
|
||||
- Search to find the pack you want quickly
|
||||
- Native Horizon mod, fast and lightweight"""
|
||||
authors = ["tariksabanuz"]
|
||||
owners = ["tariksabanuz"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/tariksabanuz/ResourcifyHorizon"
|
||||
icon = "https://github.com/tariksabanuz/ResourcifyHorizon/blob/364648324ac0e67489a3f06faa716d96d24668ed/icon.png"
|
||||
|
||||
[[versions]]
|
||||
version = "0.1.0"
|
||||
published = "2026-11-03"
|
||||
game = "26.3"
|
||||
file = "resourcify-0.1.0.hnmod"
|
||||
sha256 = "789447fb454864af2a711ad8204f395331248d70dba570016b248766b959a2a2"
|
||||
@@ -0,0 +1,26 @@
|
||||
id = "rightharvest"
|
||||
kind = "native-mod"
|
||||
name = "RightClickHarvest"
|
||||
summary = "Right-click a ripe crop to pick it and sow it again."
|
||||
description = "With an empty hand, right-click a ripe wheat, carrot, potato, beetroot or nether wart: the crop is harvested with the game's own drops, sound and statistics, and sown again from a seed in your inventory."
|
||||
authors = ["Domanffe"]
|
||||
owners = ["Domanffe"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/Domanffe/rightharvest"
|
||||
icon = "https://horizon-rust.github.io/horizon-mods/icons/rightharvest.png"
|
||||
|
||||
[[versions]]
|
||||
version = "0.1.1"
|
||||
published = "2026-11-02"
|
||||
game = "26.3"
|
||||
file = "rightharvest-0.1.1.hnmod"
|
||||
sha256 = "2f70f3a5abaca35f1ff8df7b198f0fd616eacaa5229f5113f75935e16f50255b"
|
||||
changelog = "Rebuilt on the 2026-11-01 Nightly (Horizon `4aa6854`); the `mods` hook is named instead of pinned to a source target, so it survives an update that moves that point."
|
||||
|
||||
[[versions]]
|
||||
version = "0.1.0"
|
||||
published = "2026-10-30"
|
||||
game = "26.3"
|
||||
file = "rightharvest-0.1.0.hnmod"
|
||||
sha256 = "a43870a89827c1d0fa861a663aa1781819b236f994191abf971c98125a3a4653"
|
||||
changelog = "First release: a native mod for Horizon 26.3. With an empty hand, right-click a ripe crop to harvest it with the game's own drops and sow it again from a seed you carry."
|
||||
@@ -0,0 +1,56 @@
|
||||
id = "serverify"
|
||||
kind = "native-mod"
|
||||
name = "Serverify"
|
||||
summary = "Find Minecraft servers and add them to your Multiplayer list, from a page in your web browser."
|
||||
description = """
|
||||
Serverify is a server browser. Press **F8** (or type `/serverify web`, or press the button on the mod's settings page) and your web browser opens a page with a search box, a category menu and cards showing each server's picture, address, player count and country. Press **Add** and the server goes to the top of your Multiplayer list. Then join it from Horizon's own Multiplayer screen.
|
||||
|
||||
It is the Horizon version of [Serverify](https://github.com/Louchatfroff/serverify), the server browser for Fabric, Quilt, Forge and NeoForge, by the same author.
|
||||
|
||||
## What it does
|
||||
|
||||
- Opens a server browser page in your web browser: search, 22 categories, an offline-mode filter and an **Add** button.
|
||||
- Adds servers to `servers.dat` in the game folder, with the name cleaned of colour codes.
|
||||
- Adds chat commands: `/serverify web`, `list [category]`, `search <words>`, `next`, `prev`, `add <number>` and `categories`.
|
||||
- Adds a row in Options > Mods with a rebindable key (F8 by default) and a settings page with two buttons: open the browser, and **Offline-mode servers only** (on by default).
|
||||
|
||||
Horizon cannot join servers that check Minecraft accounts yet, which is most public servers, so by default the page shows servers that accept offline-mode players. Turn the filter off to see all of them.
|
||||
|
||||
## What it contacts
|
||||
|
||||
- **Modrinth.** The game asks `api.modrinth.com` for the server list and `cdn.modrinth.com` for server pictures, only when you look for servers.
|
||||
- **Three listing sites.** With the offline-mode filter off (and for top-mc-servers.net's list of cracked servers when it is on), the game fetches public pages of `top-mc-servers.net`, `minecraftservers.org` and `minecraft-mp.com`, and their server pictures. The game builds those addresses itself. The page reads the fetched pages with the browser's own HTML parser.
|
||||
- **A page on your computer.** The first time you open the page, the mod starts a small web server on `127.0.0.1` (this computer only, never the network) with a random secret in its address, made for each session. The page talks only to that server. A request with another host name, another origin or no secret is refused. The server can show the list, send a picture and add one server to your Multiplayer list.
|
||||
- It sends no data about you, and makes no request at any other time.
|
||||
|
||||
## What it does not do
|
||||
|
||||
- It does not run any code from the sites it reads, and it does not send your data anywhere.
|
||||
- It does not change anything but `servers.dat` (one entry at a time) and its own settings in `horizon-mods/.horizon-mod-data/serverify/`.
|
||||
- It does not draw screens or buttons in the game: Horizon's hook points have none, so the screen is your web browser.
|
||||
- It cannot make Horizon join servers that check Minecraft accounts.
|
||||
- Adding a server rewrites `servers.dat`, which drops the hidden direct-join entries Horizon keeps. Your saved servers stay.
|
||||
|
||||
## Install
|
||||
|
||||
Install it from the launcher's Mods page, then press Build there, and play that instance. Guide: https://github.com/Louchatfroff/serverify/tree/main/horizon/serverify#readme
|
||||
|
||||
Native mods are not sandboxed. The source is public and licensed GPL-3.0-only: https://github.com/Louchatfroff/serverify/tree/main/horizon/serverify"""
|
||||
authors = ["Louchatfroff"]
|
||||
owners = ["Louchatfroff"]
|
||||
license = "GPL-3.0-only"
|
||||
source = "https://github.com/Louchatfroff/serverify"
|
||||
icon = "icons/serverify.png"
|
||||
|
||||
[[versions]]
|
||||
version = "0.1.0"
|
||||
published = "2026-10-30"
|
||||
game = "26.3"
|
||||
file = "serverify-0.1.0.hnmod"
|
||||
sha256 = "f9ad0777f8fc7ea532f799da8a9eb72df2348c8d6bb5dc104f81b6ab47209501"
|
||||
changelog = """
|
||||
First release for Horizon, ported from the Java Edition mod of the same name.
|
||||
|
||||
- A server browser page in your web browser (F8, `/serverify web`, or the settings button).
|
||||
- Chat commands to list, search and add servers.
|
||||
- An offline-mode filter, on by default, because Horizon cannot join servers that check Minecraft accounts yet."""
|
||||
@@ -0,0 +1,31 @@
|
||||
id = "shulker_peek"
|
||||
kind = "native-mod"
|
||||
name = "ShulkerPeek"
|
||||
summary = "A shulker box's contents as a 9 x 3 grid in its tooltip."
|
||||
description = """
|
||||
Hover a shulker box to see what's inside: its 27 slots appear as a 9 x 3 grid right in the tooltip, laid out exactly like the box's own screen, with item icons and stack counts.
|
||||
|
||||
- Works with the plain shulker box and all 16 dyed ones, whether empty, partly filled or full.
|
||||
- Works on every screen with item tooltips: your inventory, chests and other containers, the creative inventory, the item panel, chat item links and trading.
|
||||
- Keeps the tooltip's usual lines (name, lore, "64 x Diamond"...); the grid goes underneath.
|
||||
- Respects hidden tooltips: a box whose `minecraft:tooltip_display` hides its contents stays hidden.
|
||||
- Settings in Options > Mods > ShulkerPeek > Settings: show the grid always or only while holding Shift, show a grid for empty boxes, and tint the grid with the box's dye colour.
|
||||
- Uses your resource pack's own shulker box texture.
|
||||
|
||||
Works in single player and on LAN worlds you host. Horizon currently leaves a box's contents out of what its built-in server sends to the game window, which is why even the "64 x Diamond" lines are missing there. ShulkerPeek sends the contents the way a vanilla server does. On vanilla servers the grid works too; on other Horizon servers without the mod, boxes look empty.
|
||||
|
||||
It never changes items, inventories or worlds. Turn it off any time in Options > Mods.
|
||||
|
||||
This is a native mod built for Horizon Nightly 2026-10-29 (`5e391eb`). It builds together with Horizon's official native mods (FPS Counter, Zoom, Minimap, Recipes and others)."""
|
||||
authors = ["vstxx"]
|
||||
owners = ["vstxx"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/vstxx/shulkerpeek"
|
||||
icon = "icons/shulker_peek.png"
|
||||
|
||||
[[versions]]
|
||||
version = "0.1.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "shulker_peek-0.1.0.hnmod"
|
||||
sha256 = "e4e33cb698d91042b2ed2f93a1c935f279d16d83988115d53c0f33530cabeab5"
|
||||
@@ -0,0 +1,27 @@
|
||||
id = "smartf3"
|
||||
kind = "native-mod"
|
||||
name = "SmartF3"
|
||||
summary = "A tidier, configurable F3 debug screen: the same information in modules you can colour, reorder and turn off."
|
||||
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.
|
||||
|
||||
The F3 debug screen, grouped into 14 modules: FPS, server, coordinates, chunk, facing, world, biome, light, chart keys, system, rendering, and the targeted block, fluid and entity.
|
||||
|
||||
- Each module: on/off, label and value colours, left or right column, order.
|
||||
- Text shadow, background (vanilla, dark, none), gap between modules, compact layout.
|
||||
- The vanilla F3 is one click (or `/smartf3 off`) away; the F3 charts and keys work as in vanilla.
|
||||
|
||||
Settings: Options → Mods → SmartF3. Inspired by [BetterF3](https://modrinth.com/mod/betterf3); not affiliated, no code from it."""
|
||||
authors = ["d3grando"]
|
||||
owners = ["d3grando"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/d3grando/smartf3"
|
||||
icon = "icons/smartf3.png"
|
||||
|
||||
[[versions]]
|
||||
version = "0.1.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "smartf3-0.1.0.hnmod"
|
||||
sha256 = "666fc77a12411c8b525dca3d3d478595e760b73c48b62b936fb6026419547929"
|
||||
changelog = "First release."
|
||||
@@ -0,0 +1,23 @@
|
||||
id = "status_effect_hud"
|
||||
kind = "native-mod"
|
||||
name = "Status Effect HUD"
|
||||
summary = "1:1 Status Effect Bars & Inventory HUD+ Potion HUD: displays active potion/beacon effects with icons, Roman numeral amplifiers, color-coded mm:ss countdown time"
|
||||
description = "A 1:1 native Rust port of Status Effect Bars and Inventory HUD+ (Potion HUD) for Horizon. Renders all active potion and beacon status effects directly on the HUD during gameplay with their official mob_effect sprites, translated effect names, and Roman numeral potency levels (II, III, IV). Includes color-coded mm:ss countdown timers (White for >30s, Yellow for 10-30s, Flashing Red for <=10s urgent expiration warning, and Aqua infinity symbol for permanent effects) alongside smooth duration progress bars colored in each effect's authentic vanilla potion color."
|
||||
authors = ["CayMac"]
|
||||
owners = ["CayMac97"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/CayMac97/status-effect-hud"
|
||||
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
published = "2026-10-31"
|
||||
game = "26.3"
|
||||
file = "status_effect_hud-1.0.0.hnmod"
|
||||
sha256 = "afa30125bb8b402892f1719e550b66d4eb4d7264895f71bb9c98a4caf5c7b432"
|
||||
signature = """
|
||||
untrusted comment: signature from minisign secret key\r
|
||||
RUS411U2KXdTNzV+wcfmnupP9b3ECNs7/D2jW8vAV9eAd1rxLpETdSVxvuPpnbTPB/W9APouT8uLbsZLrB9wFsOoBtrhuUPmCw0=\r
|
||||
trusted comment: timestamp:1793443789\tfile:status_effect_hud-1.0.0.hnmod\thashed\r
|
||||
MkNOcfvQQP8dWwvaSdoGIasz6tYOCB13U0OVFIApxz9VzhCUGRZXTYaSitlSSoBfGqYCQk87zvliwvklR0lbDQ=="""
|
||||
changelog = "Initial release for 26.3 Horizon. "
|
||||
@@ -0,0 +1,23 @@
|
||||
id = "toggle_sprint"
|
||||
kind = "native-mod"
|
||||
name = "Toggle Sprint"
|
||||
summary = "1:1 Better Sprinting & Lunar ToggleSprint HUD: toggle sprint and toggle sneak with [Sprinting (Toggled)] / [Key Held] / [Flying] status HUD and configurable Cre"
|
||||
description = "A 1:1 native Rust port of Better Sprinting and the Lunar/Badlion ToggleSprint HUD for Horizon. Allows toggling continuous sprint (V or vanilla Sprint key) and sneak (C) without holding keys down, while automatically pausing toggled sneak inside inventory and chest screens so Shift-clicking items works normally. Renders the classic movement status HUD ([Sprinting (Toggled)], [Sprinting (Key Held)], [Sneaking (Toggled)], [Sneaking (Key Held)], [Flying (2.0x Boost)], [Swimming], [Gliding (Elytra)], [Riding]) and includes a configurable Creative Fly Speed Boost multiplier (1.0x to 4.0x)."
|
||||
authors = ["CayMac"]
|
||||
owners = ["CayMac97"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/CayMac97/toggle-sprint"
|
||||
key = "RWS411U2KXdTN4/y5bQhqBYxNlZvCtSZ5lNy46eeSAcgy0cxSJo2+Sm3"
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
published = "2026-10-31"
|
||||
game = "26.3"
|
||||
file = "toggle_sprint-1.0.0.hnmod"
|
||||
sha256 = "b2a4190f9c19adbceae4a639342b7630bfc3047339eabf57673b7807db5edc6a"
|
||||
signature = """
|
||||
untrusted comment: signature from minisign secret key\r
|
||||
RUS411U2KXdTN3mUUTEw+mmiuQhcddYpNrjRnGA43/GS3y/qgY1EnL0kGp4NTBouTlVJbiThEkQfOrqIjnwlshUB18PrQloxAAw=\r
|
||||
trusted comment: timestamp:1793443789\tfile:toggle_sprint-1.0.0.hnmod\thashed\r
|
||||
2kNF92yIivWMWhgUH7ypwU3pciKG3ouiHhpZrQmX8fWZHay2da9HgdOYFAUp5KaHJ1NAgBuwL1zMfwVf61X+Cw=="""
|
||||
changelog = "Initial release for 26.3 Horizon. "
|
||||
@@ -0,0 +1,27 @@
|
||||
id = "treefall"
|
||||
kind = "native-mod"
|
||||
name = "TreeFall"
|
||||
summary = "Cut one log of a natural tree with an axe and the whole tree comes down."
|
||||
description = """
|
||||
**A native Horizon mod** (built into the game by the launcher; native mods are not sandboxed, so read the source before you build it).
|
||||
|
||||
Cut one log of a natural tree with an axe and the whole tree comes down. Every log is broken through the game's ordinary mining path, so drops, statistics, hunger and axe wear are exactly as if you had chopped each log yourself.
|
||||
|
||||
- Sneak to cut a single log; log cabins (logs without natural leaves) are never felled.
|
||||
- **Settings page** (Options > Mods > TreeFall): which tools fell (axe / any tool / anything), sneaking, largest tree, leaves needed, cut time (as one log, or longer for bigger trees), tool wear (every log / once / a factor / none), keep durability, hunger, drops at the stump, replant a sapling, break the leaves, huge mushrooms.
|
||||
- `/treefall` on/off per player; LAN guests too.
|
||||
|
||||
In the spirit of FallingTree; not affiliated, no code from it. Pinned to Horizon 142388e and horizon-mixins 0d6b103."""
|
||||
authors = ["d3grando"]
|
||||
owners = ["d3grando"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/d3grando/treefall"
|
||||
icon = "icons/treefall.png"
|
||||
|
||||
[[versions]]
|
||||
version = "0.3.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "treefall-0.3.0.hnmod"
|
||||
sha256 = "6f7feea8d0f55291953476b272f00cfc4be42d64972e7efefeb3df47c9dae8ce"
|
||||
changelog = "First registry release. A settings page in Options > Mods; the cut can take longer for bigger trees (and letting go cancels it, in single player too); trees come down from the top and leave a stump when the axe would wear out; replanting, drops at the stump, leaves and huge mushrooms are options."
|
||||
@@ -0,0 +1,46 @@
|
||||
id = "veinminer"
|
||||
kind = "native-mod"
|
||||
name = "Veinminer"
|
||||
summary = "Mine connected ores and matching trees using Horizon's native player-mining behavior."
|
||||
description = """
|
||||
An unofficial Rust port by levzzz5154. Mines connected veins, including diagonal neighbours,
|
||||
through Horizon's player-mining code, preserving loot, XP, tool wear and server block events.
|
||||
Includes per-player toggles, configurable block/tool groups, a block limit and cooldown.
|
||||
|
||||
Native source mod: install it on the launcher's Mods page, press Build there,
|
||||
and confirm the native-code warning. A supported launcher downloads its own Rust toolchain
|
||||
and builds a separate game using Horizon Mixins. Requires Git and Horizon's platform build
|
||||
dependencies, and 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. Other Horizon revisions have not
|
||||
been validated. Ordinary Play does not compile mods; rebuild after changing the enabled
|
||||
native-mod combination.
|
||||
|
||||
Use `/veinminer toggle`, `/veinminer on`, `/veinminer off` or `/veinminer status`.
|
||||
`/veinminer reload` requires operator permission. Survival mining only; install on the
|
||||
world host/server. Delayed mining, drop merging and Java client addons are not supported.
|
||||
|
||||
Original project: [MiraculixxT's Veinminer](https://github.com/MiraculixxT/Veinminer).
|
||||
Independently written Rust code; no upstream mod code or artwork is bundled. MIT licensed.
|
||||
"""
|
||||
authors = ["levzzz5154"]
|
||||
owners = ["levzzz5154"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/levzzz5154/horizon-veinminer"
|
||||
|
||||
[[versions]]
|
||||
version = "0.3.0"
|
||||
published = "2026-10-28"
|
||||
game = "26.3"
|
||||
file = "veinminer-0.3.0.hnmod"
|
||||
sha256 = "ec308c02c65bad64043828a19ef6254d1eb9d422bb1123cd065cb9e6e7b126c8"
|
||||
changelog = "Native launcher bundle, pinned to nightly 83f15fa27 and Horizon Mixins 0.5.0."
|
||||
|
||||
[[versions]]
|
||||
version = "0.3.2"
|
||||
published = "2026-10-31"
|
||||
game = "26.3"
|
||||
file = "veinminer-0.3.2.hnmod"
|
||||
sha256 = "31a4249da1b35972ae8b34201373c86352f4adc2f5cb3e015749d1fbfecf00a0"
|
||||
changelog = "Pinned to Nightly 2026-10-31 (d91cab6) and Horizon Mixins 4342a0b. Reads each level's height from the loaded world, so data-pack dimension heights are respected."
|
||||
@@ -0,0 +1,42 @@
|
||||
id = "voicechat"
|
||||
kind = "native-mod"
|
||||
name = "Horizon Voice Chat"
|
||||
summary = "Talk with Simple Voice Chat players: proximity voice, groups, push to talk and a menu (V)."
|
||||
description = """
|
||||
An unofficial client for the [Simple Voice Chat](https://github.com/henkelmax/simple-voice-chat) protocol. On a server with the Simple Voice Chat mod or plugin, you can talk with players who use the Java mod on the regular launcher.
|
||||
|
||||
## What it does
|
||||
|
||||
- **Menu (V):** connection status, microphone and voice chat on/off, push to talk or voice activation, voice volume, microphone gain and activation level with a live meter, and every hotkey as it is bound now. The right side lists the server's groups with their members: join (with a password if needed), leave, or create a group.
|
||||
- **Talking:** hold Caps Lock (push to talk) or use voice activation. Voices come from where players stand, getting quieter with distance and panned left or right.
|
||||
- **Groups:** each player's group shows above their head. `/vc join <group> [password]`, `/vc leave`, `/vc create <name> [password] [normal|open|isolated]` and `/vc groups` work too.
|
||||
- **Keys** (Options > Mods > Horizon Voice Chat): menu (V), push to talk (Caps Lock), whisper (unbound), mute (J), voice chat off/on (K).
|
||||
- **Protocols:** Simple Voice Chat 2.6.x (compatibility 20) and 2.7 (21).
|
||||
|
||||
## What it touches
|
||||
|
||||
- It reads the server's `voicechat:*` custom payloads and other players' positions inside `game::remote`, so it is pinned to Horizon `c9d474d`.
|
||||
- It opens one UDP connection to the server's voice chat port, encrypted with AES-128-GCM using the secret the server sends.
|
||||
- It uses the default microphone and speakers through cpal, and loads the system **libopus** at run time (the `opus` package must be installed).
|
||||
- It keeps its settings in Horizon's own mod settings. It contacts no host other than the Minecraft server you are on (and DNS, for the server's SRV record).
|
||||
|
||||
## Not affiliated
|
||||
|
||||
This project is not made, endorsed or supported by Max Henkel or the Simple Voice Chat project. It contains none of Simple Voice Chat's code: everything is written from scratch in Rust.
|
||||
|
||||
## Tested
|
||||
|
||||
The engine's unit tests pass, and the modded client type-checks. Live, against Paper 26.3 with the Simple Voice Chat 2.6.27 plugin, it authenticated and connected, a test tone was heard through the server, and groups and labels came from the server. Not tested yet: the menu in the real game, a real microphone, 2.7 servers, and talking with the Java mod itself.
|
||||
"""
|
||||
authors = ["Nirokx"]
|
||||
owners = ["Nirokx"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/Nirokx/horizon-voice-chat"
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
published = "2026-11-02"
|
||||
game = "26.3"
|
||||
file = "voicechat-1.0.0.hnmod"
|
||||
sha256 = "7a12ef9e691d10128ea081906a313d597c67f22897380618871477f9dd8eabf1"
|
||||
changelog = "First release."
|
||||
@@ -0,0 +1,31 @@
|
||||
id = "waymap"
|
||||
kind = "native-mod"
|
||||
name = "Waymap"
|
||||
summary = "Native Horizon waypoint mod with per-context storage, minimap dots, world markers, and full command suite."
|
||||
description = """
|
||||
Waymap — Native client-side waypoints for Horizon.
|
||||
Features:
|
||||
- World markers (3D, camera-projected)
|
||||
- Minimap dots (rotation-aware)
|
||||
- Waypoint list panel (bottom-left, 6 nearest)
|
||||
- Per-context storage (per server server_<host:port>.txt / world world_<folder>.txt)
|
||||
- Atomic saves (temp + atomic rename), legacy migration
|
||||
- Commands: /wp add|del|list|rename|color|clear|edit|help
|
||||
- Keys: N = add, B = toggle list"""
|
||||
authors = ["Aron"]
|
||||
owners = ["Lauch2"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/Lauch2/horizon-waymap-mod"
|
||||
key = "RWS1B1QZPeYaSNKJr9rffnfHDSvB0AZj/Ul1B2pKrJ2XFBgKXL0FC96u"
|
||||
|
||||
[[versions]]
|
||||
version = "0.1.4"
|
||||
published = "2026-11-02"
|
||||
game = "26.3"
|
||||
file = "waymap-0.1.4.hnmod"
|
||||
sha256 = "61bf573af5b2711453ca37a41b4ac2abc78ab827863bcafb9bfabe7dbf19ccd5"
|
||||
signature = """
|
||||
untrusted comment: signature from minisign secret key
|
||||
RUS1B1QZPeYaSBV67KshMqdN7e9tTtnd0aJ2j2hE0IOvZNQpo896FjvOETBrxu0OhB738CE44moftY8pvDMvF8o+dxXsfxQduAU=
|
||||
trusted comment: timestamp:1793662341\tfile:waymap-0.1.4.hnmod\thashed
|
||||
j0dStr7Yhq33q3uA+wVGhfiEfjdNx0XBCUIHiZ5AfD7vPhcCqtVnrnYx8KKcliC2UOMNBP0Kl3gOz2MyiqJSAQ=="""
|
||||
@@ -0,0 +1,27 @@
|
||||
id = "waypoints"
|
||||
kind = "native-mod"
|
||||
name = "Waypoints"
|
||||
summary = "Place waypoints with N, manage them with M, and see their name and distance in the world."
|
||||
description = """
|
||||
Waypoints for Horizon.
|
||||
|
||||
- **N**: create a waypoint where you stand: name, X/Y/Z, dimension, colour, visible or hidden. Enter saves, Tab moves between fields, Esc cancels.
|
||||
- **M**: the waypoint list, filtered by All / Overworld / Nether / End. Each row shows its colour, name, coordinates, dimension and distance, with Hide/Show, Edit and Delete buttons.
|
||||
- **In the world**: each visible waypoint in your current dimension shows its name, its distance and a marker in its colour.
|
||||
- **Options > Mods > Waypoints**: rebind both keys and turn the in-world labels on or off.
|
||||
|
||||
**What it does and doesn't do:** it only reads the game's own state (player position, dimension, camera, world folder name, server address) and draws on the HUD and its own screen. It stores waypoints as a text file per world and per server in `horizon-mods/.horizon-mod-data/waypoints/` inside the game folder. It uses only the Rust standard library, opens no network connections, and reads or writes no other files.
|
||||
|
||||
Pinned to Horizon `c9d474d`, because it reads the world folder, server address and last frame's camera from the game itself."""
|
||||
authors = ["Nirokx"]
|
||||
owners = ["Nirokx"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/Nirokx/horizon-waypoints"
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
published = "2026-11-02"
|
||||
game = "26.3"
|
||||
file = "waypoints-1.0.0.hnmod"
|
||||
sha256 = "9c0e670f1205c23fed0fe0b0eaf8f0b90a01f3cbb883a8eee445ebc03f4d90a4"
|
||||
changelog = "First release for Horizon 26.3 (Nightly c9d474d)."
|
||||
@@ -0,0 +1,19 @@
|
||||
id = "worldedit"
|
||||
kind = "native-mod"
|
||||
name = "WorldEdit"
|
||||
summary = "working port of java world edit"
|
||||
description = """
|
||||
//we for commands
|
||||
|
||||
working schematics."""
|
||||
authors = ["_cykoo_"]
|
||||
owners = ["XnotCykoX"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/XnotCykoX/WorldEdit-Horizon"
|
||||
|
||||
[[versions]]
|
||||
version = "1.2.1"
|
||||
published = "2026-10-30"
|
||||
game = "26.3"
|
||||
file = "worldedit-1.2.1.hnmod"
|
||||
sha256 = "b2bb3019ecd4d5392644c54c70a87d6c3277538a6e18d0c311f3a051f7d2f015"
|
||||
@@ -0,0 +1,33 @@
|
||||
id = "xtoxray"
|
||||
kind = "native-mod"
|
||||
name = "X To Xray"
|
||||
summary = "Opensource Xraymod"
|
||||
description = """
|
||||
Press X To Xray!
|
||||
Does Not Work On Servers.
|
||||
|
||||
Instalation:
|
||||
1. Download Horizon
|
||||
2. Get Horizon Working
|
||||
3. Add The Mod Trough The Horizon Launcher
|
||||
4. Start Xraying
|
||||
"""
|
||||
authors = ["1_st_Cat"]
|
||||
owners = ["RealCat1st"]
|
||||
license = "Apache-2.0"
|
||||
source = "https://github.com/RealCat1st/XToXrayRust"
|
||||
icon = "icons/xtoxray.png"
|
||||
key = "RWQVF+EFGGnX6eUNms+cP5AceLvx9b0rFYYXCty7so4MVbJ1SNpi9zNK"
|
||||
|
||||
[[versions]]
|
||||
version = "2026.29.0"
|
||||
published = "2026-10-30"
|
||||
game = "26.3"
|
||||
file = "xtoxray-2026.29.0.hnmod"
|
||||
sha256 = "3446a4a70a2b87ef6e9de00ce8a255aa83c2e44ccd5acc9f14887662ed55f27c"
|
||||
signature = """
|
||||
untrusted comment: signature from rsign secret key
|
||||
RUQVF+EFGGnX6cZkn/iGZ9FUHXC45MU+8uuj7l7eRkZ+bR/x7S8s2U34F7nv/f6jKXdzeLZi3QoSA5g5oXqP99/KlGgd/19ygwY=
|
||||
trusted comment: timestamp:1793375231\tfile:xtoxray-2026.29.0.hnmod\tprehashed
|
||||
2h6QOc/dnek1KMCGL2jerhCObc9pECmShr0kKYJhEEFz52Hhb4C3vmjc9vuwE3CftUHs+StHkalHQVLVQy8eCg=="""
|
||||
changelog = "Release"
|
||||
@@ -0,0 +1,39 @@
|
||||
id = "zoom"
|
||||
kind = "native-mod"
|
||||
name = "Zoom"
|
||||
summary = "Hold a key to zoom in; the mouse wheel zooms further while you hold it."
|
||||
description = """
|
||||
Horizon's own zoom, formerly an extra in Options > Horizon Extras.
|
||||
|
||||
- Hold the key (Z by default) to zoom in at the starting zoom; let go and the view comes back.
|
||||
- While you hold it, the mouse wheel zooms further in or out (up to 10x) and the hotbar stays put.
|
||||
- Smooth zoom eases in and out like the spyglass; slower turning keeps aiming steady.
|
||||
- Settings: Options > Mods > Zoom > Settings (the key; starting zoom; smooth zoom; slower turning).
|
||||
|
||||
It hears its own key and the mouse wheel while you hold it, and zooms the camera: 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/zoom](https://github.com/horizon-rust/horizon-mods/tree/main/native/zoom).
|
||||
"""
|
||||
authors = ["Horizon"]
|
||||
owners = ["ludovic111"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/zoom"
|
||||
|
||||
[[versions]]
|
||||
version = "2.0.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "zoom-2.0.0.hnmod"
|
||||
sha256 = "49fa2d7d635225c53304fbf1477606c0677eb23d94dac75b730f6c3ba065f127"
|
||||
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 = "zoom-1.0.0.hmod"
|
||||
sha256 = "447f7cc49b4e8535c8252a871ac6fbdafcc7bfcf881297429dc93f185b2f9340"
|
||||
changelog = "First release: the zoom extra as a mod, same look and options."
|
||||
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "horizon-mod-coords-hud"
|
||||
version = "2.0.0"
|
||||
@@ -0,0 +1,11 @@
|
||||
[package]
|
||||
name = "horizon-mod-coords-hud"
|
||||
version = "2.0.0"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
publish = false
|
||||
description = "Horizon's Coordinates HUD, a native mod: your position and facing in a corner of the screen."
|
||||
|
||||
# The mod's logic and its tests: the same file the bundle adds to the game.
|
||||
[lib]
|
||||
path = "mixins/coords_hud/runtime.rs"
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Ludovic Marie and the Horizon contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,47 @@
|
||||
# Coordinates HUD (Horizon native mod)
|
||||
|
||||
Your block position and the direction you face in a box 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 is a [horizon-mixins](https://github.com/horizon-rust/horizon-mixins) bundle (`mixins/coords_hud/`) that the Horizon
|
||||
launcher builds into the game. It is a small example mod.
|
||||
The time of day line is gone: Horizon's hook points don't give the game's clock yet.
|
||||
|
||||
## Install
|
||||
|
||||
In the Horizon launcher: Mods → Coordinates HUD → Install, then **Build** on the same page (once built, switch it
|
||||
on or off in the game under Options → Mods). The
|
||||
launcher downloads its own Rust and builds the game with your native mods; see Horizon's
|
||||
[native mods](https://github.com/horizon-rust/horizon/blob/main/docs/native-mods.md).
|
||||
|
||||
## Made on the hook points
|
||||
|
||||
The bundle hooks only Horizon's native hook points (`crates/horizon-client/src/game/native_hooks.rs`), which keep
|
||||
their names and signatures across releases. `compatibility.json` names the version it needs (`"hooks": 1`), so the
|
||||
launcher builds it on any Horizon with that version or a later one, together with any other mod. `horizon_revision` is
|
||||
only the commit it was last tested on.
|
||||
|
||||
| File | What it is |
|
||||
|---|---|
|
||||
| `mixins/coords_hud/horizon-mixin.toml` | The bundle: one module and the HEAD hooks |
|
||||
| `mixins/coords_hud/runtime.rs` | The mod's logic and state, added to the game as `game::official_coords_hud`; also this crate's library, for its tests |
|
||||
| `mixins/coords_hud/*.rs` | One small helper per hook |
|
||||
| `proof.py` (with `../tools/game.py`) | The proof: the built game driven with `horizon-ctl --offscreen` on fresh, temporary data |
|
||||
|
||||
## Build and prove
|
||||
|
||||
```sh
|
||||
(cd native/coords-hud && cargo test) # the logic
|
||||
python3 native/tools/native.py check coords-hud # apply on the tested Horizon and cargo check the game
|
||||
python3 native/tools/native.py check all # with the other native mods, as a player's set
|
||||
python3 native/tools/native.py package coords-hud # native/target/coords_hud-<version>.hnmod for the registry
|
||||
python3 native/tools/native.py proof coords-hud --resources /path/to/.local/horizon-client/26.3
|
||||
```
|
||||
|
||||
The proof needs resources prepared from your own Minecraft 26.3 (`horizon-prepare`); none are in this repository.
|
||||
It checks the row and the settings page in Options > Mods, that the box shows in the top left, that `/coords` hides it
|
||||
and writes `horizon-mods/.horizon-mod-data/coords_hud/shown`, and takes a screenshot of `/where`'s line in chat.
|
||||
|
||||
License: MIT.
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"game": "26.3",
|
||||
"hooks": 1,
|
||||
"horizon_repository": "https://github.com/horizon-rust/horizon",
|
||||
"horizon_revision": "4baa571566e39bfd6594988d3bb2bc85440c30e7",
|
||||
"horizon_mixins_repository": "https://github.com/horizon-rust/horizon-mixins",
|
||||
"horizon_mixins_revision": "d9c83d7096b7ea5b83678da2efdfd6161f74997e"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// A click on the mod's settings page: show or hide the box, and keep it.
|
||||
fn official_coords_hud_click(game: &mut crate::game::Game<'_>, mod_id: &str, button: usize) {
|
||||
use crate::game::official_coords_hud as m;
|
||||
if mod_id != m::ID || button != 0 {
|
||||
return;
|
||||
}
|
||||
let shown = !m::shown(|| game.native_setting(m::ID, "shown"));
|
||||
m::set_shown(shown);
|
||||
game.native_set_setting(m::ID, "shown", if shown { "true" } else { "false" });
|
||||
}
|
||||