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
- Welcome!
- Table of Contents
- Installation and Uninstallation
- Features
- DLC Compatibility
- Advancements
- Loot Tables
- Commands
- Blocks
- Predicates
- Tags
- Block Tags
- Entity Tags
- Function Tags
- Item Tags
- Planned Features
- Other Qualities
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 9 advancements:
View Advancements List
ability_used.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_used.json
can be hooked into by adding your functions to your datapack's eoflib:reset/abilities.json
function tag. Note that functions triggered via this advancement will activate one game tick after this advancement is rewarded to properly reset used abilities. Do not overwrite/add the file to Elytras of Fire Lib.
π¦ eoflib:advancements
β π ability_used.json
death.json
is an advancement that is rewarded to players who have died. death.json
can be hooked into by setting this advancement as a parent to any other advancement you'd like, or 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.
{
"parent": "eoflib:death",
...
}
π¦ 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. dragon.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:dragon",
...
}
π¦ 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
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: ricardo.json
and shulker_box.json
.
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 many predicates for DLCs to hook into:
View Predicates List
on_fire.json
checks if an entity is on fire.
π¦ eoflib:predicates
β π on_fire.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
β π 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 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 mainhand checking. By default, 3 files are included, each checking whether a player is holding either a primary, secondary, or tertiary ability in their mainhand.
π¦ eoflib:predicates
β π mainhand
β π ability
β π primary.json
β π secondary.json
β π tertiary.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 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
earth_blocks.json
groups blocks associated with earthy/silty materials.
π¦ eoflib:tags
β π blocks
β π earth_blocks.json
ice.json
groups blocks associated with ice.
π¦ eoflib:tags
β π blocks
β π ice.json
snow.json
groups blocks associated with snow.
π¦ eoflib:tags
β π blocks
β π snow.json
waterlogged.json
groups blocks that are able to be waterlogged.
π¦ eoflib:tags
β π blocks
β π waterlogged.json
climbable.json
adds to Minecraft's own climbable.json
block tag. Because there is no way 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, 10 related files are included.
π¦ eoflib:tags
β π blocks
β π flora.json
β π flora
β π dripleaf.json
β π grass.json
β π moss.json
β π mushrooms.json
β π vines.json
β π nether
β β π grass.json
β β π vines.json
β π overworld
β π grass.json
β π vines.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, these are simply here to abide by this practice. By default, 11 files are included.
π¦ eoflib:tags
β π blocks
β π minecraft
β π air.json
β π amethyst.json
β π coral_fans.json
β π corals.json
β π dirt.json
β π flowers.json
β π glass_panes.json
β π gravel.json
β π redstone_components.json
β π sand.json
β π torches.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
Arguably one of the most major parts of Elytras of Fire, ability support will be coming next! Currently there is minimal framework for ability support, but this is the next step in the development of Elytras of Fire Lib β and Elytras of Fire as a whole.
The Ability Blacklist is planned to exclude certain abilities from being granted to players. It is slated to deny abilities by type (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.
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.
- 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.
- Enable Deactiviation Timer: 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: ON)
- 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: ---
- OFF: ---
- 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.
- OFF: User will see no technical messages.
Uninstall Settings
The following entries are settings that only players with the eoflib.admin
tag can change:
- 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.
- 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 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.
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.