These repositories are the custom mods behind the bertie modpack — a public NeoForge 1.21.1 pack. Most are small, single-purpose mods; a few are larger systems.
- Every repo here targets Minecraft 1.21.1 / NeoForge 21.1.217 only. Ports to other Minecraft versions or to Fabric are out of scope and will be closed.
- Several mods are written for the pack and assume its mod list is present. They are not guaranteed to be useful standalone. Each README says which.
Open an issue using the Bug report or Crash report template. A report is only actionable with:
- the mod version (from the jar filename or
mods.toml), - the NeoForge version,
- whether you are running the bertie pack or your own,
- the full log —
logs/latest.logor the crash report, as a gist or attachment, not a screenshot of a fragment.
"It crashed" without a log cannot be diagnosed and will be closed.
PRs are welcome but please open an issue first for anything beyond a typo or an obvious one-line fix — these mods are tightly coupled to the pack's design and a change that looks harmless can contradict a deliberate progression decision.
- Keep the diff to one concern.
- Match the surrounding code style; there is no formatter to run.
./gradlew buildmust pass. CI runs it on every PR.- Do not commit third-party jars.
libs/is gitignored on purpose: compile dependencies are resolved from public mavens (Modrinth, NeoForged, Architectury, FTB).
Conventional Commits — feat:, fix:, docs:, ci:, chore:, refactor:.
The scope is optional: fix(forge): ….
- Bump
mod_versioningradle.properties. - Commit.
- Tag
vX.Y.Zand push the tag.
release.yml builds the jar and attaches it to a GitHub Release. The pack consumes mods
from those Releases — never from a hand-built local jar.
Mods that are entirely our own work are released into the public domain under
The Unlicense. A few repos are ports of other people's mods and keep the upstream
licence with attribution — check the LICENSE or UNLICENSE file in each repo before
assuming.