Список изменений
NeoOrigins v2.2.19
A features-and-compatibility release. Two new powers:
kill_loot_dropsadds bonus drops to the mobs you kill, rolled through each mob's own loot table so they land as genuine world drops instead of being handed straight to your inventory, andmobs_target_playeris the inverse ofmobs_ignore_player, letting the mobs you choose actively hunt an origin the way wolves hunt a skeleton. On the compatibility side, the ocean and carnivore origins can now eat fish and meat from other mods out of the box, and a new decaying cobweb block lets legacy Apoli packs (such as the Origins++ broodmother) place their webs.Supports: Minecraft 26.1.x (Java 25) · Minecraft 26.2 (Java 25) · Minecraft 1.21.1 (Java 21)
-
kill_loot_dropspower. Grants its holder bonus drops from the mobs they kill: each entry in the power'sdropslist pairs a mob target with an item, achance, and acount, and that item is layered into the mob's vanilla loot when you land the kill, so it falls from the corpse through the normal loot pipeline rather than appearing in your inventory. One power can hook many loot tables at once: list an entry per mob type, or match a whole category from a single entry withentity_tag(sayminecraft:undead) or an explicitentity_typeslist. Drops only roll for a player's own kills, so mob-on-mob and environmental deaths are left alone. See POWER_TYPES.md for the field reference and a worked example. -
mobs_target_playerpower. The inverse ofmobs_ignore_player: rather than making mobs leave you alone, it makes the mob types you list actively hunt whoever holds the power, the way wolves aggro a vanilla skeleton. Use it for, say, a skeleton-type origin that dogs treat as prey.entity_typesaccepts raw ids (minecraft:wolf) and tag references (#mymod:my_tag), and an empty or omitted list means every mob hunts the holder;range(default16) sets how close a mob has to be to pick the player up, andentity_blacklistcarves out types that should never hunt them. Boss-tier mobs (Warden, Ender Dragon, Wither) are always excluded. See POWER_TYPES.md for the field reference. -
The undead origins now breathe underwater. Skeleton, Vampire, Necromancer, Phantom, and Wraith are dead and no longer need air, so they no longer drown: they match Revenant, which already had this. Each origin's underwater breathing is its own toggle in
power_overrides.toml(set itsenabledtofalseto remove it for that origin). -
Native-format origins apply the multiple-power id rewrite. An origin written in NeoOrigins' own format that pulled in an
apoli:multiplepower (as some datapacks do) skipped the step that gives each bundled sub-power a unique id, so those sub-powers collided or silently dropped. The rewrite now runs for native-format origins as well, matching how converted Origins packs were already handled. -
Riding a player shows the passenger on the vehicle player's own screen (#111). When one player mounted another, the rider appeared for every onlooker but not for the player being ridden, and on dismount the vehicle player's screen kept showing a phantom rider until something re-tracked them. The root cause is that a player never tracks itself, so the server's passenger-list broadcast for the vehicle never reached the vehicle player's own client. The server now resends the true passenger list straight to the vehicle player both when a rider mounts and after one dismounts, so their own view stays in sync.
-
persistent_effectno longer clobbers stronger or foreign effects (#112). A persistent effect always overwrote whatever instance of the same effect type was already on the player and, when it turned off, always stripped that effect — so an infinite low-level buff could stamp out a stronger timed buff from another source (for example an Asura Bloodrage/Frenzy strength boost), and an inactive tier could remove a lower tier's effect or a foreign buff that merely shared the effect type. The power now only reapplies when nothing stronger is present, and only removes an effect it actually owns at its own amplifier (an infinite-duration instance matching its tier), leaving stronger and foreign effects untouched. -
The ocean and carnivore origins eat modded fish and meat. Fish and meat from other mods (Aquaculture, Hybrid Aquatic, and anything using the common
c:foods/raw_fish,cooked_fish,raw_meat, andcooked_meattags) now count toward the ocean origin's pescivore diet and the carnivore meat diet with no setup, so those players can eat modded catches straight away. For mods that don't follow thec:foodsconvention, a newocean_origins.extra_fish_foodsconfig list lets a server add extra edible items by id (somemod:exotic_fish) or tag (#somemod:fish): the diet allows any food that is either in theneoorigins:fish_foodstag or on that list. -
Legacy Apoli packs can place their cobwebs. Added the
origins:temporary_cobweb/neoorigins:temporary_cobwebblock that packs like the Origins++ broodmother place through their powers and functions. It's a decaying, no-collision web with no item form, placed only by powers and actions, and it registers under the legacyorigins:id as well so a pack function'ssetblock ... origins:temporary_cobwebresolves. -
Origins++ 2.4 packs translate far more faithfully (#110). A batch of compat fixes for the shapes the current Origins++ pack actually uses.
conditioned_attributenow reads multiple modifiers per power, whether they arrive as amodifiersarray (dark_boost), a singlemodifiersobject (pluck), a singularmodifierobject, or a flat top-levelattribute/operation/value: previously only the singular form was understood, so multi-modifier powers lost every entry but the first. Collapsedapoli:multiplepowers that leave their sub-powers unnamed now show a proper title in the origin screen, resolving the Apoli auto translation key (power.<namespace>.<path>.name) that Origins++ relies on instead of falling back to a raw id. And the broodmother lines up: thetemporary_cobwebblock reads the SNBTtagthatfire_projectilemerges into its spawn, and the Origins-registeredorigins:enderian_pearlprojectile remaps to a vanilla ender pearl while keeping its no-fall-damage behaviour. -
Block-scanning conditions match Apoli semantics.
near_block/block_in_radiusnow counts the matching blocks in range and compares that count viacomparison/compare_to(Apoli's real behaviour) rather than firing on the first hit, and its radius cap is raised from 8 to 16 for the wider tiered scans some packs use; the scan still bails out early once the outcome is settled. Three conditions were added to cover patterns those packs lean on:in_block_anywherecounts every block position the player's bounding box overlaps and compares it the same way,collided_horizontallyreports whether the entity ran into a wall this tick, and an internalclimbing_gatecondition drives conditional climbing powers. Climbing capabilities also join the per-tick position re-sync, so a climbing power that flips on a block or toggle condition no longer leaves the client rubber-banding. -
New Origins++ 2.4 power types translate. Three power types the current Origins++ pack introduces now map onto NeoOrigins:
origins:swimming(asforced_swimming, a condition-gated swimming capability),origins:prevent_block_selection(ascobweb_selection_passthrough, narrowly for the "crosshair passes through cobwebs" pattern that targets theorigins:cobwebstag or the cobweb block), andorigins:action_on_being_used, which fires a bi-entity action when another player right-clicks the holder. Both new movement capabilities join the per-tick re-sync so their client-predicted physics stay in step with the server.

