Sunrise

Horizon / Native mod API

Native mod API gaps

Find which capabilities are on main, which have work in review, and where to start investigating a gap. Coverage describes the specific seam in each row. It does not certify end-to-end behavior or full NeoForge parity.

Statuses reviewed 10 November 2026 against cf0113879ebe (opens in a new tab) · Horizon main 99379ade14fa (opens in a new tab), synced · NeoForge 26.1 docs and 26.3 release notes

Team's open PRs

Show all 19 on GitHub (opens in a new tab)

Summary

Covered
38
Partial
32
Missing
5
Not applicable
2

Claimable now

Open issues with a public design or implementation outline, no public claim and no linked PR in the Up for grabs board snapshot (opens in a new tab).

Other issues and claim history

Excluded from this list: #815 (opens in a new tab) · open · OlaHulleberg posted a claim before the maintainer reopened claiming (review the claim chronology and open evidence PR before taking this on), #2554 (opens in a new tab) both scopes (claimed by Xmilon with PRs open), #2640 (opens in a new tab) (reporter has a working fork implementation and offered to port it), and #857 (opens in a new tab) (the design still calls for approval of the worker contract).

Other candidates to investigate: #860 non-mob entity renderers (opens in a new tab) and #867 typed frame passes (opens in a new tab). Both have written scope. Check for linked or overlapping PRs before claiming. #897 entity render state (opens in a new tab) was reopened to claim after Ola’s comment and needs a shared render-preparation boundary.

Capability comparison

Partial includes a narrower seam or an implementation in review. Missing means the reviewed surface has no implementation, including cases with a design or evidence PR.

Jump to an area
77 features

Blocks

3 covered · 1 partial

Items

4 covered

Entities

2 covered · 2 partial

Registries

1 covered · 1 partial

Datapack registries

2 partial

Mod-owned datapack registry declarations and typed reads

The design is in main. Registration, candidate storage, world wiring and Host reads are tracked as separate slices. Check their merge states below.

Status may have changedPartial
#811openXmilonPR #2549mergedPR #2751mergedPR #2756mergedPR #2757open

#2549 is now merged. #2751 is now merged. #2756 is now merged.

Sources and counterpart

Client snapshot negotiation and reload publication

The design covers generation-scoped reads, optional or required client sync and publication. Snapshot and join tests are in review. Play-traffic gating, required-registry reconfiguration and wasm client projection remain open.

Partial
#811openXmilonPR #2769openPR #2808open
Sources and counterpart

Events

1 covered · 1 partial

Networking

1 partial · 1 missing

Capabilities

2 covered

Data attachments

1 covered · 2 partial

Data maps

2 partial

Loot

1 covered · 1 partial · 1 missing

Worldgen

1 covered · 2 missing

Custom worldgen features and placement modifiers

The Horizon design is merged. PR #2799 adds bytecode evidence and random oracle tests. It does not implement feature or placer callbacks. Ola’s claim predates the maintainer’s availability announcement.

Status may have changedMissing
#815openOlaHulleberg posted a claim before the maintainer reopened claimingPR #2799merged

#2799 is now merged.

Sources and counterpart

26.3 primer (opens in a new tab) · exact API contract unverified

Rendering

1 covered · 1 partial

GUI

1 covered · 1 partial

Resources

1 covered · 1 partial

Data generation

1 missing

Commands

1 covered

Configuration

1 covered

Sounds

1 covered · 1 partial

Particles

1 covered

Tags

1 covered · 1 partial

Recipes

1 covered · 1 partial

Advancements

1 partial

Dimensions

1 covered · 1 partial · 1 not applicable

Explicit multi-noise points in a mod's dimension

Dimension sources are present. Explicit climate-point declarations and selection coverage are tracked in the scope 1 PRs.

Status may have changedPartial
#2554openXmilon (both scopes)PR #2730mergedPR #2749merged

#2730 is now merged. #2749 is now merged.

Sources and counterpart

26.3 primer (opens in a new tab) · exact API contract unverified

Weighted region injection in existing vanilla dimensions

The Horizon issue identifies this as a TerraBlender comparison outside NeoForge core. Horizon’s own scope 2 design is still in review.

Status may have changedNot applicable
#2554openXmilon (both scopes)PR #2731merged

#2731 is now merged.

Sources and counterpart

26.3 primer (opens in a new tab) · exact API contract unverified

Biome modifiers

1 covered · 2 partial

Code registration, carvers and late modification

The JSON route is merged. The native declaration and added operations are on stacked PRs. The changelog mentions a registry-access argument and removal of the no-op modifier; exact setter signatures are unverified.

Status may have changedPartial
#2732openassigned to XmilonPR #2744mergedPR #2745mergedPR #2788mergedPR #2800merged

#2744 is now merged. #2745 is now merged. #2788 is now merged. #2800 is now merged.

Sources and counterpart

Per-biome visuals, audio and replacement sync

Pack effects and base biome sync already exist. Code declarations, effect edits and replacement acceptance are in review. The renderer has a pack-biome path. PR #2843 uses the active table for particles and adds fixture coverage for local loading, pack replacement and registry sync.

Partial
Sources and counterpart

Structure modifiers

1 partial

Fluids

1 covered · 1 partial

Saved data

1 partial

Java integration

1 not applicable

Mod tooling and runtime

2 covered · 2 partial

Injection points and internal access

Named injection points are documented. Internal access has separate target admission rules and should be checked for the point and target in use.

Partial
Sources and counterpart

Horizon API surface

Native and wasm targets, Wire and admission

The dependency model is shared. A native callback alone does not establish support across the wasm boundary.

Partial
Sources and counterpart

Horizon API surface

Launcher builds, packages and dependencies

The native mod guide and manifest describe build and installation routes, packages and dependency declarations.

Covered
Sources and counterpart

Horizon API surface

Input and effects

2 covered · 1 partial

World and player services

6 covered · 3 partial

Scheduling and task lifetime

Mod code can schedule and cancel server tasks through the Host. Join-time tasks have their own row.

Covered
Sources and counterpart

Horizon API surface

Evidence inventory

Read from main at 99379ade14fa (opens in a new tab) when a group is opened, with links to the exact lines.

Host methods · 937 symbols in 37 files

Loading…

Hook catalog and named counterparts · 656 symbols in 609 files

Loading…

Registrar traits and registration methods · 78 symbols in 27 files

Loading…

Horizon modding book · 166 pages

Loading…

NeoForge documentation topics and headings · 33 topics

Loading…

NeoForge 26.3.0.102 changelog index · 103 entries

Loading…

The older workspace RUST-API-STATUS.md is historical context. The sibling Horizon checkout’s docs/decompilation-status.md describes vanilla evidence coverage rather than native mod API coverage. NeoForge’s 26.1 guides are background for rows marked unverified. The 26.3 Javadoc returned HTTP 503. Source evidence is pinned to the stated Horizon revision. Public issue and board data reflect this sweep. Coverage is a source-level assessment.