Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Creators
Details
This mod reworks Minecraft’s damage invulnerability mechanic, similar to NoDamI or BetterHurtTime, but with a slightly different approach.
It allows most sources of damage to bypass the default invulnerability period and affect entities more consistently without causing knockback by default, preserving a more “vanilla” feel.
You can configure which types of damage are affected, whether knockback is applied, and how damage information is logged via the in-game configuration interface.
The configuration interface also supports translations.
Bypass Invulnerability Predicate
The default predicate for bypassing invulnerability time is:
getEntityType(entity) != 'minecraft:player' && !include(getSourceTags(source), 'neoforge:is_environment')
This means that players remain protected by invulnerability time, and environmental damage sources (such as fire or sweet berry bushes) are excluded.
Knockback Predicate (Vanilla Fix)
This mod also fixes a vanilla knockback issue:
In vanilla Minecraft, if an entity is currently invulnerable due to environmental damage (e.g. fire), hitting it with a melee attack will not cause knockback, which negatively affects combat flow.
This mod adds a configurable “Applies Knockback Predicate”, allowing you to control when knockback should be applied even during invulnerability frames.
By default, the predicate is:
include(getSourceTags(getLastDamageSource(entity)), 'minecraft:no_knockback')
Using this predicate lets the mod restore appropriate knockback behavior for cases where the last damage source matches the predicate, while keeping the setting fully customizable.
Expression API
For advanced customization, this mod uses AviatorScript as the expression language.
You can find its documentation here: AviatorScript Wiki.
See the configuration file for details on the available API.
Available variables:
LivingEntity entity
DamageSource source
Available methods:
String getEntityType(Entity entity)
Set<String> getEntityTags(Entity entity)
String getSourceType(DamageSource source)
Set<String> getSourceTags(DamageSource source)
String getItemType(ItemStack stack)
Set<String> getItemTags(ItemStack stack)
DamageSource getLastDamageSource(Entity entity)
Entity getEntity(DamageSource source)
Entity getDirectEntity(DamageSource source)
ItemStack getWeaponItem(DamageSource source)
Logging
You can enable log = true in the mod configuration to output detailed damage information to the log for debugging purposes.
The logging function can also be customized to return a HashMap, allowing full control over the log output format.



