Ascend: Ailments
Ascend: Ailments is primarily a library and shared combat framework used by my other mods. It adds a collection of reusable status effects that weapons, abilities, mobs, datapacks, and other mods can apply consistently.
You can install it by itself, but it does not add a large collection of weapons, spells, or progression systems on its own. Most of its content is intended to be used by other mods, particularly mods in the Ascend ecosystem.
Ascend itself is optional. When it is installed, the attacker’s Arcane stat improves ailment duration and strengthens Bleed and Soul Rot. Without Ascend, every ailment still works normally.
Included effects
Soul Rot - Makes the victim take more damage and receive much less healing. On players, it also rapidly drains hunger and prevents food and saturation from recovering while the effect remains active. It can stack up to five times.
Bleed - Deals repeated damage and becomes faster and stronger as additional stacks are applied. At two or more stacks, Bleed damage fills a Hemorrhage meter. When the meter becomes full, the victim suffers a burst of damage based on their maximum health. Undead creatures and creatures without blood, such as golems, cannot normally Bleed.
Fracture - Breaks through the victim’s defenses by reducing armor and armor toughness. It stacks up to three times, removing 2 armor and 1 armor toughness per stack.
Fear - Forces ordinary mobs to flee from whoever caused the effect. Feared players are prevented from approaching the source and become slowed and weakened when too close. Powerful creatures may resist Fear, while bosses are immune.
Charm - Prevents a charmed mob from targeting or attacking the character who charmed it. Charmed targets are more vulnerable to their source, deal less damage to that source, and deal more damage to others.
Taunt - Forces mobs to target the character who taunted them and makes affected players face the taunter. Taunted targets take additional damage and deal additional damage to their taunter.
Overcharm - A beneficial effect for the attacker. Hitting another creature applies Charm to it. Direct player melee attacks deal additional damage if the victim was already charmed by that same attacker before the hit.
Winded - Reduces movement speed and attack speed, making the affected creature slower in both movement and combat.
Effect values, durations, stacking limits, Arcane scaling, immunities, Hemorrhage behavior, PvP cooldowns, and weapon integration can be changed in ascend-ailments-common.toml.
Using the effects in other mods
Developers should apply ailments through AilmentApi. This preserves the effect’s source, performs immunity and PvP checks, handles stacking, and applies optional Arcane scaling correctly.
import net.fretux.ailments.api.AilmentApi;
// target and source are LivingEntity instances
AilmentApi.applyBleed(target, source);
AilmentApi.applySoulRot(target, source);
AilmentApi.applyFracture(target, source);
AilmentApi.applyFear(target, source, 100);
AilmentApi.applyCharm(target, source, 100);
AilmentApi.applyTaunt(target, source, 100, 0);
AilmentApi.applyOvercharm(target, source, 200);
AilmentApi.applyWinded(target, source, 60);
Durations are measured in ticks; Minecraft runs at 20 ticks per second. The methods return true when the ailment was accepted and false when it was rejected—for example, because the target was immune or a PvP proc was still on cooldown.
The uniform API is useful for skill systems and data-driven integrations:
import net.fretux.ailments.api.AilmentApi;
import net.fretux.ailments.api.AilmentApplication;
import net.fretux.ailments.api.AilmentType;
boolean applied = AilmentApi.applyEffect(
target,
source,
AilmentType.FEAR,
100,
0
);
int appliedCount = AilmentApi.applyEffects(
target,
source,
AilmentApplication.stack(AilmentType.BLEED),
AilmentApplication.timed(AilmentType.WINDED, 60)
);
AilmentApplication.stack(...) uses the library’s configured stacking behavior and supports Bleed, Soul Rot, and Fracture. AilmentApplication.timed(...) applies an explicit duration and amplifier.
The API also provides methods for:
- Reading Bleed, Soul Rot, and Fracture stack counts
- Finding the source of a sourced ailment
- Checking Bleed and mental-control immunities
- Reading or clearing Hemorrhage progress
- Getting the registered Minecraft effect for an
AilmentType - Removing all ailments and their stored data from an entity
Avoid applying the registered effects directly with addEffect when source-dependent behavior is needed. Fear, Charm, Taunt, Arcane scaling, PvP protection, and damage attribution rely on the source information recorded by AilmentApi.
Datapack and item integration
Weapons can apply ailments on direct melee hits by adding them to these item tags:
ascend_ailments:bleed_on_hit
ascend_ailments:soul_rot_on_hit
ascend_ailments:fracture_on_hit
ascend_ailments:fear_on_hit
ascend_ailments:charm_on_hit
ascend_ailments:taunt_on_hit
ascend_ailments:overcharm_on_hit
ascend_ailments:winded_on_hit
Example:
{
"replace": false,
"values": [
"your_mod:your_weapon"
]
}
Entity compatibility can be extended with:
ascend_ailments:bleed_immune
ascend_ailments:mental_control_resistant
ascend_ailments:mental_control_immune
Modded weapons whose registry names contain common katana-family terms also apply Bleed automatically by default. This behavior and its recognized keywords are configurable.
Requirements
- Minecraft 1.20.1
- Forge 47+
- Ascend is optional
- Mod ID:
ascend_ailments
