Elytras of Fire Lib is a Minecraft datapack used by other Elytras of Fire DLCs to function properly. Without it, these DLCs will not work at all, so make sure you have this downloaded!
This datapack does nothing on its own. If you are looking to use this alongside other datapacks that depend on this, view a list of available DLCs here; if you would like to develop a DLC, view this example pack and read the documentation below.
- Elytras of Fire Lib
Installing Elytras of Fire Lib is relatively simple:
- Download the datapack using the Releases tab on the right (this will be populated when the datapack is in a releasable state, which it is not as of writing this.)
- Open your world folder and place the downloaded folder into the "datapacks" folder.
- Use
/reload
in-game to refresh your world. If you have installed it correctly, you will be met with a successful installation message. Thank you for using Elytras of Fire! I hope you enjoy it.
And uninstalling Elytras of Fire Lib is even simpler:
-
Run the command
/function eoflib:uninstall
. This will uninstall Elytras of Fire Lib along with all other dependent DLCs*. And that's it!*Always double-check that your DLCs uninstalled correctly! Elytras of Fire Lib does its best to remove itself and its dependencies, but it's up to the developers of these DLCs that they are removed entirely. Contact the respective developers regarding incomplete uninstallation; unless it is an issue with Elytras of Fire Lib itself, I will not offer my assistance directly.
Elytras of Fire Lib, as a library of sources that other datapacks can hook into, promotes DLCs!
If you're looking to use Elytras of Fire Lib and other DLCs, here is a list updated as of January 10, 2024
for all supported DLCs:
If you're a developer, contributor, or just plain curious, continue below as documented are some features that datapack makers can use to get the most out of this library. You can also check out an example pack to have the process a little more streamlined and have guidance throughout your development.
Elytras of Fire Lib comes with many settings to fit many niches!
Player Settings
The following entries are settings that any player can use and configure, no matter the conditions:
- Enable Tribe Abilities: Toggle on or off your hotbar abilities. (Default: OFF)
- ON: Player is able to use active abilities freely. They may disable them at any point.
- OFF: Player is unable to use active abilities. They may enable them at any point.
- Enable Tribe Attributes: Toggle on or off your tribe's attributes and any passive abilities. (Default: OFF)
- ON: Player benefits from the passive effects of their current tribe. They may disable them at any point.
- OFF: Player is unaffected by any tribe's passive effects. They may enable them at any point.
- Enable Range Display: Toggle on or off the range preview for your held ability. (Default: OFF)
- ON: Player receives visual feedback of the range/range type of their held ability. They may disable this feedback at any point.
- OFF: Player no longer sees their held ability's range preview. They may enable this feedback at any point.
- Enable PVP: Toggle on or off the ability to harm entities via abilities and/or the effects of their abilities. (Default: ON)
- ON: Player can deal and take damage from all abilities and can be afflicted by any potential custom effects. They may disable this at any point.
- OFF: Player no longer has any interaction with any abilities or custom effects. They may enable this at any point.
- Ability Handling: Choose what happens when an ability item is replaced with another item. (Default: Remove Abilities)
- Remove Abilities: Player's abilities are automatically disabled when a non-ability item enters a slot occupied by an ability item.
- Remove Items: Player's attempt to replace an ability item with a non-ability item results in the non-ability item being dropped at their feet.
Admin Settings
The following entries are settings that only players with the eoflib.admin
tag can change:
- Persistent Settings: Keep your settings when the world is reloaded in any way. (Default: ON)
- ON: Admin Settings and Uninstall Settings stay as-configured when the /reload command is ran or the world is otherwise reloaded.
- OFF: Admin Settings and Uninstall Settings are set to the default, recommended settings on world reloading.
- Default: Admin Settings and Uninstall Settings are immediately set to their defaults.
- Default: Admin Settings and Uninstall Settings are immediately set to their defaults.
- Allow Abilities: Toggle the ability for non-admin players to toggle their abilities. (Default: ON)
- ON: Players are able to freely toggle on or off their tribe abilities. Players must reenable their setting when Allow Abilities is changed from OFF to ON.
- OFF: Players are no longer able to toggle on their tribe abilities, and all players have their abilities disabled.
- Blacklist: Edit the Ability Blacklist.
- Blacklist: Edit the Ability Blacklist.
- Allow Attributes: Toggle the ability for non-admin players to toggle their tribe attributes. (Default: ON)
- ON: Players are able to freely toggle on or off their tribe attributes. Players must reenable their setting when Allow Attributes is changed from OFF to ON.
- OFF: Players are no longer able to toggle on their tribe attributes, and all players have their attributes disabled.
- Allow Range Display: Toggle the ability for non-admin players to toggle Range Display. (Default: OFF)
- ON: Players are able to freely toggle on or off their ability's range display. Players must reenable their setting when Allow Range Display is changed from OFF to ON.
- OFF: Players are no longer able to toggle on their ability's range display, and all players have their ability's range display disabled.
- Allow PVP: Toggle the ability for non-admin players to toggle PVP. (Default: On)
- ON: Players are able to freely toggle on or off Elytras of Fire-based PVP. Players must reenable their setting when Allow PVP is changed from OFF to ON.
- OFF: Players are no longer able to toggle on PVP, and all players have PVP disabled.
- Enable Deactiviation Timer (unreleased): The Deactivation timer automatically disables abilities for players who are not actively using them. Enable this option to decrease performance impact of Elytras of Fire Lib and any installed DLCs. (Default: OFF)
- ON: Players who have not actively used their ability during a period of time will automatically have them disabled.
- OFF: Players will keep their abilities active regardless of ability inactivity.
- Enable Destructive Effects: Toggle the destructive properties that some abilities come with. (Default: OFF)
- ON: Abilities can cause physical damage to some terrain, structures, buildings, etc.
- OFF: Abilities will cause no damage to the environment and will only affect entities.
- Custom Death Messages (unreleased): Toggle custom death messages when players are killed by certain abilities. (Default: ON)
- ON: Deaths caused by certain abilities will give a datapack-generated death message. Purely cosmetic.
- OFF: Deaths by abilities will not yield new death messages.
- Enable Friendly Fire (unreleased): Toggle friendly fire for most abilities. (Default: OFF)
- ON: Players are able to freely toggle on or off friendly fire.
- OFF: Players are no longer able to toggle on friendly fire, and ability effects can be taken from any source.
- Cooldown Bypass: Allows you to bypass all tribe ability cooldowns. (Default: OFF)
- ON: User will bypass all cooldowns imposed by abilities.
- OFF: User is penalised by ability cooldowns on successful use.
- Debug Mode: Displays helpful information in-game to streamline datapack development and show function references and sources. (Default: OFF)
- ON: User will receive debugging messages in chat.
- 0: Debug Mode is soft disabled.
- 1: User will see only load/uninstall messages.
- 2: All general one-call functions called by the user.
- 3: All general one-call functions called by the user and other command sources.
- 4: Condiionally-looping functions.
- 5: All function calls.
- OFF: User will see no technical messages.
- ON: User will receive debugging messages in chat.
Uninstall Settings
The following entries are settings that only players with the eoflib.admin
tag can change:
- Keep Forceloads: Toggle whether forceloaded chunks stay forceloaded after this datapack is uninstalled. (Default: ON)
- ON: Forceloaded chunks will remain forceloaded after uninstall.
- OFF: Forceloaded chunks will no longer be forceloaded during uninstall.
- Keep Storages: Keep all storage data intact when this datapack is uninstalled. (Default: ON)
- ON: Storage data will remain after uninstall.
- OFF: Relevant storage data will be removed during uninstall.
- Keep Bossbars: Keep all bossbars intact when this datapack is uninstalled. (Default: ON)
- ON: Bossbars will remain after uninstall.
- OFF: Bossbars will be removed during uninstall.
- Keep Teams: Keep all tribe teams intact when this datapack is uninstalled. (Default: ON)
- ON: Teams will remain after uninstall.
- OFF: Teams will be removed during uninstall.
- Keep Scoreboards: Keep all scoreboard objectives and data intact when this datapack is uninstalled. (Default: ON)
- ON: Scoreboards will remain after uninstall.
- OFF: Scoreboard objectives and data will be removed during uninstall.
- Uninstall Mode: Toggles the display of these settings when the datapack's uninstall function is called. (Default: OFF)
- ON: Any user uninstalling the datapack will be queried if they would like to review the uninstall settings. If not, they may proceed with uninstalling (NOT RECOMMENDED!).
- OFF: Any user uninstalling the datapack will have the Uninstall Settings displayed to them. They may be toggled during this phase, along with an easily accessible uninstall button once their settings are as fit.
Elytras of Fire Lib comes with 10 advancements:
View Advancements List
Advancements located here deal with resolving blacklist operations. By default, 2 files are included: cancel_operation
, which cancels the current active blacklist operation, and register_ability
, which registers a thrown ability to the blacklist. Do not overwrite/add these files to Elytras of Fire Lib.
π¦ eoflib:advancements
β π blacklist
β π cancel_operation.json
β π register_ability.json
ability_activated.json
is an advancement that is rewarded to players who have right-clicked their ability item β not necessarily activating said ability, but solely using the item. ability_activated.json
can be hooked into by adding your functions to your datapack's eoflib:reset/abilities.json
function tag. Do not overwrite/add the file to Elytras of Fire Lib.
π¦ eoflib:advancements
β π ability_activated.json
death.json
is an advancement that is rewarded to players who have died. death.json
can be hooked into by adding your functions to your datapack's eoflib:tags/functions/death.json
function tag. Do not overwrite/add the file to Elytras of Fire Lib.
π¦ eoflib:advancements
β π death.json
dragon.json
is an advancement that is rewarded under either of the following conditions: when a player joins a team that is recognised by any datapack as an Elytras of Fire team, or when a player is given a tag matching the name of an Elytras of Fire team. Do not overwrite/add the file to Elytras of Fire Lib.
π¦ eoflib:advancements
β π dragon.json
ignited.json
is an advancement that is rewarded when a player is damaged by fire. ignited.json
can be hooked into by setting this advancement as a parent to any other advancement you'd like. Do not overwrite/add the file to Elytras of Fire Lib.
{
"parent": "eoflib:ignited",
...
}
π¦ eoflib:advancements
β π ignited.json
new_id.json
is an advancement that is rewarded to players who have joined the server for the first time since the datapack's loading. It assigns every player a unique score that can be used to distinguish between players, separate ability users from targets, and so on. new_id.json
can be hooked into by adding your functions to your datapack's eoflib:tags/functions/new_id.json
function tag. Do not overwrite/add the file to Elytras of Fire Lib.
{
"replace": false,
"values": [
"namespace:function/path/here",
...
]
}
π¦ eoflib:advancements
β π new_id.json
projectile_fired.json
is an advancement that is activated when a player projectile_fireds the server. Most commonly, this is used to reactivate schedules that require players present on the server such as tribe effects and passive abilities. projectile_fired.json
can be hooked into by adding your functions to your datapack's eoflib:tags/functions/projectile_fired.json
function tag. Do not overwrite/add the file to Elytras of Fire Lib.
{
"parent": "eoflib:projectile_fired",
...
}
π¦ eoflib:advancements
β π rejoin.json
rejoin.json
is an advancement that is activated when a player rejoins the server. Most commonly, this is used to reactivate schedules that require players present on the server such as tribe effects and passive abilities. rejoin.json
can be hooked into by adding your functions to your datapack's eoflib:tags/functions/rejoin.json
function tag. Do not overwrite/add the file to Elytras of Fire Lib.
{
"parent": "eoflib:rejoin",
...
}
π¦ eoflib:advancements
β π rejoin.json
ricardo_report.json
is an advancement used by this library to detect if something has gone horribly wrong. It handles the event in which a player either throws or eats Ricardo the Error potato, sending the player a bug report form in chat along with the opportunity to bid Ricardo farewell.
π¦ eoflib:advancements
β π ricardo_report.json
root.json
is an advancement that is rewarded to players who have joined the server for the first time since the datapack's loading. It is simply used to detect that the datapack has loaded. Do not overwrite/add the file to Elytras of Fire Lib.
{
"parent": "eoflib:root",
...
}
π¦ eoflib:advancements
β π root.json
trigger.json
is an advancement that is rewarded to players who have triggered certain scoreboard events.**
π¦ eoflib:advancements
β π trigger.json
Elytras of Fire Lib comes with 2 loot tables:
View Loot Tables List
ricardo.json
is a loot table that creates a poisonous potato named Ricardo the Error Potato. He's a cute little guy with big, round eyes, a well-kept mustache, and a black-as-coals top hat! Ricardo is meant to be a bug item; if Ricardo is accidentally β or on purpose β given to a player, he lets them know to submit a bug report.
π¦ eoflib:loot_tables
β π commands
β π ricardo.json
shulker_box.json
is a loot table that manipulates shulkers to drop their contents if an item with specific NBT is used to break it. Use any item or /loot mine
command that has the {items: 1b}
tag to obtain only the contents of the shulker box.
π¦ minecraft:loot_tables
β π blocks
β π shulker_box.json
Elytras of Fire Lib comes with 52 predicates for DLCs to hook into:
View Predicates List
Predicates located here deal with tribal abilities being used and/or activated. By default, 4 files are included: any_used.json
checks if any ability has been used (right clicked), and primary.json
, secondary.json
, and tertiary.json
all check if their respective archetype of ability has been activated.
π¦ eoflib:predicates
β π abilities
β π any_used.json
β π primary_activated.json
β π secondary_activated.json
β π tertiary_activated.json
Predicates located here deal with damage. By default, 3 files are included: minimum.json
checks if an entity has dealt at least one point of damage, on_fire.json
checks if an entity is on fire, and recent.json
checks if an entity has recently taken damage.
π¦ eoflib:predicates
β π damage
β π minimum.json
β π on_fire.json
β π recent.json
Predicates located here deal with entity grouping. By default, 2 files are included: affected.json
and recent.json
, which both check if a given entity is or is not allowed to be affected by abilities.
π¦ eoflib:predicates
β π entities
β π affected.json
β π unaffected.json
Predicates located here deal with checking if a player's ability slots are unoccupied. By default, 3 files are included, each checking a specific hotbar slot to see if it is unoccupied.
π¦ eoflib:predicates
β π inventory
β π ability
β π primary_empty.json
β π secondary_empty.json
β π tertiary_empty.json
Predicates located here deal with inventory checking. By default, 9 files are included, each checking a specific hotbar slot to see if it is unoccupied.
π¦ eoflib:predicates
β π inventory
β π hotbar
β π slot_0_empty.json
β π slot_1_empty.json
β π slot_2_empty.json
β π slot_3_empty.json
β π slot_4_empty.json
β π slot_5_empty.json
β π slot_6_empty.json
β π slot_7_empty.json
β π slot_8_empty.json
Predicates located here deal with checking the player's mainhand. By default, 4 files are included, each checking the player's mainhand for any/a specific archetype of ability.
π¦ eoflib:predicates
β π inventory
β π mainhand
β π ability
β π any.json
β π primary.json
β π secondary.json
β π tertiary.json
Predicates located here deal with location checking. By default, 2 files are included: submerged_in_water.json
checks for players that are completely encompassed in water (or waterlogged blocks) and water.json
checks for players standing on or in water (or waterlogged blocks.)
π¦ eoflib:predicates
β π location
β π submerged_in_water.json
β π water.json
Predicates located here deal with movement checking. By default, 6 files are included, each checking for general and player-specific movement types.
π¦ eoflib:predicates
β π movement
β π elytra_flight.json
β π ground_sneak.json
β π on_ground.json
β π sneak.json
β π sprint.json
β π swim.json
Predicates located here deal with defining admin settings. By default, 13 files is included.
π¦ eoflib:predicates
β π settings
β π admin
β π debug_mode
β β π highest_tier.json
β β π lowest_tier.json
β π ability_timer.json
β π allow_abilities.json
β π allow_attributes.json
β π allow_pvp.json
β π allow_range_display.json
β π cooldown_bypass.json
β π custom_deaths.json
β π destructive_abilities.json
β π friendly_fire.json
β π in_blacklist_operation.json
β π save_settings.json
Predicates located here deal with tribe checking. By default, only 1 file is included.
π¦ eoflib:predicates
β π settings
β π uninstall
β π bossbars.json
β π forceloads.json
β π scoreboards.json
β π storages.json
β π teams.json
Predicates located here deal with tribe checking. By default, only 1 file is included.
π¦ eoflib:predicates
β π tribes
β π dragon.json
Elytras of Fire Lib comes with dozens of tags for blocks, entities, functions, and items for DLCs to hook into:
View Block Tags List
Tags here group blocks by their respective titles. By default, 6 files are included: carpet.json
groups carpet-like blocks, earth_blocks.json
groups earthy/silty and natural blocks, hot.json
groups hot blocks, ice.json
groups icy blocks, snow.json
groups blocks associated with snow, and waterlogged.json
groups blocks that are able to be waterlogged.
π¦ eoflib:tags
β π blocks
β π carpet.json
β π earth_blocks.json
β π hot.json
β π ice.json
β π snow.json
β π waterlogged.json
climbable.json
adds to Minecraft's own climbable.json
block tag. Because there is no way (that I am more willing to do) to make custom block tags climbable, this is the only overwrite Elytras of Fire Lib does to the Minecraft namespace.
π¦ minecraft:tags
β π blocks
β π climbable.json
Tags here group blocks commonly found composing Minecraft deserts. By default, 5 related files are included.
π¦ eoflib:tags
β π blocks
β π desert.json
β π desert
β π sand.json
β π sandstone.json
β π sandstone
β π red.json
β π white.json
Tags here group blocks best described as flora. They are further grouped by dimension and general distinction (grasses, mosses, vines, etc.) By default, 12 related files are included.
π¦ eoflib:tags
β π blocks
β π flora.json
β π flora
β π dripleaf.json
β π grass.json
β π moss.json
β π mushrooms.json
β π vines.json
β π mushrooms
β β π block.json
β β π small.json
β π nether
β β π grass.json
β β π vines.json
β π overworld
β π grass.json
β π vines.json
Tags here group blocks that emit light sources. By default, 3 related files are included.
π¦ eoflib:tags
β π blocks
β π light.json
β π light
β π block.json
β π small.json
Tags here group blocks that are meant to replace or add to the default Minecraft tags in terms of usage. As it is good practice to not overwrite default tags unless it is unavoidable, these are simply here to abide by this practice. By default, 13 files are included.
π¦ eoflib:tags
β π blocks
β π minecraft
β π air.json
β π amethyst.json
β π coral_fans.json
β π corals.json
β π dirt.json
β π fire.json
β π flowers.json
β π froglights.json
β π glass_panes.json
β π gravel.json
β π redstone_components.json
β π sand.json
β π torches.json
Tags here group blocks that raycast abilities can pass through. By default, 2 related files are included.
π¦ eoflib:tags
β π blocks
β π passable
β π general.json
β π water.json
View Entity Tags List
projectiles.json
groups entities used as projectiles by any entity or block.
π¦ eoflib:tags
β π entities
β π projectiles.json
unaffected.json
groups entities that are unable to be affected by any vanilla Minecraft effects.
π¦ eoflib:tags
β π entities
β π unaffected.json
View Function Tags List
config.json
is used by Elytras of Fire Lib and other DLCs to run configuration settings provided by them.
π¦ eoflib:tags
β π functions
β π config.json
detect_dlcs.json
is used by Elytras of Fire Lib and other DLCs to detect other DLCs.
π¦ eoflib:tags
β π functions
β π detect_dlcs.json
dlc_load.json
is used by Elytras of Fire Lib and other DLCs to load themselves and/or other DLCs.
π¦ eoflib:tags
β π functions
β π dlc_load.json
uninstall.json
is used by Elytras of Fire Lib and other DLCs to uninstall themselves and/or other DLCs.
π¦ eoflib:tags
β π functions
β π uninstall.json
Tags here group functions to be ran only once by Elytras of Fire Lib or other DLCs. By default, 8 files are included.
π¦ eoflib:tags
β π functions
β π load
β π del
β β π forceloads.json
β β π scoreboards.json
β β π storage.json
β β π teams.json
β π gen
β π forceloads.json
β π scoreboards.json
β π storage.json
β π teams.json
Tags here group functions to be ran when resetting certain aspects of Elytras of Fire Lib. By default, 1 file is included.
π¦ eoflib:tags
β π functions
β π reset
β π tribe_advancements.json
Tags here group functions to be ran on a regular schedule. By default, 4 files are included.
π¦ eoflib:tags
β π functions
β π timer
β π 1t.json
β π 5t.json
β π 10t.json
β π 20t.json
View Item Tags List
items.json
is used by Elytras of Fire Lib and other DLCs to group items used by them.
π¦ eoflib:tags
β π functions
β π items
β π items.json
The Ability Blacklist is planned to exclude certain abilities from being granted to players. It is slated to deny abilities by archetype (primary, secondary, and tertiary), by tribe, and/or individually.
Custom Death Messages will be exactly that: custom death messages that will play when a player or named entity dies by a registered Elytras of Fire ability.
"Wings," in this instance, will refer to groups that users of Elytras of Fire can form; this can be most likened to factions found on Factions servers. Players that are a part of the same Wing will not be able to damage or negatively afflict one another via their abilities, and can invite up to 9 other players to their Wing.
The following features of Elytras of Fire Lib are listed to prove IMP compliance, which are a set of suggested guidelines for Minecraft datapacks that ensure quality, compatibility, and optimal user and development experience.
Core Standards: Leave vanilla alone
The sole edit to Vanilla is the climbable
block tag. There is currently no implementable workaround for this.
Core Standards: Namespace everything
All entity tags, custom items, scoreboard objectives, and storages used in Elytras of Fire use the following namespaces to clarify association with Elytras of Fire:
eoflib
eoflib_raycast
eof
Documentation: Function headers
All functions utilise the IMP-recommended header to the best of my ability. I do not guarantee 100% accuracy.
Documentation: Function annotations
All functions utilise the appropriate IMP-recommended annotations to the best of my ability. I do not guarantee 100% accuracy.