Tags
Creators
Details
v2.2.31+1.21.1
Compatibility
Changes
The headline is classic mode: a new
content.tomlswitch that offers only the original Origins mod's ten origins and the fourteen Origins: Classes classes, each with a power set modelled on the original mod. Turn it on before the world is created if you can: players who already have an origin or class hidden by classic mode keep it until they reset it.Rebuilding those sets added four power types for pack authors, and Origins packs that use Blazeborn's snowball weakness, the Merling's conduit power, the Arachnid's webs or
entity_glownow behave as they do in Origins. Two reports late in testing turned into a further batch of compatibility fixes: an imported resource bar keeps the value you earned rather than resetting on every world join, and an attribute can now follow a resource, as Apoli packs expect of it. Three well-known Origins powers that loaded and did nothing now work, and a power handler registered from a KubeJSstartup_scripts/file remains registered when a world loads.This release also brings NeoOrigins to Minecraft 26.3. A client running Punchy, or any mod that checks item use animations often, no longer loses about a third of every frame to NeoOrigins when a pack loads Origins-format powers (#136), and flight powers such as Riding the Sword can no longer be switched off by mods that reset player flight every tick, such as Create Buzzy Beez. Each resource bar can now be resized in the origin editor, and a new
dynamicflag stacks cooldown and timer bars above the permanent ones.Supports: Minecraft 26.1.x (Java 25) · Minecraft 26.2 (Java 25) · Minecraft 26.3 (Java 25) · Minecraft 1.21.1 (Java 21)
Changes
-
Classic mode. A new
classic_modeoption incontent.toml, off by default, offers only the original Origins mod's ten origins and the fourteen Origins: Classes classes, each with a power set modelled on the original mod. The origins are Human, Merling, Avian, Blazeborn, Elytrian, Enderian, Arachnid, Shulk, Phantom and Feline. The classes are Archer, Beastmaster, Blacksmith, Cleric, Cook, Explorer, Farmer, Lumberjack, Merchant, Miner, Nitwit, Rancher, Rogue and Warrior. Farmer and Rancher are new, and only appear in classic mode. While it is on, every other built-in origin and class is hidden whatever its toggle says, and so are the three Dragon Survival dragons. A classic origin or class switched off by its own toggle stays hidden, and origins from datapacks ororiginpacks/are still offered. Switching it while the server runs applies at once: online players holding a classic origin swap power sets, powers both versions share keep their state, and every client's picker is resent. See CONTENT_CONFIG.md. -
Turn classic mode on before the world is created if you can. A player who already holds a built-in origin or class that classic mode hides keeps it, powers and all, until it is reset with an Orb of Origin or an Orb of Class, or by an admin running
/neoorigins reset <player>. Affected players receive a chat message explaining this and how to reset their origin or class, every time they join and when the mode is switched on while they are online. The server also logs a warning when a world that already has player data starts with classic mode on, or has it switched on while running. -
Classic mode turns evolution off in practice. None of the classic origins has evolution tiers, and every other built-in is hidden while the mode is on, so none of the selectable built-in origins evolves. Kill counts stop mattering until the mode goes off again. Datapack and
originpacks/origins keep whatever tiers they declare. -
/neoorigins listshows what classic mode hides. Hidden entries are marked[disabled], and the header says(classic mode)while it is on. -
The classic Arachnid's climbing is a toggle. As in Origins, climbing starts on and flips with the origin's ability key, with a low note for off and a high one for on. Climbing inside cobwebs only works while climbing is enabled. The standard Arachnid is unchanged.
-
The classic Arachnid can craft cobwebs. Players with Master of Webs can craft one cobweb from two pieces of string in any arrangement. Nobody else can craft it.
-
NeoOrigins now ships for Minecraft 26.3. The new build runs on NeoForge 26.3 (26.3.0.83 or newer), alongside the 26.1.x, 26.2 and 1.21.1 builds. NeoForge 26.3 moved per-world config overrides from
<world>/serverconfig/to<world>/syncedconfig/, so the first time a world starts on 26.3, NeoOrigins copies itscontent.tomloverride across and applies it straight away. The 26.2-era file is left where it is, so the world still opens on an older build, and a pre-2.2.2neoorigins-server.tomlis renamed once its values have been carried across. CONTENT_CONFIG.md describes the new layout. -
Each resource bar can be resized. The origin editor, opened from the Edit button on the origin info screen, has a new Resource Bar Sizes panel below the powers list, with a slider for every resource bar that has a label, from 50% to 200%. A bar grows from its top-left corner, with its name and value scaling alongside it, and both the HUD behind the editor and the HUD editor itself draw it at its size. Each bar's slot grows or shrinks with it, so a larger bar never runs into its neighbours and a smaller one leaves no gap. Sizes are saved to
config/neoorigins/hud.jsonwhen the editor closes, separately from bar positions, so resizing a bar neither moves it nor takes it out of the stack. The Edit button appears in Creative mode, or in any game mode with theshow_origin_editorclient option turned on.
Bug Fixes
-
Punchy no longer causes heavy client lag when a pack loads Origins-format powers (#136). Punchy, and any mod that checks item use animations often, could spend about a third of each frame rebuilding NeoOrigins' list of edible items. With Origins-format powers loaded, the full power list was rebuilt on every lookup, so the edible-item cache never hit. The power list is now built once per reload, and the edible-item cache also refreshes when the client receives new tags.
-
Flight powers are no longer cancelled by mods that reset player flight every tick. Riding the Sword, Phantom Form and the other creative-style flight powers granted flight through the player's
mayflyability flag, which some mods, such as Create Buzzy Beez, switch off for every survival player each tick. These powers now grant flight through NeoForge's creative flight attribute instead, which those mods leave alone. Turning a flight power off or losing it still drops the player out of flight and clears their fall distance, as before, and creative or spectator flight is never affected. Switching one on while its condition is not yet met, such as drawing the sword after the toggle, now lifts the player off as soon as the condition holds, where before they had to jump to start flying. -
The slime's bounce keeps the speed you had in the air. The bounce used the player's sideways speed at landing, after ground contact had already reduced it, so a running slime could still come out of a bounce with almost no forward speed. The sideways speed now comes from the last full tick in the air.
-
The origin info screen lists the powers your evolution tier has given you. The Powers section only ever showed an origin's base powers, so a power gained at a later tier, such as the Sword Immortal's Heavenly Sword Formation at tier 2, was missing from it along with its keybind, and a power that a tier takes away was still listed. The list and the keybind slots now follow the player's current tier, the same way the server grants the powers. Classes do not evolve, so the class layer still shows its base powers.
-
Origin packs left in the old game-root
originpacks/folder load again. 2.0 moved the folder toconfig/originpacks/and read the old one only when the new one was missing, but it also createdconfig/originpacks/on every launch, so a single launch left an empty new folder beside a full old one and the packs stopped loading without warning. The old folder is now read whenever it still holds packs andconfig/originpacks/does not, still with the warning asking you to move it across. If both hold packs, onlyconfig/originpacks/is read, and a warning names the folder being skipped. -
exhaustion_filtercancels the exhaustion it lists. The power loaded, but nothing read it, so it never filtered anything, including the importedorigins-classes:no_sprint_exhaustionandno_mining_exhaustion. It now cancels the hunger exhaustion vanilla charges for each listed source:sprint,mining,jumpandswim. Every other source of exhaustion is left alone. -
Cobweb affinity now covers the mod's own web, not just vanilla's. Climbing read the
#neoorigins:cobwebstag, but the slowdown suppression and the 10x break speed testedminecraft:cobwebdirectly, so a holder insideneoorigins:temporary_cobweb, which that tag has always listed, could climb it and still be slowed by it and still break it at normal speed. All three now read the tag, so a pack that adds its own web to it gets the whole of cobweb affinity rather than climbing alone. -
Three power descriptions now say what their powers actually do. The Herbalist's Bountiful Harvest promised 50% more crops, the classic Farmer's promised twice the yield, and the classic Rancher's Twin Births promised a chance of two babies. The descriptions reflected the intended behaviour rather than the actual behaviour: both harvest powers add one extra drop, and Twin Births fires every time. The Herbalist power also carried a
multiplierfield thatcrop_harvest_bonushas never accepted, so it was being dropped in silence and the power fell back to one extra drop anyway; the dead field is gone. No power's behaviour changes here, only the text that described it. -
in_block_anywhereworks in entity conditions. It was only usable in player conditions. A condition tested against a living entity, such as theentity_conditionofentity_gloworprevent_entity_render, can now use it. -
NeoOrigins.registerPowerworks from astartup_scripts/file (1.21.1 and 26.1, the builds carrying the KubeJS bridge). KubeJS clears every plugin's caches at the top of each script reload, and the server scripts reload when a world loads, long after the startup script's single run for that session. That cleared the handler before any power could look it up, so ajs_customorjs_activepower stayed inert, while the same call fromserver_scripts/worked because it ran after the clear. Registrations from a startup script now survive a reload; ones from a reloadable script are still replaced on each reload, so re-registering there keeps working.NeoOrigins.registerCallbackwas affected the same way and is fixed with it. -
The classic Enderian's Gourd Blindness works. The power checks whether another entity is wearing a pumpkin, but
equipped_itemcould not check other entities' equipment. The resulting condition could never be satisfied: the power hid nobody, and the server logged a warning on every load. The verb now reads any entity's equipment, in any of the six vanilla slots, so the power works, and so does any pack power written the same way. Two limits remain: theaccessoryslot cannot be asked about another entity, and a nested item condition NeoOrigins does not understand makes it refuse the whole filter rather than match everything, which in a hide-entities power would have hidden the world.
Pack Author Features
-
hud_render.dynamicstacks a bar above the permanent ones. Cooldown and timer bars took their slot in the same resource id order as every other bar, so one that appeared partway up the stack pushed every bar above it up, and they all dropped back when it went. A bar with"dynamic": truein itshud_rendernow stacks above every bar without it, with each group still in resource id order, so permanent bars hold their places while dynamic ones come and go on top. Cooldown bars from the Origins compatibility layer, both anorigins:cooldownpower and the cooldown bar of an active power, are dynamic by default. Nativeneoorigins:resourcebars are not, and opt in with"hud_render": { "dynamic": true }. A bar given a saved position in the HUD editor is unaffected. -
neoorigins:execute_commandruns when an action targets a mob. Commands were a player-only verb, so wherever an action ran against a mob, such as the target ofaction_on_hit,target_action_on_hitor a projectile hit, a command was skipped, and anandcontaining one was skipped entirely. The command now runs as the mob, so@sis the mob, with output suppressed and the same permission level as other power commands. It goes through the same legacy command repair, blocked-command list and unparseable-command log as every other place a power runs a command. -
neoorigins:like_aircarries movement speed into the air. Airborne control speed goes through the player'smovement_speedmodifiers, as it does for Origins' Avian. That includes the sprint modifier, so a sprinting holder gets vanilla's airborne sprint bonus with the modifier's +30% on top, also as in Origins. Creative and ability flight are left alone. -
neoorigins:conduit_power_on_landlets conduits affect players with this power while they are on land. An active conduit nearby gives them Conduit Power out of water or rain too. The power grants nothing by itself: a conduit still has to be built and active. -
neoorigins:entity_glowoutlines entities for the holder alone. Living entities matchingentity_condition, andbientity_conditionwith the holder as actor, get a glowing outline that only the holder sees, the way a Spectral Arrow marks a target. Nobody is given the Glowing effect. Withuse_teamson, the default, an entity on a coloured team keeps its team colour; otherwise the outline takesred,greenandblue. The classic Arachnid uses it to sense non-arthropods stuck in cobwebs. -
neoorigins:projectile_vulnerabilityadds damage from listed projectiles. The holder takesamountextra damage, 3 by default, from each projectile inprojectiles, given by id or as a#tag. The bonus is dealt even when the projectile itself deals none, so a snowball can hurt a Blazeborn. POWER_TYPES.md documents all four new types. -
cobweb_affinitycan climb. A newclimbfield, off by default, makes a cobweb the player is inside work as a ladder: jump to climb, sneak to hold. POWER_TYPES.md shows how the classic Arachnid gates wall and web climbing on a toggle, underwall_climbing.
Compatibility (Apoli / Origins)
-
target_action_on_hitfires on every hit and acts on the entity that was hit. The compatibility layer ran itsentity_actiononly when the holder killed something, and ran it on the holder rather than on the victim. It now fires each time the holder damages an entity and runs on that entity, as in Apoli, honouring the power'sconditionand itscooldown. A player who is hit gets the full action set; a mob gets the actions that can apply to any entity, such as effects, damage, fire, knockback and now commands.damage_conditionandtarget_conditionare not read yet, so the action fires on any hit while the power'sconditionholds. -
An older origin pack's worldgen files can stop a 26.x server from starting. A pack that ships its own dimension or worldgen files in the 1.21.1 format, such as a
dimension_typewithouthas_ender_dragon_fightor a biome with"carvers": {}, is rejected by vanilla Minecraft 26.x, and the server fails to start. NeoOrigins does not read these files, so it cannot bypass these errors: the fix is to update the pack's worldgen files to the 26.x format. Pack authors targeting 26.x should check everydimension_type,dimensionandworldgenfile they ship. Server admins whose startup log names one of these files should update the pack or remove it. -
Imported
origins:entity_glowoutlines entities for the holder. It gave the holder the Glowing effect, so everyone else saw the holder glow while the holder saw nothing new. It now maps ontoneoorigins:entity_glow, which outlines matching entities for the holder alone. Itsbientity_conditioncan now checkdistance, so SeerOrigin's sight outlines living things within 25 blocks while astral, where before that sight outlined nothing.origins:self_glowis unchanged. -
Imported
origins:conduit_power_on_landno longer grants effects Origins never gave. A power with that id, whether the pack shipped the file or only referenced the bare id, gave permanent Water Breathing, Night Vision and Haste. In Origins it only lets an active conduit reach the holder out of water, and that is now what it does. Written as a powertype, it now maps the same way. -
The bare
origins:master_of_websid no longer climbs every wall. A pack referencing it without shipping the file gotwall_climbing. It now getscobweb_affinitywithclimbon. -
Imported Blazeborn snowball damage matches Origins. Origins'
damage_from_snowballsloaded as a 4x multiplier on all incoming damage, with no snowball check, and the bare id was not recognised at all. Both now map ontoneoorigins:projectile_vulnerability: a snowball deals a Blazeborn 3 damage, and other damage is unaffected. Anymodify_damage_takenof the same shape, a positive flat addition from one projectile type, maps the same way. -
An imported resource bar keeps its value when you log back in.
origins:resourceseeded itsstart_valueon every login, not only when the power was granted, so a bar tracking progress (a level counter, stored energy, a kill tally) reset to its floor on every world join, and any power reading it read the floor with it. A login now leaves the stored value alone, and still seeds one for a player who has none. Changing origin, or an Orb of Origin re-pick, resets the bar as before. The nativeneoorigins:resourcewas already right. -
Three well-known Origins powers did nothing when a pack named them by id alone.
origins:burn_in_daylight,origins:hotbloodedandorigins:water_vulnerabilitywere each represented by a power with no configuration, which loaded but did nothing. They now get what Origins gives: catching fire once a second in direct sunlight unless invisible, immunity to Poison and Hunger, and 2 damage a second in water or rain. A pack shipping its own file for one of these is translated from that file, as before. -
An attribute can follow a resource. Apoli lets a modifier take its value from a resource, which is how a pack makes max health, or any other attribute, track a counter it keeps. NeoOrigins applied the modifier's declared value and ignored the resource, and these powers are written with a value of
0because the resource is meant to supply all of it, so the power loaded and then did nothing.origins:modify_attributenow carries the resource across, andneoorigins:attribute_modifiertakes aresourceof its own: the modifier's value is the resource's current value, re-read every 5 ticks, so the attribute moves with it both ways. A resource nothing has written yet reads 0. Apoli can also run further modifiers over that value before it reaches the attribute, which is not supported: the attribute tracks the raw value, and a warning is logged during loading when a pack requests additional modifiers.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:RUtQ9kfe:UtIhlAgN"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:RUtQ9kfe:UtIhlAgN"
}

