Tags
Creators
Details
Licensed GPL-3.0-only
Published 7 months ago
Updated 2 months ago
All versions
1.8.0
Release
EmakiAttribute 1.8.07 months ago 13
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Paper
Purpur
Changes
EmakiAttribute Changelog
[1.8.0] - 2026-03-31
New Features
Attribute Damage Action System
- Added the
AttributeActionsregistry for managing the registration and unregistration of attribute-related actions. - Added the
AttributeDamageActionaction, supporting the infliction of custom damage based on attributes within the action system. - Action Parameters:
amount(required): Base damage value.type(optional): Damage type ID, defaults to the type configured in settings.cause(optional): Damage cause, defaults toCUSTOM.
- Automatically integrated into the
EmakiCoreLibaction registration system, supporting templated configuration and conditional execution.
Combat Feedback Enhancement
- Added a synthetic impact feedback system to enhance visual and auditory feedback after EA (EmakiAttribute) damage settlement.
- Mob entities will automatically have their aggression target set (
applyAggroTarget) after taking EA damage.- Automatically activates the Mob's
awareandaggressivestates. - Sets the attacker as the target, improving combat AI response.
- Automatically activates the Mob's
- Improved impact animation handling (
playSyntheticImpact).- Unified the logic for playing impact animations.
- Supports playing custom hurt sounds.
- Ensures visual feedback is closer to vanilla Minecraft's performance.
Configuration Changes
Configuration Version Upgrade
- Configuration version upgraded from
1.1to1.2.
New Configuration Options
synthetic_hit_feedback.knockback: Whether to enable synthetic knockback effect (default: true).synthetic_hit_feedback.knockback_strength: Knockback strength (default: 0.4).synthetic_hit_feedback.hurt_sound: Whether to play hurt sound (default: true).
Code Improvements
EmakiAttributePlugin
- Added the
registerCoreLibActions()method to register attribute actions when the plugin loads. - Added the
unregisterCoreLibActions()method to unregister attribute actions when the plugin unloads. - Improved lifecycle management to ensure proper initialization and cleanup of the action system.
DamageCalculationService
- Added the
applyAggroTarget()method to handle Mob aggression target setting. - Refactored the
applyDirectDamage()method, extracting impact animation logic. - Added the
playSyntheticImpact()method to uniformly handle impact animations and sounds. - Improved the damage application process, enhancing combat feedback.
AttributeConfig
- Added the
syntheticHitKnockbackfield. - Added the
syntheticHitKnockbackStrengthfield. - Added the
syntheticHitHurtSoundfield. - Updated configuration parsing logic to support the new impact feedback settings.
Usage Notes
Action System Integration
- Ensure
EmakiCoreLibversion ≥ 1.11.0. - Attribute actions are automatically registered when the plugin loads; no manual configuration is needed.
- The action ID is
attributedamageand can be used in action templates.
Combat Feedback Configuration
- New configuration items use default values; old configuration files do not require modification.
- If you need to customize impact feedback, add the
synthetic_hit_feedbacksection inconfig.yml. - Recommended range for knockback strength: 0.1 - 1.0.
Compatibility
- Deeply integrated with
EmakiCoreLib 1.11.0. - Maintains backward compatibility with older configuration file versions.
- New features are optional and do not affect the existing combat system.
Known Issues
- None
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ZzBwu6WX:p7RvuNTT"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ZzBwu6WX:p7RvuNTT"
}

