From a06367edf18380e36fda9879cced3e8f0d7789b3 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Fri, 16 Oct 2026 18:08:23 +0200 Subject: [PATCH] docs: modpacks design, with ATM10's real mod list classified docs/modpacks.md: how any pack (ATM10 down to small Fabric packs) gets to Horizon: import (.mrpack, CurseForge zip or instance, Prism, packwiz), inventory and classification, dependency order, mechanical carry-over of data and assets, one agent per mod for code with a per-mod harness against a dev-only NeoForge/Fabric oracle, and a coverage report. Also the mod API gaps against 0.1, the registries 0.2 design (template blocks through the overlay root), licence handling, how "10x" is measured against NeoForge, and the scope for 2026-10-23. docs/modpacks/atm10-mods.csv: ATM10's 495 jars from the pack's own crash_assistant modlist (2026-10-15), with Modrinth metadata looked up by hash: class, API tier, licence, sides. Metadata only. Co-Authored-By: Claude Opus 5.5 --- docs/README.md | 1 + docs/modpacks.md | 450 +++++++++++++++++++++++++++++++ docs/modpacks/atm10-mods.csv | 496 +++++++++++++++++++++++++++++++++++ docs/mods.md | 5 + 4 files changed, 952 insertions(+) create mode 100644 docs/modpacks.md create mode 100644 docs/modpacks/atm10-mods.csv diff --git a/docs/README.md b/docs/README.md index 31ed1917a..af78b7f01 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,6 +12,7 @@ To play, use [the launcher](../launcher/README.md); the project site is [playhor - [Shader packs](shader-packs.md): how the renderer draws a frame, the Horizon WGSL shader pack format (stages, uniforms, `pack.toml`, hot reload), and the plan to translate OptiFine/Iris packs. - [Extras](extras.md): optional zoom, minimap, FPS and keystroke overlays and auto-reconnect, all off by default. - [Mods](mods.md): Horizon's own mod system (Rust, sandboxed WebAssembly), how to make and install mods, and [what carries over from Java mods](research/java-mod-compat.md). +- [Modpacks](modpacks.md): porting whole packs (ATM10 and smaller): import, inventory, carry-over, an agent per mod with a harness against the Java original, coverage, and how "10x" is measured. - [Launcher](../launcher/README.md): installs, updates and starts builds; its CLI and MCP server; releasing it. - [Resource packs](resource-packs.md): everything a 26.3 resource pack can change, whether Horizon honours it, and the proof. - [Opt-in data collection](telemetry.md): the consent, exactly what is sent, how it is stored and sent. diff --git a/docs/modpacks.md b/docs/modpacks.md new file mode 100644 index 000000000..54dc43bdc --- /dev/null +++ b/docs/modpacks.md @@ -0,0 +1,450 @@ +# Modpacks: porting any pack to Horizon + +Goal (Ludovic, 2026-10-16): **support modpacks like All the Mods 10 far better than Minecraft +does, and be able to port any of them.** "Better" is measured: pack load time, RAM, FPS, TPS +and world-generation speed against the same pack on NeoForge or Fabric. "Any of them" means a +pipeline, not a list of hand ports. It takes a pack as players download it and produces native +Horizon mods. The pipeline is AI agents in dependency order, each port checked against the +original mod running in a dev-only Java instance. + +This page is the design. It builds on [mods.md](mods.md) (the mod API, WASM in wasmtime) and +[research/java-mod-compat.md](research/java-mod-compat.md) (why Java jars and Mixins cannot +run in Horizon, so we port instead). The ATM10 inventory behind the numbers below is +[modpacks/atm10-mods.csv](modpacks/atm10-mods.csv). + +## In one picture + +``` + pack (.mrpack / CurseForge zip or instance / Prism instance) + │ import: normalise to pack.json (MC version, loader, files, hashes, overrides) + ▼ + inventory: every jar's metadata (mods.toml / fabric.mod.json, licence, deps, file census) + │ classify: content · client-ui · library · performance · server-only · integration · other + │ tier: data · logic · machines · deep · client · none + ▼ + dependency order (libraries first, then the mods that need them) + │ + ├─ carry-over (mechanical, no agent): assets/ + data/ upgraded to 26.3 formats, + │ block and item registrations from the oracle's facts export → .hmod + ├─ port (one agent per mod, tiers logic and up): Rust → WASM against the Horizon + │ mod API, iterating until its harness passes → .hmod + ├─ harness per mod: the Java mod in a dev-only NeoForge/Fabric oracle vs the port + ▼ + coverage report: ported · partial · not yet · not needed, per mod and per class +``` + +Everything runs on the player's (or server owner's) machine, on jars they downloaded. The +results stay there. See [Licences](#licences). + +## All the Mods 10, measured + +**Source.** ATM10 is on CurseForge. Its GitHub repository (AllTheMods/ATM-10) carries the pack's +own mod list, `config/crash_assistant/modlist.json`, written by the Crash Assistant mod in the +pack. We used the version committed on 2026-10-15. It lists jar names, mod ids, versions, +CurseForge fingerprints and Modrinth SHA-1s. ATM10 8.x runs **Minecraft 1.21.1 on NeoForge +21.1.259**. The list has **495 jars** (494 mod ids: CC: Tweaked ships two jars) plus one +datapack (Universal Sawmill's). + +**Metadata only.** Modrinth's `version_files` endpoint resolved 321 mods by hash, with their +categories, client/server sides, licence and required dependencies. A Modrinth name search +found 70 more CurseForge-only mods with a listing. The remaining 104 are CurseForge-only, so +CurseForge's API (which needs a key) would be the only source. They were classified from their +names and what they are known to do. 20 of those calls are marked `guess` in the CSV. No jar +was downloaded. + +### Classes + +| Class | What it is | Port? | ATM10 | +|---|---|---|---:| +| **content** | adds or changes gameplay: blocks, items, machines, mobs, worldgen, magic | yes: carry-over or agent | **287** | +| **library** | APIs and code shared by other mods (Architectury, Curios, GeckoLib, Kotlin for Forge, Balm...) | no: maps to the Horizon API or the SDK | **80** | +| **integration** | glue between two other mods (JEI plugins, AE2 ↔ Mekanism, Create add-on wiring) | after both sides are ported | **44** | +| **client-ui** | client-only screens, HUDs, tooltips, maps, recipe viewers | yes: client API, or built in | **32** | +| **other** | pack tooling and engine features: KubeJS, Almost Unified, Iris/shaders, CTM, crash/version tools | no: folded into the pipeline or the engine | **25** | +| **performance** | Sodium, FerriteCore, ModernFix, ImmediatelyFast, spark, AI and recipe speed-ups | no: Horizon is the replacement | **16** | +| **server-only** | admin and server features: ranks, essentials, backups, claims, spawn control | yes: server API | **11** | +| | | | **495** | + +### Tiers (the API a port needs) + +| Tier | Needs | ATM10 | of which content | +|---|---|---:|---:| +| **data** | registries (blocks, items) + carried-over data and assets; no code | 68 | 56 | +| **logic** | + behaviour callbacks (use, place, break, ticks), server events, config | 72 | 55 | +| **machines** | + block entities, menus and screens, capabilities (energy, items, fluids), mod networking | 101 | 89 | +| **deep** | + entities and AI, custom renderers and animated models, dimensions, new vanilla hooks (what Mixins do) | 91 | 87 | +| **client** | the client interfaces (`keys`, `target`, `inventory-read`, `ui`, `render`) | 38 | 0 | +| **none** | nothing to port | 125 | 0 | + +Class by tier: + +| | data | logic | machines | deep | client | none | +|---|---:|---:|---:|---:|---:|---:| +| content | 56 | 55 | 89 | 87 | | | +| library | | | | | | 80 | +| integration | 11 | 7 | 12 | 3 | 8 | 3 | +| client-ui | | | | | 30 | 2 | +| other | 1 | | | | | 24 | +| performance | | | | | | 16 | +| server-only | | 10 | | 1 | | | + +What this says: + +- **A quarter of ATM10 needs no port at all** (125: libraries, performance mods, pack tooling). + Horizon's renderer and simulation replace the performance mods. Libraries become API + features: Curios becomes accessory slots, GeckoLib an animated-model format, Patchouli, + Modonomicon and GuideME a guide-book reader, the config libraries a config schema. +- **68 mods are data tier.** They are the structure packs (YUNG's, Moog's, Formations, CTOV, + Towns and Towers, When Dungeons Arise), the decoration blocks (Macaw's doors, fences, paths, + roofs, stairs; Chipped; XTones; Factory Blocks) and the ore and compression sets + (AllTheOres, AllTheCompressed). They come over **without an agent** once registries and + worldgen carry-over exist. +- **The big systems are deep tier.** Create, AE2, Mekanism, Ars Nouveau, Twilight Forest, + MineColonies and Applied/Refined Storage are a long campaign of agent ports. They reach the + most dependents: AE2 has 9 required dependents in the pack, Create 7, Ars Nouveau 6 and + Mekanism 5. +- **Dependency depth is shallow.** Of the 321 mods with Modrinth data, 188 need nothing else + in the pack, 103 sit one layer up, 29 two layers up and one (Apotheosis) three. The most + required libraries are YUNG's API (10 dependents), GeckoLib, Resourceful Lib, SuperMartijn's + core (8, 8, 7), then Curios, Bookshelf, Prickle and McJtyLib (6 each). + +### Licences in ATM10 + +| Class | permissive (MIT, Apache, BSD, CC0, CC-BY) | copyleft (GPL, LGPL, MPL, AGPL) | All Rights Reserved | custom | non-commercial / no-derivatives | unknown (CurseForge only) | +|---|---:|---:|---:|---:|---:|---:| +| content | 93 | 46 | 62 | 16 | 9 | 61 | +| library | 27 | 20 | 9 | 6 | 4 | 14 | +| integration | 16 | 8 | 9 | 0 | 0 | 11 | +| client-ui | 13 | 5 | 3 | 5 | 1 | 5 | +| other | 6 | 8 | 4 | 1 | 0 | 6 | +| performance | 6 | 5 | 1 | 1 | 0 | 3 | +| server-only | 6 | 0 | 1 | 0 | 0 | 4 | +| **all** | **167** | **92** | **89** | **29** | **14** | **104** | + +The "unknown" column is a gap in our metadata, not in the mods: NeoForge's `mods.toml` has a +mandatory `license` field, and the inventory reads it from each jar at import. + +## Licences + +Mods have their own licences: many are All Rights Reserved, others MIT, LGPL or MPL. A port is a +derivative work. These rules are part of the pipeline, not advice to users: + +1. **Local by default.** The pipeline runs on the player's or server owner's machine, on jars + they downloaded themselves. The ports it makes stay there. This works like `prepare` with + Minecraft's own files: nothing is redistributed. +2. **The licence is recorded per mod** in the inventory (`license` from `mods.toml` or + `fabric.mod.json`, plus Modrinth's SPDX id where one exists) and travels with the port into + its `horizon-mod.toml` (`ported-from = { id, version, license, url }`). +3. **Publishing needs permission.** A port can go into a mod index, the launcher browser or a + server's download list only if its licence allows redistributing derivatives (permissive, + or copyleft with the port under the same licence and its source published) or the author + has given written permission, recorded in the index entry. The tooling refuses to package + anything else. No-derivatives and non-commercial licences (14 in ATM10) are never published. + For them, even a local port gets a warning that the licence may not allow it. +4. **Mod code never enters this repository.** Mod jars, decompiled sources, Java oracle builds + with mod code, and ports of mods we have no permission to publish all live outside the + repo: in the user's pipeline work directory, or for our own development in + `~/code/horizon-parity/modports/` (dev-only, never pushed). Ports are written from + observed behaviour and the harness, with decompiled code as a local reference only. The + repository holds the pipeline, the API, metadata (ids, names, versions, licences, counts) + and test fixtures we write ourselves. +5. **Contacting authors or publishing any port is Ludovic's call.** Agents ask first. + +This is engineering policy, not legal advice. Before anything is published, Ludovic decides, +with advice if needed. + +## The mod API: what packs need, against API 0.1 + +API 0.1 is client-side only: `log`, `game` (player and clock), `chat`, `hud`, plus tick, +frame, chat and command hooks. Server mods do not run yet. What a content pack needs: + +| Feature | API 0.1 | Needed by (ATM10 content+integration, by tier) | Planned in | Shape | +|---|---|---|---|---| +| Block registry: ids, states, properties, shapes, sounds, light | — | data and up (all 331) | **0.2** | declared in `data//horizon/block/*.json`, each from a vanilla *template* block (below) | +| Item registry, block items | — | data and up | **0.2** | `data//horizon/item/*.json`, from a vanilla template item | +| Recipes, loot tables, tags, advancements, lang, blockstates, models, textures, sounds in the mod's namespace | vanilla namespace only | data and up | **0.2** | the 26.3 data-pack and resource-pack formats, as they are | +| Worldgen JSON: features, structures, template pools, processors, structure NBT, biome additions | vanilla bundle only | about 30 data-tier structure and biome mods | 0.2.x | carried into the `worldgen/` bundle | +| Block and item behaviour callbacks: use, place, break, attack, random tick, scheduled tick, neighbour change, entity inside | — | logic and up (253) | **0.3** | `server` interface; hooks per registered id, budgeted | +| Server events, typed commands, game rules | — | logic and up, server-only (11) | **0.3** | `server` interface | +| Config: typed schema in the manifest, per world and per server, a settings page | — | most mods with code | **0.3** | `config` + the Options > Mods page | +| Block entities: per-block NBT state, ticking, client sync | — | machines and up (191) | **0.4** | `block-entity` interface, ticks batched per mod | +| Menus and screens: slots, progress bars, buttons, fluid and energy gauges | — | machines and up | **0.4** | a declared screen layout the game draws (`ui`), with server-side menu logic in the mod | +| Capabilities: energy (FE), item, fluid handlers on blocks and items | — | machines and up | **0.4** | `capabilities` interface; FE as the common unit, others as mod-defined resources | +| Data attachments on entities, chunks, levels | — | machines and up | **0.4** | `storage` per entity/chunk/level | +| Accessory slots (what Curios does) | — | Curios users (6 require it, more use it optionally) | **0.4** | built-in slots API | +| Mod networking between its client and server halves | — | machines and up | **0.4** | `net` interface (already planned in mods.md) | +| Custom recipe types: machine recipes with their own JSON | — | machines and up | **0.4** | recipe-type registry: the mod declares its JSON schema and a display layout for the recipe viewer | +| Entities: types, attributes, AI goals and brains, spawning | — | deep (87) | 0.5 | `entity` interface, AI in the mod with vanilla goals reusable | +| Custom renderers and animated models (block-entity, entity, item; GeckoLib's format) | — | deep | 0.5 | data models (Bedrock geometry + animations), plus a budgeted draw-list interface for the rest | +| Dimensions: dimension types, levels, chunk generators | — | about 10 (Twilight Forest, Aether, Ad Astra, Undergarden, ...) | 0.5 | JSON part with worldgen; custom generators as mod code | +| New hooks into vanilla behaviour (what Mixins do) | — | deep | as asked | each becomes a named hook, added for everyone ([java-mod-compat.md](research/java-mod-compat.md#3-a-porting-guide-outline)) | +| Client interfaces: `keys`, `target`, `inventory-read`, `ui`, `render`, `world-read` | planned | client tier (38) | 0.2–0.4 | as in [mods.md](mods.md#planned-interfaces) | + +Two rules from mods.md stay: **the sandbox** (no files, sockets or processes; memory cap; fuel +per call; a crashing mod stops alone) and **free when unused** (no mods means vanilla code +paths and the vanilla resource root, so the parity harnesses test the same game). + +### Registries 0.2: data-driven blocks and items + +A `.hmod` may now carry `assets/` and `data/` beside (or instead of) `mod.wasm`. A content-only +mod needs no code: + +``` +ruby.hmod +├── horizon-mod.toml id = "ruby", api = "0.2", side = "both", capabilities = ["registries"] +├── data/ruby/horizon/block/ruby_block.json +├── data/ruby/horizon/item/ruby.json +├── data/ruby/recipe/ruby_block.json (26.3 data-pack formats) +├── data/ruby/loot_table/blocks/ruby_block.json +├── data/minecraft/tags/block/mineable/pickaxe.json (adds to a vanilla tag) +├── assets/ruby/blockstates/ruby_block.json (26.3 resource-pack formats) +├── assets/ruby/models/block/ruby_block.json +├── assets/ruby/items/ruby.json +├── assets/ruby/textures/block/ruby_block.png +└── assets/ruby/lang/en_us.json +``` + +A block declaration names a **template**, a vanilla block whose behaviour class, state +properties and shapes the new block takes, and overrides what differs: + +```json +{ + "template": "minecraft:iron_block", + "properties": { "hardness": 5.0, "explosion_resistance": 6.0, "sound": "minecraft:metal", + "map_color": 33, "light": 0, "requires_tool": true }, + "item": true +} +``` + +Most decoration and resource blocks are vanilla classes with other numbers: Macaw's doors are +`DoorBlock`s, XTones are full cubes, ore sets are `DropExperienceBlock`s. So templates cover the +data tier without code. Templates also give mod blocks every behaviour Horizon already +implements and the harnesses already check. Items work the same way (`"template": +"minecraft:diamond"`, overriding `max_stack_size`, `rarity` and so on). + +How the game loads them, without touching vanilla's path: + +- Horizon reads everything from one resource root. Resource packs already work as an + **overlay root** (`packs::startup_root`) with vanilla's files linked and the overridden ones + rewritten. Content mods add one more layer: the enabled mods' `assets/` and `data/`, and the + prepared per-state tables (`facts.json`, `gameplay-facts.json`, `block-behaviours.json`, the + collision, occlusion and movement tables, `model-states.json`, `render-definitions.json`, + `items.json`, ...). Each table gets the mod blocks' rows appended, copied from the template's + rows with the declared overrides. The loaders then read one tree and need no mod-specific + code. +- **Vanilla state ids do not move.** Mod states are appended after vanilla's, mods in id order, + so the same mod set gives the same ids. Saves store block names, so ids never reach the disk. +- Loaders that read only `data/minecraft/` (recipes, loot, tags) read every namespace, as + vanilla does. With no mods there is only `minecraft`, so nothing changes. +- The overlay is cached like the resource-pack overlay and rebuilt when a mod file changes. +- Not in 0.2: multiplayer registry sync (single player and the integrated server first), worlds + opened without a mod they used (vanilla turns unknown blocks into air; we will ask first), + vanilla ids redefined by a mod (refused). + +## The pipeline: `horizon-port-pack` + +A Rust tool in this repo (`crates/horizon-port-pack`, a CLI the launcher also calls), modelled +on the version-port pipeline (`tools/version_port.py`: detect, diff, regen, harnesses, report, +publish). Each step reads and writes files in a work directory, so it can be rerun, resumed and +inspected: + +``` +/ ~/.horizon/ports// for players; ~/code/horizon-parity/modports/ for us +├── pack.json normalised import +├── inventory.json per mod: metadata, licence, census, class, tier, deps, layer +├── jars/ the user's own jars (copied or linked from their instance), never uploaded +├── mods// +│ ├── carry/ assets/ + data/ upgraded to 26.3 +│ ├── oracle/ facts, registries and traces exported from the Java oracle +│ ├── port/ the agent's Rust crate (tiers logic and up) +│ ├── harness/ per-mod harness results and logs +│ └── .hmod +└── coverage.json, coverage.md +``` + +### 1. Import + +| Format | Read | Jars come from | +|---|---|---| +| Modrinth `.mrpack` | `modrinth.index.json`: `dependencies` (minecraft, neoforge / fabric-loader / forge / quilt-loader), `files[]` with path, sha1/sha512, `env` (client/server), download URLs; `overrides/`, `client-overrides/`, `server-overrides/` | downloaded from the listed Modrinth URLs, hash-checked | +| CurseForge zip | `manifest.json`: `minecraft.version`, `modLoaders[]`, `files[]` (`projectID`, `fileID`, `required`), `overrides` | the user's installed instance (CurseForge app `minecraftinstance.json` + `mods/`). CurseForge's API needs a key, so we take what the user already downloaded | +| Prism / MultiMC instance | `mmc-pack.json` components (`net.minecraft`, `net.neoforged`, `net.fabricmc.fabric-loader`), `instance.cfg`, `.minecraft/mods/*.jar`, packwiz `.pw.toml` files if present | the instance folder | +| packwiz | `pack.toml`, `index.toml`, `mods/*.pw.toml` | as listed | + +`pack.json` holds the Minecraft version, the loader and its version, each file with its hashes +and side, and the overrides (configs, KubeJS scripts, datapacks). + +### 2. Inventory and classification + +Per jar, without decompiling: + +- **Metadata:** `META-INF/neoforge.mods.toml` / `META-INF/mods.toml` / `fabric.mod.json`: id, + version, `license`, authors, URLs, dependencies with ordering and side, mixin configs, access + transformers. +- **Census of files:** blockstates (≈ blocks), item models (≈ items), recipes, loot tables, + tags, worldgen files, structure NBTs, languages, sounds, textures; the number of mixins and + the vanilla classes they target; whether the jar has code beyond its data. +- **Census of classes:** the superclass names in the class files (constant pool only): how + many block entities, menus, screens, entities, renderers, recipe serializers, payload types. +- **Known mods:** a reviewed table in the repo (id → class, tier, Horizon equivalent: "sodium: + performance, built in", "jei: client-ui, recipe viewer built in") wins over heuristics. It + starts with ATM10's 495 rows. + +Class rules, in order: the known-mods table; client-only side → client-ui; server-only side → +server-only; mixins only, into rendering or ticking, no content → performance; no content and +depended on by others → library; depends on two or more content mods and adds little → +integration; otherwise content. Tier rules: content with no code beyond registration → +data; behaviour callbacks only → logic; block entities or menus → machines; entities, +renderers, dimensions or mixins into gameplay → deep. + +### 3. Dependency order + +A topological order over required dependencies, libraries first. Each mod gets a layer (0: +needs nothing in the pack). A mod is ported only after its dependencies are ported or mapped +to the API. A library mapped to the API ("Curios → accessory slots") counts as done when that +API feature exists. Cycles (rare: optional mutual integrations) are broken at optional edges. + +### 4. Carry-over: data and assets + +Mechanical, the same for every mod, and no agent: + +1. Extract `assets/` and `data/` from the jar into `mods//carry/`. +2. **Upgrade to 26.3.** ATM10 is 1.21.1 and Horizon is 26.3. Item models moved to `items/` + (1.21.4), recipe ingredients and results changed shape (1.21.2), some definitions moved to + files of their own, and some registries and tags were renamed. The upgrader is a table of these changes generated from + vanilla's own datafixers and pack-format notes, applied per file. A file it cannot upgrade + is listed, not guessed. +3. **Registrations.** Block and item ids registered in Java code are read from the oracle + (step 6): its facts exporter writes each mod block state's hardness, sounds, shapes, light, + map colour and class chain. These are the same exporters that produce Horizon's vanilla + `gameplay-facts.json`, run on the modded game. The class chain picks the template (a + `DoorBlock` → a vanilla door). Without an oracle, the blockstate's property set gives the + template (`facing, half, hinge, open, powered` is a door), with the template's numbers. +4. **The pack's own data.** KubeJS scripts, Almost Unified and config-driven recipes change + recipes, tags and loot after load. We do not translate scripts. The oracle exports the + **final** recipe, tag and loot registries of the whole pack once, and the pack layer + carries those over. +5. Write `.hmod`. For a data-tier mod, it is now ported. + +### 5. Code: one agent per mod + +For tiers logic, machines and deep, in dependency order, as many agents at once as the AI +budget allows: + +- **Input:** the inventory record, the carried-over data, the oracle's exports and traces, the + harness, the Horizon mod API docs, the ports of its dependencies, and the mod's decompiled + code as a local reference (dev-only, in the work directory). +- **Output:** a Rust crate in `mods//port/` built with `cargo horizon-mod build`, and its + `.hmod`. +- **Loop:** write → build → run the harness → read the differences → fix, until the harness + passes or the agent reports what blocks it. Usually that is an API gap, which becomes an + issue against the mod API ("needs a scheduled-tick hook"), the way version ports turn + differences into work items. +- **Rules:** the agent writes the port from observed behaviour and the harness, not by + transliterating decompiled Java; ports follow the mod's licence ([Licences](#licences)). + Players without an AI agent get the carry-over tiers. A port the licence lets us publish can + be downloaded instead of regenerated. + +### 6. The Java oracle and per-mod harnesses + +The oracle is **dev-only**, like Horizon's vanilla oracles in `tools/`: the pack's own +Minecraft version (1.21.1 for ATM10) with NeoForge or Fabric, the mod and its dependencies, +plus a small exporter mod (written by us, never shipped to players). It runs headless and is +driven over a socket, as the vanilla oracles are. + +A **harness per mod**, generated from the tier: + +| Tier | What is compared, oracle vs Horizon with the port | +|---|---| +| data | every registered block state's facts (hardness, sounds, shapes, light, map colour, drops via loot), every item's facts, every recipe's result for its inputs, loot table outputs over fixed seeds, tags; structure placement over fixed seeds and chunks | +| logic | scripted interactions: place, use, break, tick N times; the world diff and the inventories after each step | +| machines | a fixture world with the machine, its inputs and power: the output, energy and progress per tick over N ticks; the menu's slots and data values; NBT after save and load | +| deep | entity scenarios (spawn, tick N, positions and states, drops), and render captures where the look is the point, compared as images with a tolerance | + +The comparison skips vanilla 1.21.1-versus-26.3 differences: it normalises ids and components +through the step-4 upgrader and compares only the mod's own ids and effects. The harness format +is `tools/parity.py`'s, so the same runner, local or CI, runs vanilla and mod harnesses. + +### 7. Coverage report + +`coverage.json` and `coverage.md`, per mod and totalled per class and tier: + +- **ported**: `.hmod` built, harness green; +- **partial**: `.hmod` built, harness passes the listed parts (e.g. blocks and recipes yes, + machine processing not yet), with the failing checks and the API gaps blocking them; +- **not yet**: waiting on an API tier or a dependency, which is named; +- **not needed**: performance, library mapped to the API, pack tooling folded into the + pipeline, client-ui built in. + +Plus the licence summary (how many ports could be published) and, for a pack, "playable?": +whether every required content mod is ported or partial with its blocks and items present. +For ATM10 today: 125 of 495 are not needed. The other 370 are not yet ported; 68 of them are +data tier, so they need registries and carry-over but no agent. + +## Measuring "10x" + +`tools/perf_bench.py` already measures Horizon against vanilla and vanilla with performance +mods on the same machine, world and camera path ([benchmark.md](benchmark.md)). It gains +`--game pack --pack `: the pack on its own loader (NeoForge 21.1.259 for +ATM10), launched with the pack's recommended JVM arguments, driven by the same dev-only bench +mod, ported to that loader. + +| Metric | How | Horizon side | +|---|---|---| +| **Load time** | start → title screen; start → in a fresh world, every chunk around the spawn drawn | the same with the ported pack's `.hmod`s enabled | +| **RAM** | peak and steady RSS of the process, sampled 4 times a second from outside (the whole JVM for Java) | the whole process | +| **FPS** | the four flight scenes: mean, 1 % and 0.1 % lows, p99 frame time | same | +| **TPS / MSPT** | a fixed server-load world: N loaded chunks with the pack's machines and mobs placed by the harness fixtures; mean and p99 milliseconds per tick over 60 s (NeoForge: `/neoforge tps` and spark; Horizon: the integrated server's tick times, which today feed only the debug chart, exposed through `horizon-ctl`) | same fixture, the ported content | +| **World generation** | chunks per second pregenerating a fixed square (Chunky on NeoForge; Horizon gets a pregeneration command for this) with the pack's worldgen | same | +| **Disk and download** | install size of the pack against its `.hmod`s | | + +Two comparisons, both published: + +1. **Same content.** NeoForge with only the mods Horizon has ported (plus their dependencies) + against Horizon with those ports. Content matches, so this is the honest ratio. +2. **What players run today.** The full pack on NeoForge as a reference row, labelled as + such, beside Horizon's partial pack. This is not a like-for-like ratio. + +"10x" is claimed per metric only where the same-content ratio reaches it over the repeats' +confidence interval. Other ratios are reported as they come out. Caveat (in every report): +the pack runs Minecraft 1.21.1 and Horizon runs 26.3, so the vanilla parts differ by a few +versions. + +## The working version for 2026-10-23 + +In scope (each is a PR or a small stack): + +1. **This design merged.** +2. **Registries 0.2** in the game: content-only `.hmod`s with blocks (full cubes and the + vanilla templates the first pack needs: doors, trapdoors, fences, walls, slabs, stairs, + panes, glass), items, block items, recipes, loot tables, tags, blockstates, models, textures + and lang, in single player. Proven by a harness: a test mod's block placed, rendered, broken + with the right time and tool, dropping its loot, crafted from its recipe; every per-state + fact equal to its template's with the overrides applied. Parity unchanged with no mods. +3. **`horizon-port-pack`**: import (`.mrpack`, CurseForge zip and instance, Prism), inventory, + classify, licence record, dependency order, data carry-over for data-tier mods and their + `.hmod`s, coverage report. Run on ATM10's real list (coverage report published in the PR, + metadata only) and on a small real pack end to end. +4. **First pack end to end, locally:** 5–10 data-tier mods with permissive licences from ATM10 + (candidates: Macaw's Doors, Fences and Walls, Trapdoors and Paths (MIT), Factory Blocks + (CC0), XTones Reworked (MIT), Cloud Glass (MIT), Glassential (MIT), Crystalix (LGPL)), each + with its harness against the NeoForge 1.21.1 oracle. The ports stay local even though these + licences would allow publishing: we ask first. +5. **Launcher:** "Import modpack" (`.mrpack` / CurseForge zip / instance) showing the + coverage report (ATM10's first), and "Port and play" for what is portable. +6. **Measured:** load time, RAM and FPS of that pack on NeoForge 1.21.1 against Horizon, with + the full ATM10 on NeoForge as the reference row. + +Out of scope for that date, and next in order: worldgen carry-over (the 30 or so structure and biome mods), +behaviour callbacks and server events (0.3), block entities, menus, capabilities and net +(0.4), the first agent-ported logic-tier mod as the pilot of step 5, then machines. Porting all +of ATM10 is a campaign. Each step publishes its coverage number; we make no claim beyond what +the report shows. + +## Open questions for Ludovic + +- Contacting authors of permissively licensed mods to publish ports (none contacted). +- Whether players should run code-port agents themselves (their own Claude Code or Codex + login, as Zenith does) or only download published ports. +- A CurseForge API key for the launcher (CurseForge grants them to launchers on request). Until + then, CurseForge packs import from an installed instance. diff --git a/docs/modpacks/atm10-mods.csv b/docs/modpacks/atm10-mods.csv new file mode 100644 index 000000000..ceee3e5d7 --- /dev/null +++ b/docs/modpacks/atm10-mods.csv @@ -0,0 +1,496 @@ +mod_id,name,version,class,tier,confidence,source,license,client,server +accelerateddecay,Accelerated Decay,21.0.0,content,logic,categories,modrinth,LGPL-3.0-only,required,required +actuallyadditions,Actually Additions,1.3.26,content,machines,categories,modrinth,MIT,required,required +ad_astra,Ad Astra,1.16.26,content,deep,categories,modrinth,LicenseRef-Terrarium-Licence,required,required +ad_astra_giselle_addon,Ad Astra: Giselle Addon,8.6,integration,machines,categories,curseforge (modrinth listing),MIT,required,required +additional_lights,Additional Lights,2.1.10,content,logic,guess,curseforge,unknown (read mods.toml at import),, +advanced_ae,Advanced AE,1.6.12-1.21.1,content,machines,categories,modrinth,LGPL-3.0-or-later,required,required +advancedperipherals,Advanced Peripherals,1.21.1-0.8.2a,integration,machines,categories,curseforge (modrinth listing),Apache-2.0,required,required +ae2,Applied Energistics 2,19.2.18,content,deep,categories,modrinth,LicenseRef-Multiple,required,required +ae2ct,AE2:Crafting Tree,1.21.1-1.1.1,client-ui,client,name,curseforge,unknown (read mods.toml at import),, +ae2importexportcard,AE2 Import Export Card,1.21.1-1.9.1,content,machines,categories,modrinth,MIT,required,required +ae2jeiintegration,AE2 JEI Integration,1.2.1,integration,client,name,curseforge,unknown (read mods.toml at import),, +ae2netanalyser,AE2NetworkAnalyzer,1.21-2.1.5-neoforge,content,machines,name,curseforge,unknown (read mods.toml at import),, +ae2wtlib,AE2WTLib,19.5.1,content,machines,categories,modrinth,MIT,required,required +aeinfinitybooster,AEInfinityBooster,1.21.1-1.0.0.58,content,logic,categories,modrinth,LGPL-3.0-only,required,required +aether,The Aether,1.5.10,content,deep,categories,curseforge (modrinth listing),LicenseRef-Custom,required,required +aiimprovements,AI-Improvements,0.5.3,performance,none,categories,modrinth,LicenseRef-All-Rights-Reserved,unsupported,required +akashictome,Akashic Tome,1.8-30,content,logic,categories,modrinth,CC-BY-NC-SA-3.0,required,required +allthearcanistgear,All The Arcanist Gear,1.21.1-21.3.2,content,logic,name,curseforge,unknown (read mods.toml at import),, +allthecompressed,AllTheCompressed,4.4.0,content,data,name,curseforge,unknown (read mods.toml at import),, +alltheleaks,All The Leaks,1.1.13+1.21.1-neoforge,performance,none,name,curseforge,unknown (read mods.toml at import),, +allthemodium,Allthemodium,3.2.1,content,deep,name,curseforge,unknown (read mods.toml at import),, +alltheores,AllTheOres,3.2.0,content,data,name,curseforge,unknown (read mods.toml at import),, +allthetweaks,AllTheTweaks,2.12.1,content,logic,name,curseforge,unknown (read mods.toml at import),, +allthewizardgear,All the Wizard Gear,1.21.1-1.2.0,content,logic,name,curseforge,unknown (read mods.toml at import),, +almostunified,AlmostUnified,1.21.1-1.4.2,other,none,categories,modrinth,LicenseRef-All-Rights-Reserved,optional,required +amendments,Amendments,1.21-2.1.11,content,deep,categories,modrinth,LicenseRef-Supplementaries-Team-License-1.1,required,required +apotheosis,Apotheosis,8.9.0,content,deep,categories,modrinth,MIT,required,required +apothic_attributes,Apothic Attributes,2.11.0,library,none,categories,modrinth,MIT,required,required +apothic_enchanting,Apothic Enchanting,1.6.4,content,machines,categories,modrinth,MIT,required,required +apothic_spawners,Apothic Spawners,1.4.0,content,logic,categories,modrinth,MIT,required,required +appflux,AppliedFlux,1.21-2.1.6-neoforge,content,machines,name,curseforge,unknown (read mods.toml at import),, +appleskin,AppleSkin,3.0.9+mc1.21,client-ui,client,categories,modrinth,Unlicense,optional,optional +appmek,Applied Mekanistics,1.6.3,integration,machines,categories,modrinth,LGPL-3.0-only,required,required +aquaculture,Aquaculture 2,2.7.21,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +architectury,Architectury,13.0.11,library,none,categories,modrinth,LGPL-3.0-only,required,required +ars_additions,Ars Additions,1.21.1-21.3.0,content,logic,categories,modrinth,LGPL-3.0-only,required,required +ars_controle,Ars Controle,1.21.1-1.6.16,content,logic,categories,modrinth,LGPL-3.0-only,required,required +ars_creo,Ars Creo,5.4.0,integration,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +ars_elemancy,Ars Elemancy,1.18.3,content,logic,categories,curseforge (modrinth listing),LGPL-3.0-only,required,required +ars_elemental,Ars Elemental,0.7.10.4,content,deep,name,curseforge,unknown (read mods.toml at import),, +ars_nouveau,Ars Nouveau,5.13.3,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +ars_ocultas,Ars Ocultas,2.6.1,content,logic,categories,modrinth,LGPL-3.0-only,required,required +ars_polymorphia,Ars Polymorphia,1.0.3,content,logic,categories,modrinth,LGPL-3.0-only,required,required +ars_technica,Ars Technica,2.7.6,content,machines,name,curseforge,unknown (read mods.toml at import),, +ars_unification,Ars Unification,1.2.21,integration,data,categories,modrinth,LGPL-3.0-only,required,required +arseng,Ars Énergistique,2.1.1-beta,integration,machines,categories,modrinth,LGPL-3.0-only,required,required +artifacts,Artifacts,13.2.5,content,deep,categories,modrinth,MIT,required,required +astralsorcery,Astral Sorcery,2.0.2,content,deep,name,curseforge,unknown (read mods.toml at import),, +athena,Athena,4.0.6,library,none,categories,modrinth,MIT,required,unsupported +atlas_api,Atlas API,1.21.1-1.2.0,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +atmcompat,ATM: Compat,1.21.1-1.0.0,integration,data,name,curseforge,unknown (read mods.toml at import),, +attributefix,AttributeFix,21.1.3,other,none,categories,modrinth,LGPL-2.1-only,required,required +auroral,Auroral,1.21.1-1.1.3,content,deep,categories,modrinth,MIT,required,required +auroras,Auroras,1.6.2,client-ui,client,categories,modrinth,BSD-2-Clause,required,unsupported +balm,Balm,21.0.66,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,optional,optional +bcc,Better Compatibility Checker,21.1.8,other,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +bellsandwhistles,Create: Bells & Whistles,0.4.7-1.21.1,content,deep,categories,modrinth,GPL-3.0-or-later,required,required +betteradvancedtooltips,Better Advanced Tooltips,2101.1.0-build.5,client-ui,client,categories,modrinth,MIT,required,required +betteradvancements,Better Advancements,0.4.3.21,client-ui,client,categories,modrinth,LicenseRef-Dont-Be-a-Jerk,required,unsupported +betterdeserttemples,YUNG's Better Desert Temples,1.21.1-NeoForge-4.1.5,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +betterdungeons,YUNG's Better Dungeons,1.21.1-NeoForge-5.1.4,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +betterendisland,YUNG's Better End Island,1.21.1-NeoForge-3.1.2,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +betterfortresses,YUNG's Better Nether Fortresses,1.21.1-NeoForge-3.1.5,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +betterjungletemples,YUNG's Better Jungle Temples,1.21.1-NeoForge-3.1.2,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +bettermineshafts,YUNG's Better Mineshafts,1.21.1-NeoForge-5.1.1,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +betteroceanmonuments,YUNG's Better Ocean Monuments,1.21.1-NeoForge-4.1.2,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +betterstrongholds,YUNG's Better Strongholds,1.21.1-NeoForge-5.1.3,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +betterwitchhuts,YUNG's Better Witch Huts,1.21.1-NeoForge-4.1.1,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +bhc,Baubley Heart Canisters,1.21.1-1.4.3,content,logic,categories,curseforge (modrinth listing),MIT,required,required +bibliobiomes,Bibliobiomes Legacy,1.6.1,integration,data,categories,modrinth,MIT,required,required +bibliocraft,Bibliocraft Legacy,1.6.5,content,machines,categories,modrinth,MIT,required,required +bibliowoods,Bibliowoods Legacy,1.6.2,integration,data,categories,modrinth,MIT,required,required +bigreactors,Extreme Reactors,1.21.1-2.4.28,content,machines,categories,curseforge (modrinth listing),MIT,required,required +biomeswevegone,Oh The Biomes We've Gone,2.6.3,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +blockui,UI Library Mod,1.0.212-1.21.1-snapshot,library,none,name,curseforge,unknown (read mods.toml at import),, +blueflame,Blue Flame Burning,1.21.1-1.1.1,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +bookshelf,Bookshelf,21.1.81,library,none,categories,modrinth,LGPL-2.1-only,required,required +borderlesswindow,Borderless Window,1.21.1-1.7.5_1,other,none,categories,modrinth,MIT,required,unsupported +botanypots,BotanyPots,21.1.44,content,machines,categories,modrinth,LGPL-2.1-only,required,required +botanypotsmystical,BotanyPots-Mystical,21.1.12,integration,data,categories,modrinth,LGPL-2.1-only,required,required +botanytrees,BotanyTrees,21.1.7,integration,data,categories,modrinth,LGPL-2.1-only,required,required +brandonscore,Brandon's Core,3.2.1.309,library,none,categories,modrinth,LicenseRef-CoFH-Dont-Be-a-Jerk-License,required,required +bridgingmod,Bridging Mod,2.6.2+1.21.1,content,logic,categories,modrinth,MIT,required,unsupported +buildinggadgets2,Building Gadgets 2,1.3.9,content,deep,name,curseforge,unknown (read mods.toml at import),, +bwncr,Bad Wither No Cookie Reloaded,3.20.4,server-only,logic,categories,modrinth,MIT,required,unsupported +byzantine,Byzantine,51.1,content,data,guess,curseforge,unknown (read mods.toml at import),, +cabletiers,Cable Tiers,1.21.1-0.6.15,content,machines,categories,modrinth,MIT,required,required +caelus,Caelus API,7.0.1+1.21.1,library,none,categories,modrinth,LGPL-3.0-or-later,required,required +camol,Camol,1.21.1-0.4.0,library,none,guess,curseforge,unknown (read mods.toml at import),, +cataclysm,L_Ender's Cataclysm 1.21.1,3.33,content,deep,categories,modrinth,CC-BY-NC-ND-4.0,required,required +catjammies,CatJammies,1.21-1.7.1,client-ui,client,guess,curseforge,unknown (read mods.toml at import),, +charginggadgets,Charging Gadgets,1.14.1,content,machines,name,curseforge,unknown (read mods.toml at import),, +chipped,Chipped,4.0.2,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +chisel,Chisel Reborn,2.0.1+mc1.21.1,content,machines,categories,modrinth,LicenseRef-Custom,required,required +chromacarvings,Chroma Carvings,1.21.1-0.2.0,content,data,guess,curseforge,unknown (read mods.toml at import),, +cleanswing,Clean Swing,1.10,content,logic,guess,curseforge,unknown (read mods.toml at import),, +cloth_config,Cloth Config v15 API,15.0.140,library,none,categories,modrinth,LGPL-3.0-only,optional,optional +cloudglass,Cloud Glass,1.1.0,content,data,categories,curseforge (modrinth listing),MIT,required,required +clumps,Clumps,19.0.0.1,performance,none,categories,modrinth,MIT,optional,optional +cobblegengalore,Cobblegen Galore,1.21.1-0.2.9,content,machines,guess,curseforge,unknown (read mods.toml at import),, +cobweb,Cobweb,1.4.0,library,none,categories,modrinth,LicenseRef-Crystal-Nest-Community-License-v1,required,required +codechickenlib,CodeChicken Lib,4.6.1.529,library,none,categories,modrinth,LGPL-2.1-or-later,optional,optional +colorfulhearts,Colorful Hearts,10.5.9,client-ui,client,categories,modrinth,MIT,required,unsupported +colorwheel,Colorwheel,1.3.0+mc1.21.1,other,none,categories,modrinth,LGPL-3.0-only,required,unsupported +colorwheel_patcher,Colorwheel Patcher,1.0.5+mc1.21.1,other,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,unsupported +comforts,Comforts,9.0.5+1.21.1,content,logic,categories,modrinth,LGPL-3.0-or-later,required,required +common_storage_lib,Common Storage Lib: Core,0.0.10,library,none,categories,modrinth,MIT,required,required +commoncapabilities,CommonCapabilities,2.11.6,library,none,name,curseforge,unknown (read mods.toml at import),, +compactmachines,Compact Machines,7.0.81,content,deep,name,curseforge,unknown (read mods.toml at import),, +computercraft,CC: Tweaked,1.113.1,content,deep,categories,modrinth,LicenseRef-CCPL,required,required +connectedglass,Connected Glass,1.1.14,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +connectivity,Connectivity Mod,7.7,performance,none,name,curseforge,unknown (read mods.toml at import),, +constructionstick,Construction Sticks,1.5.0,content,logic,categories,curseforge (modrinth listing),MIT,required,required +controlling,Controlling,19.0.5,client-ui,client,categories,modrinth,MIT,required,unsupported +cookingforblockheads,Cooking for Blockheads,21.1.24,content,machines,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +copycats,Create: Copycats+,3.0.9+mc.1.21.1-neoforge,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +corgilib,CorgiLib,5.0.0.10,library,none,categories,modrinth,LGPL-3.0-only,required,required +cosmeticarmorreworked,CosmeticArmorReworked,1.21.1-v1-neoforge,content,machines,name,curseforge,unknown (read mods.toml at import),, +crafting_on_a_stick,Crafting On A Stick,1.21.0.6,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +craftingtweaks,Crafting Tweaks,21.1.11,client-ui,client,categories,modrinth,LicenseRef-All-Rights-Reserved,optional,optional +crash_assistant,Crash Assistant,1.11.12,other,none,categories,modrinth,LicenseRef-LicenseRef-KostromDan-MML-1.1.3,required,unsupported +crashutilities,Crash Utilities,9.0.4,server-only,logic,categories,curseforge (modrinth listing),MIT,unsupported,required +create,Create,6.0.10,content,deep,categories,modrinth,LicenseRef-Create-Mod-License,optional,required +create_aquatic_ambitions,Create Aquatic Ambitions,2.0.4,content,deep,categories,modrinth,MIT,required,required +create_dragons_plus,Create: Dragons Plus,1.11.9,content,deep,categories,modrinth,LGPL-3.0-or-later,required,required +create_enchantment_industry,Create: Enchantment Industry,2.5.4b,content,deep,categories,modrinth,LGPL-3.0-or-later,required,required +create_hypertube,Create Hypertube,0.6.0,content,deep,categories,modrinth,Apache-2.0,required,required +createaddition,Create Crafts & Additions,1.7.2,content,deep,categories,modrinth,MIT,required,required +creeperoverhaul,Creeper Overhaul,4.0.6,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +cristellib,Cristel Lib,3.1.7,library,none,categories,modrinth,CC-BY-NC-ND-4.0,optional,required +cryonicconfig,Cryonic Config,1.0.0+mc1.21.11,library,none,categories,modrinth,MIT,optional,optional +crystalix,Crystalix,3.0.2,content,data,categories,curseforge (modrinth listing),LGPL-3.0-or-later,required,required +ctm,ConnectedTexturesMod,1.21-1.2.1+3,other,none,name,curseforge,unknown (read mods.toml at import),, +ctov,ChoiceTheorem's Overhauled Village,3.6.3,content,data,categories,modrinth,CC-BY-NC-ND-4.0,unsupported,required +cucumber,Cucumber Library,8.0.16,library,none,categories,modrinth,MIT,required,required +cupboard,Cupboard mod,4.2,library,none,name,curseforge,unknown (read mods.toml at import),, +curios,Curios API,9.5.1+1.21.1,library,none,categories,modrinth,LGPL-3.0-or-later,required,required +cyclopscore,Cyclops Core,1.30.0,library,none,categories,curseforge (modrinth listing),MIT,required,required +darkmodeeverywhere,Dark Mode Everywhere,1.21.1-1.4.0,client-ui,client,categories,modrinth,MIT,required,unsupported +deeperdarker,Deeper and Darker,1.4.1,content,deep,categories,modrinth,AGPL-3.0-only,required,required +deimos,Deimos,2.7,library,none,categories,modrinth,MIT,optional,optional +dimstorage,DimStorage,9.1.1,content,machines,categories,modrinth,AGPL-3.0-only,required,required +disenchanting_table,Dis-Enchanting Table,5.0.2,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +domum_ornamentum,Domum Ornamentum,1.0.236-snapshot,content,deep,name,curseforge,unknown (read mods.toml at import),, +draconicevolution,Draconic Evolution,3.1.4.633,content,deep,categories,modrinth,LicenseRef-CoFH-Dont-Be-a-Jerk-License,required,required +drippyloadingscreen,Drippy Loading Screen,3.1.5,client-ui,client,categories,modrinth,LicenseRef-DSMSLv3,required,unsupported +dummmmmmy,MmmMmmMmmMmm,1.21-2.1.2,content,deep,categories,modrinth,CC0-1.0,required,required +dungeoncrawl,Dungeon Crawl,2.3.17,content,deep,categories,modrinth,GPL-3.0-only,unsupported,required +dungeons_arise,When Dungeons Arise,2.1.68,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,unsupported,required +dyenamics,Dyenamics,1.21.1-3.5.0,content,logic,name,curseforge,unknown (read mods.toml at import),, +dyenamicsandfriends,Dyenamics and Friends,1.21.1-2.2.2,integration,data,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +dysoncubeproject,Dyson Cube Project,1.0.5,content,deep,name,curseforge,unknown (read mods.toml at import),, +easy_villagers,Easy Villagers,1.21.1-1.1.47,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +edivadlib,EdivadLib,3.0.0,library,none,categories,modrinth,LGPL-3.0-only,required,required +elevatorid,ElevatorMod,1.21.1-1.11.4,content,logic,categories,modrinth,MIT,required,required +enchdesc,EnchantmentDescriptions,21.1.11,client-ui,client,categories,modrinth,LGPL-2.1-only,required,optional +enderdrives,Ender Drives,1.5.23,content,machines,categories,curseforge (modrinth listing),MIT,required,required +enderio,Ender IO,8.2.12-beta,content,deep,categories,modrinth,Unlicense,required,required +endermanoverhaul,Enderman Overhaul,2.0.3,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +enderstorage,EnderStorage,2.13.0.191,content,machines,categories,modrinth,MIT,required,required +energymeter,Energy Meter,1.21.1-0.5.2,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +entangled,Entangled,1.3.21,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +eternal_starlight,Eternal Starlight,0.9.1+1.21.1+neoforge,content,deep,categories,modrinth,MIT,required,required +euphoria_patcher,Euphoria Patcher,1.10.5-r5.9.3-neoforge,other,none,categories,modrinth,MPL-2.0,required,unsupported +everythingcopper,Everything is Copper,1.21.1-2.4.5,content,data,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +evilcraft,EvilCraft,1.2.98,content,deep,categories,curseforge (modrinth listing),MIT,required,required +expandedae,Expanded AE,2.1.4,content,machines,categories,curseforge (modrinth listing),LGPL-3.0-only,required,required +experiencelib,ExperienceLib,1.2.1,library,none,categories,modrinth,GPL-3.0-only,required,required +explorerscompass,Explorer's Compass,1.21.1-3.4.0-neoforge,content,machines,categories,modrinth,CC-BY-NC-SA-4.0,required,required +explorify,Explorify,1.6.5,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,optional,required +extended_industrialization,Extended Industrialization,1.16.4-1.21.1,content,machines,categories,modrinth,MIT,required,required +extendedae,ExtendedAE,1.21-2.2.41-neoforge,content,machines,name,curseforge,unknown (read mods.toml at import),, +extradisks,Extra Disks,1.21.1-4.0.15,content,machines,categories,modrinth,MIT,required,required +extrastorage,ExtraStorage,5.0.10,content,machines,categories,modrinth,AGPL-3.0-only,required,required +extremesoundmuffler,Extreme Sound Muffler,3.57,client-ui,client,categories,modrinth,LGPL-3.0-only,required,optional +factory_blocks,Factory Blocks,1.4.0+mc1.21.1,content,data,categories,curseforge (modrinth listing),CC0-1.0,required,required +fancymenu,FancyMenu,3.9.14,client-ui,client,categories,modrinth,LicenseRef-DSMSLv3.1,required,optional +farmersdelight,Farmer's Delight,1.3.4,content,machines,categories,modrinth,MIT,required,required +farmingforblockheads,Farming for Blockheads,21.1.14,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +fastbench,Fast Workbench,9.1.3,performance,none,name,curseforge,unknown (read mods.toml at import),, +fastfurnace,FastFurnace,9.0.1,performance,none,categories,curseforge (modrinth listing),MIT,unsupported,required +fastsuite,Fast Suite,6.0.7,performance,none,categories,curseforge (modrinth listing),MIT,required,required +ferritecore,Ferrite Core,7.0.3,performance,none,categories,modrinth,MIT,optional,optional +fireproofboats,Fireproof Boats,1.21.1-1.0.4,content,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +flickerfix,FlickerFix,6.1.0,other,none,categories,curseforge (modrinth listing),MIT,required,unsupported +fluxnetworks,Flux Networks,8.0.0,content,machines,name,curseforge,unknown (read mods.toml at import),, +forbidden_arcanus,Forbidden Arcanus,2.6.1,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +formations,Formations,1.0.4,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,unsupported,required +formationsnether,Formations Nether,1.0.5+b,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,unsupported,required +formationsoverworld,Formations Overworld,1.0.5+c,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,unsupported,required +framedblocks,FramedBlocks,10.6.3,content,deep,categories,modrinth,LGPL-3.0-only,required,required +framework,Framework,0.13.11,library,none,name,curseforge,unknown (read mods.toml at import),, +ftbchunks,FTB Chunks,2101.1.22,server-only,deep,name,curseforge,unknown (read mods.toml at import),, +ftbessentials,FTB Essentials,2101.1.10,server-only,logic,name,curseforge,unknown (read mods.toml at import),, +ftbfiltersystem,FTB Filter System,21.1.4,library,none,name,curseforge,unknown (read mods.toml at import),, +ftbjeiextras,FTB Jei Extras,21.1.7,integration,client,name,curseforge,unknown (read mods.toml at import),, +ftblibrary,FTB Library,2101.1.37,library,none,name,curseforge,unknown (read mods.toml at import),, +ftbquests,FTB Quests,2101.1.36,content,machines,name,curseforge,unknown (read mods.toml at import),, +ftbquestslangsplitter,FTB Quests Lang Splitter,1.0.7,other,none,name,curseforge,unknown (read mods.toml at import),, +ftbranks,FTB Ranks,2101.1.5,server-only,logic,name,curseforge,unknown (read mods.toml at import),, +ftbteams,FTB Teams,2101.1.11,server-only,logic,name,curseforge,unknown (read mods.toml at import),, +ftbultimine,FTB Ultimine,2101.1.15,content,logic,name,curseforge,unknown (read mods.toml at import),, +ftbxmodcompat,FTB XMod Compat,21.1.12,integration,logic,name,curseforge,unknown (read mods.toml at import),, +fuelgoeshere,Fuel Goes Here,1.21.1-1.2.0,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +functionalstorage,Functional Storage,1.21.1-1.5.8,content,machines,categories,curseforge (modrinth listing),MIT,required,required +fusion,Fusion,1.3.16,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,unsupported +fzzy_config,Fzzy Config,0.7.7+1.21+neoforge,library,none,categories,modrinth,LicenseRef-TDL-M,required,required +gateways,Gateways To Eternity,5.1.0,content,deep,categories,curseforge (modrinth listing),MIT,required,required +geckolib,GeckoLib 4,4.9.3,library,none,categories,modrinth,MIT,required,optional +generatorgalore,Generator Galore,1.21.1-1.7.0,content,machines,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +getittogetherdrops,"Get It Together, Drops!",1.4,performance,none,categories,modrinth,MIT,unsupported,required +glassential,Glassential-renewed,3.4.7,content,data,categories,modrinth,MIT,required,required +glodium,Glodium,1.21-2.2-neoforge,library,none,categories,modrinth,MIT,required,required +gmut,Gravitational Modulating Additional Unit,6.4,integration,logic,name,curseforge,unknown (read mods.toml at import),, +guideme,GuideME,21.1.19,library,none,categories,modrinth,LicenseRef-Multiple-OSS-Licenses,required,required +handcrafted,Handcrafted,4.0.3,content,machines,categories,modrinth,LicenseRef-Terrarium-Licence,required,required +hardenedarmadillos,Hardened Armadillos,1.21.1-0.2.0,content,logic,guess,curseforge,unknown (read mods.toml at import),, +hellish_trials,Hellish Trials,1.0.5,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,unknown,unknown +herbsandharvest,Mama's Herbs and Harvest,1.21.1-24,content,data,categories,curseforge (modrinth listing),MIT,required,required +heyberryshutup,Hey Berry! SHUT UP,1.21.0-2.0.4,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +hostilenetworks,Hostile Neural Networks,6.5.1,content,machines,categories,modrinth,MIT,required,required +iceandfire,Ice And Fire Community Edition,2.0-beta.17,content,deep,categories,modrinth,LGPL-3.0-or-later,required,required +iceberg,Iceberg,1.3.2,library,none,categories,modrinth,CC-BY-NC-ND-4.0,required,required +illagerwarship,Illager-Warship,1.0.1,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +imfast,I'm Fast,1.0.3,content,logic,categories,modrinth,MIT,unsupported,required +immediatelyfast,ImmediatelyFast,1.6.15+1.21.1,performance,none,categories,modrinth,LGPL-3.0-or-later,required,unsupported +immeng,Immersive Energistics,1.1.0-beta,integration,machines,categories,modrinth,LGPL-3.0-only,required,required +immersiveengineering,Immersive Engineering,12.4.2-194,content,deep,categories,modrinth,LicenseRef-Custom,required,required +incontrol,InControl,1.21-10.3.0,server-only,logic,categories,modrinth,MIT,unsupported,required +industrialforegoing,Industrial Foregoing,1.21-3.6.39,content,machines,categories,modrinth,MIT,required,required +industrialforegoingsouls,Industrial Foregoing Souls,1.10.7,content,machines,categories,modrinth,MIT,required,required +industrialization_overdrive,Industrialization Overdrive,1.14.0+1.21.1,content,machines,categories,modrinth,MIT,required,required +integratedcrafting,IntegratedCrafting,1.7.2,content,deep,name,curseforge,unknown (read mods.toml at import),, +integrateddynamics,IntegratedDynamics,1.38.0,content,deep,name,curseforge,unknown (read mods.toml at import),, +integratedscripting,IntegratedScripting,1.0.27,content,deep,name,curseforge,unknown (read mods.toml at import),, +integratedterminals,IntegratedTerminals,1.10.0,content,deep,name,curseforge,unknown (read mods.toml at import),, +integratedtunnels,IntegratedTunnels,1.13.0,content,deep,name,curseforge,unknown (read mods.toml at import),, +interdimensionalwirelesstransmitter,Interdimensional Wireless Transmitter,1.21.1-0.1.5,content,machines,categories,modrinth,MIT,required,required +invasiveopts,Invasive Optimizations,1.0.24,performance,none,categories,modrinth,MIT,required,required +invtweaks,Inventory Tweaks Refoxed,1.21.1-1.3.2,client-ui,client,name,curseforge,unknown (read mods.toml at import),, +iris,Iris,1.8.14-beta.1+mc1.21.1,other,none,categories,modrinth,LGPL-3.0-only,required,unsupported +iris_search,IrisSearch,1.8.3-neoforge,other,none,categories,modrinth,LGPL-3.0-only,required,unsupported +ironfurnaces,Iron Furnaces,4.3.2,content,machines,categories,modrinth,Apache-2.0,required,required +ironjetpacks,Iron Jetpacks,8.0.11,content,logic,categories,modrinth,MIT,required,required +irons_jewelry,Iron's Gems 'n Jewelry,1.21.1-2.0.2,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +irons_lib,Iron's Lib,1.21.1-2.2.0,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +irons_spellbooks,Iron's Spells 'n Spellbooks,1.21.1-3.16.3,content,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +itemcollectors,Item Collectors,1.1.10,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +jade,Jade,15.10.6+neoforge,client-ui,client,categories,modrinth,CC-BY-NC-SA-4.0,optional,optional +jearchaeology,Just Enough Archaeology,1.21.1-1.2.0,integration,client,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +jei,Just Enough Items,19.64.0.454,client-ui,client,categories,modrinth,MIT,optional,optional +jei_mekanism_multiblocks,Just Enough Mekanism Multiblocks,7.23,integration,client,categories,curseforge (modrinth listing),MIT,required,unsupported +jeistuff,Just Enough Stuff,1.21.1-1.2.1,integration,client,name,curseforge,unknown (read mods.toml at import),, +journeymap,Journeymap,1.21.1-6.0.9,client-ui,client,categories,modrinth,LicenseRef-All-Rights-Reserved,optional,optional +jumpboat,Jumpy Boats,1.21.0-1.0.5,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +jupiter,Jupiter,2.3.7,library,none,categories,modrinth,LGPL-3.0-or-later,optional,optional +justdirethings,Just Dire Things,1.5.7,content,deep,name,curseforge,unknown (read mods.toml at import),, +justenoughbreeding,Just Enough Breeding,3.3.1,integration,client,categories,modrinth,MIT,required,unsupported +justenoughprofessions,Just Enough Professions (JEP),4.0.5,integration,client,categories,curseforge (modrinth listing),MIT,required,optional +justzoom,Just Zoom,3.0.1,client-ui,none,categories,modrinth,LicenseRef-DSMSLv3.1,required,unsupported +keybindbundles,KeyBind Bundles,1.4.0,client-ui,client,categories,curseforge (modrinth listing),MIT,required,unsupported +keybindspurger,KeybindsPurger,1.4.0,client-ui,client,categories,modrinth,MIT,required,unsupported +konkrete,Konkrete,1.9.9,library,none,categories,modrinth,Apache-2.0,optional,optional +kotlinforforge,kotlinforforge,,library,none,name,curseforge,unknown (read mods.toml at import),, +kubejs,KubeJS,2101.7.2-build.374,other,none,categories,curseforge (modrinth listing),LGPL-3.0-only,optional,optional +kubejstweaks,KubeJS Tweaks,1.0.6,other,none,name,curseforge,unknown (read mods.toml at import),, +laserbridges,Laser Bridges,6.2,content,machines,categories,modrinth,MIT,required,required +laserio,LaserIO,1.9.11,content,machines,name,curseforge,unknown (read mods.toml at import),, +lionfishapi,lionfishapi,3.1,library,none,categories,modrinth,LGPL-3.0-only,required,required +lithostitched,Lithostitched,1.8.1,library,none,categories,modrinth,MIT,unsupported,required +little_big_redstone,Little Big Redstone,1.9.12-1.21.1,content,deep,categories,modrinth,MIT,required,required +livingthings,Living Things,1.21.1-2.3.2,content,deep,categories,modrinth,CC-BY-NC-ND-4.0,required,required +lmft,Load My F***ing Tags,1.1.1+1.21.9,other,none,categories,modrinth,CC0-1.0,unsupported,required +logisticsnetworks,LogisticsNetworks,1.17.2,content,machines,guess,curseforge,unknown (read mods.toml at import),, +lootr,Lootr,1.21.1-1.11.38.127,content,machines,categories,modrinth,MIT,required,required +luminax,Luminax,1.3.1,client-ui,client,guess,modrinth,LGPL-3.0-or-later,required,required +mahoutsukai,Mahou Tsukai,1.21.1-v1.36.28,content,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +mcjtylib,McJtyLib,1.21-9.0.21,library,none,categories,modrinth,MIT,required,required +mcwbridges,Macaw's Bridges,3.1.2,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +mcwdoors,Macaw's Doors,1.1.5,content,data,categories,modrinth,MIT,required,required +mcwfences,Macaw's Fences and Walls,1.2.1,content,data,categories,modrinth,MIT,required,required +mcwfurnitures,Macaw's Furniture,3.4.1,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +mcwholidays,Macaw's Holidays,1.1.2,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +mcwlights,Macaw's Lights and Lamps,1.1.5,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +mcwpaths,Macaw's Paths and Pavings,1.1.1,content,data,categories,modrinth,MIT,required,required +mcwroofs,Macaw's Roofs,2.3.2,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +mcwstairs,Macaw's Stairs and Balconies,1.0.2,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +mcwtrpdoors,Macaw's Trapdoors,1.1.5,content,data,categories,modrinth,MIT,required,required +mcwwindows,Macaw's Windows,2.4.2,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +measurements,Measurements,3.0.3,content,logic,categories,curseforge (modrinth listing),MIT,required,required +megacells,MEGA Cells,4.11.0,content,machines,categories,curseforge (modrinth listing),LGPL-3.0-only,required,required +mekanism,Mekanism,10.7.19,content,deep,categories,modrinth,MIT,required,required +mekanismcovers,Mekanism Covers,1.3-BETA+1.21,integration,machines,categories,modrinth,MPL-2.0,required,required +mekanismgenerators,Mekanism: Generators,10.7.19,content,deep,categories,modrinth,MIT,required,required +mekanismtools,Mekanism: Tools,10.7.19,content,data,categories,modrinth,MIT,required,required +mekanisticrouters,Mekanistic Routers,1.2.0,integration,machines,categories,curseforge (modrinth listing),MIT,required,required +mekmm,Mekanism: MoreMachine,1.4.1,content,machines,categories,modrinth,MIT,required,required +melody,Melody,1.0.10,library,none,categories,modrinth,MIT,unknown,unknown +memorysettings,memorysettings mod,6.0,other,none,name,curseforge,unknown (read mods.toml at import),, +merequester,ME Requester,1.21.1-1.5.0,content,machines,categories,modrinth,LGPL-3.0-only,required,required +merrymaking,Mama's MerryMaking,1.21.1-17,content,logic,categories,curseforge (modrinth listing),MIT,required,required +mes,MoogsEndStructures,2.1.1,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +mezz_config,mezz_config,,library,none,categories,modrinth,MIT,optional,optional +mffs,Modular Force Field System,5.4.44,content,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +mifa,More Industrial Foregoing Addons,2.1.0,content,machines,categories,modrinth,MIT,required,required +minecolonies,MineColonies,1.1.1403-1.21.1,content,deep,categories,curseforge (modrinth listing),GPL-3.0-or-later,required,required +mininggadgets,Mining Gadgets,1.18.8,content,deep,name,curseforge,unknown (read mods.toml at import),, +mns,MoogsNetherStructures,3.1.1,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +mob_grinding_utils,Mob Grinding Utils,1.1.10+mc1.21.1,content,machines,name,curseforge,unknown (read mods.toml at import),, +modelfix,Model Gap Fix,1.21-1.10,other,none,categories,modrinth,GPL-3.0-only,required,unsupported +modern_industrialization,Modern Industrialization,2.5.10,content,deep,categories,modrinth,MIT,required,required +moderndynamics,Modern Dynamics,0.9.6,content,machines,categories,modrinth,LGPL-3.0-only,required,required +modernfix,ModernFix,5.27.26+mc1.21.1,performance,none,categories,modrinth,LGPL-3.0-only,optional,optional +modonomicon,Modonomicon,1.120.7,library,none,categories,modrinth,MIT AND CC-BY-4.0,required,required +modularbees,ModularBees,1.21.1-3.4-neoforge,content,machines,name,curseforge,unknown (read mods.toml at import),, +modularrouters,Modular Routers,13.2.7,content,machines,categories,modrinth,MIT,required,required +monolib,MonoLib,4.1.2,library,none,categories,modrinth,Unlicense,required,required +moogs_structures,Moog's Structure Lib,3.4.2,library,none,categories,modrinth,LGPL-3.0-only,unsupported,required +moonlight,Moonlight Lib,1.21.1-3.7.2,library,none,categories,modrinth,LicenseRef-LGPL-with-additional-dependency-clause,required,required +moredragoneggs,More Dragon Eggs,5.0,content,logic,name,curseforge,unknown (read mods.toml at import),, +moreoverlays,More Overlays Updated,1.24.2,client-ui,client,categories,modrinth,MIT,required,unsupported +morered,More Red,6.0.0.3,content,logic,categories,curseforge (modrinth listing),MIT,required,required +moreredxcctcompat,More Red x CC:Tweaked Compat,1.21.1-1.3.0,integration,logic,name,curseforge,unknown (read mods.toml at import),, +mostructures,Mo' Structures,1.6.0+1.21.1,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +mousetweaks,Mouse Tweaks,2.26.1,client-ui,client,categories,modrinth,BSD-3-Clause,required,unsupported +mss,MoogsSoaringStructures,2.2.0,content,data,categories,modrinth,GPL-3.0-only,unsupported,required +multipiston,Multi-Piston,1.2.58-1.21.1,content,logic,name,curseforge,unknown (read mods.toml at import),, +mvs,MoogsVoyagerStructures,5.1.3,content,data,categories,modrinth,MIT,unsupported,required +mysticalagradditions,Mystical Agradditions,8.0.15,content,logic,categories,modrinth,MIT,required,required +mysticalagriculture,Mystical Agriculture,8.0.28,content,machines,categories,modrinth,MIT,required,required +mysticalcustomization,Mystical Customization,6.0.2,other,none,categories,modrinth,MIT,required,required +naturesaura,NaturesAura,41.10,content,deep,categories,modrinth,MIT,required,required +naturescompass,Nature's Compass,1.21.1-3.4.0-neoforge,content,machines,categories,modrinth,CC-BY-NC-SA-4.0,required,required +neo_auth,NeoAuth,1.0.1,other,none,categories,curseforge (modrinth listing),MIT,required,unsupported +neovitae,Neo Vitae,1.1.38,content,deep,categories,modrinth,MIT,required,required +netherportalfix,NetherPortalFix,21.1.1,server-only,logic,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,unsupported,required +nochatreports,No Chat Reports,1.21.1-v2.9.1,other,none,categories,modrinth,WTFPL,optional,optional +not_enough_glyphs,Not Enough Glyphs,4.6.2,content,logic,categories,modrinth,LGPL-3.0-only,required,required +notenoughanimations,NotEnoughAnimations,1.12.6,client-ui,client,categories,modrinth,LicenseRef-tr7zw-Protective-License,required,unsupported +novillagerdm,No Villager Death Messages,6.0.0,server-only,logic,categories,modrinth,MIT,optional,optional +nullscape,Nullscape,1.2.14,content,data,categories,modrinth,LicenseRef-Stardust-Labs-License,optional,required +observable,Observable,5.4.4,performance,none,categories,modrinth,MPL-2.0,required,required +observerlib,ObserverLib,1.10.3,library,none,name,curseforge,unknown (read mods.toml at import),, +occultism,Occultism,1.224.5,content,deep,categories,modrinth,MIT,required,required +occultism_kubejs,Occultism KubeJS,1.11.0,integration,none,categories,modrinth,MIT,required,required +octolib,OctoLib,0.6.2,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +ohthetreesyoullgrow,Oh The Trees You'll Grow,5.3.5,library,none,categories,modrinth,LGPL-3.0-only,unsupported,required +omegaconfig,Omega Config Architectury,1.5.1,library,none,name,curseforge,unknown (read mods.toml at import),, +openloader,OpenLoader,21.1.5,other,none,categories,modrinth,LGPL-2.1-only,required,required +oracle_index,Oracle Index,1.4.0,library,none,categories,modrinth,CC-BY-4.0,required,unsupported +oritech,Oritech,1.2.13,content,deep,categories,modrinth,CC-BY-4.0,required,required +overlapless,Overlapless,1.21.1-1.2.0,client-ui,client,guess,curseforge,unknown (read mods.toml at import),, +overloadedarmorbar,OverloadedArmorBar,2,client-ui,client,name,curseforge,unknown (read mods.toml at import),, +owo,oωo,0.12.15.5-beta.1+1.21,library,none,categories,modrinth,MIT,required,required +pamhc2crops,Pam's HarvestCraft - Crops,1.0.9,content,data,name,curseforge,unknown (read mods.toml at import),, +pamhc2foodcore,Pam's HarvestCraft - Food Core,1.0.4,content,data,name,curseforge,unknown (read mods.toml at import),, +pamhc2foodextended,Pam's HarvestCraft - Food Extended,1.0.0,content,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +pamhc2trees,Pam's HarvestCraft - Trees,1.0.9,content,data,name,curseforge,unknown (read mods.toml at import),, +patchouli,Patchouli,1.21.1-93-NEOFORGE,library,none,categories,modrinth,CC-BY-NC-SA-3.0,required,required +pipez,Pipez,1.21.1-1.2.31,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +placebo,Placebo,9.9.4,library,none,categories,modrinth,MIT,optional,optional +playeranimator,Player Animator,2.0.4+1.21.1,library,none,categories,modrinth,MIT,required,required +pneumaticcraft,PneumaticCraft: Repressurized,8.2.23,content,deep,categories,modrinth,LGPL-2.1-only,required,required +pocketstorage,Pocket Storage,1.2.5,content,machines,categories,curseforge (modrinth listing),MIT,required,required +polyeng,Polymorphic Energistics,0.4.1,integration,machines,categories,modrinth,LGPL-3.0-only,required,required +polylib,PolyLib,2100.1.0-build.183,library,none,categories,curseforge (modrinth listing),BSD-4-Clause,optional,optional +polymorph,Polymorph,1.2.0+1.21.1,client-ui,client,categories,modrinth,LGPL-3.0-or-later,required,required +ponderjs,PonderJS,1.21.1-2.4.0,integration,none,categories,modrinth,MIT,required,unsupported +potionsmaster,PotionsMaster,1.0.1,content,machines,guess,curseforge,unknown (read mods.toml at import),, +powah,Powah,6.2.10,content,machines,categories,modrinth,LGPL-3.0-only,required,required +prickle,PrickleMC,21.1.11,library,none,categories,modrinth,LGPL-2.1-only,required,required +prism,Prism,1.0.11,library,none,categories,modrinth,CC-BY-NC-ND-4.0,required,unsupported +productivebees,Productive Bees,1.21.1-13.14.0,content,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +productivemetalworks,Productive Metalworks,1.21.1-1.15.1,content,machines,name,curseforge,unknown (read mods.toml at import),, +productivetrees,Productive Trees,1.21.1-1.1.1,content,logic,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +pylons,Pylons,5.4.2,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +quarryplus,QuarryPlus,21.1.164,content,machines,categories,modrinth,LGPL-3.0-only,required,required +railcraft,Railcraft Reborn,1.2.12,content,deep,categories,modrinth,LicenseRef-Railcraft-Reborn-License,required,required +rangedpumps,Ranged Pumps,1.3.0,content,machines,categories,curseforge (modrinth listing),MIT,required,required +rebind_narrator,Rebind Narrator,2026.08.31,client-ui,none,categories,modrinth,LGPL-3.0-only,required,unsupported +rechiseled,Rechiseled,1.2.6,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +rechiseled_chipped,Rechiseled: Chipped,1.3,integration,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +rechiseledcreate,Rechiseled: Create,1.1.1,integration,data,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +redstonepen,Redstone Pen,1.11.42,content,logic,categories,modrinth,MIT,required,required +refinedfluidsubstitution,Refined Fluid Substitution,1.21.1-2.0.0,integration,logic,categories,modrinth,MIT,required,required +refinedstorage,Refined Storage,2.0.9,content,deep,categories,curseforge (modrinth listing),MIT,required,required +refinedstorage_curios_integration,Refined Storage - Curios Integration,1.0.0,integration,machines,categories,curseforge (modrinth listing),MIT,required,required +refinedstorage_jei_integration,Refined Storage - JEI Integration,1.0.0,integration,client,categories,curseforge (modrinth listing),MIT,required,required +refinedstorage_mekanism_integration,Refined Storage - Mekanism Integration,1.2.0,integration,machines,categories,curseforge (modrinth listing),MIT,required,required +refinedstorage_quartz_arsenal,Refined Storage - Quartz Arsenal,1.0.8,content,logic,categories,curseforge (modrinth listing),MIT,required,required +refinedtypes,Refined Types,1.21.1-0.3.2,content,machines,categories,modrinth,MIT,required,required +refurbished_furniture,MrCrayfish's Furniture Mod: Refurbished,1.0.22,content,deep,name,curseforge,unknown (read mods.toml at import),, +regions_unexplored,Regions Unexplored,0.5.9,content,data,categories,modrinth,MIT,required,required +relics,Relics,0.12.8,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +reliquary,Reliquary Reincarnations,2.0.80,content,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +reliquified_artifacts,reliquified_artifacts,1.0.9,integration,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +repeatable_trial_vaults,Repeatable Trial Vaults,1.0.3,content,logic,categories,modrinth,MIT,required,required +repurposed_structures,Repurposed Structures,7.5.22+1.21.1-neoforge,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +resourcefulconfig,Resourcefulconfig,3.0.11,library,none,categories,modrinth,MIT,optional,optional +resourcefullib,Resourceful Lib,3.0.12,library,none,categories,modrinth,MIT,required,required +restrictions,Restrictions,1.21-7.0.3,content,logic,categories,curseforge (modrinth listing),MIT,required,required +rftoolsbase,RFToolsBase,1.21-6.0.11,content,machines,categories,modrinth,MIT,required,required +rftoolsbuilder,RFToolsBuilder,1.21-7.0.7,content,deep,categories,modrinth,MIT,required,required +rftoolspower,RFToolsPower,1.21-7.0.6,content,machines,categories,modrinth,MIT,required,required +rftoolsstorage,RFToolsStorage,1.21-6.0.5,content,machines,categories,modrinth,MIT,required,required +rftoolsutility,RFToolsUtility,1.21-7.0.12,content,machines,categories,modrinth,MIT,required,required +rhino,Rhino,2101.2.8-build.91,library,none,categories,modrinth,MPL-2.0,optional,optional +rootsclassic,Roots Classic,1.21.1-1.5.10,content,deep,name,curseforge,unknown (read mods.toml at import),, +rsinsertexportupgrade,Refined Wireless Upgrades,1.21.1-2.1.3,content,machines,categories,modrinth,MIT,required,required +sawmill,Universal Sawmill,1.21-1.8.1,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +sawmill.zip (datapack),sawmill.zip (datapack),,other,data,name,curseforge,unknown (read mods.toml at import),, +ScalableCatsForce,ScalableCatsForce,,library,none,categories,modrinth,Apache-2.0,required,required +searchables,Searchables,1.0.2,library,none,categories,modrinth,MIT,required,unsupported +securitycraft,SecurityCraft,1.10.2.1,content,deep,categories,modrinth,MIT,required,required +sfm,Super Factory Manager (SFM),4.34.0,content,deep,categories,modrinth,MPL-2.0,required,required +sgearmetalworks,Silent Gear Metalworks,1.21.1-1.5.0,integration,logic,name,curseforge,unknown (read mods.toml at import),, +shiny,Shiny!,1.21.1-1.3.0,content,logic,guess,curseforge,unknown (read mods.toml at import),, +shrink,Shrink,2.0.1.47,content,deep,categories,curseforge (modrinth listing),LGPL-3.0,required,required +silentgear,Silent Gear,4.2.1.1,content,deep,categories,modrinth,MIT,required,required +silentgems,Silent's Gems,5.1.3,content,logic,categories,modrinth,MIT,required,required +silentlib,Silent Lib,10.6.0,library,none,categories,modrinth,MIT,required,required +simple_weather,Simple Weather,1.0.13-hotfix,content,logic,guess,curseforge,unknown (read mods.toml at import),, +simplebackups,Simple Backups,1.21-4.0.30,server-only,logic,categories,modrinth,Apache-2.0,optional,optional +simplemagnets,Simple Magnets,1.1.12+c,content,logic,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +simplylight,Simply Light,1.5.3,content,data,name,curseforge,unknown (read mods.toml at import),, +smartbrainlib,SmartBrainLib,1.16.11,library,none,categories,modrinth,MPL-2.0,unsupported,required +smithingtemplateviewer,SmithingTemplateViewer,1.0.4,client-ui,client,categories,modrinth,MIT,required,unsupported +sodium,Sodium,0.8.13+mc1.21.1,performance,none,categories,modrinth,LicenseRef-Polyform-Shield-1.0.0,required,unsupported +sodium_extra,Sodium Extra,0.9.4+mc1.21.1,performance,none,categories,modrinth,LGPL-3.0-only,required,unsupported +solcarrot,Spice of Life: Carrot Edition,1.16.6,content,logic,name,curseforge,unknown (read mods.toml at import),, +sophisticatedbackpacks,Sophisticated Backpacks,3.26.12,content,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +sophisticatedbackpackscreateintegration,Sophisticated Backpacks Create Integration,0.2.3,integration,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +sophisticatedcore,Sophisticated Core,1.5.12,library,none,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +sophisticatedstorage,Sophisticated Storage,1.6.6,content,machines,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +sophisticatedstoragecreateintegration,Sophisticated Storage Create Integration,0.1.23,integration,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +sophisticatedstorageinmotion,Sophisticated Storage In Motion,0.10.36,integration,deep,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +soulplied_energistics,Soulplied Energistics,1.0.3,integration,machines,name,curseforge,unknown (read mods.toml at import),, +spark,spark,1.10.124,performance,none,categories,modrinth,GPL-3.0-only,optional,optional +starbunclemania,Starbunclemania,1.5.9,content,logic,name,curseforge,unknown (read mods.toml at import),, +stepcrafter,Step Crafter,1.21.1-0.1.9,content,machines,categories,modrinth,MIT,required,required +stevescarts,StevesCarts2,1.2.18,content,deep,name,curseforge,unknown (read mods.toml at import),, +storagedelight,Storage Delight,26.09.17-1.21-neoforge,integration,machines,categories,modrinth,MIT,required,required +structory,Structory,1.3.17,content,data,categories,modrinth,LicenseRef-Stardust-Labs-License,optional,required +structory_towers,Structory: Towers,1.0.16,content,data,categories,modrinth,LicenseRef-Stardust-Labs-License,optional,required +structurize,Structurize,1.0.835-1.21.1-snapshot,library,none,name,curseforge,unknown (read mods.toml at import),, +stylecolonies,Stylecolonies,1.15.64-1.21.1,integration,data,name,curseforge,unknown (read mods.toml at import),, +supermartijn642configlib,SuperMartijn642's Config Library,1.1.8,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,optional,optional +supermartijn642corelib,SuperMartijn642's Core Lib,1.1.25,library,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +supplementaries,Supplementaries,1.21.1-4.0.1,content,deep,categories,modrinth,LicenseRef-Supplementaries-Team-License,required,required +sushigocrafting,Sushi Go Crafting,0.6.6,content,machines,categories,modrinth,MIT,required,required +sussysniffers,Sussy Sniffers,1.21.1-0.1.3,content,logic,guess,curseforge,unknown (read mods.toml at import),, +t_and_t,Towns and Towers,1.13.11,content,data,categories,modrinth,CC-BY-NC-SA-4.0,optional,required +tempad,Tempad,3.0.4,content,deep,categories,modrinth,LicenseRef-Terrarium-License,required,required +terrablender,TerraBlender,4.1.0.8,library,none,categories,curseforge (modrinth listing),LGPL-3.0-only,required,required +tesseract_api,Tesseract API,1.12.18-1.21.1,library,none,categories,modrinth,MIT,required,required +the_bumblezone,The Bumblezone,7.16.1+1.21.1-neoforge,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +theurgy,Theurgy,1.78.0,content,deep,categories,modrinth,MIT,required,required +theurgy_kubejs,Theurgy KubeJS,1.6.0,integration,none,categories,modrinth,MIT,required,required +tiab,Time In A Bottle,6.5.4,content,logic,categories,modrinth,MIT,required,required +titanium,Titanium,4.0.51,library,none,categories,modrinth,MIT,required,required +toastcontrol,Toast Control,9.0.1,client-ui,client,categories,curseforge (modrinth listing),MIT,required,unsupported +tombstone,Corail Tombstone,9.5.6,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +toolbelt,Tool Belt,2.2.10,content,machines,name,curseforge,unknown (read mods.toml at import),, +torchmaster,Torchmaster,21.1.13,content,logic,categories,modrinth,MIT,required,required +towntalk,Towntalk,1.2.0,integration,data,guess,curseforge,unknown (read mods.toml at import),, +transfer_labels,Transfer Labels,0.1.9,content,machines,categories,modrinth,MIT,required,required +trashcans,Trash Cans,1.1.1,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +trashslot,TrashSlot,21.1.11,client-ui,client,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +treetap,Tree Tap,1.21.1-0.4.6,content,machines,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +trophymanager,Jonn's Trophies,1.21.1-3.0.0,content,machines,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +twilightforest,The Twilight Forest,4.8.3345,content,deep,name,curseforge,unknown (read mods.toml at import),, +undergarden,The Undergarden,0.9.6,content,deep,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +underground_villages,Underground Villages Mod,4.0.3,content,data,guess,curseforge,unknown (read mods.toml at import),, +universalgrid,Universal Grid,1.21.1-0.3.2,content,machines,categories,modrinth,MIT,required,required +uranus,Uranus,2.4.1-bugfix,library,none,guess,curseforge,unknown (read mods.toml at import),, +utilitarian,Utilitarian,1.21.1-0.19.2,content,logic,categories,curseforge (modrinth listing),LicenseRef-All-Rights-Reserved,required,required +utilityvest,Utility vest,1.3.1,content,machines,guess,curseforge,unknown (read mods.toml at import),, +valhelsia_core,Valhelsia Core,1.1.5,library,none,categories,curseforge (modrinth listing),LicenseRef-Custom,required,required +variantsandventures,Variants&Ventures,1.0.28,content,deep,categories,modrinth,LicenseRef-CC-BY-NC-ND-4.0,required,required +villagesandpillages,Villages&Pillages,2.0.0,content,data,categories,modrinth,LicenseRef-CC-BY-NC-ND-4.0,unsupported,required +waystones,Waystones,21.1.46,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +wirelesschargers,Wireless Chargers,1.0.9+a,content,machines,categories,modrinth,LicenseRef-All-Rights-Reserved,required,required +wits,Wits,1.3.1,server-only,logic,categories,modrinth,MIT,unsupported,required +wstweaks,Wither Skeleton Tweaks,10.1.1,content,logic,categories,curseforge (modrinth listing),MIT,required,required +xnet,XNet,1.21-7.0.7,content,machines,categories,modrinth,MIT,required,required +xtonesreworked,XTones Reworked,1.1.1-1.21.1,content,data,categories,curseforge (modrinth listing),MIT,required,required +xycraft_core,XyCraft Core,0.7.53,library,none,name,curseforge,unknown (read mods.toml at import),, +xycraft_machines,XyCraft Machines,0.7.53,content,machines,name,curseforge,unknown (read mods.toml at import),, +xycraft_override,XyCraft Override,0.7.53,other,none,guess,curseforge,unknown (read mods.toml at import),, +xycraft_world,XyCraft World,0.7.53,content,logic,name,curseforge,unknown (read mods.toml at import),, +yeetusexperimentus,Yeetus Experimentus,87.0.0,other,none,categories,modrinth,LicenseRef-All-Rights-Reserved,required,unsupported +yet_another_config_lib_v3,YetAnotherConfigLib,3.8.2+1.21.1-neoforge,library,none,categories,modrinth,LGPL-3.0-or-later,optional,optional +yungsapi,YUNG's API,1.21.1-NeoForge-5.1.9,library,none,categories,modrinth,LGPL-3.0-only,required,required +yungsextras,YUNG's Extras,1.21.1-NeoForge-5.1.1,content,data,categories,modrinth,LGPL-3.0-only,unsupported,required +zerocore,Zero CORE 2,1.21.1-2.4.21,library,none,name,curseforge,unknown (read mods.toml at import),, diff --git a/docs/mods.md b/docs/mods.md index 8a52bdf5a..6b9f88096 100644 --- a/docs/mods.md +++ b/docs/mods.md @@ -327,3 +327,8 @@ permission. 5. `recipes`, `world-read`, `render`: recipe viewer and schematics ports. 6. Server mods, `registries`, `net`, data-driven content from `.hmod` `data/` and `assets/`, multiplayer sync. + +Modpacks ([modpacks.md](modpacks.md)) move data-driven `registries` first: +API 0.2 is content-only `.hmod`s (blocks, items, recipes, loot, models and +textures), then server hooks (0.3) and block entities, menus, capabilities and +`net` (0.4), in the order the ATM10 inventory needs them.