Enchantment Decay

Enchantment Decay

Mod

Watch your enchantments decay as you use them, and make sure to keep them leveled up

Client or server EquipmentMagicUtility

685 downloads
10 followers
Created6 months ago
Updated4 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

Enchantment Decay

Magic is an incredible force, coming from days of old, that allows you to improve your power over the world. One of the traces remaining of this ancient knowledge that you could stumble upon on your travels is Enchantments. But as time passed by, this knowledge eroded, and even that you may get from the few remains of the old civilisation that mastered this art isn't even perfect. And yet, you were able to recreate it. You were able to put together your own enchanting table, and infuse the very power accumulated throughout your journey into your very tools. But as expected, all the knowledge you could accumulate is still lacking, and you realize that as you make use of your enchanted gear, the magic slowly wears off...

⚠️ this mod, as it stands, is highly unbalanced. Hence, any input about how to improve that would be gladly welcome. Please share those on the appropriate Github discussion

How it works

Enchantments each have a more or less specific way to affect your life. This mod will hook itself on many occasions upon which enchants are used, and register their use as a potential source of decay. Hence, each time an enchantment affects your gameplay, there will be a chance it decays a small bit. And when the decay reaches a certain level, the enchantment will go down a level, and the decay reset.

You will be able to see the decay level of you tool next to the enchantment name. But as you will venture the world, when you discover enchanted loot, there will be a chance it is immune to decay. You will recognize these occurences with a green ˣ before the name.

How to configure

In your game's config folder, after the first launch, will be generated a enchantment_decay.properties file. Within this file, you will find everything you need to configure the mod.

Default values

The configuration file includes a few default values for the mod to use, including:

  • The default max decay: This value indicates how much can an enchantment decay, by default
  • The default decay probability: This value indicates, out of a hundred, the probability for an enchantment to decay upon use, by default. Set to 0 to disable all decay by default.
  • The loot decay probability: This value indicates, out of a hundred, the probability for an enchantment applied on some generated loot to already have some decay. This will not affect decay immune enchantments. Set to 0 to disable all decay on generated loot.
  • The loot decay max percentile: This value indicates the maximum percentile an enchantment generated upon loot can be decayed, compared to the enchantment's maximum decay.
  • The decay immune loot probability: This value indicates, out of a hundred, the probability for an enchant applied on some generated loot to be decay-immune.

Enchantment-specific values

The configuration files also support some per-enchantment specific values:

  • The max decay: registered as decay.max.<namespace>.<path>, this value indicates the maximum decay value for instances of this very enchantment.
  • The decay probability: registered as decay.probability.<namespace>.<path>, the value indicates, out of a hundred, the probability for an instance of this enchantment to decay upon use.

Example:

decay.max.minecraft.efficiency=50
decay.probability.minecraft.efficiency=8

The above example would make it so any instance of the vanilla Efficiency enchantment will be able to have up to 49 as a decay value before going down a level, and that upon each use, it will have a 8% chance to decay.

Enchantments control

This mod uses enchantment tags in order to work. Each tag corresponds to a potential source of decay (suc as kill for killing, fall for falling, hurt for getting hurt, damage for when the gear piece gets damaged, etc.)

All of these enchantments are registered as enchantment_decay:decay/<name>, so under the data/enchantment_decay/tags/enchantments/decay/ folder within a datapack.

You can simply make use of a datapack in order to overhaul or add to these tags, thus being able to change which enchantment gets to decay on what occasion.

The blacklist tag is the one and only exception, as it defines enchantments that cannot decay. By default, this tag only contains curses.

Damage types

As of 1.20, Enchantment Decay also uses damage types, in order to apply decay on armor upon receiving certain types of damage. To do this, each decay source can be linked to a damage source tag, that will indicate whether the subject enchantments should be able to receive decay from such damage.

The used tags for this are all registered as enchantment_decay:decay/<name>, so under the data/enchantment_decay/tags/damage_type/decay/ folder within a datapack.

Showcase

External resources



Project members

RecraftorsMC

Owner

Nerjal_Nosk

Member


Technical information

License
LGPL-3.0-or-later
Client side
optional
Server side
optional
Project ID