promotional bannermobile promotional banner

NeoOrigins

A modern port of Origins
Back to Files

NeoOrigins v2.2.25 (MC 26.2)

File nameneoorigins-2.2.25+26.2.jar
Uploader
CyberDayCyberDay
Uploaded
Aug 23, 2026
Downloads
80
Size
11.5 MB
Mod Loaders
NeoForge
File ID
8719177
Type
R
Release
Supported game versions
  • 26.2

Curse Maven Snippet

NeoForge

implementation "curse.maven:neoorigins-1495375:8719177"

Learn more about Curse Maven

What's new

v2.2.25

A documentation release, with a run of server-reported fixes riding along. The API reference index linked barely half of its power types. entity_model, restrict_items and creative_flight were documented in full and reachable from nowhere, so a reader who looked one up found nothing and reasonably concluded the feature did not exist. Every type has a row now. The verification pass that followed went back over the reference against the code rather than against the older prose, and it turned into the larger half of the release: fifteen summaries were wrong or misleading about what their class does, five documented fields do not exist under those names, six defaults were wrong, and one power type advertised three verbs that all silently teleport the player somewhere random. The fixes are unrelated to each other and all came from live servers. An invisibility power with a condition on it hid the body and left the armor and held item floating — the unconditional ones always worked, which is why it survived so long. A misconfigured attribute_modifier could fill an operator's log for as long as a player held the power, several lines a second, with a message that never said what was wrong. An origin with an empty slot in its power list did not load at all. And a keep-inventory origin dropped the armor it had just promised to keep, but only once your inventory was full, which is what made it look random. A second pass over the older reports found three of them worse than described: a grounded player wearing wings was cutting the elytra sound off for everyone gliding past, the clamp that keeps a phasing origin out of the few blocks it is barred from was collided against every block in range instead, and a player being ridden was the one person in the world who could not see their own rider. Two editor corrections close gaps left open in 2.2.24, and on the compatibility side an Artifacts umbrella finally keeps the sun and the rain off.

Supports: Minecraft 26.1.x (Java 25) · Minecraft 26.2 (Java 25) · Minecraft 1.21.1 (Java 21)

Changes

  • Ore counts as food for the Caveborn. The four tags listing what a Caveborn can eat besides stone held ingots, nuggets, gems, raw metal and netherite scrap, and no ore at all, so a Caveborn standing at a freshly exposed vein had nothing in front of it that it could eat. Iron, gold and diamond ore now qualify, along with their deepslate forms, and so do nether gold ore, ancient debris and the raw iron and raw gold blocks. One thing worth knowing: ore is a placeable block. Aiming at a surface places it, as it always did, so eating one means aiming where it cannot be placed. That is the same rule the Caveborn's stone diet has always followed. ORIGINS.md lists the tags.
  • The four aquatic origins say what keeps them from drying out. Dries Out told you two things — air ticks down while you are out of water, and staying too long suffocates you — so every way of stopping the drain was something you had to be told about or stumble into. The description now names them — rain, standing in a water cauldron, Water Breathing, and an active conduit nearby. Abyssal, Kraken, Merling and Siren all read the same, in every language the mod ships. POWER_TYPES.md says the same beside the type.

Bug Fixes

  • An invisibility power with a condition hides armor and held items, not only the body. Powers that turn invisibility on unconditionally were always fine, which is what kept this hidden. The armor-hiding flag was read from the condition-gated capability set, and it only reached the client when something else triggered a power sync — never at the moment the condition itself flipped. So a conditioned power froze the flag at whatever it was worth at the last sync: the body vanished on cue, and the boots and the sword stayed. The flag now comes from the power itself rather than from its live condition state, which is what it always meant ("hide the armor when invisible"), and the client already re-checks whether you are actually invisible before hiding anything. Invisibility itself is unchanged. Cosmetic elytra wings and morph state are left alone on purpose: nothing on the client re-checks those, so treating them the same way would draw wings on a player whose condition is not met.
  • A misconfigured attribute_modifier reports once instead of every few ticks. The power re-tries the attachment whenever it should be active and is not. That is the right behaviour while the attachment can still succeed, and a permanent log flood once it cannot. Naming something that is not an attribute is the common way to get there, and the old message never said so. It does now. If the id is a mob effect — haste, night_vision and friends are the usual ones — it can never resolve as an attribute, and what the effect actually wants is an apply_effect action. The warning also names the prefixes that were tried, and repeats for the same id are suppressed.
  • An origin with an empty entry in its power list loads instead of vanishing. A single null in powers failed the whole origin, so it never reached the picker, and all you got was one line repeating "not a string" once per empty slot, naming the origin but neither the field nor the position that caused it. The empty entries are now dropped and the origin loads with every power actually named in it, with one warning giving the origin id and how many were skipped. upgrades and the add / remove lists inside tier_powers are covered the same way. A trailing comma or a deleted line in a hand-edited file is the usual cause, so it is still worth fixing the file rather than leaving it to the warning.
  • The creator keybinds stop writing a server warning on every press. Player X requested the mob creator without permission was a keybind collision, not something to act on. The open-creator keys ship unbound, the client sends a packet per press, and the server logged each refusal at warning level — so a player whose key overlapped something they use in normal play filled the operator's log just by playing. Both open paths log at debug now. Refusing a save or an apply still warns, on purpose: those are only reachable from inside the creator screen, so a refusal there is worth an operator's attention.
  • The elytra loop stops when you land, rather than starting again twenty times a second. True of every origin that flies without an elytra in its chest slot. The guard that ends a flight ran its whole body on every tick the player was on the ground, in water or riding, instead of only on the tick the flight actually ended. On your own client that meant the fall-flying flag going on and straight back off once per tick, and the client starts a fresh elytra sound on the rising edge, so the loops stacked and got louder the longer you stood still. The server side reached further than the player it belonged to: it was broadcasting a stop-sound to every player within 64 blocks, twenty times a second, so standing on the ground with wings silenced the elytra of anyone genuinely gliding past. Both halves now fire once, when flight ends.
  • A phasing origin stops sticking inside ordinary blocks. Phasing powers carry a short list of blocks they are not allowed through, and the clamp that enforces it asked the game's general-purpose collision routine to check the player against that list. That routine always adds the surrounding world to whatever list it is handed, so the clamp collided the player against every block within reach — the exact opposite of a blacklist — and a Wraith that strayed near one blocked block froze solid in stone it was entitled to walk through. The clamp now checks the listed blocks and nothing else. The Wraith's own description has been corrected alongside it: it said the Wraith cannot pass obsidian at all, where the apex form is stopped only by bedrock.
  • A player being ridden can see who is riding them. Everyone else could. A player is never in their own tracking list, so the update naming their passengers was the one packet that never reached them, and their own client went on drawing an empty back until something unrelated forced a refresh. Consent-based mounts already worked around this by resending it by hand, but that is not the only way to end up ridden: the Apoli-compatible mount action, the built-in one, the mount power and summoned minions all take a seat directly, and none had that workaround. The resend now happens where a passenger is seated, so every route is covered.
  • Keep-inventory puts everything back where it was, instead of dropping your armor once your bag is full. Reported from a live server, and the fullness is the whole of it. Everything kept at death went back through the routine that adds an item to your inventory, and that routine only fills the main thirty-six slots. With the wildcard * covering every slot you have, the first thirty-six kept stacks refilled the main inventory, and the four armor pieces and the offhand item had nowhere left to go, so the power dropped them on the floor — the one outcome it exists to prevent, and it only happened to players carrying enough to trigger it, which is why it looked arbitrary. Even with room to spare it was never quite right, since armor came back loose in the bag rather than worn. Kept items now return to the exact slot they were taken from, which is empty by construction, because dying is what emptied it. Armor comes back on, the hotbar keeps its layout, and a full inventory can no longer push anything onto the ground.
  • An origin that cannot find its spawn dimension says which one it wanted. A spawn_location naming a dimension that no loaded world provides gave up without a word, which in game reads as picking the origin and simply not being moved, and in the log reads as nothing at all. The warning now names the dimension and the player, so a typo or a missing mod is the first thing you see rather than something to go hunting for.
  • An active conduit keeps an aquatic origin from drying out on land. The exemption had been in place for months and could never once have fired. The game only hands Conduit Power to a player who is already in water or rain, so an Abyssal, Kraken, Merling or Siren standing on dry ground beside a conduit was never given the effect the exemption goes looking for. The one case that appeared to work was walking ashore near one: the effect carried out of the water, lasted about thirteen seconds, then lapsed with nothing to renew it. That is why it read as working sometimes rather than never. A conduit now reaches a drying-out player anywhere inside the radius it already uses for everything else, and the bubble row refills while you stand in it instead of holding at whatever it had drained down to. Pack authors get the same reprieve in attribute_modifier's on_land condition, which was written to stand down under Conduit Power and never once had the occasion to. It does now — for a player whose origin also carries a drying-out power, since that is who a conduit reaches on dry land. An origin without one is unchanged. See POWER_TYPES.md.

Pack Author Features

  • Block conditions written as all_of and any_of stop being marked invalid. Both are the Apoli 2.9+ spellings of and and or, and the loader has always read them. The block condition catalogue behind the editors, and the generated schema, listed only the short pair, producing the one failure shape an author cannot debug from inside the game: the file works, and the editor says it does not. 2.2.24 documented the workaround of writing and and or there instead, which you no longer need. Both spellings are now in the catalogue, the schema and the editor pickers, and nothing you have already written changes behaviour. See CONDITIONS.md.
  • status_effect's ambient and show_particles advertise the loader's real defaults. They were declared the wrong way round — ambient as defaulting to false and show_particles to true, where the loader does the opposite. A form field or a generated schema told you the inverse of what omitting the key would do. These two are exactly the pair where a wrong default costs nothing at load and shows up only as particles you did not expect, once you are already in game. The reference tables were right all along and are unchanged.
  • The example pack drops a tick_action power that never fired. The Specter's Dimensional Escape declared action_type: teleport_on_damage on a type that dispatches nothing, so the origin advertised a teleport that could not happen, and it was the only worked example of the type an author had to copy. It is removed rather than rewritten, since condition_passive is what to copy for anything that runs on an interval. The Specter's other nine powers are unchanged. MIGRATION.md says what to write instead.

Compatibility (Mod Integrations)

  • An Artifacts umbrella keeps the sun and the rain off. Origins that burn in daylight and origins that take rain damage both look for an umbrella before they hurt you, but only Vampires Need Umbrellas ever counted as one, so an Artifacts umbrella held in plain sight did nothing. It works now, held in either hand or worn in a trinket slot, and one umbrella covers both weaknesses rather than only the one it was carried for. What counts as an umbrella is a new neoorigins:umbrellas item tag, so a pack can add any other mod's umbrella to it without touching code. COMPATIBILITY.md documents the tag.
  • Keep-inventory covers trinket slots, and a kept trinket waits for its slot rather than being dumped in your bag. On 26.1 and 26.2 the coverage is new: slots took only the vanilla categories there, so a Curios ring matched nothing and dropped on death like anything else. All three versions now read curio, accessory or trinket as meaning every trinket slot, or a specific slot id such as ring or necklace, and the wildcard * includes them. A kept trinket goes back into the slot it died in. Those mods rebuild their slot counts on their own schedule after a respawn, so a slot that is not writable the instant you land is usually a matter of timing rather than a slot that is genuinely gone: the trinket is held and retried for three seconds instead of being given up on, and only after that does it fall back to your inventory, and to the ground only if that is full as well. Logging out part-way through settles it the same way rather than losing it. Curios is read on every supported version; Accessories on 1.21.1 only, as it has no 26.1 or 26.2 build. POWER_TYPES.md documents the slot names.
  • equipped_item with equipment_slot: accessory reads your trinkets on 26.1 and 26.2. 1.21.1 already did. A slot name the mapper does not recognise falls through to the mainhand, so on those two versions the condition quietly answered about whatever the player happened to be holding. It never errored and never logged, which is the hardest kind of wrong condition to find: the file looks correct, and the power simply behaves as though you had asked about the held item. It now inspects equipped trinkets, with an optional slot_type to narrow to a single named slot. CONDITIONS.md documents both fields.

Documentation

  • The API reference index lists every power type. It listed barely half of them, so a reader looking up entity_model, restrict_items or creative_flight found no row and no link. Every documented type has one now, including a new group for the mod-compatibility types. Four rows were wrong rather than missing: sneaky, stealth, no_projectile_divergence and tick_action sat under retired aliases, but none is an alias: all four are registered types with their own implementations. They move to their live categories, and night_vision's replacement is named correctly as persistent_effect. See API.md.
  • Fifteen power-type summaries corrected against the code. Each was re-read against its implementation class rather than against the older prose. The ones that change what you would write: tick_action dispatches nothing at all, so "run an action on a repeating interval" described a feature that is not there; no_projectile_divergence pointed at minecraft:projectile_accuracy, an attribute that does not exist, so the suggested modifier could never resolve; wraith_phase never grants flight; mount needs no consent unless the server config asks for it; and loot_pool_grant fires once per grant_id. The rest tighten wording that was true and misleading — modify_flight_speed leaves elytra gliding alone, mob_behavior adds goals rather than replacing the vanilla AI, restrict_items has two independent opt-ins, extra_inventory sizes in slots rather than rows, and slime_level_hp tracks the current level rather than resetting on death. POWER_TYPES.md carries all fifteen.
  • Field tables and examples the loader does not match. Five documented fields do not exist under the names given: knockback_modifier's direction, thorns_aura's reflect_ratio (the real key is return_ratio), action_on_hit_taken's amount, persistent_effect's refresh_interval, and the enchantment item condition's min_level (the real keys are comparison and compare_to). Worse, action_on_hit_taken advertised restore_health, restore_hunger and grant_effect, none of which has an implementation: all three fall through to the default and teleport the player somewhere random — and the worked example asked for grant_effect, so it did the one thing its own title said it would not. Six defaults were wrong, and explode's destruction_type was documented backwards: absent means no blocks break, not the reverse. The action_on_event example used slot and item on an equipped-item condition, which reads equipment_slot and item_condition, so it matched any mainhand item rather than the wooden sword it claimed to test. The corrections span POWER_TYPES.md, CONDITIONS.md and ACTIONS.md.
  • The pack folder layout shows every folder a pack can carry. It listed three, so morphs, entity groups, mob origins and global powers were invisible to anyone reading the pack reference, and the morph feature was documented in full and reachable from nowhere else. The layout now shows all of them, each pointing at its own doc, with a note that the original Origins mod layout still loads unchanged. A hand-written morph.schema.json comes with it, so the editors read morph files like every other type. See PACK_FORMAT.md.
  • action_over_time and tick_action point somewhere useful. action_over_time was a registered alias mentioned nowhere at all — not in the reference, not in the retired table, not in the migration guide. It loaded and ran exactly as written, and an author who inherited one had nothing to read about it. It has a migration entry now, alongside the other types that fold into condition_passive. tick_action pointed at action_on_event, where condition_passive is the closer replacement and takes the same interval field. See MIGRATION.md.
  • Four reference links that never resolved. The links to condition_passive, block_target_action and the cookbook's toggleable-abilities recipe all landed at the top of the page instead of at the section, with the cookbook link broken in two different files. All four now land on the section they name.
  • What holds off a dry-out, said the same way everywhere it is written down. The origin list had Dries Out as damage out of water in hot biomes, where the power is not biome-gated at all: air drains anywhere on land, and you suffocate when it empties. The power type reference named Water Breathing and Conduit Power without ever saying that rain, a bubble column or standing in a water cauldron counts as being in the water — and it read as though those reprieves applied to fluid: lava as well, which is the bare check with none of them. The cookbook's moisture note gains Water Breathing and Create's backtank beside the rest. ORIGINS.md, POWER_TYPES.md and COOKBOOK.md now agree.
  • The mob origin schema is published alongside the other four. mob_origin.schema.json sits in the schema folder, in the README's table and in its IDE-validator mapping, and in the API reference's validator list, so an editor pointed at data/*/origins/mob_origins/*.json now checks the file the way it already checked origins, layers, powers and morphs. See schema/README.md.
  • Attribution for the bundled spectral sword travels with the mod. The blades spawn_sword_rain summons are a third-party model under Creative Commons Attribution 4.0, and that licence asks for credit to travel with the file. A CREDITS.md at the root names the author, the source and the licence it is used under, and points at the bundled font licensing beside it.

This mod has no additional files