Players choose an Origin at the beginning of the game to gain benefits and drawbacks


Created 2 years ago
Updated a month ago

External resources

Project members



Technical information

Client side
Server side
Project ID
Filter loader...
Filter versions...

Fixes the bug of powers not loading when using Quilt instead of Fabric.

Should work on 1.19.1 and 1.19.2.

  • [O] /origin command now has a "random" sub-command to randomize a player's origin (thanks eggohito)
  • [O] /origin command now only shows origins available on the selected layer (thanks eggohito)
  • [A] Fix crash on 1.19.1/1.19.2 with command execution (thanks seeruk)
  • [A] Fix incompatibility with Fluidlogged by (thanks Leximon)

[O] denotes changes to Origins, while [A] denotes changes to Apoli, which has been updated to 2.5.1.

  • [O] Fixed shaped recipe badges not showing correctly
  • [O] Fixed incorrect translation keys for the empty origin (thanks Golder06)
  • [O] Updated Spanish translation (thanks Golder06)
  • [O] Updated Russian translation (thanks CoringPlay)
  • [O] Updated Brazilian Portuguese translation (thanks rwmb)
  • [A] Fixed modify_swim_speed and modify_lava_speed not supporting conditions
  • [A] Fixed meta conditions crashing for biome condition types
  • [A] Fixed tooltip from prevent_item_use having no translation for goat horn tooting
  • [A] Fixed item_action in replace_inventory action not applying to the replaced stack
  • [A] Fixed damage modifying powers not applying to players when original source did not deal damage
  • [A] Fixed modify_projectile_damage not applying to all types of projectiles

Fixed dedicated servers crashing on startup.

New Features

  • Added automatic badges for recipe powers (thanks @LimonBlaze)
  • Added config options for disabling origins or powers


  • Updated to 1.19
  • Updated Apoli to version 2.5.0, bringing fixes and new features
  • Currently uses a locally built branch of my Reach Entity Attributes fork. Will update to an official version once that releases
  • Reworked the badge system (thanks @LimonBlaze)
  • Changed config to use JSON instead of toml
  • Fixes INGREDIENT data type not being sent in a way that's friendly to later tag updates, which caused a bug with any powers relying on custom tags not working correctly when first joining a world. (thanks slapjd)

[A] indicates changes in Apoli (updated to 2.3.2), [O] indicates changes in Origins.


  • [O] Layer files now have an additional field called gui_title with two sub-fields view_origin and choose_origin, which override the default prompt at the top of the choose/view origin GUI for that layer. (thanks eggohito)
  • [O] The origin loot condition now also optionally supports a layer field. (thanks eggohito)
  • [A] Added Spanish translations. (thanks Golder06)


  • [A+O] Updated to 1.18.2. (thanks slapjd for the effort, even though I didn't end up using all of your code)
  • [O] Added integration for Enchantment Descriptions. (thanks Darkhax)
  • [O] Updated Spanish translations. (thanks Golder06)
  • [O] Updated the swim_speed power to be an attribute power instead of using the modify_swim_speed power type.


  • [A] Fixed modify_block_state checking incorrect fields for integer properties, causing it to not function.
  • [A] Fixed distance_from_spawn and distance_from_coordinates conditions crashing when no offset or coordinates are specified.
  • [O] Updated the power phantomize_overlay to be hidden.
  • Fixed compatibility with Spectrum (thanks DaFuqs for your work on making this happen)
  • Now relies on (included in the jar) for the following power types: modify_swim_speed, modify_lava_speed and lava_vision. Please use the respective attributes with the attribute power type instead of these powers, since the power types are now considered deprecated and might be removed in a future update. The attribute IDs are: additionalentityattributes:water_speed, additionalentityattributes:lava_speed and additionalentityattributes:lava_visibility, respectively.
  • Updated Turkish translation (thanks Hexasan)
  • Updated Chinese translation (thanks LimonBlaze and Neubulae)
  • Added support for Enchantment Descriptions in English (thanks Darkhax)
  • Specified that this version does not work with 1.18.2, so users get a more legible error message when they try to use it

[A] indicates changes in Apoli (updated to 2.2.2), [O] indicates changes in Origins.


  • [A] Added a tooltip to items which can't be used due to a power (such as "Vegetarian", "Carnivore" or "Unwieldy"). Configurable in the config file or via the config screen accessible with Mod Menu installed.


  • [O] Updated English localization to be a bit more inclusive, and include Phantom's new hunger condition in the phantomize power description.
  • [O] Updated all translation files to include the untranslated translation keys, which should make it easier for translators to update their translations.


  • [A] Fixed modify_status_effect_duration and modify_status_effect_amplifier power types crashing the game.

[A] indicates changes in Apoli (updated to 2.2.0), [O] indicates changes in Origins.


  • [O] Forgot in 1.2.0 patch notes: Phantom's phantomized mode now ends when food reaches 3 full hunger chunks. You need to be able to sprint to phantomize.
  • [O] The phantomized overlay now changes color as the player's hunger approaches 3 full hunger chunks, acting as a visual indicator that the phantomization is about to end.
  • [O] Sandstone, smooth sandstone, as well as the red variants, now count as "natural stone" for Feline's "Weak Arms" and Shulk's "Strong Arms".
  • [A] Made the block_state condition return true if the property exists and no specific value is desired.


  • [A] Added entity_action field to action_on_block_use power type
  • [A] Added damage bientity action
  • [A] Generalized actions, making and, chance, choice, if_else, if_else_list, delay and nothing available for all action types
  • [A] Added fail_action field to chance meta actions


  • [A] Fixed action_on_land power type also triggering its actions during air time
  • [A] Fixed swing_hand entity action only working when called from clients
  • [A] Fixed modify_status_effect_duration and modify_status_effect_amplifier power types not being registered
  • [A] Fixed a bug where only one action_on_hit power would fire its actions when multiple are present
  • [A] Fixed a bug where only one tooltip power would work at a time
  • [A] Fixed raycast_action crashing when command_hit_offset is specified
  • [A] Fixed crafting_table action not producing output
  • [A] Fixed ability powers (e.g. creative_flight) crashing when granted via grant_power action
  • [A] Fixed the climbing condition not account for climbing powers

Origins 1.2.0

  • Updated to 1.18.
  • Made badge tooltips wrap automatically if they would not fit on the screen.
  • Does not use FallFlyingLib anymore (replaced by functionality in Fabric API).

Apoli (updated to 2.1.0)


  • Added power types: modify_slipperiness, action_on_block_use, prevent_entity_collision, prevent_feature_render, modify_status_effect_amplifier and modify_status_effect_duration
  • Added entity actions: swing_hand, raycast, spawn_particles, explode, area_of_effect, crafting_table and ender_chest
  • Added block actions: explode, modify_block_state and bonemeal
  • Added entity conditions: raycast, power_type, ability, distance_from_coordinates and distance_from_spawn
  • Added block conditions: slipperiness, hardness, blast_resistance, distance_from_coordinates and distance_from_spawn
  • Added item condition: smeltable


  • Added a none render type to the phasing power type
  • Added bientity_condition to prevent_entity_render
  • Added bientity_condition and bientity_action field to modify_damage_taken and modify_damage_dealt power types. When provided in a modify_damage_taken power, the power will be ignored if no attacker is present.
  • Added prevent_effects, replace_stack and item_action fields to modify_food power type
  • Added result_from_on_stack field to item_on_item power type
  • Made the ticking of action_over_time more consistent
  • Changed the particle parameter in the particle power type to optionally take a full particle effect object with type and params
  • Added client and server boolean fields to add_velocity to control where the velocity is applied
  • Made set_block and add_block take a full "block with state", e.g. minecraft:redstone_lamp[lit=true] is now a valid entry for the block field
  • Added an optional source field to the power entity condition

Bug Fixes

  • Fixed local and velocity space X/Y axes for the add_velocity entity action
  • Fixed furnace_smelt loot function to be used in item modifiers by the modify item action

Thanks @Alluysl, @eggohito, @MerchantPug and @Jarva for contributing to this update.


  • Fixed an occasional but game-breaking bug in which origins would load without powers
  • Made key badges show the key ID instead of just "unbound" when the key is unbound, so players know what to look for

Apoli (updated to 2.0.5)

  • Fixed entity_glow not working on non-living entities


  • Fixed key badges showing "none" instead of the primary active key when no key is explicitly specified in the power

Apoli (updated to 2.0.4)

  • Made status effects synchronize to clients, so the status_effect condition works on client-side powers (like entity_glow or invisibility) (Thanks Pug)
  • Removed debug outputs from the modify item action
  • Fixed an error that occured when syncing some powers
  • Fixed on_block not properly checking for the actual block the player's standing on if that isn't a full block (e.g. soul sand)
  • Fixed modify_break_speed crashing when no block_condition is provided
  • Fixed powers which prevent entity actions (prevent_entity_use and prevent_being_used) not working correctly


  • Made use of more readable way to specify classes with attribute_modify_transfer in like_air power
  • Fixed view origin screen showing "Choose your Origin" instead of the correct text
  • Improved caching of keybinds for badges, they should now update properly when powers are changed
  • Optimized assets a bit, reducing file size of the mod (thanks RDKRACZ)
  • Fixed a misspelling in the Polish translation (thanks RDKRACZ)

Apoli (updated to 2.0.3)

  • Prevented testdata from showing up in builds
  • status_bar_texture now also affects the experience bar
  • Fixed a crash which occured with in_block_anywhere
  • modify_swim_speed no longer affects upward movement in lava
  • modify_swim_speed now properly affects vertical speed while swimming
  • Added more power-related callbacks
  • Made power synchronization more efficient, causing less stress on servers
  • Fixed modify_damage_dealt only working with player entities
  • Fixed snowballs not causing a hit
  • Fixed multiple ability powers for the same ability (e.g. multiple creative_flight powers) conflicting with each other
  • Fixed modify_food not syncing properly when food or saturation were modified to be 0.
  • Un-hardcoded the phasing overlay
  • Fixed a bug where joining players would not correctly receive the powers of other players
  • Fixed mount not synchronizing properly when players are mounted
  • Fixed modify_crafting not calling the entity_action and block_action
  • Fixed prevent_entity_use only triggering its bientity_action on the server
  • Fixed crash when using the grant_power entity action
  • Fixed revoke_power entity action not removing sub-powers
  • active_self now has a default cooldown of 1 and a hidden hud_render by default
  • command condition now also respects the execute_command config
  • can_see now only considers visual obstructions, not physical colliders
  • attacker condition now works properly on the client-side

Since the patch notes are quite long if I were to include Apoli and Calio changes, this will just list the changes to Origins as well as a few select ones relevant to many users:

Gameplay Changes

  • Avians now have "Like Air" which makes modifiers to their movement speed also apply to their airborne movement
  • Felines now have "Velvet Paws" which make their steps not cause vibrations (relevant for sculk sensors and in the future the Warden)

Other Changes

  • Added loading_priority field to layer files. A layer with replace set to true will replace all layers at the same and at lower loading_priority than itself.
  • Added badges: small icons next to powers which can display additional information in a tooltip. By default, powers will get an "active" or "toggle" badge if they are active or toggleable powers. These can be overridden, and custom badges can be added too via a badges field in the power file.
  • Added /origin gui command to force a player into the origin selection GUI.
  • Added support for NBT data on the Orb of Origin item, which makes it only work for specific layers, or even set layers to a specific origin when used.
  • Added a scroll bar to the origin display screens
  • Added a hidden boolean field to layer files, which makes them not be visible in the view origin screen
  • The mod menu config screen now shows Apoli's power config
  • Right and left arrow buttons are now hidden in the choose origin screen if there is only one option
  • Right and left arrow buttons are now hidden in the view origin screen if there is only one layer
  • Fixed a bug where removing an origin from the world (by deleting/changing a datapack) would not remove the powers of that origin from players who had it before
  • Fixed Shulker's inventory power not having the proper name
  • The phasing overlay is no longer hardcoded, now uses a separate overlay power

Some changes from Apoli / Calio

  • Entity conditions are more general
  • Interactions can now be defined much better thanks to bientity actions and conditions
  • Many bug fixes (including Invalid Player Data, hopefully)
  • execute_command actions now use a permission level specified in a config that's on the server (by default level 2) - no more safety issues!

Read the changelogs of Apoli and Calio here:

Apoli and Calio changes are listed if they are relevant to Origins. They will be marked with an [A] or a [C] at the beginning, while changes to Origins will be marked with [O]. These details should be mostly irrelevant to the regular user, so feel free to ignore them. :)

Misc Changes

  • [A] Removed the inability to equip an elytra when an elytra_flight power is active
  • [A] Changed order of execution of actions in action_over_time power. rising_action now executes before the first entity_action tick
  • [O] Added a clause that shows that Origins is incompatible with version of Identity older than 1.14.2-beta
  • [O] Updated the "breaks OptiFabric" clause to only be valid up to the current version, in case the OptiFabric devs update their mod to fix the incompatibility issues

Bug Fixes

  • [O] Fixed a bug where setting an origin would execute "on chosen" callbacks for other origins
  • [O] Fixed player head icons in view origins screen being set to the player's head even though they have a SkullName specified.
  • [A] Fixed damage over time protection enchantment not increasing the damage onset as much as intended
  • [A] Fixed shader powers crashing when an undefined shader was specified and the power is revoked
  • [A] Fixed some ghost callbacks being executed on clients, making it appear as if they would gain additional starting equipment
  • [C] Fixed some serializations not working on Turkish systems
  • [C] Fixed order of data parameters not being guaranteed, making functioned defaults unusable (mostly important for add-on devs)


  • [O] Added Japanese translation (thanks Lavender!)
  • [A] Fixed resource bars not being rendered correctly
  • [O] Added all dependencies to the dependencies list, so players will know when they're missing (which shouldn't happen, but you never know)

Misc Changes

  • [O] Updated Huang's resource bars. The sprites 1 and 2 have been merged into 1 to save space. They also received a visual overhaul.
  • [A] Added an additional optional argument to the power list command, which specifies whether or not to list "sub-powers" which are granted through a multiple power type (default: false).
  • [A] Changed the protection onset delay calculation in the damage_over_time power type. Will become more customizable with the next feature update. (Yes, this means there won't be a huge jump to 20 minutes of onset delay for Water Protection anymore.)
  • [A] Removed the version check in Apoli. This means the message will now display "You need to install Origins" and not "You need to install Apoli".
  • [C] Error messages for wrong identifiers (e.g. for registry elements) were improved.

Bug Fixes

  • [O] Conduits now affect Merlings on land again.
  • [O] Phasing powers now grant a hardcoded overlay again (will be data-driven in 1.1.0).
  • [O] Fixed Origin upgrades not working.
  • [O] Fixed incompatibility with the Atlantis mod.
  • [O] Fixed new powers or removed powers on origins not applying to existing players with that origin.
  • [O] Fixed players not being invulnerable when selecting an origin.
  • [O] Fixed "view origin" screen not working when the server does not perform a version check.
  • [O] Fixed version check not working correctly.
  • [O] Fixed water vision of Merlings not being as effective as before.
  • [O] Fixed powers which contain the origins:origin condition crashing when applied to a non-player entity.
  • [A] Fixed entity_glow power freezing the game.
  • [A] Fixed attributes visually being applied on the client when entering a Nether portal.
  • [A] Fixed creative_flight and elytra_flight power types not supporting conditions.
  • [A] Fixed creative_flight power type stopping to work after death.
  • [A] Fixed explosive projectiles not spawning when used in fire_projectile power type.
  • [A] Fixed hud renders not allowing bars that are 8 pixels tall. (Still not perfect, because background is always only 5 pixels tall due to sprite layout, lol)
  • [A] Fixed lava_vision power type not working.
  • [C] Fixed * not working in all identifiers in datapacks where they previously would have.

Changes to Origins

  • Updated to support Minecraft 1.17
  • Now uses Apoli and Calio as libraries, as well as PlayerAbilityLib (which is a new dependency of FallFlyingLib)

    They are bundled inside the mod, no need to download anything in addition!

  • Updated Brazilian Portuguese translation (thanks lostopkk)
  • Updated Polish translation (thanks SpiderKolo)
  • Added new resource bar files made by JustHuangHere


  • An additional content update will follow.

  • The main focus of this update was extracting the power part of Origins as well as some common systems (such as the serializable data system) into separate library mods. That's why it took so long.

  • I tried to keep everything compatible with old worlds and datapacks. However, there might still be bugs. Please make sure to backup your world before updating! I won't be responsible for any damage caused to your world files.

  • New power types, conditions, etc, will now be part of Apoli, not Origins. I'm still unsure how to present this in the patch notes.

  • While datapacks generally should work, add-ons will not work out-of-the-box, due to internal changes and the update to 1.17. Please be patient with add-on developers while they update their mods!

  • Removed accidentally included test origin
  • Updated Spanish translations (thanks Golder06)
  • Updated Turkish translation (thanks Efimity)
  • Added missing link to the issue tracker in the mod metadata
  • Added origin get command which retrieves the origin of a player in a certain layer, e.g. origin get Apace origins:origin
  • Fixed prevent_block_selection crashing when no condition is provided
  • Fixed damage_over_time always using an interval of 20 ticks, regardless of what is specified
  • Fixed modify_player_spawn falsely reading the dimension_distance_multiplier as an integer
  • Fixed origin set command not calling the "onChosen" callback (fixes players being set to Elytrian while wearing heavy armor not unequipping said armor)
  • Changed FallFlyingLib to use the new host - should allow add-ons to grab Origins as a dependency again without much trouble (thanks MerchantPug)
  • Fixed resource/cooldown bars rendering below vanilla overlays
  • Fixed apply_effect action executing on the client
  • Fixed a bug where modify_xp_gain would apply inconsistently
  • Fixed modify_projectile_damage with damage reduced to 0 or less still applying a hit
  • Fixed players with an Elytra power showing both their cape and the Elytra
  • Fixed players with the ignore_water power not being targeted by Drowned, or being able to receive the conduit power.
  • Cloned Spanish translation to other Spanish country codes
  • Updated Turkish translation (thanks Efimity)


  • Fixed auto_choose in layers not working if the layer came directly after a layer with 0 possible options
  • Fixed restrict_armor powers disabling all armor for slots where the power didn't specify a condition (instead of allowing all armors in those slots)
  • Updated dependencies, fixes the freeze on world generation experienced when using Origins with Fabric API 0.34.0
  • Made resource bars render below other HUD elements (such as the chat)
  • Fixed actions on modifying powers being fired even when the modification doesn't apply due to a condition


  • Added Polish translation (thanks RDKRACZ)
  • Added Indonesian translation (thanks typhoic)
  • Updated Spanish translation (thanks Golder06)
  • Updated Korean translation (thanks 스넵_란)
  • Updated Russian translation (thanks Yuvental)
  • Fixed English translation having periods at the end of death messages

Gameplay Changes

  • Avians now lay eggs in the morning!
  • Merlings now are also faster when swimming vertically, but their underwater speed boost was nerfed from to +150% (from +200%). However, depth strider affects them now.

  • Merlings now also gain air from potions, not just water bottles.

  • Enderians and Blazeborn now take damage from drinking potions (due to being vulnerable to water).

Datapack Additions

  • Added power types: ignore_water, modify_projectile_damage, action_on_wake_up, prevent_block_use, prevent_death, action_on_item_use

  • Added entity actions: set_fall_distance, give, equipped_item_action, play_sound, trigger_cooldown

  • Added entity conditions: climbing, tamed, gamemode, using_item, moving, enchantment

  • Added block action: execute_command

  • Added block condition: exposed_to_sky, light_level

  • Added set_spawn_point field to prevent_sleep power type which specifies whether the spawn point will be set even when the power prevents sleeping

  • Added biome field to modify_player_spawn

  • Added entity action fields to the damage modifying power types (this allows you to negate damage but still execute actions!)

  • Added set boolean field to add_velocity action, which, when true, will make the action set the desired velocity instead of adding onto the current velocity of the entity

  • Added min_action and max_action fields to resource power type, which will execute when the resource reaches its min or max value, respectively

  • The asterisk * can now be used in power files where an identifier is specified, both in the namespace to specify the current namespace, and in the path to specify the current path (not including the sub-power, if currently in sub-power).

  • Origin icons can now specify a full item stack (with nbt data in tag!)

  • Origin layers have two new fields: default_origin and auto_choose. The origin specified in default_origin will automatically be set by the game, no matter which other origins are in the layer. When you use an orb however, default origins will not apply and you are free to choose any origin in the layer. auto_choose is a boolean (false by default), which specifies whether the game will automatically pick an origin for the player if there is only one available option. This will also apply when an orb is used.

Minor Changes

  • Made origin JSON files use serializable data system.

  • powers array in origin data is now optional.

  • Made consume item action have a default amount of 1.

  • Exposed method for registering keybindings for powers to use for third-parties (e.g. add-ons)

Bug Fixes

  • Fixed Arachnid climbing not behaving correctly when holding onto walls/cobwebs

  • Fixed tags not applying correctly to spawned entities in fire_projectile powers and spawn_entity actions

  • Fixed action_on_land triggering when just standing on ground and also only triggering on client-side

  • Fixed explosive projectiles (fireballs etc) stopping in air after some time when fire_projectile is used to shoot them

  • Fixed action_on_block_break crashing when no block condition is provided

  • Added minecraft:barrier to origins:unphasable tag

  • Fixed bug where the depth strider enchantment would override modify_swim_speed powers

  • modify_swim_speed now also affects vertical swimming

  • Fixed resource command not working on cooldown powers

  • Fixed origin upgrades applying already when only one criterion of the specified advancement is fulfilled


  • Added Hebrew translation (thanks nate_lev)

  • Added Korean translation (thanks Snap_lan)

  • Updated Chinese translation (thanks Neubulae)
  • Added server-side config file which can be used to disable the version check on player login (yes, if you do this, it should allow running Origins on Velocity or other proxy-based servers! But don't disable this otherwise)
  • Fixed game crashing when attacking a non-living entity with a modify_damage_dealt power (e.g. as Blazeborn)
  • Fixed game crashing when Origins version specified a pre-release or build identifier
  • Updated Russian translation (thanks Yavental)
  • Fixed bug where multiple powers which should react to the same keybind would not all trigger when the corresponding key is pressed, only one of them.
  • Fixed bug where the choose origin GUI would not render when the only option was to choose a random origin.
  • Fixed bug where the GUI would still appear if no origins were choosable in the layer and the random option was allowed but had no possibility to choose from.
  • Completely empty layers (where the player can't choose an origin) now don't appear in the view origin GUI anymore.
  • Added translation key for the message that is shown to Avians when they can't sleep because of the bed height.
  • Removed period at the end of the Avian's sleep fail message to be consistent with vanilla, which was incredibly important.

External resources

Project members



Technical information

Client side
Server side
Project ID