A datapack implementing a unique new alternative to Netherite armor focused on aesthetics.
This datapack aims to provide a balanced, survival-friendly alternative to Netherite armor, including a unique obtaining method.
The focus on aesthetics revolves around allowing players to show their skins without sacrificing defense. This is done by compacting a typical end-game armor set into a single item which is retextured using a complementary resource pack.
Acquiring the new alternative, Radiance, requires significant effort. A player must defeat a customised Wither Skeleton, summoned by equipping a Wither Skeleton with a full set of highly-enchanted Netherite armor (which is consumed on summon).
Summoning a customised Wandering Trader requires a Villager and a Diamond Chestplate, both of which are consumed on summon, as well as Phantom Membranes and Nether Stars used in trades to upgrade a Radiance.
Equipping a Radiance will forcibly unequip any other armor (except leather) on the player, meaning that players can't stack the effects of Radiance with other armor. Additionally, the default Radiance also prevents players from equipping Elytra unless upgraded through the custom Wandering Trader.
Radiance provides the wearer with the highest Enchantment Protection Factor possible (20), providing the wearer with damage reduction slightly below that of a full set of Protection IV Netherite armor. Additionally, Radiance provides the wearer with +4 Knockback Resistance (same as a full set of Netherite Armor).
Player health remaining after a hit on Hard difficulty from full health (20.0):
Armor | Zombie (unarmed) | Enderman | Vindicator (Iron Axe) |
---|---|---|---|
Radiance | 19.1 | 17.9 | 16.1 |
Flight Netherite (all Protection IV) | 18.684093 | 16.621223 | 12.866212 |
Full Netherite (all Protection IV) | 19.61768 | 18.92648 | 17.50088 |
Note: regular Netherite armor calculates damage reduction using Armor, Armor Toughness, and Enchantment Protection Factor (EPF), whereas Radiance relies solely on EPF (hence the value for flight Netherite v. Vindicator).
Data obtained using a repeating command block set to tellraw @p {"nbt":"Health","entity":"@p"}
This datapack was developed in 1.17 ("pack_format": 7
) but should be compatible with versions using an equivalent or greater pack_format
, barring major changes to commands/datapacks.
- Download:
- Repository as a
.zip
(Code > Download ZIP) - Release (will need to unzip before installing into a save)
- Repository as a
- Install into a save like any other datapack.
- (Optional) Copy the bundled
radiance_visual
resource pack into.minecraft/resourcepacks
- Vanilla Minecraft currently doesn't support using
CustomModelData
to override armor models (feedback post), so the current options are to:- Make all Radiance render as a Golden Helmet when equipped (default)
- Make all Golden Helmets render as a Radiance when equipped (manually rename)
- In
radiance_visual/assets/minecraft/textures/models/armor/
, renameradiance.png
togold_layer_1.png
- In
- Vanilla Minecraft currently doesn't support using
- Open the advancement menu to the Schwer tab to view the intended hints.
Horned Wither Skeleton is a custom Wither Skeleton variant that can be visually identified by the End Rod protruding from their forehead and lack of weapon.
Horned Wither Skeletons have increased health (100/20), follow range (24/16), movement speed (0.3/0.25), and attack damage (20/4), as well as higher knockback resistance (0.6). Additionally, they do not despawn naturally.
Horned Wither Skeletons do not drop anything, however, defeating one grants the killer the hidden advancement kill_horned_reward
. This advancement rewards the recipient with a Fragile Radiance. Note that since this is an advancement reward, it is only obtainable through player kills.
Wither Skeletons can be converted to Horned Wither Skeletons by equipping them with highly-enchanted Netherite armor (as specified by the predicate has_required_armor
).
Netherite Helmet | Netherite Chestplate | Netherite Leggings | Netherite Boots |
---|---|---|---|
Unbreaking III | Unbreaking III | Unbreaking III | Unbreaking III |
Mending | Mending | Mending | Mending |
Protection IV | Protection IV | Protection IV | Protection IV |
Respiration III | Feather Falling IV | ||
Aqua Affinity | Depth Strider III | ||
Soul Speed III |
Horned Wandering Trader is a custom Wandering Trader variant that can be visually identified by the End Rod protruding from their forehead.
Unemployed Villagers can be converted to Horned Wandering Traders by equipping one with a Diamond Chestplate named Wanderer's Spirit using a Dispenser. Both the Villager and the Diamond Chestplate are consumed in the process. A Horned Wandering Trader will despawn 6000 ticks (5 minutes) after it is summoned.
Horned Wandering Traders have the same trades as regular Wandering Trader offers, except the first two offers overwritten by the custom Radiance trades.
Buy | BuyB | Sell |
---|---|---|
Unbreakable Radiance | Phantom Membrane (16) | Radiance (+ Aether Affinity) |
Fragile Radiance | Nether Star (3) | Unbreakable Radiance |
Radiance is the new alternative to Netherite armor and has three variants: Fragile, Unbreakable, and Aether.
All Radiance provide +4 Knockback Resistance and are enchanted with:
- Protection ※ (XX)
- Respiration III
- Depth Strider III
- Soul Speed III (this enchantment only works on boots)
- Aqua Affinity
Fragile Radiance is the base Radiance obtainable by killing a Horned Wither Skeleton. As per its name, it has limited durability (same as a Golden Helmet; 77).
Unbreakable Radiance is an upgrade to Fragile Radiance that can be obtained by trading with a Horned Wandering Trader. As per its name, this variant is unbreakable.
Aether Radiance is an upgrade to Unbreakable Radiance that can be obtained by trading with a Horned Wandering Trader. This variant adds the Aether Affinity (pseudo-)enchantment that allows the wearer to equip both Radiance and Elytra at the same time.
- All Radiance have
CustomModelData:115114100
and custom tagsrd_radiance
- Fragile and Unbreakable Radiance have
srd_radiance:1
- Aether Radiance have
srd_radiance:2
A Kitsune can revert a Radiance back into a Fragile Radiance using (exactly) 16 Glowstone Dust. This is useful if you have altered the NBT tags (e.g. renaming), as the Horned Wandering Trader won't accept modified Radiance.
Split between 'Available' (i.e. fine to call using /function
) and 'Internal' (not intended to be called by /function
).
Ordered alphabetically.
Removes the presence of this datapack by:
- Clearing the scheduled
tick
function - Killing all Horned Wither Skeletons (entities tagged
srd_horned
) - Killing all Horned Wandering Traders (entities tagged
srd_trader
)
Any existing Radiance items will remain (though armor incompatibility will be inactive).
Note that since it is possible that unloaded chunks contain tagged entities, this can't guarantee to completely remove the presence of this datapack (i.e. some Horned Wither Skeletons and Horned Wandering Traders may still exist).
Gives the target entity (only succeeds for players) a Radiance with Aether Affinity.
Not used internally.
Gives the target entity (only succeeds for players) a Fragile Radiance.
Called by kill_horned_reward
, which is a reward function for hidden advancement kill_horned_reward
.
Gives the target entity (only succeeds for players) an Unbreakable Radiance.
Not used internally.
Summons a Horned Wither Skeleton at the target location.
Called internally by convert_horned
.
Summons a Horned Wandering Trader at the target location.
Horned Wandering Traders are summoned with default Wandering Trader offers, with the first two offers overwritten by the custom Radiance trades.
Called internally by convert_trader
.
Checks all players equipped with Radiance for incompatible armor and calling force_unequip_
[chest
/legs
/feet
] on them as required.
Uses predicates which use tags aether_radiance_incompatible
(chainmail, iron, gold, diamond, and netherite | chestplates, leggings, and boots) and radiance_incompatible
(#aether_radiance_incompatible
and Elytra).
Run from tick
.
Summons a Horned Wither Skeleton through summon_horned
, replacing the target entity. Also handles conversion sound and particle effects.
Called by tick
on Wither Skeletons that match the predicate has_required_armor
.
Summons a Horned Wandering Trader through summon_trader
, replacing the target entity. Also handles conversion sound and particle effects.
Called by tick
on unemployed Villagers that are equipped with a Diamond Chestplate named Wanderer's Spirit.
Forcibly unequips the specified armor slot of the target entity by copying the item into a new Item entity using summon_copy
and replacing the slot with air.
Called by armor_check
on players that match certain predicates (refer to armor_check
).
A reward function called by hidden advancement kill_horned_reward
that calls give_fragile_radiance
for the recipient.
Sets up this datapack by starting the tick
loop.
Called through Minecraft's load.json
.
Summons a new Item entity and cuts the Item
nbt from schwer:srd_store
. Also sets the Item's Thrower
to the target entity's UUID to mimic normal item throwing.
Called by force_unequip_
[chest
/legs
/feet
].
The main update loop. Handles the conversion of Wither Skeletons to Horned Wither Skeletons and unemployed Villagers to Horned Wandering Traders, as well as Radiance armor checking.
Initialises from load
.
kitsune/revert_radiance_check
- Uses predicate
kitsune/radiance_check
to check if held item is a Radiance - Checks if the blessing material is exactly 16 Glowstone Dust
- Uses predicate
kitsune/revert_radiance
- Sets the target Kitsune's held item to a Fragile Radiance
- Consumes the blessing material
(Roughly in personal use order)
- Minecraft Wiki
- Used as a reference for various NBT data and commands
- Misode's Data Pack Generators
- Used to help generate predicates and advancements
- MCStacker
- Used to generate
/summon
commands
- Used to generate
- Minecraft UUID Converter
- Used to convert the helmet attribute modifer UUID listed on the Minecraft Wiki from hyphenated hexadecimal to an int array
- Fabian Röling — Target specific inventory slot
- Pointed me towards using
Inventory[{Slot:103b}]
- Pointed me towards using
- Vanilla Tweaks — Golden Crown
- Used to set up the resource pack structure
- BronGhast014 — How to use Custom Model Data in Minecraft!
- Used to learn how to create model overrides
- kitsune
- Integration