Archie is a Kotlin-first Architectury library mod for Minecraft 1.21.1. It provides shared utilities used by Kernel Panic mods across Fabric and NeoForge.
common/: shared APIs and core implementation (Archie, networking, config, GUI, data helpers)fabric/: Fabric entrypoints, run configs, platformactualimplementationsneoforge/: NeoForge entrypoints, run configs, platformactualimplementations
The initialization flow is:
- Loader entrypoint (
ArchieFabricorArchieNeoForge) Archie.init()incommon- Shared systems register events/network/config and optional datagen/gametest hooks
./gradlew build
./gradlew fabric:runClient
./gradlew neoforge:runClient
./gradlew fabric:runDatagen
./gradlew neoforge:runDatagen
./gradlew fabric:runGametest
./gradlew neoforge:runGametestbuild and assemble finalize with fusejars (merged Fabric+NeoForge artifact).
- Add gameplay/library logic in
commonfirst, then platform-specificactualcode only when needed. - Keep
expect/actualtriplets named*.common.kt,*.fabric.kt,*.neoforge.kt. - Register packet classes and handlers before calling
register()onNetworkChannel. - Keep loader manifests tokenized (
${mod_id},${versions.*}); values come from Gradle properties/version catalog. - Use
bundleRuntimeLibrary(...)/bundleMod(...)for shipped runtime deps in loader modules.
common/src/main/kotlin/net/kernelpanicsoft/archie/Archie.ktcommon/src/main/kotlin/net/kernelpanicsoft/archie/networking/NetworkChannel.ktfabric/src/main/kotlin/net/kernelpanicsoft/archie/ArchieFabric.ktneoforge/src/main/kotlin/net/kernelpanicsoft/archie/ArchieNeoForge.ktgradle/libs.versions.toml