Bertie is a large exploration, technology, and magic modpack for Minecraft 1.21.1 on NeoForge. This repository contains its packwiz manifest, custom mods, shared Kotlin Gradle build logic, and the tools used to build, test, and release them.
mods/— custom NeoForge mods, each with its own version and test descriptor; its runtime mod ID is the directory basename with hyphens removedpack/— the packwiz manifest and pack configurationbuild-logic/— small, composable Gradle convention pluginstools/bertie-ci/— provider-neutral build, test, instance, and release tooling.github/— thin GitHub Actions adapters aroundbertie-ci
bertie-mod-atlas, bertie-progression-planning, the organisation .github
repository, and the Nekos-Enchanted-Books fork are maintained separately.
Install Git and Nix, then enter the pinned environment:
git clone git@github.com:bertie-mc/bertie.git
cd bertie
nix developNix supplies JDK 21, Gradle 8.14.4, Python, packwiz, GitHub tooling, and the pinned HeadlessMC runtime dependencies. The repository deliberately has no Gradle wrapper and does not download toolchains through Gradle.
Build and tests are separate operations:
gradle :mods:berlords-carving:assemble
gradle :mods:berlords-carving:test
bertie-ci gametest --workspace . --component berlords-carvingProject-owned suites live in each component's bertie-ci.toml. To inspect or run the
same affected-component plan used by CI:
bertie-ci plan --workspace . --all
nix flake checkThis machine does not need a desktop. Linux client integration tests launch the real Minecraft client under Xvfb; server tests run without a GUI. Full-pack client and server suites are deliberately scheduled or manually dispatched because the pack is large.
See bertie-ci for the test model and the pack README for pack maintenance.
Components keep independent versions. Signed tags have the exact form
subject/vX.Y.Z, for example berlords-carving/v2.0.0, pack/v0.2.0, or
bertie-ci/v5.0.0. Releases are started manually after the required pipelines are green
for the commit being tagged.
Licensing is component-specific. Consult the UNLICENSE, LICENSE, and NOTICE
files inside each component; no repository-root licence overrides them.