ElytraEssentials - The Complete Elytra Plugin [1.18 - 1.21.8] icon

ElytraEssentials - The Complete Elytra Plugin [1.18 - 1.21.8] -----

A plugin enhancing Elytra flight with a customizable experience for your server




Changelog:
  • Added a full upgrade system for Armored Elytras via the new /ee upgrade command. Features over 7 unique upgrade paths, including Max Velocity, Flight Efficiency, Boost Power, and Armor Durability, each with multiple levels to progress through. You need to have an armored elytra to be able to interact with this!
[​IMG]
  • Added new permissions for using the /ee upgrade command, elytraessentials.command.upgrade. By default is only available for OP players.
  • For more info about all the upgrades, check the plugin documentation here.
  • Improved Armored Elytra lore and /ee armor command to contain more valuable information about the item.
  • Reworked the in-air boost to make it feel similar to a firework rocket when used.
  • Small update to the forge GUI, adding the player's head, which states the money they have, and a close button.
  • Fixed a critical issue where armor attributes were not being correctly removed and re-applied when changing equipment.
  • Items left in the forge GUI are now correctly returned to the player if they close the menu.

Note:
  • Hey everyone, my focus for this project will now shift to maintenance, which means I'll be providing critical bug fixes and updating the plugin for new Minecraft versions as they are released. I'm going to move to new plugin ideas I have in mind. Thanks for your support!
----------, Aug 3, 2025

Changelog:
  • New Tandem Flight System!! You can now invite another player to be your passenger with the new /ee tandem command. The system allows you to fly with your friends and explore together. Includes a configurable flight time cost for the driver and more features.
Code (YAML):

tandem
:
  # Set to true to enable the tandem flight (passenger system) feature.
   enabled
: true # [Default: true]

    # How many seconds a player has to accept a /tandem invite before it expires.
   invite-timeout
: 30 # [Default: 30 seconds]

    # Multiplier for flight time cost when carrying a passenger.
    # 2.0 means the driver consumes flight time twice as fast.
    # 1.0 means no extra cost (minimum value).
   flight-time-cost-multiplier
: 2.0 # [Default: 2.0]

    # Protect passengers from fall damage when they are dismounted mid-air.
   protect-passenger-fall-damage
: true # [Default: true]

    # How many seconds to count down before mounting a passenger after they accept.
    # Set to 0 to disable the countdown and mount instantly.
   mount-countdown
: 3 # [Default: 3]
 
Check the documentation for the new commands and permissions.

  • The charged jump now features a dynamic and configurable "shockwave" animation, launching the blocks beneath you into the air for a more impactful feel. By default, this is enabled, but you can disable it in the config file.
Code (YAML):

# Set to true to enable a visual animation where blocks jump up when a player launches.
enable-launch-animation
: true # [Default: true]
 
  • Added two settings on config to disable vanilla firework boosting and Riptide trident.
Code (YAML):

  # Set to true to prevent players from using firework rockets to boost while gliding.
  disable-firework-boosting
: false # [Default: false]

  # Set to true to prevent players from launching themselves with Riptide tridents
  # while they are wearing an elytra. This does not affect normal, ground-based
  # Riptide movement when an elytra is not equipped.
  disable-riptide-launch
: false # [Default: false]
 
  • A new API has been introduced, allowing other plugin developers to easily integrate their creations with ElytraEssentials features. For more info, check this.
  • Fixed a bug where players were not being correctly charged money when purchasing cosmetic effects from the /ee shop.
  • The boost and charged jump systems have been optimized to be more efficient by checking for the required item earlier, reducing unnecessary server load.
  • New messages were added to the messages.yml file.
Note:
  • In the next update, I will be working to add a new upgrade system for the armored elytras. If you find any bug, let me know on Discord.
----------, Jul 26, 2025

Changelog:
  • Added new settings to config.yml to enable/disable, configure the time interval, and max backups for automatic SQLite database backups.
Code (Text):

  auto-backup:
    # Set to true to enable automatic backups of the database.
    enabled: true # [Default: true]
    # The interval (in minutes) at which to perform backups.
    interval: 60 # [Default: 60 minutes]
    # The maximum number of backup files to keep.
    max-backups: 24 # [Default: 24 backups]
 
  • Added a new admin command
Code (Text):
/ee stats reset <player> --confirm
  • Fixed an issue where the charged jump mechanic would sometimes fail to correctly activate the player's glide state.
  • Improved support for older server versions (1.18+) by adding fallbacks for modern Paper API methods.
  • Streamlined the /ee importdb command and player data saving processes to be more robust.
  • The plugin's release process is now fully automated using GitHub Actions
  • Updated documentation
----------, Jul 24, 2025

Changelog:
  • The plugin is now fully compatible with Folia servers, utilizing its modern, multi-threaded schedulers for improved performance.
  • The project has been migrated from the Spigot API to the modern Paper API, enabling access to new features and optimizations.
  • Added new configurable messages to messages.yml.
  • The entire plugin has been refactored from a simple listener-based model to a modern, handler-based architecture.
  • Added support for 1.21.8

Note:
  • Hi everyone, I hope you're well! This is a massive update that completely refactors the plugin's internal architecture to be more robust, performant, and maintainable. Most importantly, it introduces full support for modern, multi-threaded servers. If you are not using Folia, you can update. However, you will need to reset config.yml, messages.yml, and shop.yml since I made some changes.
    Also, I don't expect critical bugs, so if you find them, please let me know through Discord!
----------, Jul 21, 2025

Changelog:
  • Added dynamic particle effects upon charging for the charged jump.
  • Added a title message upon launching the jump charger.
  • Now, when a player repairs their armored elytra, they will fully repair elytra durability alongside armor plating.
  • Fixed a bug where enchantments were not being applied to the armored elytra, like Mending.
  • Prevented duplicate attribute modifier on legacy versions by checking the UUID.
  • Fixed a bug where players could get unlimited time flight if they started gliding through the jump charger.
  • Prevent spamming of boost cooldown messages.
  • Changed default boost cooldown to 1 second instead of 2.

Note:
  • In the next update, I will be working to add Folia support, alongside fixing any reported bugs. Thanks!
----------, Jul 16, 2025

Changelog:
  • Fixed an issue where the forge mechanic was not working on older versions (still needs some work)
  • Added a version check to use the correct particle for the jump charger on Minecraft 1.18-1.20
  • Resolved a data type incompatibility issue to improve support for Minecraft 1.18.
  • Added validation to prevent newer effects from causing errors on unsupported server versions.
  • Improved inventory handling for better cross-version compatibility.
  • Ensured custom head creation works reliably on both Minecraft 1.18 and 1.19+ by using a fallback.
  • Fixed armor and toughness attributes not applying correctly on Minecraft 1.20.3 and newer.
  • Corrected particle names for versions 1.18-1.20.
  • Replaced hardcoded values with constants to improve code clarity and maintainability.

Note: Hi guys, sorry for the issue with the previous version. I expected Modrinth to approve the plugin faster, but it didn't happen :LOL: (nonetheless, this will be fixed in a few days).

This new update should fix the major issues you were seeing, particularly on older servers. Supporting multiple Minecraft versions required some tricky coding (using reflection), so there's a small chance of new, unexpected behavior. If you see anything strange, please let me know on Discord!
----------, Jul 15, 2025

Changelog:
  • Added a new GUI for players to view their achievements via /ee achievements command. By default, this is accessible to all players.
    [​IMG]

  • Added +10 default achievements with new properties, allowing server owners to customize even more aspects of them.
    Code (YAML):
    # ----------------------------------------------------
    #      ElytraEssentials - Achievements Configuration
    # ----------------------------------------------------
    #
    # This file allows you to create custom achievements for your players.
    #
    # Each achievement has a unique ID (e.g., "rookie_flyer").
    #
    # Parameters:
    #   type: The statistic to track. Options:
    #         TOTAL_DISTANCE, LONGEST_FLIGHT, TOTAL_FLIGHT_TIME,
    #         BOOSTS_USED, SUPER_BOOSTS_USED, SAVES
    #   value: The number the player needs to reach for this stat.
    #   name: The name of the achievement displayed in the GUI.
    #   description: The description shown in the item's lore.
    #   display-item: The material to show when the achievement is in progress.
    #   message: The message sent to the player upon completion if broadcast is enabled. Use {player} for their name.
    #   broadcast: If true, the achievement message will be sent to the entire server, otherwise just the player
    #   rewards: The rewards a player will receive upon completion of the achievement
    #   commands: A list of commands to be executed by the console. Use {player} for their name.

    achievements
    :
      # --- Total Distance Flown ---
      rookie_flyer
    :
        type
    : TOTAL_DISTANCE
        value
    : 10000
        name
    : "&aRookie Flyer"
        description
    : "&7Fly a total of 10km."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has flown for over 10km!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$1,000"
        commands
    :
         - "eco give {player} 1000"
      sky_explorer
    :
        type
    : TOTAL_DISTANCE
        value
    : 100000
        name
    : "&bSky Explorer"
        description
    : "&7Explore the skies for 100km."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has explored the skies for 100km!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$10,000"
        commands
    :
         - "eco give {player} 10000"
      cosmic_voyager
    :
        type
    : TOTAL_DISTANCE
        value
    : 1000000
        name
    : "&dCosmic Voyager"
        description
    : "&7Travel a cosmic distance of 1,000km."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} is a Cosmic Voyager, having flown 1,000km!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$50,000"
          - " &e» &dA unique cosmetic effect"
        commands
    :
         - "eco give {player} 50000"
          - "ee effect give {player} ENDERS_WAKE"

      # --- Longest Single Flight ---
      long_hauler
    :
        type
    : LONGEST_FLIGHT
        value
    : 5000
        name
    : "&aLong Hauler"
        description
    : "&7Complete a single flight of over 5,000 blocks."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} completed a single flight of over 5,000 blocks!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$2,500"
        commands
    :
         - "eco give {player} 2500"
      marathon_flyer
    :
        type
    : LONGEST_FLIGHT
        value
    : 15000
        name
    : "&bMarathon Flyer"
        description
    : "&7Complete a single flight of over 15,000 blocks."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} is a true Marathon Flyer!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$12,500"
        commands
    :
         - "eco give {player} 12500"
      horizon_breaker
    :
        type
    : LONGEST_FLIGHT
        value
    : 30000
        name
    : "&dHorizon Breaker"
        description
    : "&7Fly over 30,000 blocks in a single journey."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has broken the horizon with a 30,000 block flight!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$30,000"
          - " &e» &dA legendary cosmetic effect"
        commands
    :
         - "eco give {player} 30000"
          - "ee effect give {player} TOTEM_BLESSING"

      # --- Total Boosts Used ---
      boost_enthusiast
    :
        type
    : BOOSTS_USED
        value
    : 500
        name
    : "&aBoost Enthusiast"
        description
    : "&7Use the elytra boost 500 times."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has used their elytra boost 500 times!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$1,000"
        commands
    :
         - "eco give {player} 1000"
      rocket_jockey
    :
        type
    : BOOSTS_USED
        value
    : 2500
        name
    : "&bRocket Jockey"
        description
    : "&7Use the elytra boost 2,500 times."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} is a real Rocket Jockey!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$5,000"
        commands
    :
         - "eco give {player} 5000"
      propulsion_master
    :
        type
    : BOOSTS_USED
        value
    : 10000
        name
    : "&dPropulsion Master"
        description
    : "&7Master the art of flight with 10,000 boosts."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has achieved the rank of Propulsion Master!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$20,000"
        commands
    :
         - "eco give {player} 20000"

      # --- Saves ---
      survivor
    :
        type
    : SAVES
        value
    : 25
        name
    : "&aSurvivor"
        description
    : "&7Be saved by the plugin's protection features 25 times."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has been saved from certain doom 25 times!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$1,000"
        commands
    :
         - "eco give {player} 1000"
      guardian_angel
    :
        type
    : SAVES
        value
    : 100
        name
    : "&bGuardian Angel"
        description
    : "&7Be saved by the plugin's protection features 100 times."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player}'s elytra is their Guardian Angel, saving them 100 times!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$7,500"
        commands
    :
         - "eco give {player} 7500"
      unbreakable
    :
        type
    : SAVES
        value
    : 250
        name
    : "&dUnbreakable"
        description
    : "&7Be saved by the plugin's protection features 250 times."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} seems Unbreakable, having been saved 250 times!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$15,000"
        commands
    :
         - "eco give {player} 15000"

      # --- Total Flight Time ---
      fledgling
    :
        type
    : TOTAL_FLIGHT_TIME
        value
    : 3600
        name
    : "&aFledgling"
        description
    : "&7Spend a total of 1 hour in the air."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has earned their wings, flying for over an hour!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$1,500"
        commands
    :
         - "eco give {player} 1500"
      aviator
    :
        type
    : TOTAL_FLIGHT_TIME
        value
    : 36000
        name
    : "&bAviator"
        description
    : "&7Spend a total of 10 hours in the air."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} is a true Aviator, with 10 hours of flight time!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$15,000"
        commands
    :
         - "eco give {player} 15000"
      sky_legend
    :
        type
    : TOTAL_FLIGHT_TIME
        value
    : 180000
        name
    : "&dSky Legend"
        description
    : "&7Spend a total of 50 hours in the air."
        display-item
    : "GRAY_DYE"
        message
    : "&6&lAchievement! &e{player} has become a Sky Legend, with 50 hours of flight time!"
        broadcast
    : true
        rewards
    :
         - " &e» &a$75,000"
        commands
    :
         - "eco give {player} 75000"
  • Improved the effects command by allowing admins to give, remove, and list effects for a player. For the full list of new commands, refer to the documentation.
  • The /ee stats command now displays the player’s position next to each leaderboard category, making it more informative.
    [​IMG]

  • Polished the help menu with an interactive and paginated design. Also added automatic tab completion for a smoother experience in the terminal. On another note, the commands that appear should only be the ones that the player has access.
    [​IMG]

  • Added support for hexadecimal color codes. To use them, prefix your text with "&#FFD700" or any other valid hex color. See messages.yml for an example.
  • Vault and PlaceholderAPI are no longer required dependencies. They now function as soft dependencies, as the plugin supports features independently. However, having both installed is still recommended for the full experience.
  • Reduced code duplication, added asynchronous database calls, improved error logging, and enhanced overall performance.
  • Bug fixes.

Note: ElytraEssentials is now also available on Modrinth for greater visibility and ease of access! This doesn't affect Spigot support as updates will continue here as usual.

P.S.: I'm aware that some problems exist in older versions, such as 1.18 and 1.20.3. Also, the Modrinth link is not currently working. These fixes are on the way, expect them tomorrow...
----------, Jul 14, 2025

Changelog:
  • Added a new feature called Emergency Deploy which at his core is intended to save players who forgot to equip an elytra that exists in their inventory. A player with the permission elytraessentials.elytra.autodeploy will have their elytra equipped automatically, potentially saving their lifes in case of falling from a big height. By default this is disabled but you can enable it on config.yml
    Code (YAML):
      # Set to true to automatically equip and deploy an elytra when
      # The minimum fall distance (in blocks) is verified by the plugin.
      emergency-deploy
    : false # [Default: false]
  • Implemented a configurable achievement and reward system. To configure this you need to access the new achievements.yml file. Example:
    Code (YAML):

    # ----------------------------------------------------
    #      ElytraEssentials - Achievements Configuration
    # ----------------------------------------------------
    #
    # This file allows you to create custom achievements for your players.
    #
    # Each achievement has a unique ID (e.g., "rookie_flyer").
    #
    # Parameters:
    #   name: The name of the achievement
    #   type: The statistic to track. Options:
    #         TOTAL_DISTANCE, LONGEST_FLIGHT, TOTAL_FLIGHT_TIME,
    #         BOOSTS_USED, SUPER_BOOSTS_USED, SAVES
    #   value: The number the player needs to reach for this stat.
    #   broadcast: If true, the achievement message will be sent to the entire server, otherwise just the player
    #   message: The message sent to the player upon completion if broadcast is enabled. Use {player} for their name.
    #   commands: A list of commands to be executed by the console. Use {player} for their name.

    achievements
    :
      rookie_flyer
    :
        name
    : "Rookie Flyer"
        type
    : TOTAL_DISTANCE
        value
    : 10000
        broadcast
    : true
        message
    : "&6&lAchievement! &e{player} has flown for over 10km!"
        commands
    :
         - "eco give {player} 1000"
      #   - "lp user {player} meta setprefix &7[Rookie Flyer] "

      sky_explorer
    :
        name
    : "Sky Explorer"
        type
    : TOTAL_DISTANCE
        value
    : 100000
        broadcast
    : true
        message
    : "&6&lAchievement! &e{player} has explored the skies for 100km!"
        commands
    :
         - "eco give {player} 10000"

      long_hauler
    :
        name
    : "Long Hauler"
        type
    : LONGEST_FLIGHT
        value
    : 5000
        broadcast
    : true
        message
    : "&6&lAchievement! &e{player} completed a single flight of over 5,000 blocks!"
        commands
    :
         - "eco give {player} 2500"
    #      - "effect give {player} EMERALD_SPARK"

      boost_enthusiast
    :
        name
    : "Boost Enthusiast"
        type
    : BOOSTS_USED
        value
    : 500
        broadcast
    : true
        message
    : "&6&lAchievement! &e{player} has used their elytra boost 500 times!"
        commands
    :
         - "eco give {player} 1000"

      survivor
    :
        name
    : "Survivor"
        type
    : SAVES
        value
    : 25
        broadcast
    : true
        message
    : "&6&lAchievement! &e{player} has been saved from certain doom by their elytra 25 times!"
        commands
    :
         - "eco give {player} 1000"
    #      - "lp user {player} permission set elytraessentials.effect.heart"
     
    In case any of the commands are not able to be performed by the console, it will continue with the next, logging in to the console the ones that didn't work. This way, players don't lose rewards based on a misleading configuration.

  • Added a new command to repair the plating of an armored elytra and created a new permission to allow players to do it, elytraessentials.command.armor.repair
  • Removed an external dependency that the plugin had (PlayerArmorChangeEvent) for handling player-equipping armor. Now the plugin should handle these scenarios independently.
  • Fixed a bug where a java.lang.IllegalArgumentException was being thrown in some versions by this external dependency.
  • Fixed a bug where the elytra were not automatically deploying in the air upon a charged jump.
  • Fixed a bug where players could perform a charged jump without an elytra equipped.

Note: Please do a backup of your old config.yml file and delete it to have access to the new features ( this is mandatory). Also, check the documentation since it was updated.
----------, Jul 8, 2025

Changelog:
  • Introduced a new Charged Jump feature, allowing players to launch into the air from the ground by holding sneak and right-click with the boost item. For this to work, you need to have the boost feature enabled.
  • Added a new permission elytraessentials.elytra.chargedjump to allow the use of this.
  • Added new properties in the config.yml (reset is recommended)
    Code (YAML):
     
    charged-jump
    :
      # Set to true to enable the charged jump feature from the ground.
      enabled
    : true

      # The time in seconds it takes to fully charge the jump.
      charge-time
    : 2

      # The strength of the upward launch. 1.5 is a strong vertical boost.
      jump-strength
    : 1.5
     
    [​IMG]

  • Added a unique Item History to each Armored Elytra, tracking the original forger, total damage absorbed, and how many times its plating has shattered.
  • Improved the /ee armor command to display a visual progress bar for "Armor Plating" durability, making it easier to see the item's status at a glance.
    [​IMG]
  • Fixed a bug where players could be put into combat tag by their actions (e.g., self-inflicted damage).
  • Fixed a bug where damage reduction from enchantments stored on Armored Elytras was not being applied correctly.

Note: In this update, I'm removing the production warning. However, take into account that this plugin can still hold bugs, so if you find any, please report them to me.
----------, Jul 5, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added a new Combat Tag feature to disable elytras during combat, enabling server owners to choose from different options. Players with permission elytraessentials.bypass.combattag can bypass this.
  • Added new properties in the config.yml (reset is recommended)
    Code (YAML):
     combat-tag :
        # Set to true to disable a player's elytra for a short time after they take damage while flying.
        enabled
    : true # [Default: true]

        # How long (in seconds) the player is prevented from gliding after being hit.
        duration
    : 10

        # If true, the player will be protected from the fall damage that occurs
        # immediately after their elytra is disabled by combat.
        prevent-fall-damage
    : true # [Default: true]

        # Set to true to only disable elytra from player-inflicted damage.
        # Set to false to disable elytra from ANY damage source (players, mobs, environment).
        player-damage-only
    : true   # [Default: true]

  • Implemented the /ee importdb command for administrators to restore SQLite database backups.
  • Added configurable Money and XP costs for using the forge to craft or revert armored elytras.
  • Improved the elytra boost cooldown logic for better reliability.
  • Improved the update plugin notification on player join to be interactive.
  • Added missing commands on the /ee help menu.
  • Added new configurable messages for the forge system in messages.yml (reset is recommended)
    Code (YAML):
    # Forge Messages
    forge-successful
    : "&aYou have successfully forged an Armored Elytra!"
    revert-successful
    : "&aYou have successfully reverted your Armored Elytra."
  • Added support for Minecraft version 1.21.7.

Note: Even though I'm not comfortable saying this plugin is production-ready, it is already being used on some production sites and is running smoothly. I expect to remove this warning soon.
Any feedback is appreciated!
----------, Jul 3, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added +18 new cosmetic effects and implemented a full pagination system for the shop GUI.
  • Introduced the /ee effects clear command to allow players to deactivate their current particle trail.
  • Added the /ee stats <player> command for viewing another player's flight statistics. Only admins have access to this by default
    Implemented an interactive menu for /ee top to browse leaderboards.
  • Fixed a bug where flight durability was not preserved when forging or reverting an Armored Elytra, preventing a "free repair" exploit.
  • Fixed an issue where enchantments from the original elytra were lost during the forging process.
  • Corrected the revert process to properly transfer armor plating durability back to the resulting chestplate.
  • Added dynamic color-coding to the "Armor Plating" lore to visually represent its current durability.
  • Fixed a bug where the elytra's flight durability check was not being applied correctly on damage events.
  • Introduced new permission nodes for all new commands (check documentation).

Note: Next update, I will be adding support to 1.21.7 as long as other improvements and features.
----------, Jun 30, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Revamped messages.yml with new and reorganized configurable messages.
  • Redesigned the /ee stats command output for a cleaner, more polished display.
  • Added a "New Record" notification with a sound effect when a player breaks their longest single flight distance.
  • Introduced automatic hourly backups for SQLite databases, storing up to 24 recent copies (one full day) before replacing the oldest file.
  • Added the Armored Elytra feature. Fuse any chestplate with an elytra in the new /ee forge GUI to combine flight with protection. This process is fully reversible.
  • Added new setting in config.yml to disable armored elytras.
  • Added the /ee armor command to check the status and remaining "Armor Plating" durability of a worn Armored Elytra.
  • Introduced new permission nodes for all new commands and features.
  • Fixed a bug where the TPS handler would spam the console. Lag protection now only activates after 10 consecutive seconds of low TPS.

Note: The new Armored Elytra system is in its initial release. While tested, this is a complex feature, and I will be actively polishing it and handling edge cases in the coming days. Your feedback and bug reports are highly valued and appreciated.
----------, Jun 29, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Introduced a leaderboard system with three categories:
    • Total Distance Flown, Total Flight Time, and Longest Single Flight.
  • Added the /ee top <category> command to view the top 5 players for each leaderboard.
  • Implemented full tab-completion for all /ee commands, making them more user-friendly and easier to use.
  • Redesigned the /ee help command with a cleaner, more organized layout.
  • Added new permission nodes for the /ee stats and /ee top commands to allow server administrators to control access.
Code (YAML):
         
elytraessentials.command.stats
:
  default
: true
  description
: "Allows the use of /ee stats command"
elytraessentials.command.top
:
  default
: true
  description
: "Allows the use of /ee top command"
 
----------, Jun 26, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added SQLite support and made it the default storage type for the plugin.
  • Fixed a bug in owned effects GUI for OP players where the effects where not showing...
  • Changed storage section in config.yml so users can choose from SQLite and MYSQL for storage type.
Code (YAML):

storage
:
  # The type of storage to use.
  # Options: SQLITE (default), MYSQL
  type
: SQLITE

  # --- MySQL Settings ---
  # These are ONLY used if 'type' is set to MYSQL.
  mysql
:
    host
: localhost
    port
: 3306
    database
: elytraessentials
    username
: root
    password
:

Note
: Decided to make this update since there was a big issue not allowing the plugin to startup on servers that didn't use MySQL storage. This is fixed with the addition of SQLite as the default storage. However, there may be other bugs that I need to review so be patient please. :)
----------, Jun 25, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Expanded version support to include Minecraft 1.18 and newer.
  • Overhauled the Shop and Owned Effects GUIs with a new, more intuitive design.
  • Added four new cosmetic elytra effects to the Shop.
  • The elytra boost feature can now be enabled or disabled in the config (enabled by default).
  • Introduced a high-speed Super Boost, activated with Sneak + Right-Click while holding the boost item.
  • Added the /ee stats command to view personal flight and plugin-related statistics.
  • Added the ability to deactivate an active effect by right-clicking it in the Owned Effects GUI.
  • Added new PlaceholderAPI placeholders:
Code (YAML):

elytraessentials_total_distance
: "Total distance flown"
elytraessentials_total_flight_time
: "Total flight time"
elytraessentials_longest_flight
: "Amount of blocks traveled for the longest flight"
elytraessentials_average_speed
: "Player's fly average speed"
 
  • Added two new permissions regarding boost and superboost usage.
    Code (YAML):

    elytraessentials.elytra.boost
    :
      default
    : op
      description
    : "Allows the player to use the basic elytra boost with right click"
    elytraessentials.elytra.superboost
    :
      default
    : op
      description
    : "Allows the player to use the elytra super boost with right click + shift click"
     
  • Added visual feedback for boosts, including a temporary speedometer indicator and a particle explosion effect.
  • Fixed several bugs related to the /ee reload command to improve stability and prevent data loss.

Note: Next update I will be focusing in fixing any bugs, optimizing code and test the plugin on production environments.
----------, Jun 25, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added support for Minecraft 1.21.6.
  • Introduced a performance-saving feature that temporarily disables elytra effects when server TPS is low (<18).
  • Improved flight time commands to display time in a formatted, human-readable string instead of total seconds.

Note: The next update will be 1.0.0, which is intended to be a big update! Expect some bug fixes, GUI redesign to the shop and effects menus, boost system review, new stats command and more...
----------, Jun 20, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Now, if you are using placeholders %elytraessentials_flight_time% or %elytraessentials_flight_time_formatted% while the time limit feature is not enabled, instead of showing "0s" it will show "Not Enabled".
  • Added 2 settings in the config.yml, which are disabled by default.
    elytra-break-protection is designed to prevent players from taking fall damage if their elytra breaks mid-air. And then we have the kinetic-energy-protection setting, which is responsible for protecting the player if they hit a wall while flying.
Code (YAML):
  # Set to true to prevent players from taking fall damage when their elytra breaks mid-air.
  elytra-break-protection
: false # [Default: false]

  # Set to true to prevent players from dying when they fly into a surface at high speed.
  # This will not prevent players from dying if they do a nosedive and hit the ground
  kinetic-energy-protection
: false # [Default: false]

Next, I will add some performance tweaks to the elytra effects in case the server drops below 18 tps.
----------, Jun 20, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Implemented automatic recovery, which automatically restores x amount of flight time over a y interval (configurable). For example, you can have your players receive +10s to their total flight time every 5 minutes. By default, this feature is enabled, but it will only function if you enable the time limit configuration as well.
  • Fixed a critical bug where players' flight time would be reset to 0 upon plugin reload.
----------, Jun 18, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added a new setting "max-time" in config.yml for defining the max time a player can accumulate to fly with an elytra. By default is 600s (10min)
  • Fixed a colour bug on the shop and effects GUI items
  • Improved flight time handling in boos bar, adjusting automatically depending on the amount of seconds (similar to the formated time placeholder)
  • Fixed a bug where the players could boost infinitely, gaining an absurd amount of speed.
  • Added the option to remove the sound when boosting.

My next priority will be to add automatic recovery, where flight time will be restored automatically over a specified period. This is already implemented in the config.yml, as you can see, but it doesn't have any effect.
----------, Jun 17, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added support for 1.21.5
----------, Jun 15, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Implemented a shop system with customizable elytra flight effects that players can buy from and use.
  • Added a new file shop.yml, which allows server owners to tweak shop properties like price, name, lore and permission. Note that it is not possible to add custom effects, so don't make changes where you aren't supposed to.
  • Implemented a new database table, owned_effects, to store the active Elytra flight effect for each player, ensuring data is retained across sessions.
Code (YAML):

# You should just do changes on price, permission, name and lore other than that
# don't do any changes, otherwise it will break the shop system

shop
:
  FIRE_TRAIL
:
    price
: 1000.00
    permission
: "elytraessentials.effect.fire"
    name
: "&6Fire Trail"
    lore
:
     - "&7Leave a fiery trail!"
  WATER_TRAIL
:
    price
: 2000.00
    permission
: "elytraessentials.effect.water"
    name
: "&bWater Trail"
    lore
:
     - "&7Trails of water follow you!"
  ICE_SHARDS
:
    price
: 1500.00
    permission
: "elytraessentials.effect.ice"
    name
: "&aIce Shards"
    lore
:
     - "&7Shards of ice behind you!"
 
  • Added new commands
  • /ee shop - Opens the shop GUI
  • /ee effects - Opens the player owned effects GUI
  • Added new permissions:
    • elytraessentials.command.shop - Which is accessible to everyone by default
    • elytraessentials.command.effects - Which is accessible to everyone by default
    • elytraessentials.effect.* - Will give access to every effect in the shop
  • Improved file management classes in the codebase, as well as other improvements
Next update, I will add support for 1.21.5.
----------, Jun 15, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Ability to boost with a configurable item (feather by default) when flying with an elytra, allowing players to save fireworks.
  • Added a new section in the config to change some properties regarding boosting
Code (YAML):
 boost :
    # For more, check this: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
    item
: FEATHER

    # Sound played when using this boost item
    # For more, check this: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
    sound
: ENTITY_FIREWORK_ROCKET_LAUNCH

    # Players or groups with the permission 'elytraessentials.bypass.boostcooldown' can bypass this cooldown.
    cooldown
: 2000 # Cooldown time in milliseconds
  • Added a new permission elytraessentials.bypass.boostcooldown, which by default is 2000 milliseconds (2 seconds).
  • Added a new message elytra-boost-cooldown, in messages.yml so you can customise this message if you wish.

Next update, I will be focusing on creating a shop system that allows players to buy elytra effects while flying, adding a unique touch to your server.
----------, Jun 14, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added PlaceholderAPI support.
  • Added 2 placeholders to display the player's flight time.
Code (Text):
%elytraessentials_flight_time%
%elytraessentials_flight_time_formatted%
One will display the time in seconds, and the other will format it in hours, minutes, and seconds accordingly.
(Note that if you don't have the flight time option enabled, it will fallback to 0)
----------, Jun 13, 2025

Reminder: This plugin is still not production-ready, so use it at your own risk.

Changelog:
  • Added new config check-for-updates with default value to true;
  • Added new permission elytraessentials.update.notify to notify players upon newer plugin versions
----------, Jun 12, 2025

Resource Information
Author:
----------
Total Downloads: 1,438
First Release: Jun 12, 2025
Last Update: Aug 3, 2025
Category: ---------------
All-Time Rating:
4 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings