Data Packs Quality of Life

Armor to Elytra

  • 14.9k views 1 today
  • save_alt 3k downloads 1 today
Compatibility
Minecraft 1.21
Changes include
    • 14
    • 17
    • 15
    ArwenOC
    Lvl 55Grandmaster Programmer
    114
    Armor To Elytra v 1.1.0 - 1.21.5 +

    Old Version: (1.17+ Version)
    Armor To Elytra is a datapack that lets you put elytra on your chestplates, letting you keep your protection while still being able to fly. Swoop into battle without switching to your chestplate!

    How to use:
    Throw an elytra on the ground, and right click with any chestplate in your hand. The chestplate will be transformed into an elytra, keeping all components and functionality as the chest you used to right click it, but will display and work as an elytra. To remove the elytra from the chestplate, throw the chestplate-elytra on the ground and right click it, and the chestplate and elytra will separate.

    Examples:
    Armor to Elytra Minecraft Data PackArmor to Elytra Minecraft Data Pack

    By ArwenOC

    2 Update Logs

    1.1.0 : by ArwenOC 08/19/2025 5:45:09 pmAugust 19, 2025 @ 9:45 pm UTC

    + Updated to add support for 1.21.5 and up
    LOAD MORE LOGS

    More like this

      Have something to say?

    ArwenOC
    08/19/2025 5:57 pm
    Level 55 : Grandmaster Programmer
    Recoded this and updated to 1.21.5. You can now take elytra and chestplates apart as show in the description gifs.
    1
    03/02/2022 12:57 pm
    This reply was removed by the poster or a moderator.
    jobins
    02/15/2022 2:31 pm
    Level 1 : New Miner
    And how do you take off?
    1
    ArwenOC
    02/16/2022 3:17 pm
    Level 55 : Grandmaster Programmer
    You don't. Applying a chestplate to an elytra is permanent
    1
    KuyRaisus
    08/12/2021 5:30 am
    Level 1 : New Miner
    How to make "Elytra to armor"
    2
    Xenithn
    08/10/2021 3:46 pm
    Level 1 : New Collective
    history
    Sadly the netherite elytra is not lava-proof. :\
    1
    ArwenOC
    08/10/2021 4:08 pm
    Level 55 : Grandmaster Programmer
    history
    I tried to apply that, but unfortunately nothing really worked. Sorry
    1
    Rignchen
    02/04/2022 1:13 pm
    Level 47 : Master Necromancer
    did you try that:

    advencemet that detect if you die + advencement that detect if you drop an item (inventory change + condition of having an item in a 1 block range)
    both of thoses advencement have for reward the same function witch:
    -revoke the both of the advencement advencements (else it will be a single use)
    -execute as every netherite elytra that don't have a certain tag another function

    what the second function does is:
    -giving them the certain tag
    -changing the data "Invulnerable" of the item to 1b
    1
    Rignchen
    02/04/2022 1:55 pm
    Level 47 : Master Necromancer
    history
    (I wrote all of that from head so there might be some mistakes)
    an exemple of how it can be: (what is between # and & is what you can change the name of)

    in the advencement file:
    #drop&.json
    {
    "criteria": {
    "#loot&": {
    "trigger": "minecraft:inventory_changed",
    "conditions": {}
    }
    },
    "requirements": [
    [
    "@e[​type=item,nbt={Item:[id:\"minecraft:elytra\",tag=#netherite_elytra&],distance=..1}"
    ]
    ],
    "rewards": {
    "function": "#namespace:netherite_drop&"
    }
    }
    #death&.json
    {
    "criteria": {
    "requirement": {
    "trigger": "minecraft:entity_killed_player"
    }
    },
    "requirements": [
    [
    "@e[​type=item,nbt={Item:[id:\\\"minecraft:elytra\\\",tag=#netherite_elytra&],distance=..1}"
    ]
    ],
    "rewards": {
    "function": "#namespace:netherite_drop&"
    }
    }

    in the functions file
    #netherite_drop&.mcfunction
    advencement revoke only #namespace:drop&
    advencement revoke only #namespace:death&
    execute as @e[​type=item,nbt={Item:[id:"minecraft:elytra",tag="#netherite_elytra&]},tag=!#lava&] run function #namespace:lava%
    #lava&.mcfunction
    tag @s add "#lava&"
    data merge entity @s {Invulnerable:1b}

    (there is some easier way to do it but they are well less optimised cause they use the main/tick.mcfunction witch is one of the less optimised file in a datapack (cause it executed 20 times per tick))
    1

    Welcome