File Details
NeoOrigins v2.1.2 (MC 26.1.x)
- R
- May 22, 2026
- 2.03 MB
- 99
- 26.1.2+2
- NeoForge
File Name
neoorigins-2.1.2+26.1.jar
Supported Versions
- 26.1.2
- 26.1.1
- 26.1
Curse Maven Snippet
KubeJS Integration
Soft dependency on KubeJS 2101.7.x — when KubeJS is installed, pack authors can hook into origin and power lifecycle from JavaScript and register their own power behaviors without writing Java. When KubeJS is absent the mod runs unchanged (every fire site short-circuits on a single cached load check; no reflection, no class-not-found risk).
ℹ️ 1.21.1 build only for this release. KubeJS hasn't published a Minecraft 26.1 build yet, so the 26.1 jar ships without the integration. It'll land on 26.1 the release after KubeJS cuts a 2601.x build.
- 15 events covering origin lifecycle (chosen / changed),
power lifecycle (granted / revoked / activated / tick), evolution
(tier_changed / declined), mob origin (assigned / cleared), and
mount (requested / accepted / declined / started / ended). Fired from
central choke points so admin commands and cascade invalidations are
covered, not just user-driven paths.
power_tickis gated byhasListeners()so zero overhead when no script subscribes. neoorigins:kubejs_callbackentity action — JS-registeredConsumer<ServerPlayer>invokable by id from any action slot the DSL already supports (active_ability.on_use,action_on_event,condition_passive,chance,choice, …). Register viaNeoOrigins.registerCallback('mypack:foo', player => { ... }).- JS-defined power types —
neoorigins:js_custom(passive,onGranted/onRevoked/onTick) andneoorigins:js_active(extends the AbstractActivePower contract,onUsereturning a boolean to consume cooldown/hunger). Register a handler object literal — Rhino auto-adapts to the Java interface, missing hooks default to no-ops. mount_endedcovers all dismount paths — vanilla sneak-dismount, vehicle death, server stop, and force-mount swap all fire via anEntity#removePassengermixin, scoped to mounts created by our power (non-emptymountPositionattachment) so vanilla horses don't trip the event.- Hot-reload safe —
/kubejs reloadwipes registered callbacks and JS power handlers via the plugin'sclearCacheshook.
Mount Power
New neoorigins:mount active power — ride any living entity, with a
consent system for player-to-player mounts.
- Raycast pickup with configurable range; press the keybind a second time while riding to dismount.
- Player consent with three modes:
ALWAYS(immediate),TEAM(immediate if same FTB Teams team or Open Parties & Claims party — falls through to prompt otherwise), andPROMPT(chat request with clickable[ACCEPT]/[DECLINE], configurable timeout). Configured under[mount]inneoorigins-common.toml. - Mob mounts —
allow_mobstoggle,block_bossesflag to refuse Wither / Ender Dragon, and a check that the target isn't already carrying a passenger. mount_positionfield —centered(default) orshoulder, offsetting the passenger ~0.4 blocks to one side./neoorigins mount acceptand/neoorigins mount declineresolve pending prompts. Soft compat: FTB Teams and Open Parties & Claims detection is gated behind the same load-check pattern as our other compats, so neither mod is required.
Internal
- Origin layer canonicalized on
neoorigins:origin. The layer id emitted for built-in origins is now namespaced under our mod consistently instead of straddlingorigins:originandneoorigins:origin. Existing user packs that pin the old layer continue to load through the compat translator.

