Skip to content

Multi Version Support

AzureDoom edited this page Aug 29, 2026 · 1 revision

Multi-Version Support

AzureCortex targets several Minecraft versions and loaders on a rolling basis:

Minecraft version Forge Fabric NeoForge
1.18.2 🔜 planned 🔜 planned ❌No NeoForge version
1.20.1 ✅ available ✅ available ❌No NeoForge version
1.21.1 ❌ no support ✅ available ✅ available
26.2 ❌ no support 🔜 planned 🔜 planned

1.21.1 (Fabric + NeoForge) is the current release, structured as a common/fabric/neoforge multiloader project. 1.20.1 (Forge + Fabric) is now available alongside the 1.21.1 release. 1.18.2 (Forge + Fabric) and 26.2 (Fabric + NeoForge) remain planned.

What stays the same across versions

Essentially the entire framework, CortexRuntime, Blackboard, the behavior-tree node types, the GOAP layer (GoalPlanner/PlannedGoal/GoalExecutor/PlanFeedback/...), sensing, and the built-in actions, lives in the loader-agnostic common module and has no dependency on Forge/Fabric/NeoForge APIs. The pathfinding and movement packages (navigation.astar, navigation.crawl, navigation.movement, navigation.traversal) are pure Minecraft/Java code and equally portable. In practice this means:

What differs per loader

Only the thin per-platform entrypoint differs:

  • Fabric, a ModInitializer implementation that calls AzureCortex.init(FabricLoader.getInstance().getConfigDir()) and registers the example entities/spawn eggs/attributes through Fabric's registration APIs.
  • NeoForge, a @Mod-annotated class that calls AzureCortex.init(FMLPaths.CONFIGDIR.get()) and does the equivalent registration through DeferredRegister and NeoForge's event bus.
  • Forge (available for 1.20.1, planned for 1.18.2) follows the same shape as the NeoForge entrypoint, adjusted for Forge's registration/event APIs of that era.

Your own mod only needs to depend on the platform artifact matching your own loader, see Installation.

What to expect changing between Minecraft versions

Cross-version Minecraft/mapping changes (entity API renames, navigation internals, block/fluid state APIs) are the most likely source of any differences in a given version's common module implementation, but the public API shapes documented in this wiki (interfaces like Action, BehaviorNode, GoalPlanner, Pathfinder, MovementCapability, ...) are expected to remain stable across versions as a matter of design, that stability is the entire point of extracting AzureCortex out of Ovomorphosis into its own library.

When a new version lands, check:

Next

Clone this wiki locally