# Mod shortlist + landing mod-list component (WS6) > **Status: PLANNED — not started.** Two separable deliverables: (1) a curated > kitchen-sink gap doc (this file), (2) an auto-generated `mods.json` + logos that > feed a flat mod-list component on the landing page (see also `18-landing-rework.md`). ## TL;DR - Current pack (76 jars, `mods-sides.json`) is a polished **vanilla+ QoL/perf** base, **not yet kitchen-sink**. Strong perf + QoL + storage + FTB + voice; **empty** on tech and magic, **thin** on worldgen, **no** map mod. - Jars live in the **external distribution repo** (`$DISTRIBUTION_WEB_ROOT/servers/ ulicraft-1.21.1/forgemods/required/*.jar`, Nebula-managed). Adding mods happens there, **not** in this repo. This doc is a shortlist only; depth = **light** (names by area, verify NeoForge 1.21.1 at add-time — no per-mod version/link research). - The landing component shows the **installed pack** (full client set), auto-generated from the jars — a different dataset from this shortlist. Flat alphabetical, pretty names, extracted logos, no categories, no Modrinth/CF links. ## Current pack — what's already in (76 jars) - **Perf:** sodium, sodium-extra, iris, immediatelyfast, entityculling, ferritecore, lithium, spark. - **QoL:** JEI, Jade(+addons), JER, JEProfessions, appleskin, MouseTweaks, Controlling, Searchables, inventoryessentials, polymorph, rightclickharvest, simplemagnets, fastleafdecay, torchmaster, trashcans, corpse(+curioscompat), lootr, comforts, BetterF3, tagtooltips, cardboardboxes. - **Storage:** sophisticatedbackpacks(+core), functionalstorage(+more). - **Farm/decor/build:** FarmersDelight, FramedBlocks, handcrafted. - **FTB utils:** chunks, essentials, library, teams, ultimine. - **Voice:** Simple Voice Chat (`voicechat`). - **Scripting/guide:** KubeJS(+rhino, +delight), ponderjs, Patchouli. - **Libs:** architectury, balm, cloth-config, configured, curios, resourcefullib, supermartijn642 core/config, jamlib, baguettelib, titanium, utilitarian, YungsApi, Necronomicon, yacl. ## Gaps vs kitchen-sink (tech + magic + exploration + QoL) - [ ] **Tech — empty.** Candidates: Create, Mekanism, Immersive Engineering, Applied Energistics 2, Thermal Series, Powah. (Pick a subset; Create is the anchor.) - [ ] **Magic — empty.** Candidates: Ars Nouveau, Botania, Iron's Spells 'n Spellbooks, Eidolon. - [ ] **Worldgen — thin** (only `YungsApi` + `ExplorersCompass`). Candidates: Terralith, Tectonic, YUNG's structure set (Better Dungeons/Mineshafts/Strongholds…), Repurposed Structures, William Wythers' Overhauled Overworld. - [ ] **Map — none.** Candidate: Xaero's Minimap + Worldmap. - [ ] **Server-side perf (optional):** ModernFix, C2ME. ## Orphaned dependencies (cleanup) - [ ] **`ponderjs`** present but **no Create** — ponder is Create's. Add Create or drop. - [ ] **`Necronomicon`** present but **no Iron's Spells** — it's Iron's Spells' lib. Add Iron's Spells or drop. ## Curation tradeoff Adding the tech+magic+worldgen anchors pushes 76 → 100+ jars, near the stated 50–100 ceiling, and raises the RAM/stability bar (`INIT_MEMORY 4G`/`MAX_MEMORY 10G`). Curate deliberately; verify each candidate's NeoForge **1.21.1** build + the `21.1.233` loader pin at add-time. ## Execution (external repo, when ready) 1. Add jars in the distribution repo (Nebula `forgemods/required/`), keep the NeoForge 1.21.1 builds matching the `21.1.233` pin. 2. `release-distro.sh` regenerates `distribution.json` + uploads. 3. Back in this repo: `tooling/classify-mods.py` (seed sides) → hand-edit new client-cosmetic entries to `client` → `tooling/sync-server-mods.sh`. 4. `tooling/build-modlist.py` (new, see `18-landing-rework.md`) regenerates `landing/src/data/mods.json` + logos → rebuild landing. ## Related - `04-mods.md` — distribution-fed mod system, classify/sync, sides. - `18-landing-rework.md` — the landing mod-list component + `mods.json` generator.