All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Origins

Origins

by Apace • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

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):

OriginDescriptions

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

Lilypad promotion banner

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.1
Fabric
2d ago 1
1.21.1
Fabric
2d ago 1
1.21.1
Fabric
2d ago 1
1.20.1
Forge
2d ago 1
1.20.1
Fabric
2d ago 1
1.20.1
Forge
2d ago 1
1.20.1
Fabric
2d ago 1
1.21.1
Fabric
2d ago 1
1.21.1
Fabric
2d ago 1
1.21.1
Fabric
2d ago 1
1.21.1
Fabric
2d ago 1
1.21.x
Fabric
2d ago 1
1.21.x
Fabric
2d ago 1
1.21.x
Fabric
2d ago 1
1.21
Fabric
2d ago 1
1.20.4
Fabric
2d ago 1
1.20.4
Fabric
2d ago 1
1.20.4
Fabric
2d ago 1
1.20.4
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.2
Fabric
2d ago 1
1.20.x
Fabric
2d ago 1
1.19.4
Fabric Quilt
2d ago 1
1.19.3
Fabric Quilt
2d ago 1
1.19.3
Fabric Quilt
2d ago 1
1.19.x
Fabric Quilt
2d ago 1
1.19.x
Fabric
2d ago 1
1.19
Fabric
2d ago 1
1.19
Fabric
2d ago 1
1.19
Fabric
2d ago 1
1.19
Fabric
2d ago 1
1.18.2
Fabric
2d ago 1
1.18.2
Fabric
2d ago 1
1.18.1
Fabric
2d ago 1
1.18.x
Fabric
2d ago 1
1.18
Fabric
2d ago 1
1.18
Fabric
2d ago 1
1.17.x
Fabric
2d ago 1
1.17.x
Fabric
2d ago 1
1.17.x
Fabric
2d ago 1
1.17.x
Fabric
2d ago 1
1.17.x
Fabric
2d ago 1
1.17.x
Fabric
2d ago 1
1.17
Fabric
2d ago 1
1.17
Fabric
2d ago 1
1.17
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
## Changes
  • \[[**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**] The attribute_modify_transfer power type now uses the ModifyValueCallback event for transferring attribute modifiers.
  • [**apoli**] Re-added missing still fluid 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**] Fixed conditioned_attribute power type disregarding its condition when applying its attribute modifier(s).
  • [**apoli**] Fixed incorrect landing condition logic in random_teleport entity action type.
  • [**apoli**] Fixed typo in the entity condition type registry data type. (e.g: _"... not undefined"_ → _"... undefined"_)
  • [**apoli**] Fixed replace_loot_table power type not replacing the apoli:replaced_loot_table loot table properly.
  • [**apoli**] Fixed incorrect calculation and usage of the general/entity/block distance in the raycast entity action type.
  • [**apoli**] Fixed action_on_death power 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**] Fixed remove_power entity 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**] Fixed origins:like_water power type setting the entity's 'on ground' flag on/off repeatedly.

## Changelogs
## Changes
  • [**apoli**] The replacement IDs in the replace_loot_table power 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**] Fixed command_along_ray in raycast entity action type not being executed even when command_along_ray_only_on_hit is false.
  • [**apoli**] Fixed offset block condition type not checking the block at the offset position.
  • [**apoli**] Fixed incompatibility with Trickster.
  • [**apoli**] Fixed apoli:replaced_loot_table loot table sometimes not referencing the replaced loot table.
  • [**apoli**] Fixed attribute power 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
## Changes
  • [**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 the starting_equipment power 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 --> Action
  • AbstractCondition --> Condition
  • Power#getPowerType --> Power#getType
  • Action#getActionType --> Action#getType
  • Condition#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 the attribute power type not persisting on respawn.
  • [**apoli**] Fixed attribute modifiers added via the conditioned_attribute power type being added unconditionally upon gaining the power.
  • [**apoli**] Fixed .mcfunction files not being loaded due to non-existent powers caused by loading order issue (since .mcfunction files are loaded before powers.)
  • [**apoli**] Fixed inventory-related entity action/condition types improperly checking the size boundary of the inventories and specified slots.
  • [**apoli**] Fixed passenger_action entity action type executing its own entity action on the ridden entity instead of the riding entity.
  • [**apoli**] Fixed attacker damage condition type not checking if the attacker actually exists.
  • [**apoli**] Fixed powers unnecessarily being synced in singleplayer.
  • [**apoli**] Fixed crash with the raycast entity 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 the raycast entity 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 .mcfunction files not being loaded due to non-existent origins caused by loading order issue (since .mcfunction files are loaded before origins.)

## Changelogs
## Additions
  • [**calio**] Added Connector dependecy system
  • [**origins**] Added Connector Extras as an explicit dependency

## Fixes
  • [**apoli (connector)**] Fixed action_on_block_break, modify_harvest powers and the gamemode entity condition
  • [**apoli**] Fixed modify_air_speed
  • [**apoli**] made Inventory related functionality more efficient
  • [**origins**] Fixed Avian's like_air power
  • [**origins (connector)**] Fixed Shulk's strong_arms power
  • [**origins**] Fixed origin selection screen invulnerability (woops)


## Changelogs
Make sure to check out the full changelogs here so you don't miss a thing!
## Additions
  • [**calio**] Added Connector dependecy system
  • [**origins**] Added Connector Extras as an explicit dependency

## Fixes
  • [**apoli (connector)**] Fixed action_on_block_break, modify_harvest powers and the gamemode entity condition
  • [**apoli**] Fixed modify_air_speed
  • [**apoli**] made Inventory related functionality more efficient
  • [**origins**] Fixed Avian's like_air power
  • [**origins (connector)**] Fixed Shulk's strong_arms power
  • [**origins**] Fixed origin selection screen invulnerability (woops)


## Changelogs
Make sure to check out the full changelogs here so you don't miss a thing!
## Additions
  • [**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 when origins:damage is not given a damage_type
  • [**apoli**] Fixed the "allow_holding" field in the origins:climbing power 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!
## Additions
  • [**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 when origins:damage is not given a damage_type
  • [**apoli**] Fixed the "allow_holding" field in the origins:climbing power 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!
### Action/condition types have been slightly refactored in this update. Make sure to check https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#alpha-12 for more details!

## Additions
  • [**apoli**] Added new generic container types (with the _AxB suffix, where A is the amount of columns and B is the amount of rows);
  • generic_9x1
  • generic_9x2
  • generic_9x4
  • generic_9x5

## Changes
  • [**apoli**] Renamed the key field in keybinding references to id (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_9x6
  • chest --> generic_9x3
  • dropper/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**] The on_block entity 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 the accept(ActionContext)/test(ConditionContext) methods respectively, and access the action/condition context directly instead.
  • Renamed TypeActionContext and TypeConditionContext to ActionContext and ConditionContext respectively.
  • 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 BiEntityRequirement enum used in bi-entity action/condition types to determine whether BOTH, EITHER, or DEFAULT (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$Key class to KeyBindingReference, and moved it into the io.github.apace100.apoli.util.keybinding package.
  • 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 the raycast entity action/condition types.
  • [**apoli**] Fixed how the command in command_along_ray is executed in the raycast entity action type.
  • [**apoli**] Fixed default value of the comparison field of the passenger entity condition type.
  • [**apoli**] Fixed actor/target context in passenger_action entity action type.
  • [**apoli**] Fixed field order, and encoding issue with particle-related power/action types.
  • [**apoli**] Fixed the stacking_status_effect power type not decreasing its stacks properly.
  • [**apoli**] Fixed the action_on_block_place power type unable to be encoded properly (e.g: with /power dump or when syncing the power to the client.)
  • [**apoli**] Fixed the spawn_entity entity action type not properly recognizing the action in its bientity_action field as a bi-entity action.
  • [**apoli**] Fixed issues with the starting_equipment power type;
  • Fixed the power type unable to be encoded properly (e.g: with /power dump or 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 the game_event_listener power 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**] Fixed origins:origin item component not consuming the item when setting origin(s).

## Changelogs

## Changes
  • [**apoli**] The modifier/modifiers field(s) are now required in the modify_item_cooldown power type
  • [**apoli**] The tooltip texts in the tooltip power type are no longer wrapped in string when serialized to NBT
  • [**origins**] Reformatted code style of the /origin command to match the code style in Apoli
  • [**origins**] Adjusted the text area of the origin window

## Fixes
  • [**apoli**] Fixed class casting issue in offset block condition type
  • [**apoli**] Fixed ID of the action_on_key_press power type
  • [**apoli**] Fixed initializing issues with power types
  • [**apoli**] Fixed abnormal behavior with add_velocity entity/bi-entity action types
  • [**apoli**] Fixed default offset values of spawn_particles entity action type
  • [**apoli**] Fixed area_of_effect entity/block action types accepting a positive integer/floating point radius value instead of a non-negative integer/floating point value respectively
  • [**apoli**] Fixed action_on_block_break power 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 the modify_food power type
  • [**apoli**] Fixed choice meta action type executing all the defined actions instead of just one
  • [**apoli**] Fixed give entity action type only working once (per game/server restart) due to the provided item stack not being copied
  • [**apoli**] Fixed *_inventory entity action/condition types being provided slots that aren't within the bounds of an entity's inventory (or inventory of a power that uses the inventory power type)
  • [**apoli**] Fixed modify_harvest power type evaluating its block condition too late (evaluating the block at the mined position **after** it's been mined)
  • [**apoli**] Fixed attacker damage condition type requiring an entity condition
  • [**origins**] Fixed not being able to see custom origin layers in the origin screen
  • [**origins**] Fixed origins:origin item component not setting the player's origin

## Changelogs

> **Power/action/condition types and actions/conditions have been overhauled in this update. There is currently no documentation, but you can check out PR https://github.com/apace100/apoli/pull/254, or take a look at the codebase of Apoli 2.12.0-alpha.13 as a reference**

## 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&lt;Entity&gt;</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>

> [!WARNING]
> 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_SERIALIZER for recipe serializers.
  • SerializableDataTypes#RECIPE_ENTRY for recipe entries.

## Changes
  • [**calio**] Changed SerializableDataTypes#RECIPE to 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 the and meta action type.
  • [**apoli**] Renamed the following meta condition types for consistency with vanilla:
  • chance --> random_chance
  • and --> all_of
  • or --> any_of
  • [**apoli**] The slot parameters of the has_power and power_count item condition types are now optional.
  • [**apoli**] The apoli:powers item component will no longer error when a non-existent power is defined.
  • [**apoli**] Power names/descriptions can now be translated with the respective power.<namespace>.<path>.name/description translation keys, even when not using the translate JSON text component.
  • [**origins**] The origins:origin item component will no longer error when a non-existent power is defined.
  • [**origins**] Origin names/descriptions can now be translated with the respective origin.<namespace>.<path>.name/description translation keys, even when not using the translate JSON text component.
  • [**origins**] Origin layer names can now be translated with the layer.<namespace>.<path>.name translation key, even when not using the translate JSON text component.
  • [**origins**] Removed OriginRegistry in favor of integrating its functionality to OriginManager.

## Fixes
  • [**calio**] Fixed eat_seconds parameter of food components (aka. encoded/decoded via the SerializableDataType#FOOD_COMPONENT data type) accepting a non-zero positive floating point value instead of non-negative floating point value.
  • [**calio**] Fixed ingredients (aka. decoded/encoded via the SerializableDataTypes#INGREDIENT data type) unable to be sent to the client.
  • [**calio**] Fixed enum data types (aka. data types using SerializableDataType#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 dump command.)
  • [**apoli**] Fixed determining logic in the game_event_listener power type used for determining whether a game event should be accepted.
  • [**apoli**] Fixed on_block entity condition type incorrectly evaluating a block at the wrong position.
  • [**apoli**] Fixed crash caused by the modify_projectile_damage power type.
  • [**apoli**] Fixed spawn_particles entity action type miscalculating its spread.
  • [**apoli**] Fixed default translatable text (aka. the ApoliDataTypes#DEFAULT_TRANSLATABLE_TEXT data 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.

## Fixes
  • [**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**] The modify_type_tag power type can now account for when the defined tag in the power is included in a child tag of the tag being checked.

# Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_7-md for more details about this update!

## Additions
  • [**calio**] Added SerializableDataTypes#NBT_ELEMENT for 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 in StrictListCodec<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_duration power type (it used modify_status_effect_amplifier.)
  • riding_action entity action type (it used passenger_action.)
  • air entity condition type (it used food_level.)
  • [**apoli**] Fixed fire_projectile entity action/power types having inconsistent implementations.
  • [**apoli**] Fixed if_else meta action type causing a crash if the optional else_action field is not present.
  • [**apoli**] Fixed advancement entity condition type not working properly.
  • [**apoli**] Fixed target_action bi-entity action type executing on the 'actor' in a bi-entity context.
  • [**apoli**] Fixed how the biome entity condition type is evaluated.
  • [**apoli**] Fixed attacker damage condition type not accounting for when the attacker is non-existent like it used to.
  • [**apoli**] Fixed damage entity 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#NBT has been renamed to SerializableDataTypes#NBT_COMPOUND.
  • [**apoli**] The modify_type_tag power type can now account for tags that may include the tag specified in the power.
  • [**apoli**] The damage entity/bi-entity action types now requires any of the amount, modifier or modifiers fields 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 Factory NBT has been renamed to type.
  • The Type NBT has been renamed to id.
  • The Sources NBT has been renamed to sources.
  • The Data NBT has been renamed to data.
  • [**apoli**] The /power revokeall <targets> <source> sub-command has been changed to /power revoke <targets> all <source>.
## There have been **major** changes in this update. Make sure to check out <https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_6-md> for the details about this update!

## Fixes
  • [**apoli**] Fixed issues with the 'on added/removed/gained/lost' power callbacks.
  • [**apoli**] Fixed restrict_armor power type only working partially, and preventing items from being quick-moved.
  • [**apoli**] Fixed modify_player_spawn power type disregarding previously set spawn points.
  • [**apoli**] Fixed issue with encoding the packet for show_toast entity action type.
  • [**apoli**] Fixed modify_food power type incorrectly calculating and assigning nutrition and saturation values.
  • [**apoli**] Fixed ingredients being duplicated when modifying crafting recipes with the modify_crafting power type.
  • [**apoli**] Fixed crash caused by the attribute entity 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_invulnerability damage type tag.
> [!WARNING]
> 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.
## Additions

## Changes

## Fixes
  • [**calio**] Fixed issue with the SerializableDataTypes#RECIPE data type leniently parsing the recipe's ID and the recipe's serializer ID.
  • [**apoli**] Fixed *_when_hit power 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

## Changes

## Additions

## 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.

## Changes

## Additions

## Fixes
  • [**apoli**] Fixed issues with powers that use the action_on_item_use power type not being triggered with the trigger "stop" or "during" if its priority value is less than 0.
  • [**apoli**] Fixed tamed entity condition type not working for certain entities.
  • [**apoli**] Fixed tame bi-entity action type not working for certain entities.

> Origins will now be published to Ladysnake's maven. Please [read this guide](https://gist.github.com/eggohito/b5c5ae541b75feec6cb5ad15f0383be8) if you want to use the alpha/beta, and future (and old) release builds as a dependency.

> 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.
[A] marks the changes in the underlying Apoli version, while [C] marks the changes in the underlying Calio version.

## Changes
  • [A] Reverted supposed fix for issue with negating modified damage.
  • [A] Made the entity_set power 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_set power 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:


[O] marks the changes in Origins, while [A] marks the changes in its underlying Apoli version.

## Fixes
  • [O] Fixed automatically-generated badges of powers not being overridden with an empty badges field.
  • [O] Fixed origins not supporting * in identifiers.
  • [A] Fixed status_bar_texture power type not rendering regioned sprites (e.g: the "fill" portion of the experience bar) properly.
  • [A] Fixed entity_set power type executing the action_on_remove bi-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_attribute power type applying vanilla modifiers twice.
  • [A] Fixed game_event_listener power type triggering advancements that use the minecraft:avoid_vibration criterion (this wasn't the case before.)
  • [A] Fixed crash caused by power types related to preventing interaction with entities.
  • [A] Fixed modify_jump power 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_break power 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)

[O] marks the changes in Origins, while [A] and [C] marks the changes in its underlying Apoli and Calio version respectively.

## 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 invisibility power type to be more optimized and compatible with other mods.

## Fixes
  • [A] Fixed overlay power type rendering over screens.
  • [A] Fixed model_color power type not respecting invisibility.
  • [C] Worked around issue with the SerializableDataTypes.DIMENSION data type throwing a false error on world creation if a vanilla dimension is specified (fixes the modify_player_spawn power type.)

[O] marks the changes in Origins, while [A] marks the changes in its underlying Apoli version.

## Changes
  • [O]\(#728) Changed Feline's Acrobatics power to check for the minecraft:is_fall damage 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.
## Fixes
  • Fixed badges of sub-powers from multiple powers not being hidden if the multiple power has defined badges.
[O] marks the changes in Origins, while [A] and [C] marks the changes in its underlying Apoli and Calio versions respectively.

## 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_listener power type.
  • [A] Fixed modify_attribute power type not modifying modded attributes (for real this time.)
  • [A] Fixed *_item_pickup power type not working for non-player entities.
  • [A] Fixed exposed_to_sun entity condition type not working properly.
  • [A] Fixed light_level block condition type not account for the world's ambient darkness if light_type not specified.
  • [A] Fixed name damage condition type not properly accounting for legacy damage sources.
  • [A] Fixed desync issue when dismounting from a player.
  • [A] Fixed contents of inventory power 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 damage entity/bi-entity action types.
  • [A] Fixed unreliable behavior of action_on_callback power type in certain cases.
  • [A] Fixed entity_set power type keeping UUIDs of entities that have been discarded.
  • [A] Fixed *_hit power 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.

[O] marks the changes in Origins while [A] marks the changes in the underlying Apoli version.

## Changes
  • [A] Simplified implementation of modify_food power type for making items always edible.
  • [A] Simplified implementation of modify_grindstone power type.
  • [A] Added support for * (current namespace/path) in REGEX_MAP data type (used by the replace_loot_table power type.)

## Fixes
  • [A] Fixed condition logic in replace_loot_table power type.
  • [A] Fixed edible_item power type not working on items usable on blocks.
  • [A] Fixed exposed_to_sky and brightness entity condition types not accounting for the world's ambient darkness (in most cases.)
  • [A] Fixed modify_enchantment_level power type not working on empty item stacks (in some cases.)
  • [O] Fixed origin entity condition type crashing the game by specifying an origin layer that 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)
[A] marks the changes in the underlying Apoli version.

## Fixes
  • [A] Fixed oversight where the action_on_remove bi-entity action of the entity_set power type is only being called when removing a temporary entity from an entity set.
  • [A] Fixed entity_set power type ticking temporary entities inconsistently.

[O] marks the changes in Origins while [A] marks the changes in the underlying Apoli version.

## Fixes
  • [A] Fixed replace_loot_table power type ignoring block conditions.
  • [A] Fixed potential issues with the inventory power type.
  • [O] Fixed result stack of recipe badge tooltips not being modified by a power that uses the modify_crafting power type.
  • [O] Fixed concurrent modification crash edge-case issue when removing disabled powers from origins on server (re)load.

<br>
[O] marks the changes in Origins while [A] marks the changes in the underlying Apoli version.

## Fixes
  • [O] Fixed badges not appearing in the origin screen caused by badges not being synced to the client.
  • [A] Fixed burn power type ignoring conditions.
  • [A] Fixed fire_projectile power type not accepting zero value in its interval and start_delay fields.
  • [A] Fixed entity_set power type not executing its action_on_remove bi-entity action upon removing entities from an entity set.
> Warning<br><br>
> 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_place and prevent_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 /power sub-command: /power dump
  • [O] Added compatibility to Carpet's fake players in the /origin command

## Changes
  • [A] The hud_render field of powers can now accept an object or an array of objects
  • [A] Made the prevent_entity_collision power type work for entities with solid collision
  • [A] Made the particle power type and spawn_particles entity 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_attribute power type
  • [A] Fixed spawnpoint of players not persisting upon being set
  • [A] Fixed moving entity 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 Icon
Download Origins
Select game version
Select platform