Description
Choose an Origin and begin your game with special abilities, some of which help you out, while others hinder you in your gameplay. The different Origins all have a different impact on the vanilla gameplay. If you don't like these at all, you can also pick the "Human" origin while playing with friends on a server.
Currently featuring 9 Origins (+ Human):

Data-driven
Origins is very data-driven, allowing you to add, modify and remove origins as you like. There is an active community of data pack makers on the Discord, with ready-made data packs for you to download and enjoy, as well as for getting help if you want to try your hand at creating your own data pack.
If you want to get started, I suggest visiting the wiki of the mod on GitHub: https://github.com/apace100/origins-fabric/wiki
Community
There are a lot of enthusiasts of the mod and people who make data packs on the Discord! There are channels for discussion, posting origin ideas, sharing data packs, and more. You'll find me there from time to time as well. :) Feel free to join: https://discord.gg/VdGgwXwWNa
Server Hosting
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
- \[[**
apoli#283**](https://github.com/apace100/apoli/issues/283)\] Registries [specific to Apoli] are now synced to the client. - [**
apoli**] Simplified implementation for syncing command tags, and also fixed the related crashing issue when a player joins a server without Apoli installed. - [**
apoli**] Theattribute_modify_transferpower type now uses theModifyValueCallbackevent for transferring attribute modifiers. - [**
apoli**] Re-added missingstillfluid condition type. - [**
apoli**] Optimized power lookup implementations. - [**
origins**] Removed the 'choose' button in the view origin screen since it no longer works. - [**
origins**] Moved all rendering logic for the origin window to its own widget class.
## Fixes
- [**
apoli**] Fixedconditioned_attributepower type disregarding its condition when applying its attribute modifier(s). - [**
apoli**] Fixed incorrect landing condition logic inrandom_teleportentity action type. - [**
apoli**] Fixed typo in the entity condition type registry data type. (e.g: _"... not undefined"_ → _"... undefined"_) - [**
apoli**] Fixedreplace_loot_tablepower type not replacing theapoli:replaced_loot_tableloot table properly. - [**
apoli**] Fixed incorrect calculation and usage of the general/entity/block distance in theraycastentity action type. - [**
apoli**] Fixedaction_on_deathpower type executing its actions before the entity's health is set. - [**
apoli**] Fixed crashing issues related to the recipe book and power-related recipe serializers. - [**
apoli**] Fixedremove_powerentity action type removing all powers from the source of the specified power, instead of removing the power from its sources. - [**
origins**] Fixed issue with being unable to choose an origin for other origin layers if there are more than one. - [**
origins**] Fixed Merling's Aqua Affinity power not working consistently when floating or standing underwater. - [**
origins**] Fixedorigins:like_waterpower type setting the entity's 'on ground' flag on/off repeatedly.
## Changelogs
- ### [Full changelog](https://github.com/apace100/origins-fabric/compare/1.13.0-pre.2+mc.1.21.1...1.13.0-pre.3+mc.1.21.1)
- ### [Apoli 2.12.0-pre.3+mc.1.21.1](https://github.com/apace100/apoli/releases/tag/2.12.0-pre.3%2Bmc.1.21.1)
- [**
apoli**] The replacement IDs in thereplace_loot_tablepower type can now reference capture groups from the regular expression. - [**
origins**] Scrolling the origin window is now much faster, and can be slowed down (to its previous speed) by holding the shift key.
## Fixes
- [[**
apoli#267**](https://github.com/apace100/apoli/pull/267)] Fixed incompatibility with message-api. - [**
apoli**] Fixedcommand_along_rayinraycastentity action type not being executed even whencommand_along_ray_only_on_hitisfalse. - [**
apoli**] Fixedoffsetblock condition type not checking the block at the offset position. - [**
apoli**] Fixed incompatibility with Trickster. - [**
apoli**] Fixedapoli:replaced_loot_tableloot table sometimes not referencing the replaced loot table. - [**
apoli**] Fixedattributepower type not re-applying the attributes when the player goes through the End Portal (e.g: pseudo-respawning.) - [[**
origins#865**](https://github.com/apace100/origins-fabric/pull/865)] Fixed crash when the water protection enchantment is filtered. - [**
origins**] Fixed an issue with choosing origins (or random) in multiple origin layers not working properly. - [**
origins**] Fixed the dirt background not rendering when choosing an origin for the first time.
## Changelogs
- ### [Full changelog](https://github.com/apace100/origins-fabric/compare/1.13.0-pre.1+mc.1.21.1...1.13.0-pre.2+mc.1.21.1)
- ### [Apoli 2.12.0-pre.2+mc.1.21.1](https://github.com/apace100/apoli/releases/tag/2.12.0-pre.2%2Bmc.1.21.1)
- [**
apoli**] Power/global power resource reload listeners now have direct access to the registry wrapper lookup (this means Apoli/Origins won't have to rely on pretty-hacky methods to get the registry wrapper lookup to use for parsing powers/global powers.) - [**
apoli**] Powers are now validated when data pack contents are refreshed (e.g: after all data packs have been reloaded) instead of after powers are parsed. - [**
apoli**] Power recipes are now registered when data pack contents are refreshed (e.g: after all data packs have been reloaded) instead of after powers are parsed. - [**
apoli**] Allowed indexed stacks (the data typ used in thestarting_equipmentpower type) to have a slot range with multiple slots. - [**
apoli**] Optimized inventory-related actions/utilities to reduce performance overhead. - [**
apoli**] _{For addon developers}_ Simplified and improved naming convention of some classes/methods. This affects the following classes/methods: AbstractAction-->ActionAbstractCondition-->ConditionPower#getPowerType-->Power#getTypeAction#getActionType-->Action#getTypeCondition#getConditioType-->Condition#getType
## Fixes
- [**[
apoli#260](https://github.com/apace100/apoli/pull/260)**] Fixed memory leaks and threading issues. - [**
apoli**] Fixed attribute modifiers added via theattributepower type not persisting on respawn. - [**
apoli**] Fixed attribute modifiers added via theconditioned_attributepower type being added unconditionally upon gaining the power. - [**
apoli**] Fixed.mcfunctionfiles not being loaded due to non-existent powers caused by loading order issue (since.mcfunctionfiles are loaded before powers.) - [**
apoli**] Fixed inventory-related entity action/condition types improperly checking the size boundary of the inventories and specified slots. - [**
apoli**] Fixedpassenger_actionentity action type executing its own entity action on the ridden entity instead of the riding entity. - [**
apoli**] Fixedattackerdamage condition type not checking if the attacker actually exists. - [**
apoli**] Fixed powers unnecessarily being synced in singleplayer. - [**
apoli**] Fixed crash with theraycastentity action/condition types caused by not checking if the entity has the reach-related attributes. - [**
apoli**] Fixed tooltips of item powers being duplicated after each equipment slot tooltips. - [**
apoli**] Fixed the position context of theraycastentity action type to use the position of the raycast's end position instead of the specified destination position. - [**[
origins#801](https://github.com/apace100/origins-fabric/pull/801)**] Fixed origin powers unable to be disabled via the config. - [**
origins**] Fixed origins/origin layers/badges being unnecessarily synced in singleplayer. - [**
origins**] Fixed.mcfunctionfiles not being loaded due to non-existent origins caused by loading order issue (since.mcfunctionfiles are loaded before origins.)
## Changelogs
- ### [Full changelog](https://github.com/apace100/origins-fabric/compare/1.13.0-alpha.12+mc.1.21.1...1.13.0-pre.1+mc.1.21.1)
- ### [Apoli 2.12.0-pre.1+mc.1.21.1](https://github.com/apace100/apoli/releases/tag/2.12.0-pre.1%2Bmc.1.21.1)
- [**
calio**] Added Connector dependecy system - [**
origins**] Added Connector Extras as an explicit dependency
## Fixes
- [**
apoli (connector)**] Fixedaction_on_block_break,modify_harvestpowers and thegamemodeentity condition - [**
apoli**] Fixedmodify_air_speed - [**
apoli**] made Inventory related functionality more efficient - [**
origins**] Fixed Avian'slike_airpower - [**
origins (connector)**] Fixed Shulk'sstrong_armspower - [**
origins**] Fixed origin selection screen invulnerability (woops)
## Changelogs
Make sure to check out the full changelogs here so you don't miss a thing!
- [**Full changelog**](<https://github.com/apace100/origins-fabric/compare/v1.10.0...v1.10.1>)
- [**Apoli 2.9.1+mc.1.20.1**](<https://github.com/apace100/apoli/releases/tag/2.9.1%2Bmc.1.20.1>)
- [**Calio 1.11.1+mc.1.20.1**](<https://github.com/apace100/calio/releases/tag/1.11.1%2Bmc.1.20.1>)
- [**
calio**] Added Connector dependecy system - [**
origins**] Added Connector Extras as an explicit dependency
## Fixes
- [**
apoli (connector)**] Fixedaction_on_block_break,modify_harvestpowers and thegamemodeentity condition - [**
apoli**] Fixedmodify_air_speed - [**
apoli**] made Inventory related functionality more efficient - [**
origins**] Fixed Avian'slike_airpower - [**
origins (connector)**] Fixed Shulk'sstrong_armspower - [**
origins**] Fixed origin selection screen invulnerability (woops)
## Changelogs
Make sure to check out the full changelogs here so you don't miss a thing!
- [**Full changelog**](<https://github.com/apace100/origins-fabric/compare/v1.10.0...v1.10.1>)
- [**Apoli 2.9.1+mc.1.20.1**](<https://github.com/apace100/apoli/releases/tag/2.9.1%2Bmc.1.20.1>)
- [**Calio 1.11.1+mc.1.20.1**](<https://github.com/apace100/calio/releases/tag/1.11.1%2Bmc.1.20.1>)
- [**
calio**] Added Connector support - [**
apoli**] Added Connector support - [**
origins**] Added Connector support
## Fixes
- [**
apoli**] Fixed brightness related conditions that would not work with shader powers. (origins:exposed_to_sun,origins:brightness, etc) - [**
apoli**] Fixed explode entity action not displaying particles or sounds - [**
apoli**] Fixed a crash that occurs whenorigins:damageis not given adamage_type - [**
apoli**] Fixed the "allow_holding" field in theorigins:climbingpower type not functioning - [**
origins**] Players are now only invulnerable when currently choosing an origin, instead of when not having all origins.
## Changelogs
Make sure to check out the full changelogs here so you don't miss a thing!
- [**Full changelog**](<https://github.com/apace100/origins-fabric/compare/v1.10.0...v1.10.1>)
- [**Apoli 2.9.1+mc.1.20.1**](<https://github.com/apace100/apoli/releases/tag/2.9.1%2Bmc.1.20.1>)
- [**Calio 1.11.1+mc.1.20.1**](<https://github.com/apace100/calio/releases/tag/1.11.1%2Bmc.1.20.1>)
- [**
calio**] Added Connector support - [**
apoli**] Added Connector support - [**
origins**] Added Connector support
## Fixes
- [**
apoli**] Fixed brightness related conditions that would not work with shader powers. (origins:exposed_to_sun,origins:brightness, etc) - [**
apoli**] Fixed explode entity action not displaying particles or sounds - [**
apoli**] Fixed a crash that occurs whenorigins:damageis not given adamage_type - [**
apoli**] Fixed the "allow_holding" field in theorigins:climbingpower type not functioning - [**
origins**] Players are now only invulnerable when currently choosing an origin, instead of when not having all origins.
## Changelogs
Make sure to check out the full changelogs here so you don't miss a thing!
- [**Full changelog**](<https://github.com/apace100/origins-fabric/compare/v1.10.0...v1.10.1>)
- [**Apoli 2.9.1+mc.1.20.1**](<https://github.com/apace100/apoli/releases/tag/2.9.1%2Bmc.1.20.1>)
- [**Calio 1.11.1+mc.1.20.1**](<https://github.com/apace100/calio/releases/tag/1.11.1%2Bmc.1.20.1>)
## Additions
- [**
apoli**] Added new generic container types (with the_AxBsuffix, where A is the amount of columns and B is the amount of rows); generic_9x1generic_9x2generic_9x4generic_9x5
## Changes
- [**
apoli**] Renamed thekeyfield in keybinding references toid(and added the old name as an alias.) - [**
apoli**] Renamed some container types to match its corresponding screen handlers (and added its old names as aliases); double_chest-->generic_9x6chest-->generic_9x3dropper/dispenser-->generic_3x3- [**
apoli**] Block actions now only execute on the server to prevent desync with the client. - [**
apoli**] Item actions now only execute on the server to prevent desync with the client. - [**
apoli**] Theon_blockentity condition type now checks the block currently being stepped on, instead of the block underneath the entity (e.g: carpet on soul sand --> carpet will be the block being stepped on.) - \[**
apoli**\] _{For addon developers}_ Refactored action/condition types and context; - Action/condition types no longer have the
execute(...)/test(...)methods respectively. To implement action/condition logic, override theaccept(ActionContext)/test(ConditionContext)methods respectively, and access the action/condition context directly instead. - Renamed
TypeActionContextandTypeConditionContexttoActionContextandConditionContextrespectively. - Added
shouldExecute(ActionContext)for action types to evaluate the action context before proceeding with the action logic. - Added
shouldTest(ConditionContext)for condition types to evaluate the condition context before proceeding with the condition logic. - Added
BiEntityRequirementenum used in bi-entity action/condition types to determine whetherBOTH,EITHER, orDEFAULT(no requirement) actor/target entities are required. - Added
getRequirement()in bi-entity action/condition types to indicate its requirement. - \[**
apoli**\] _{For addon developers}_ Fixed and tweaked power keybinding references; - Renamed
Active$Keyclass toKeyBindingReference, and moved it into theio.github.apace100.apoli.util.keybindingpackage. - Fixed issue with triggering active power types with server-sided conditions.
## Fixes
- [**
calio**] Fixed logic for checking the boundaries of positive floating point number data types. - [**
apoli**] Fixed syncing powers in LAN servers. - [**
apoli**] Fixed origin position of theraycastentity action/condition types. - [**
apoli**] Fixed how the command incommand_along_rayis executed in theraycastentity action type. - [**
apoli**] Fixed default value of thecomparisonfield of thepassengerentity condition type. - [**
apoli**] Fixed actor/target context inpassenger_actionentity action type. - [**
apoli**] Fixed field order, and encoding issue with particle-related power/action types. - [**
apoli**] Fixed thestacking_status_effectpower type not decreasing its stacks properly. - [**
apoli**] Fixed theaction_on_block_placepower type unable to be encoded properly (e.g: with/power dumpor when syncing the power to the client.) - [**
apoli**] Fixed thespawn_entityentity action type not properly recognizing the action in itsbientity_actionfield as a bi-entity action. - [**
apoli**] Fixed issues with thestarting_equipmentpower type; - Fixed the power type unable to be encoded properly (e.g: with
/power dumpor when syncing the power to the client.) - Fixed the power type preventing the server from reloading (or causing a client crash.)
- [**
apoli**] Fixed issues with thegame_event_listenerpower type; - Fixed class-casting crash issue when a new instance of the power type is created.
- Fixed the power type unable to listen to game events.
- [**
origins**] Fixed syncing origins/origin layers in LAN servers. - [**
origins**] Fixed syncing badges in LAN servers. - [**
origins**] Fixedorigins:originitem component not consuming the item when setting origin(s).
## Changelogs
- ### [Full changelog](https://github.com/apace100/origins-fabric/compare/1.13.0-alpha.11+mc.1.21.1...1.13.0-alpha.12+mc.1.21.1)
- ### [Apoli 2.12.0-alpha.15+mc.1.21.1](https://github.com/apace100/apoli/releases/tag/2.12.0-alpha.15%2Bmc.1.21.1)
- ### [Calio 1.14.0-alpha.9+mc.1.21.x](https://github.com/apace100/calio/releases/tag/1.14.0-alpha.9%2Bmc.1.21.x)
- [**
apoli**] Themodifier/modifiersfield(s) are now required in themodify_item_cooldownpower type - [**
apoli**] The tooltip texts in thetooltippower type are no longer wrapped in string when serialized to NBT - [**
origins**] Reformatted code style of the/origincommand to match the code style in Apoli - [**
origins**] Adjusted the text area of the origin window
## Fixes
- [**
apoli**] Fixed class casting issue inoffsetblock condition type - [**
apoli**] Fixed ID of theaction_on_key_presspower type - [**
apoli**] Fixed initializing issues with power types - [**
apoli**] Fixed abnormal behavior withadd_velocityentity/bi-entity action types - [**
apoli**] Fixed default offset values ofspawn_particlesentity action type - [**
apoli**] Fixedarea_of_effectentity/block action types accepting a positive integer/floating pointradiusvalue instead of a non-negative integer/floating point value respectively - [**
apoli**] Fixedaction_on_block_breakpower type evaluating its block condition too late (evaluating the block at the mined position **after** it's been mined) - [**
apoli**] Fixed typo in fields for encoding themodify_foodpower type - [**
apoli**] Fixedchoicemeta action type executing all the defined actions instead of just one - [**
apoli**] Fixedgiveentity action type only working once (per game/server restart) due to the provided item stack not being copied - [**
apoli**] Fixed*_inventoryentity action/condition types being provided slots that aren't within the bounds of an entity's inventory (or inventory of a power that uses theinventorypower type) - [**
apoli**] Fixedmodify_harvestpower type evaluating its block condition too late (evaluating the block at the mined position **after** it's been mined) - [**
apoli**] Fixedattackerdamage condition type requiring an entity condition - [**
origins**] Fixed not being able to see custom origin layers in the origin screen - [**
origins**] Fixedorigins:originitem component not setting the player's origin
## Changelogs
- ### [Full changelog](https://github.com/apace100/origins-fabric/compare/1.13.0-alpha.10+mc.1.21.1...1.13.0-alpha.11+mc.1.21.1)
- ### [Apoli 2.12.0-alpha.14+mc.1.21.1](https://github.com/apace100/apoli/releases/tag/2.12.0-alpha.14%2Bmc.1.21.1)
- ### [Calio 1.14.0-alpha.8+mc.1.21.x](https://github.com/apace100/calio/releases/tag/1.14.0-alpha.8%2Bmc.1.21.x)
## Additions
<ul>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Added <code>SerializableDataType#validateValue</code> method for validating the operand type
</li>
<li>
[<b><code>apoli</code></b>] Added legacy aliases for meta condition types;
<ul>
<li><code>and</code> --> <code>all_of</code></li>
<li><code>or</code> --> <code>any_of</code></li>
<li><code>chance</code> --> <code>random_chance</code></li>
</ul>
</li>
</ul>
## Changes
<ul>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Deprecated <code>SimpleDataObjectFactory</code> in favor of using <code>DataObjectFactory</code> directly via <code>DataObjectFactory#simple</code>
</li>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Renamed <code>SerializableDataTypeList</code> class to <code>ListSerializableDataType</code>
</li>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Renamed <code>FunctionedFieldImpl</code> class to <code>FunctionedDefaultFieldImpl</code>
</li>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Renamed <code>OptionalFieldImpl</code> class to <code>DefaultedFieldImpl</code>
</li>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Renamed <code>Field#path</code> method to <code>Field#name</code>
</li>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Tweaked field presence check logic in <code>SerializableData$Instance</code> to ensure that the default value of fields are only checked if the field doesn't have a defined value
</li>
<li>
[<b><code>calio</code></b>] <em>[For addon developers]</em> Separated setting of defaulted and functioned default fields of <code>SerializableData$Instance</code> (when decoding) to avoid nullability issues with functioned default fields relying on defaulted fields
</li>
<li>
[<b><code>apoli</code></b>] Made the <code>*_inventory</code> action/condition types use slot ranges (e.g: <code>hotbar.*</code>, <code>armor.*</code>, etc.)
</li>
<li>
[<b><code>apoli</code></b>] Made the <code>keep_inventory</code> power type use slot ranges (e.g: <code>enderchest.*</code>, <code>inventory.*</code>, etc.)
</li>
<li>
[<b><code>apoli</code></b>] Renamed the <code>simple</code> power type to <code>dummy</code> (and added its old name as an alias)
</li>
<li>
[<b><code>apoli</code></b>] Renamed the <code>active_self</code> power type to <code>action_on_key_press</code> (and added its old name as an alias)
</li>
<li>
[<b><code>apoli</code></b>] Renamed some meta condition types (and added their old name as an alias)
<ul>
<li><code>and</code> --> <code>sequence</code></li>
<li><code>chance</code> --> <code>random_chance</code></li>
</ul>
</li>
<li>
[<b><code>apoli</code></b>] <em>[For addon developers]</em> Added <code>PowerUtil</code>, a utility class for modifying/querying resource values, and validating if a power type is considered a resource
</li>
<li>
[<b><code>apoli</code></b>] <em>[For addon developers]</em> Made container type an interface. There's also a new registry, <code>ApoliRegistries#CONTAINER_TYPE</code>, where addons can register their container types to be used by the <code>inventory</code> power type. Currently, there are two types of container type:
<ul>
<li>Preset container type, which re-uses a screen handler/screen of a pre-existing container</li>
<li>Dynamic container type, which has definable rows, columns, title alignment, and texture via data; also has its own screen handler/screen <b>(currently incomplete and unsupported)</b></li>
</ul>
</li>
<li>
[<a href="https://github.com/apace100/apoli/pull/254"><b><code>apoli#254</code></b></a>] <em>[For addon developers]</em> Overhauled power/action/condition (types);
<ul>
<li>Power/action/condition types no longer use type factories, but type configurations (that has its ID (via <code>TypeConfiguration#id</code>), and its <code>TypedDataObjectFactory</code> (via <code>TypeConfiguration#dataFactory</code>), which is an extension to Calio's <code>DataObjectFactory</code> that contains a <code>CompoundSerializableDataType</code>)</li>
<li>Power/action/condition types now use a similar structure for consistency</li>
<li>Actions/conditions now have their own classes (e.g: <code>EntityAction</code> instead of <code>Consumer<Entity></code> or <code>ActionTypeFactory.Instance</code>)</li>
</ul>
</li>
</ul>
## Fixes
<ul>
<li>
[<b><code>apoli</code></b>] Fixed the <code>amount</code> field of modifiers being prioritized over the <code>resource</code> field (it should be the other way around)
</li>
<li>
[<b><code>apoli</code></b>] Fixed <code>/power remove</code> command and revoking powers in general
</li>
<li>
[<b><code>apoli</code></b>] Fixed NullPointerException issue (crash) when checking for power types in entities
</li>
<li>
[<b><code>apoli</code></b>] Fixed <code>action_on_item_pickup</code> power type not properly executing its actions
</li>
<li>
[<b><code>apoli</code></b>] Fixed <code>inventory</code> power type giving ghost items when the power is lost
</li>
<li>
[<b><code>apoli</code></b>] Fixed <code>in_entity_set</code> bi-entity condition type causing a crash when either the actor or target do not exist
</li>
<li>
[<b><code>apoli</code></b>] Fixed <code>relative_health</code> entity condition type using an integer type for its <code>compare_to</code> field instead of a floating point value type
</li>
<li>
[<b><code>origins</code></b>] Fixed origin layers (aside from the base origin layer) not being visible when viewing
</li>
</ul>
> Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_9-md for more details about this update!
## Additions
- [**
calio**] Added new data types related to recipes: SerializableDataTypes#RECIPE_SERIALIZERfor recipe serializers.SerializableDataTypes#RECIPE_ENTRYfor recipe entries.
## Changes
- [**
calio**] ChangedSerializableDataTypes#RECIPEto actually reflect recipes instead of recipe entries. - \[[**
apoli#247**](https://github.com/apace100/apoli/pull/247)\] Crafting recipes defined in powers are now visible in the recipe book. - [**
apoli**] Fields that accept an action type can now accept an array as a shorthand for using theandmeta action type. - [**
apoli**] Renamed the following meta condition types for consistency with vanilla: chance-->random_chanceand-->all_ofor-->any_of- [**
apoli**] Theslotparameters of thehas_powerandpower_countitem condition types are now optional. - [**
apoli**] Theapoli:powersitem component will no longer error when a non-existent power is defined. - [**
apoli**] Power names/descriptions can now be translated with the respectivepower.<namespace>.<path>.name/descriptiontranslation keys, even when not using thetranslateJSON text component. - [**
origins**] Theorigins:originitem component will no longer error when a non-existent power is defined. - [**
origins**] Origin names/descriptions can now be translated with the respectiveorigin.<namespace>.<path>.name/descriptiontranslation keys, even when not using thetranslateJSON text component. - [**
origins**] Origin layer names can now be translated with thelayer.<namespace>.<path>.nametranslation key, even when not using thetranslateJSON text component. - [**
origins**] RemovedOriginRegistryin favor of integrating its functionality toOriginManager.
## Fixes
- [**
calio**] Fixedeat_secondsparameter of food components (aka. encoded/decoded via theSerializableDataType#FOOD_COMPONENTdata type) accepting a non-zero positive floating point value instead of non-negative floating point value. - [**
calio**] Fixed ingredients (aka. decoded/encoded via theSerializableDataTypes#INGREDIENTdata type) unable to be sent to the client. - [**
calio**] Fixed enum data types (aka. data types usingSerializableDataType#enumValue) being case-sensitive when checking for matching additional values. - [**
apoli**] Fixed crash caused by encoding global power sets. - [**
apoli**] Fixed some aspects of global power sets (e.g:order) being replaced when merging. - [**
apoli**] Fixed minor issue with printing JSON as text where JSON keys with null values are being printed (affects the/power dumpcommand.) - [**
apoli**] Fixed determining logic in thegame_event_listenerpower type used for determining whether a game event should be accepted. - [**
apoli**] Fixedon_blockentity condition type incorrectly evaluating a block at the wrong position. - [**
apoli**] Fixed crash caused by themodify_projectile_damagepower type. - [**
apoli**] Fixedspawn_particlesentity action type miscalculating its spread. - [**
apoli**] Fixed default translatable text (aka. theApoliDataTypes#DEFAULT_TRANSLATABLE_TEXTdata type) not being translatable by default. - [**
origins**] Attempt to fix crash(?) with Merling's Water Breathing power (e.g: when drying out.) - [**
origins**] Fixed some aspects of origin layers (e.g:name,order,gui_title, etc.) being replaced when merging.
- [**
origins**] Fixed powers of origins not being granted/revoked properly.
## Changes
- [**
apoli**] The name of sub-powers is now validated before the sub-power itself is parsed. - [**
apoli**] Themodify_type_tagpower type can now account for when the defined tag in the power is included in a child tag of the tag being checked.
## Additions
- [**
calio**] AddedSerializableDataTypes#NBT_ELEMENTfor encoding/decoding general NBT elements.
## Fixes
- [**
calio**] Fixed registry key data types ignoring the defined exemptions; subsequently, this also fixed issues (again) such as vanilla dimension registry keys (e.g:minecraft:overworld,minecraft:the_nether,minecraft:the_end) not being recognized on the first time the world has been loaded. - [**
calio**] Fixed wrapping of inputs/outputs inStrictListCodec<T>. - [**
apoli**] Fixed sub-powers being decoded first before its Fabric resource conditions are evaluated (it should be evaluating the resource condition first.) - [**
apoli**] Fixed some action/condition types using the wrong IDs. This affected the following types: modify_status_effect_durationpower type (it usedmodify_status_effect_amplifier.)riding_actionentity action type (it usedpassenger_action.)airentity condition type (it usedfood_level.)- [**
apoli**] Fixedfire_projectileentity action/power types having inconsistent implementations. - [**
apoli**] Fixedif_elsemeta action type causing a crash if the optionalelse_actionfield is not present. - [**
apoli**] Fixedadvancemententity condition type not working properly. - [**
apoli**] Fixedtarget_actionbi-entity action type executing on the 'actor' in a bi-entity context. - [**
apoli**] Fixed how thebiomeentity condition type is evaluated. - [**
apoli**] Fixedattackerdamage condition type not accounting for when the attacker is non-existent like it used to. - [**
apoli**] Fixeddamageentity action type accepting an optional damage type when it should be required. - [**
origins**] Fixed carnivores unable to consume Ominous Bottles. - [**
origins**] Fixed temporary cobweb having an item when it shouldn't (the item was only accessible with commands.)
## Changes
- [**
calio**]SerializableDataTypes#NBThas been renamed toSerializableDataTypes#NBT_COMPOUND. - [**
apoli**] Themodify_type_tagpower type can now account for tags that may include the tag specified in the power. - [**
apoli**] Thedamageentity/bi-entity action types now requires any of theamount,modifierormodifiersfields to be defined. - [**
apoli**] The NBT structure of powers in entities has been changed for clarity and consistency with new NBTs in certain vanilla entities. - The
FactoryNBT has been renamed totype. - The
TypeNBT has been renamed toid. - The
SourcesNBT has been renamed tosources. - The
DataNBT has been renamed todata. - [**
apoli**] The/power revokeall <targets> <source>sub-command has been changed to/power revoke <targets> all <source>.
## Fixes
- [**
apoli**] Fixed issues with the 'on added/removed/gained/lost' power callbacks. - [**
apoli**] Fixedrestrict_armorpower type only working partially, and preventing items from being quick-moved. - [**
apoli**] Fixedmodify_player_spawnpower type disregarding previously set spawn points. - [**
apoli**] Fixed issue with encoding the packet forshow_toastentity action type. - [**
apoli**] Fixedmodify_foodpower type incorrectly calculating and assigning nutrition and saturation values. - [**
apoli**] Fixed ingredients being duplicated when modifying crafting recipes with themodify_craftingpower type. - [**
apoli**] Fixed crash caused by theattributeentity condition type. - [**
origins**] Fixed 'Conduit Power' status effect not being given to entities aside from players with the Merling origin. - [**
origins**] Fixed origin invulnerability selection bypassing damage types included in the#minecraft:bypasses_invulnerabilitydamage type tag.
> There have been **major changes** in this update (and upcoming ones in future updates.) Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96 for more details!
## Changes
- Updated to 1.21.
- \[[**
apoli#225**](https://github.com/apace100/apoli/pull/225)\] Addeddurationandduration_on_usefields to thespawn_effect_cloudentity action type. - \[[**
apoli#227**](https://github.com/apace100/apoli/pull/227)\] Addedsprintingpower type. - \[[**
apoli#228**](https://github.com/apace100/apoli/pull/228)\] Addedposepower type. - \[[**
apoli$234**](https://github.com/apace100/apoli/pull/234)\] Addedprevent_entity_selectionpower type.
## Changes
- \[[**
apoli#223**](https://github.com/apace100/apoli/pull/223)\] Global power sets now support Fabric's resource conditions. - \[[**
origins#751**](https://github.com/apace100/origins-fabric/pull/751)\] Origins and origin layers now support Fabric's resource conditions.
## Fixes
- [**
calio**] Fixed issue with theSerializableDataTypes#RECIPEdata type leniently parsing the recipe's ID and the recipe's serializer ID. - [**
apoli**] Fixed*_when_hitpower types causing a crash when executing/evaluating actions/conditions on the possibly non-existent attacker. - [**
apoli**] Fixed issue with selecting entities by command tags (via the@e[tag = <tagName>]selector argument) added in the same tick. - [**
apoli**] Fixed certain errors not being caught when reading sub-powers. - [**
apoli**] Fixed inconsistent format of automatically-generated translation keys in power names and descriptions. - [**
origins**] Fixed inconsistent format of automatically-generated translation keys in origins and origin layers.
## Full changelogs
- Calio:** [**
1.14.0-alpha.2+mc.1.20.4**](https://github.com/apace100/calio/releases/1.14.0-alpha.2+mc.1.20.4)
- \[[**
apoli#224**](https://github.com/apace100/apoli/pull/224)\] Renamed action/condition types related to entity sets. - \[**
apoli**\] Powers that use themultiplepower type can now be replaced entirely withloading_priority.
## Additions
- \[[**
apoli#192**](https://github.com/apace100/apoli/pull/192)\] Addedshow_toastentity action type. - \[[**
apoli#211**](https://github.com/apace100/apoli/pull/211)\] Addedmodify_fovpower type. - \[[**
apoli#219**](https://github.com/apace100/apoli/pull/219)\] Added new item action/condition types related to item cooldowns: modify_item_cooldownitem action type.item_cooldownitem condition type.relative_item_cooldownitem condition type.- \[[**
apoli#226**](https://github.com/apace100/apoli/pull/226)\] Addedentity_in_radiusentity condition type. - \[[**
apoli#232**](https://github.com/apace100/apoli/pull/232)\] Addedleashbi-entity action type.
## Fixes
- \[**
apoli**\] Fixed a potential issue with re-using serializable data of objects when serializing power/action/condition type factories. - \[**
origins**\] Fixed badges of overridden powers not being replaced.
- [[**
origins#750**](https://github.com/apace100/origins-fabric/pull/750)] Made Phantom's Phasing power re-enable itself upon respawning. - [[**
origins#755**](https://github.com/apace100/origins-fabric/pull/755)] Unhardcoded some powers of certain origins.
## Additions
- [[**
apoli#180**](https://github.com/apace100/apoli/pull/180)] Addedhas_command_tagentity condition type. - [[**
apoli#186**](https://github.com/apace100/apoli/pull/186)] Added compatibility with Appleskin. - [[**
apoli#229**](https://github.com/apace100/apoli/pull/229)] Addedclick_phasesandpriorityfields to theitem_on_itempower type. - [[**
apoli#231**](https://github.com/apace100/apoli/pull/231)] Addedusage_phasesfield to the*_block_usepower types, and made them functionally consistent with the*_entity_usepower types.
## Fixes
- [**
apoli**] Fixed issues with powers that use theaction_on_item_usepower type not being triggered with the trigger"stop"or"during"if itspriorityvalue is less than 0. - [**
apoli**] Fixedtamedentity condition type not working for certain entities. - [**
apoli**] Fixedtamebi-entity action type not working for certain entities.
> The identifier aliasing system in Apoli has been refactored and moved to Calio. Please [read the migration guide](https://gist.github.com/eggohito/3c567caaed0d1a73a9fe7f35911dc821) for steps on migrating, and for more information on the change.
[O] marks the changes in Origins, [A] marks the changes in the underlying Apoli version, and [C] marks the changes in the underlying Calio version.
## Changes
- [O][A][C] Updated to Minecraft 1.20.4
- [A] Refactored and moved the identifier aliasing system to Calio.
## Changes
- [A] Reverted supposed fix for issue with negating modified damage.
- [A] Made the
entity_setpower type validate its entries upon the holder of the power being loaded.
## Fixes
- [C] Fixed argument type data types not properly printing its error in the output log.
- [A] Fixed power HUD renders not rendering properly.
- [A] Fixed automatic removal of entities in powers that use the
entity_setpower type. - [A] Fixed potential infinite recursion when granting powers.
## Changelogs
Make sure to check out Apoli's and Calio's changelog for more information about this release:
- Apoli: [
v2.11.11](https://github.com/apace100/apoli/releases/tag/v2.11.11)** - Calio: [
v1.13.3](https://github.com/apace100/calio/releases/tag/v1.13.3)**
## Fixes
- [O] Fixed automatically-generated badges of powers not being overridden with an empty
badgesfield. - [O] Fixed origins not supporting
*in identifiers. - [A] Fixed
status_bar_texturepower type not rendering regioned sprites (e.g: the "fill" portion of the experience bar) properly. - [A] Fixed
entity_setpower type executing theaction_on_removebi-entity action on discarded entities that weren't in the entity set and regardless of whether the power's condition is fulfilled. - [A] Fixed
/power list ... <subpowers>sub-command not being accounted when specified. - [A] Fixed powers being removed not actually being removed from the entity, resulting in powers with empty sources.
- [A] Fixed power addition callbacks not working reliably in certain cases (e.g: setting the value of a resource upon gaining a power, which was previously dependent on order of when the power is registered and/or granted.)
- [A] Fixed
modify_attributepower type applying vanilla modifiers twice. - [A] Fixed
game_event_listenerpower type triggering advancements that use theminecraft:avoid_vibrationcriterion (this wasn't the case before.) - [A] Fixed crash caused by power types related to preventing interaction with entities.
- [A] Fixed
modify_jumppower type still applying sprint-jump effects (e.g: extra horizontal velocity, exhaustion) even though the jump velocity is negated. - [A] Fixed oversight with syncing the power registry.
- [A] Fixed power HUD renders not being offset properly in cases such as mounting a living entity, or being submerged underwater.
- [A] Fixed crash that could be caused by
action_on_block_breakpower type and block action types that may utilize directions.
### Full changelog: [
v1.12.8...v1.12.9](https://github.com/apace100/origins-fabric/compare/v1.12.8...v1.12.9)### Apoli changelog: [
v2.11.10](https://github.com/apace100/apoli/releases/v2.11.10)## Changes
- [O] Changed Elytrian's Brittle Bones power to check for a new damage type tag:
origins:kinetic. - [A] Slightly changed the implementation of the
invisibilitypower type to be more optimized and compatible with other mods.
## Fixes
- [A] Fixed
overlaypower type rendering over screens. - [A] Fixed
model_colorpower type not respecting invisibility. - [C] Worked around issue with the
SerializableDataTypes.DIMENSIONdata type throwing a false error on world creation if a vanilla dimension is specified (fixes themodify_player_spawnpower type.)
## Changes
- [O]\(#728) Changed Feline's Acrobatics power to check for the
minecraft:is_falldamage type tag. - [O] Changed Enderian's Scared of Gourds power to use item tags;
origins:pumpkin_like/food, for preventing consumption of pumpkin-like food items (e.g: pumpkin pie.)origins:pumpkin_like/equipment, for hiding entities wearing pumpkin-like equipment items (e.g: carved pumpkin.)
## Fixes
- [O]\(#741) Fixed badges of sub-powers being offset (in the -Y axis) at the wrong time.
- [O] Fixed tooltip for Enderian's Scared of Gourds power not using the appropriate translation key.
- [O] Fixed Enderian's Scared of Gourds power hiding the Enderian in its own POV when wearing a pumpkin-like equipment item.
- [A] Fixed issue with sub-powers being disabled when overridden (via loading priority) in a multiple power.
- Fixed badges of sub-powers from multiple powers not being hidden if the multiple power has defined badges.
## Changes
- [A] Tweaked mod compatibility of certain power types.
- [A] Made power names/descriptions translatable by default.
- [A] Improved searching logic of legacy damage sources.
- [A] Added missing translation keys for Apoli's config.
- [C] Made registry key data types validate.
- [C] Made tag data types validate.
- [C] Made tag-like data types validate.
## Fixes
- [O] Fixed origin layers ignoring its specified title.
- [O] Fixed issue with badge tooltips and multiple powers; the badge tooltips that corresponds to its sub-powers are now rendered properly.
- [A] Fixed issue when preventing modified damage that deals 0 or less damage to entities.
- [A] Fixed issues with
game_event_listenerpower type. - [A] Fixed
modify_attributepower type not modifying modded attributes (for real this time.) - [A] Fixed
*_item_pickuppower type not working for non-player entities. - [A] Fixed
exposed_to_sunentity condition type not working properly. - [A] Fixed
light_levelblock condition type not account for the world's ambient darkness iflight_typenot specified. - [A] Fixed
namedamage condition type not properly accounting for legacy damage sources. - [A] Fixed desync issue when dismounting from a player.
- [A] Fixed contents of
inventorypower type not being synced to the client in certain cases. - [A] Fixed item action types not properly resetting its item stack if it's empty.
- [A] Fixed faulty logic in the
damageentity/bi-entity action types. - [A] Fixed unreliable behavior of
action_on_callbackpower type in certain cases. - [A] Fixed
entity_setpower type keeping UUIDs of entities that have been discarded. - [A] Fixed
*_hitpower types not working on certain vanilla entities.
## Changelogs
Make sure to check Calio, and Apoli's changelog as well for more details on the changes.
- Apoli: [
v2.11.6](https://github.com/apace100/apoli/releases/v2.11.6)** - Calio: [
v1.13.1](https://github.com/apace100/calio/releases/v1.13.1)** - Origins: [
v1.12.4...v1.12.5](https://github.com/apace100/origins-fabric/compare/v1.12.4...v1.12.5)**
## Changes
- [A] Simplified implementation of
modify_foodpower type for making items always edible. - [A] Simplified implementation of
modify_grindstonepower type. - [A] Added support for
*(current namespace/path) inREGEX_MAPdata type (used by thereplace_loot_tablepower type.)
## Fixes
- [A] Fixed condition logic in
replace_loot_tablepower type. - [A] Fixed
edible_itempower type not working on items usable on blocks. - [A] Fixed
exposed_to_skyandbrightnessentity condition types not accounting for the world's ambient darkness (in most cases.) - [A] Fixed
modify_enchantment_levelpower type not working on empty item stacks (in some cases.) - [O] Fixed
originentity condition type crashing the game by specifying an originlayerthat doesn't exist.
### Apoli changelog: [
v2.11.5](https://github.com/apace100/apoli/releases/tag/v2.11.5)### Origins full changelog: [
v1.12.3...v1.12.4](https://github.com/apace100/origins-fabric/compare/v1.12.3...v1.12.4)## Fixes
- [A] Fixed oversight where the
action_on_removebi-entity action of theentity_setpower type is only being called when removing a temporary entity from an entity set. - [A] Fixed
entity_setpower type ticking temporary entities inconsistently.
- Apoli changelog:** [
v2.11.4](https://github.com/apace100/apoli/releases/v2.11.4)
## Fixes
- [A] Fixed
replace_loot_tablepower type ignoring block conditions. - [A] Fixed potential issues with the
inventorypower type. - [O] Fixed result stack of recipe badge tooltips not being modified by a power that uses the
modify_craftingpower type. - [O] Fixed concurrent modification crash edge-case issue when removing disabled powers from origins on server (re)load.
- Apoli changelog:** [
v2.11.3](https://github.com/apace100/apoli/releases/tag/v2.11.3)
- Origins changelog (full):** [
v1.12.1..v1.12.2](https://github.com/apace100/origins-fabric/compare/v1.12.1...v1.12.2)
## Fixes
- [O] Fixed badges not appearing in the origin screen caused by badges not being synced to the client.
- [A] Fixed
burnpower type ignoring conditions. - [A] Fixed
fire_projectilepower type not accepting zero value in itsintervalandstart_delayfields. - [A] Fixed
entity_setpower type not executing itsaction_on_removebi-entity action upon removing entities from an entity set.
> Item actions have been changed to operate on a
Pair<World, StackReference> instead of a Pair<World, ItemStack>, so if you're an addon developer and your addon implements an item action type, please read [this migration guide](https://gist.github.com/MerchantPug/1e97f9496064bcdc46f48ef139398aea) for the steps for migrating and for more information.[O] marks changes in Origins, [A] marks changes in the underlying Apoli version.
Thanks to @MerchantPug for contributing!
## Additions
- [A] New power types related to placing blocks:
action_on_block_placeandprevent_block_place - [A] New power type:
entity_set - [A] New entity action type:
revoke_all_powers - [A] New entity action type:
remove_power - [A] New entity action type:
random_teleport - [A] New bi-entity action type:
add_to_set - [A] New bi-entity action type:
remove_from_set - [A] New bi-entity condition type:
in_set - [A] New block action type:
spawn_entity - [A] New
/powersub-command:/power dump - [O] Added compatibility to Carpet's fake players in the
/origincommand
## Changes
- [A] The
hud_renderfield of powers can now accept an object or an array of objects - [A] Made the
prevent_entity_collisionpower type work for entities with solid collision - [A] Made the
particlepower type andspawn_particlesentity action type consistent with vanilla - [A] Changed the default resource bar sprite sheet for backwards compatibility
## Fixes
- [A] Fixed an exception being thrown on the client when syncing a power in certain edge-cases
- [A] Fixed application/removal of attribute modifiers of powers that use the
conditioned_attributepower type - [A] Fixed spawnpoint of players not persisting upon being set
- [A] Fixed
movingentity condition type not working reliably - [A] Fixed worn armor not being damaged upon taking damage
- [O] Fixed untranslated "can't sleep" message for the Avian origin
- [O] Fixed issue when syncing origins from S2C
- [O] Fixed hidden origin layers not being hidden
## More information
Make sure to read Apoli and Calio's changelogs, as it contains more information compared to this release note, which is only a condensed version.
- Origins full changelog**: https://github.com/apace100/origins-fabric/compare/v1.11.3...v1.12.0
- Apoli changelog**: [
v2.11.0](https://github.com/apace100/apoli/releases/tag/v2.11.0) - Calio changelog**: [
v1.13.0](https://github.com/apace100/calio/releases/tag/v1.13.0)
