File Details
NeoOrigins v2.1.4 (MC 26.1.x)
- R
- May 26, 2026
- 2.04 MB
- 38
- 26.1.2+2
- NeoForge
File Name
neoorigins-2.1.4+26.1.jar
Supported Versions
- 26.1.2
- 26.1.1
- 26.1
Curse Maven Snippet
Bug Fixes
origins:exhaustdrained hunger ~268× the intended amount. The legacy compat translator routedorigins:exhaustto a Route A food modifier withop: "set", andModifyFoodRegistryre-applies that modifier on every food refill — so each bite of food re-stamped the exhaustion value instead of ticking it once per interval. Moved to Route B (parseExhaust): ticksplayer.causeFoodExhaustion(amount)on a hashed offset of the configuredintervalso the cost lands exactly once per period regardless of food intake.conditionblock honored. Accepts bothexhaustionandamountfor the field name.effect_immunityids without a namespace silently mismatched the effect registry. Pack authors writing"wither"(Apoli-style unqualified id) didn't equalMobEffect's registered"minecraft:wither", so the immunity check looked up the wrong key and the player still took the effect.translateEffectImmunitynow routes every id through acanonicalizeEffectIdhelper that prependsminecraft:when the namespace is missing.origins:self_action_when_hitignoredbientity_action,cooldown, andcondition. The Route B parser only parsedentity_action, so packs porting Apoli'sbientity_actionshape (where the action needs the attacker reference) silently lost their behavior, and the cooldown/condition gates were dropped. NewBiEntityAction+BiEntityActionParsercoversdamage,add_velocity,apply_mob_effect,set_on_fire, andinvert.parseSelfActionWhenHitnow wires cooldown + condition;CombatPowerEventspublishes the activeHitTakenContexttoActionContextHolderaround theonHitdispatch so the bi-entity lambda can resolvetarget = source.getEntity()without re-traversing the event.origins:modify_jump'sentity_actionwas parsed but never fired. The field was read into a local variable and immediately thrown away — so Apoli-style jump-velocity boosts, "explode on jump", or any other configured action silently no-op'd, leaving the power as a plain attribute modifier. NewJumpActionRegistrystores the parsed action on grant;JumpEventHandlerfires it fromLivingJumpEvent(server players only). Cleaned up on logout and on power revoke.origins:recipecouldn't carry an inline recipe body (1.21.1 only). Pack authors had to ship a separatedata/<ns>/recipe/...jsonfile even when the recipe was Origins-specific and only used by one power.parseRecipenow also accepts an inline JSON object in therecipefield;InlineRecipeRegistrycollects pending bodies during the datapack reload and injects them viaRecipeManager#replaceRecipesonOnDatapackSyncEvent. Caveat: the resulting recipe is globally craftable — the inline form only controls recipe-book visibility, not the craft gate. The 26.1 jar doesn't ship this:RecipeManageron 26.1 stores recipes in an immutableRecipeMapwith noreplaceRecipeshook, so inline bodies log a one-shot warning and are skipped there. String-id pointers in therecipefield continue to work on both branches.PreventActionPower's SWIM and ELYTRA enforcement was a no-op. Holder dispatch fires fromPlayerLifecycleEvents.onPlayerTickon the.Prephase, but vanilla'sLivingEntity#travel()and swim-flag update run after the .Pre tick the same frame and overwrite anything we reset — so Earth Mage's "can't swim" ability was settingswimming = falseonly to have vanilla immediately set it back to true. Moved SWIM/ELYTRA enforcement out ofonTickinto a newPreventActionPostTickHandlersubscribed toPlayerTickEvent.Post, which runs after vanilla physics. FIRE fire-tick clearing stays ononTicksince it's not state vanilla touches the same tick.- Compat raycast lacked
shape_typeand along-ray actions (1.21.1 only).parseRaycastonly supported a point-hitcommand/entity_action/block_actiontriple — packs that wanted to scan voxel space (e.g. fire-along-ray, glow-trace) had no way to express it. Addedshape_type(collider/visual/outline) to control the clip mode, pluscommand_along_ray+command_stepthat walks the ray incommand_step-block increments executing the command at each step, breaking on the first command exception. Master/26.1 doesn't haveparseRaycastat all and isn't a hotfix scope — the along-ray feature will land there as part of the next raycast backport.

