EmakiAttribute | Full-Pipeline RPG Combat with 43 Attributes
Complete RPG attribute and combat system — crits, penetration, dodge, block, elemental damage, all included.
EmakiAttribute | Full-Pipeline RPG Combat with 43 Attributes
EmakiAttribute is a complete RPG attribute and combat system. It brings 43 built-in attributes, 3 damage types, and a carefully designed damage calculation pipeline to Minecraft, giving your server MMORPG-level combat depth. From simple attack/defense values to complex elemental systems, everything is configurable.
43 Built-in Attributes
Physical Attack (7)
`physical_attack`, `physical_crit_rate`, `physical_crit_damage`, `physical_damage_bonus`, `physical_armor_penetration`, `lifesteal`, `percentage_lifesteal`
Projectile Attack (6)
`projectile_attack`, `projectile_crit_rate`, `projectile_crit_damage`, `projectile_damage_bonus`, `projectile_penetration`
Spell Attack (5)
`spell_attack`, `spell_crit_rate`, `spell_crit_damage`, `spell_damage_bonus`, `magic_penetration`
Defense (11)
`physical_defense`, `projectile_defense`, `spell_defense`, `dodge_chance`, `physical_crit_evasion`, `projectile_crit_evasion`, `magic_crit_evasion`, `physical_crit_multiplier_resistance`, `projectile_crit_multiplier_resistance`, `magic_crit_multiplier_resistance`, `lifesteal_resistance`
Resources (4)
`health`, `health_regen`, `mana`, `mana_regen`
General (6)
`attack_speed`, `movement_speed`, `real_damage`, `attribute_power`, `entity_scale`, `speed`
All attributes are fully customizable via YAML — display names, lore formats, value ranges, and stacking behavior.
Damage Pipeline
When an attack occurs, EmakiAttribute processes damage through this pipeline:
1. Damage Messages — Collect all attacker attributes (from equipment, gems, strengthening, sets, etc.) 2. Damage Messages — Physical / Projectile / Spell based on attack method 3. Damage Messages — Attack × (1 + damage bonus%) 4. Damage Messages — Crit rate vs crit evasion; on crit, multiply by crit damage (reduced by crit multiplier resistance) 5. Damage Messages — Reduce target defense by penetration value 6. Damage Messages — Remaining defense reduces damage via formula 7. Damage Messages — Dodge rate determines if damage is nullified entirely 8. Damage Messages — Add flat true damage (ignores all defense) 9. Damage Messages — Calculate healing from final damage (reduced by lifesteal resistance) 10. Damage Messages — Send combat info to attacker and target
Resource System
- Define unlimited custom resources (health, mana, rage, energy, stamina, etc.) - Independent max value, min value, and regen rate per resource - Natural regeneration at configurable tick intervals - Optional sync to Bukkit native attributes (e.g., health) - Full on init option (start at max value) - API for other plugins to consume/restore resources
Condition System
Equipment and items can have usage conditions — attributes only apply when conditions are met:
- Level requirements, permission checks, placeholder conditions - Expression syntax using `{variable}` format - `all_of` / `any_of` combination logic
Lore Format Engine
Customize how attributes display in item lore via template files in `lore_formats/`:
- Independent display template per attribute - Color codes and placeholder support - Percentage and flat value formats - Different colors for positive/negative values
Damage Messages
Customizable combat messages sent to attacker and target with rich placeholders:
| Placeholder | Description | | ----------------------- | ------------------------------------ | | `{damage}` | Final damage value | | `{damage_type}` | Damage type name | | `{attacker_name}` | Attacker name | | `{target_name}` | Target name | | `{attacker_health}` | Attacker current health | | `{attacker_max_health}` | Attacker max health | | `{target_health}` | Target current health | | `{target_max_health}` | Target max health | | `{distance}` | Distance between attacker and target | | `{is_crit}` | Whether the hit was a crit | | `{element}` | Element type |
Skill Damage Integration
When EmakiSkills is installed, skill scripts can use `attribute_damage` to route skill damage through the full EA pipeline — crits, penetration, dodge, defense, lifesteal, and messages all apply.
PAPI Placeholders
| Placeholder | Description | | ---------------------------------------- | ------------------------------ | | `%emakiattribute_<attribute_id>%` | Current attribute value | | `%emakiattribute_resource_<id>_current%` | Resource current value | | `%emakiattribute_resource_<id>_max%` | Resource max value | | `%emakiattribute_resource_<id>_regen%` | Resource per-second regen rate |
Commands
| Command | Description | | --------------------------------------------------------- | ------------------------------ | | `/ea reload` | Reload configuration | | `/ea dump [player]` | Output full attribute snapshot | | `/ea resource <player> <resource> set/add/remove <value>` | Manage player resources | | `/ea inspect` | Inspect held item attributes |
Permissions
| Permission | Description | | ----------------------- | ------------------------ | | `emakiattribute.use` | Base usage permission | | `emakiattribute.reload` | Reload permission | | `emakiattribute.admin` | Administrator permission | | `emakiattribute.dump` | View attribute snapshot |
Requirements
| Item | Requirement | | ----------------- | --------------------------- | | Server | Spigot 1.21+ | | Java | 21+ | | Hard Dependencies | EmakiCoreLib | | Soft Dependencies | EmakiSkills, PlaceholderAPI |
View Full Wiki Documentation | Join Discord Community | QQ Group