Ekaii MC 26.1.2 Modrinth modpack — Fabric, perf+QoL+shaders, auto-updated weekly. Published as .mrpack via modmass PAT.
- Python 100%
| .forgejo/workflows | ||
| overrides | ||
| tools | ||
| .gitignore | ||
| manifest.lock.json | ||
| manifest.yaml | ||
| README.md | ||
Ekaii Modpack
Minecraft 26.1.2 / Fabric modpack for the ekaii.fr server stack.
Published on Modrinth as a .mrpack and updated automatically every Monday.
What's in it
- Performance: Sodium, Lithium, FerriteCore, Krypton, EntityCulling, ImmediatelyFast, Dynamic FPS
- Visuals: Iris (shaders), Continuity (CTM), Entity Model Features, Sodium Extra, Reese's Sodium Options
- QoL: Mod Menu, BetterF3, Zoomify, No Chat Reports
- Render distance: Distant Horizons (LOD — works with the DHS plugin on the server)
- Shaders shipped: Complementary Unbound (default), Complementary Reimagined, BSL
- Ekaii custom: Ekaxiom (privacy-respecting Axiom), ElytraTrajectory
- Servers pinned:
ekaii.fr/crea.ekaii.fr/plot.ekaii.fr
Stable defaults are enforced via overrides/config/ — players can change them, but a reinstall restores the baseline.
Repo layout
manifest.yaml # source of truth — modders edit this
overrides/
config/ # enforced stable configs (sodium, iris, lithium, ...)
options.txt # baseline client options
servers.dat # 3 ekaii.fr servers pre-pinned (generated)
tools/
build_mrpack.py # resolves Modrinth + Forgejo, builds .mrpack
publish_modrinth.py # uploads new version to Modrinth via PAT
render_servers_dat.py # writes overrides/servers.dat from manifest
bump_version.py # bumps pack.version on weekly updates
validate.py # sanity check: every mod has a 26.1.2 fabric version
.forgejo/workflows/
weekly-update.yml # Mon 06:00 UTC + workflow_dispatch
publish.yml # on tag push v* → publish to Modrinth
Pipeline
Mon 06:00 UTC Forgejo Actions
│ │
├─ resolve Modrinth (latest stable per mod, game=26.1.2 loader=fabric)
├─ resolve Forgejo (latest release per url_mod)
├─ validate (every required mod has a matching version)
├─ build .mrpack (modrinth.index.json + overrides/)
├─ smoke test (mrpack-install --dry-run, JSON schema check)
├─ git commit (bumps pack.version, writes manifest.lock.json)
├─ git tag v<version> (only on diff vs previous lock)
└─ trigger publish.yml (on tag → upload to Modrinth)
Manual hotfix:
gh workflow run weekly-update.yml --ref main # or via Forgejo UI
Stability enforcement
The overrides/config/ directory ships locked-down defaults for:
- Sodium — VSync on, frame queue 2, anisotropic 8x, fog distance high, no entity shadows
- Iris — shader off by default (player opts in), Sodium-compat enabled
- Lithium — all toggles default-on
- FerriteCore — all toggles default-on
- Continuity — emissive textures on, CTM on
- options.txt — RD 12, sim 8, VBOs, GUI scale auto, biome blend 5, particles all
On reinstall the launcher overwrites these with our values. Players who want to deviate can — but a fresh install brings them back to the baseline.
Secrets used by CI
| Secret | Where | Used for |
|---|---|---|
MODRINTH_TOKEN |
Forgejo repo secret | publish .mrpack to Modrinth |
FORGEJO_TOKEN |
Forgejo repo secret (auto) | resolve url_mods releases, push lockfile commit |
Local development
pip install -r tools/requirements.txt
python tools/validate.py # check 26.1.2 fabric compat
python tools/render_servers_dat.py # generate overrides/servers.dat
python tools/build_mrpack.py --out dist/ # produce Ekaii-x.y.z.mrpack
Drop the resulting .mrpack into the Modrinth app or PrismLauncher to test.
License
Modpack manifest + scripts: MIT. Bundled mods are governed by their own upstream licenses (the .mrpack format references them by URL, not by redistribution).