
More RPG Library
Library for the More RPG Classes & More RPG Content Series.
Автор: Fichte2,2 млн172обновлён 24 окт. 2026 г.
ПриключенияБиблиотекиМагия
Описание

🚨Required Mods
- Spell Engine (+ all Dependencies of Spell Engine!)
- Spell Power Attributes
🌟Features
-On its own this Mod does not add spells, you need to install the class mods you want to add spells to your game
- This mod is used mainly as a library for the More RPG Classes & Content Series Mods
- Unique EntityAttributes used by different RPG Classes
- New Status Effects used by different RPG Classes
More information about the library can be found here.
🧙♂️Check out my RPG themed Mods using this Library
Want to play more RPG content? Check out the RPG Series Mods created by Daedelus!
Check out more RPG-Content created by other Spell Engine Dev's
Галерея
Последние версии
Все версии →release
2.8.1+1.21.1-neoforge
2.8.1+1.21.1-neoforge24 окт. 2026 г.569Minecraft: 1.21.1neoforge
Что нового
# 2.8.1 - 1.21.1
### Fixed
- Fixed a server crash (StackOverflow) when two players with high Damage Reflect hit each other
- The elemental weaknesses config now actually takes effect. Its default water and earth tag conditions and the water weakness/resistance entries were broken and are fixed. Delete `config/mrpg_lib/elemental_weaknesses.json` once so it regenerates with the new defaults
- Wither Pulse no longer uses a missing sound, which spammed the log with NullPointerExceptions
- Range scaled knockback now uses the real distance and range bonuses
release
2.8.1+1.21.1-fabric
2.8.1+1.21.1-fabric24 окт. 2026 г.465Minecraft: 1.21.1fabric
Что нового
# 2.8.1 - 1.21.1
### Fixed
- Fixed a server crash (StackOverflow) when two players with high Damage Reflect hit each other
- The elemental weaknesses config now actually takes effect. Its default water and earth tag conditions and the water weakness/resistance entries were broken and are fixed. Delete `config/mrpg_lib/elemental_weaknesses.json` once so it regenerates with the new defaults
- Wither Pulse no longer uses a missing sound, which spammed the log with NullPointerExceptions
- Range scaled knockback now uses the real distance and range bonuses
release
2.7.3+1.20.1-fabric
2.7.3+1.20.1-fabric23 окт. 2026 г.752Minecraft: 1.20.1fabric
Что нового
# 2.7.3+1.20.1
### Bug Fixes
- Fixed a server crash (StackOverflow) when two players with high Damage Reflect hit each other.
- The elemental weaknesses config now actually takes effect. Its default water and earth tag conditions and the
water weakness/resistance entries were broken and are fixed. Delete `config/more_rpg_classes/elemental_weaknesses.json`
once so it regenerates with the new defaults.
- Wither Pulse no longer uses a missing sound, which spammed the log with NullPointerExceptions.
- Range scaled knockback now uses the real distance and range bonuses.
release
2.7.3+1.20.1-forge
2.7.3+1.20.1-forge23 окт. 2026 г.705Minecraft: 1.20.1forge, neoforge
Что нового
# 2.7.3+1.20.1
### Bug Fixes
- Fixed a server crash (StackOverflow) when two players with high Damage Reflect hit each other.
- The elemental weaknesses config now actually takes effect. Its default water and earth tag conditions and the
water weakness/resistance entries were broken and are fixed. Delete `config/more_rpg_classes/elemental_weaknesses.json`
once so it regenerates with the new defaults.
- Wither Pulse no longer uses a missing sound, which spammed the log with NullPointerExceptions.
- Range scaled knockback now uses the real distance and range bonuses.
release
2.8.0+1.21.1-neoforge
2.8.0+1.21.1-neoforge11 окт. 2026 г.7,2 тыс.Minecraft: 1.21.1neoforge
Что нового
# 2.8.0 - 1.21.1
## For players
### ⚠️ BREAKING
- ⚠️ Mod id and namespace renamed `more_rpg_classes` -> `mrpg_lib` (registry ids, spells, tags, loot functions and entries such as `mrpg_lib:conditional_item`, custom impact handlers such as `mrpg_lib:knock_up_fixed`)
- Package renamed `net.more_rpg_classes` -> `com.mrpg_lib`, maven group `com.mrpg_lib`, archive base name `mrpg-lib`
- Everything that touches Spell Engine, Spell Power, playerAnimator, Ranged Weapon API or Critical Strike moved into `com.mrpg_lib.compat.<name>`
- `MoreParticles` split: the Spell Engine dependent particles moved to `compat.spell_engine.particle.MoreSpellParticles`; `client.particle.MoreParticles`
- `CustomMethods` split: `spellSchoolDamageCalculation` and `isEntityProtectedCheck` moved to `SpellEngineMethods`; `isEntityProtectedCheck` is deprecated, use `AllyHelper.canHelp`, `getHighestSpellSchoolPower` to `SpellPowerMethods`
- `StealthStatusEffect.stealthPopParticles()` is no longer abstract, it returns `Object` (default `null`) so the class no longer references Spell Engine types
- `MobSpellCastGoal` runs in real time now: it ticks every game tick and tracks cooldowns against world time, so `updateCooldown()` is a no-op and no longer needs to be called
### Changed
- Spell Engine and Spell Power are no longer required. Both are optional now.
- The mod id is now `mrpg_lib` it was `more_rpg_classes`.
- The config folder moved from `config/more_rpg_classes` to `config/mrpg_lib`.
- Frozen Solid, Soaked and Arcane Precision use standalone versions of the effects when Spell Power is not installed.
- Spells with a cast time now go off at the end of the cast, like for players, so the whole cast animation plays.
- Mob spells now respect the spell's delivery delay.
- Mobs mow charge spells like players. If charging adds range, they charge just enough to reach the target and use the spell from its full charged range.
- Otherwise, they charge fully, or release at the minimum charge when the target is very close.
- Buffed Burstcrack's Damage Power Coefficient
### Added
- `mrpg_lib:custom_cloud` entity, a generic lingering cloud, added mainly for Loot & Explore
- Mobs can play player animations (needs playerAnimator). This includes villagers, wandering traders, witches and illagers.
- Better Combat (optional): mobs that use the new melee goal attack with their weapon's combos, animations, hitboxes and weapon trails, with the same animation timing, slowdown while swinging and knockback rules as players.
- They can dual wield too: alternating hands, mirrored off-hand swings and Better Combat's dual-wield attack speed and damage multipliers.
- Weapons with a holding pose (like claymores, spears and glaives) are held in that pose whenever the mob carries them, with the same walking and two-handed rules as for players
- Combat Roll (optional): mobs that use the new roll goal can roll away when hurt, roll towards their target and dodge projectiles
- Spell casting mobs can cast arrow spells and stash spells
- Spell casting mobs can also use summon spells correctly now
- Spell casting mobs can now use melee weapon skills like Swift Strikes: they walk up to the target, dash forward when the skill has momentum, and hit everything in the swing's arc
- Spell casting mobs can cast spells with a custom delivery from other mods
- Upgrade crystals (T5 Class Armor Upgrade Crystals) are now affiliated loot: they drop more often for players carrying a spell book of a class they apply to
- Breaking: `ISpellCasterEntity.isCastingSpell()` is now `isMobCasting()`. The old name collides with vanilla's own `isCastingSpell` on spellcasting illagers, which broke the interface on NeoForge dev environments
- `MobSpellCastGoal`: `SpellTimings` with `withTimings(...)` (goal-wide or per spell; cast/channel seconds, cooldown seconds, channel ticks) and `withAnimations(true)` to play the spell's cast and release animations
- `MobSpellCastGoal` casts arrow spells (`SHOOT_ARROW`, `AFFECT_ARROW`) with real arrows, and stash spells (`STASH_EFFECT`, e.g. Power Shot) like on players.
- `MobSpellCastGoal` runs `CUSTOM` deliveries through Spell Engine, so handlers registered with `SpellHandlers.registerCustomDelivery` work for mobs (they get the mob as `caster`).
- `SpellBehaviorRegistry.targetDistance(min, max)`: ready-made condition to only cast a spell when the target is within a distance range
- Spell Engine summons of a mobSpellCaster treat it as their owner, so they follow and defend it and attack its target
- playerAnimator mob bridge (`compat.player_animator.api.MobAnimations`, `MobAnimationOptions`, `MobAnimationLayer` with `POSE`, `OFF_HAND_POSE`, `MISC`, `ATTACK`, `CASTING`, `RELEASE`, `DODGE`, client `MobModelAdapters`, built-in `VillagerModelAdapter`)
- Goals: `LongReachMeleeAttackGoal`, `WindupMeleeAttackGoal`, `PredicateGatedGoal`
- `BetterCombatCompat.createMeleeGoal(...)` (Better Combat combo melee for mobs, a plain `MeleeAttackGoal` without the mod) with `MeleeSettings` (`baseRange`, `intervalScale`, `animations`, `resetInvulnerability`, `weaponTrails`), and `BetterCombatCompat.onGoalRemoved(goal)` to drop the weapon pose of a goal you remove
- `MobAnimations.playWeaponPose(mob, layer, poseId, twoHanded)`: plays the Better Combat weapon pose on `POSE` or `OFF_HAND_POSE`
- `MobGoals` (add goals to mobs you don't own, e.g. villagers) and `SpellCasterState` (cast timer to back an `ISpellCasterEntity` mixin)
- Dev-environment commands `/mrpg_goal <targets> bettercombat|combatroll [dodge]|spellcast <spell>|shoot [count]|clear` to test the custom goals on any mob.
- `AllyHelper` (`canHurt`, `canHelp`, `isAlly`): one ally check for projectiles, clouds, traps and AoE. Resolves owners (projectiles, pets, controlled mobs), checks teams and mob-vs-mob
- Asks Spell Engine's entity relations first when it is installed (`setRelationBridge`)
- `EntityAttributeConfig` / `EntityAttributeApplier`: a reusable, `ConfigManager`-backed way to give a registered entity configurable attributes
- base values are for the easy difficulty and there separate normal/hard difficulty multipliers
- Config entries can also carry a `custom` map of numbers (with the same difficulty multipliers) and string values (with optional `normal_string` and `hard_string` per difficulty), for mob tuning like cooldowns, projectile counts, ranges or summoned entity ids. Set defaults with `Entry.setCustom(...)` / `setCustomString(...)`, read them live with `EntityAttributeApplier.custom(entity, config, fallback)` (`getInt`, `getDouble`, `getBoolean`, `getString`)
- Config entries can also carry an `equipment` map (`mainhand`, `offhand`, `head`, `chest`, `legs`, `feet`) to equip mobs on spawn: an item id or a `#tag` (random item from the tag), with optional spawn `chance`, `enchant_chance` / `enchant_levels` / `enchant_tag`, `drop_chance`, and `required_mods` with a `fallback_item` for items from optional mods. Set defaults with `Entry.setEquipment(...)` and `EquipmentValue`
- `MobSpellCastGoal.withEquipmentSpells(true)` reads the caster's mainhand item for passive and modifier spells
- `withPassiveSpellTag(tag)` grants passive spells for the SpellCasting Entity from a spell tag instead
### Fixed
- Soaked now also makes targets vulnerable to lightning spells (with Spell Power), not only frost
- Wither's Curse now only counts harmful status effects on the target
- Mob-cast spells with an area impact now hit everything around the target and show their impact particles and sound.
- Mobs no longer use melee-range spells from far away
- Mob-cast area spells with melee range now hit everything around the mob.
release
2.8.0+1.21.1-fabric
2.8.0+1.21.1-fabric11 окт. 2026 г.5,8 тыс.Minecraft: 1.21.1fabric
Что нового
# 2.8.0 - 1.21.1
## For players
### ⚠️ BREAKING
- ⚠️ Mod id and namespace renamed `more_rpg_classes` -> `mrpg_lib` (registry ids, spells, tags, loot functions and entries such as `mrpg_lib:conditional_item`, custom impact handlers such as `mrpg_lib:knock_up_fixed`)
- Package renamed `net.more_rpg_classes` -> `com.mrpg_lib`, maven group `com.mrpg_lib`, archive base name `mrpg-lib`
- Everything that touches Spell Engine, Spell Power, playerAnimator, Ranged Weapon API or Critical Strike moved into `com.mrpg_lib.compat.<name>`
- `MoreParticles` split: the Spell Engine dependent particles moved to `compat.spell_engine.particle.MoreSpellParticles`; `client.particle.MoreParticles`
- `CustomMethods` split: `spellSchoolDamageCalculation` and `isEntityProtectedCheck` moved to `SpellEngineMethods`; `isEntityProtectedCheck` is deprecated, use `AllyHelper.canHelp`, `getHighestSpellSchoolPower` to `SpellPowerMethods`
- `StealthStatusEffect.stealthPopParticles()` is no longer abstract, it returns `Object` (default `null`) so the class no longer references Spell Engine types
- `MobSpellCastGoal` runs in real time now: it ticks every game tick and tracks cooldowns against world time, so `updateCooldown()` is a no-op and no longer needs to be called
### Changed
- Spell Engine and Spell Power are no longer required. Both are optional now.
- The mod id is now `mrpg_lib` it was `more_rpg_classes`.
- The config folder moved from `config/more_rpg_classes` to `config/mrpg_lib`.
- Frozen Solid, Soaked and Arcane Precision use standalone versions of the effects when Spell Power is not installed.
- Spells with a cast time now go off at the end of the cast, like for players, so the whole cast animation plays.
- Mob spells now respect the spell's delivery delay.
- Mobs mow charge spells like players. If charging adds range, they charge just enough to reach the target and use the spell from its full charged range.
- Otherwise, they charge fully, or release at the minimum charge when the target is very close.
- Buffed Burstcrack's Damage Power Coefficient
### Added
- `mrpg_lib:custom_cloud` entity, a generic lingering cloud, added mainly for Loot & Explore
- Mobs can play player animations (needs playerAnimator). This includes villagers, wandering traders, witches and illagers.
- Better Combat (optional): mobs that use the new melee goal attack with their weapon's combos, animations, hitboxes and weapon trails, with the same animation timing, slowdown while swinging and knockback rules as players.
- They can dual wield too: alternating hands, mirrored off-hand swings and Better Combat's dual-wield attack speed and damage multipliers.
- Weapons with a holding pose (like claymores, spears and glaives) are held in that pose whenever the mob carries them, with the same walking and two-handed rules as for players
- Combat Roll (optional): mobs that use the new roll goal can roll away when hurt, roll towards their target and dodge projectiles
- Spell casting mobs can cast arrow spells and stash spells
- Spell casting mobs can also use summon spells correctly now
- Spell casting mobs can now use melee weapon skills like Swift Strikes: they walk up to the target, dash forward when the skill has momentum, and hit everything in the swing's arc
- Spell casting mobs can cast spells with a custom delivery from other mods
- Upgrade crystals (T5 Class Armor Upgrade Crystals) are now affiliated loot: they drop more often for players carrying a spell book of a class they apply to
- Breaking: `ISpellCasterEntity.isCastingSpell()` is now `isMobCasting()`. The old name collides with vanilla's own `isCastingSpell` on spellcasting illagers, which broke the interface on NeoForge dev environments
- `MobSpellCastGoal`: `SpellTimings` with `withTimings(...)` (goal-wide or per spell; cast/channel seconds, cooldown seconds, channel ticks) and `withAnimations(true)` to play the spell's cast and release animations
- `MobSpellCastGoal` casts arrow spells (`SHOOT_ARROW`, `AFFECT_ARROW`) with real arrows, and stash spells (`STASH_EFFECT`, e.g. Power Shot) like on players.
- `MobSpellCastGoal` runs `CUSTOM` deliveries through Spell Engine, so handlers registered with `SpellHandlers.registerCustomDelivery` work for mobs (they get the mob as `caster`).
- `SpellBehaviorRegistry.targetDistance(min, max)`: ready-made condition to only cast a spell when the target is within a distance range
- Spell Engine summons of a mobSpellCaster treat it as their owner, so they follow and defend it and attack its target
- playerAnimator mob bridge (`compat.player_animator.api.MobAnimations`, `MobAnimationOptions`, `MobAnimationLayer` with `POSE`, `OFF_HAND_POSE`, `MISC`, `ATTACK`, `CASTING`, `RELEASE`, `DODGE`, client `MobModelAdapters`, built-in `VillagerModelAdapter`)
- Goals: `LongReachMeleeAttackGoal`, `WindupMeleeAttackGoal`, `PredicateGatedGoal`
- `BetterCombatCompat.createMeleeGoal(...)` (Better Combat combo melee for mobs, a plain `MeleeAttackGoal` without the mod) with `MeleeSettings` (`baseRange`, `intervalScale`, `animations`, `resetInvulnerability`, `weaponTrails`), and `BetterCombatCompat.onGoalRemoved(goal)` to drop the weapon pose of a goal you remove
- `MobAnimations.playWeaponPose(mob, layer, poseId, twoHanded)`: plays the Better Combat weapon pose on `POSE` or `OFF_HAND_POSE`
- `MobGoals` (add goals to mobs you don't own, e.g. villagers) and `SpellCasterState` (cast timer to back an `ISpellCasterEntity` mixin)
- Dev-environment commands `/mrpg_goal <targets> bettercombat|combatroll [dodge]|spellcast <spell>|shoot [count]|clear` to test the custom goals on any mob.
- `AllyHelper` (`canHurt`, `canHelp`, `isAlly`): one ally check for projectiles, clouds, traps and AoE. Resolves owners (projectiles, pets, controlled mobs), checks teams and mob-vs-mob
- Asks Spell Engine's entity relations first when it is installed (`setRelationBridge`)
- `EntityAttributeConfig` / `EntityAttributeApplier`: a reusable, `ConfigManager`-backed way to give a registered entity configurable attributes
- base values are for the easy difficulty and there separate normal/hard difficulty multipliers
- Config entries can also carry a `custom` map of numbers (with the same difficulty multipliers) and string values (with optional `normal_string` and `hard_string` per difficulty), for mob tuning like cooldowns, projectile counts, ranges or summoned entity ids. Set defaults with `Entry.setCustom(...)` / `setCustomString(...)`, read them live with `EntityAttributeApplier.custom(entity, config, fallback)` (`getInt`, `getDouble`, `getBoolean`, `getString`)
- Config entries can also carry an `equipment` map (`mainhand`, `offhand`, `head`, `chest`, `legs`, `feet`) to equip mobs on spawn: an item id or a `#tag` (random item from the tag), with optional spawn `chance`, `enchant_chance` / `enchant_levels` / `enchant_tag`, `drop_chance`, and `required_mods` with a `fallback_item` for items from optional mods. Set defaults with `Entry.setEquipment(...)` and `EquipmentValue`
- `MobSpellCastGoal.withEquipmentSpells(true)` reads the caster's mainhand item for passive and modifier spells
- `withPassiveSpellTag(tag)` grants passive spells for the SpellCasting Entity from a spell tag instead
### Fixed
- Soaked now also makes targets vulnerable to lightning spells (with Spell Power), not only frost
- Wither's Curse now only counts harmful status effects on the target
- Mob-cast spells with an area impact now hit everything around the target and show their impact particles and sound.
- Mobs no longer use melee-range spells from far away
- Mob-cast area spells with melee range now hit everything around the mob.
release
2.7.2+1.20.1-fabric
2.7.2+1.20.1-fabric20 сент. 2026 г.8,2 тыс.Minecraft: 1.20.1fabric
Что нового
# 2.7.2+1.20.1
> ### ⚠️ Read this before updating
>
> This release is a **major technical overhaul and is not backwards compatible.**
>
> - **Requires the matching Spell Engine release.** This version will not run on Spell Engine
> **0.9.x**, and mods built against 0.9.x will not work alongside it.
> - **Update the whole set together.** Spell Engine and every RPG Series mod must be on
> matching versions. Mixing in an older add-on will break at startup or misbehave in play.
>
> **Back up your world before updating.**
- Thanks to Daedelus for the PR!
- Ported to Minecraft 1.20.1 (Fabric + Forge 47). NeoForge is replaced by Forge on this line; the same
Forge jar also loads on NeoForge 1.20.1.
- Requires the matching 1.20.1 releases of Spell Engine (1.10.5) and Spell Power (1.6.0).
- Loot-table modification and the mob-beam packet were rebuilt on Spell Engine's platform seams, so both
loaders share one implementation.
- Every registry write goes through Forge's `RegisterEvent` window, so the mod also boots on Forge 47.0-47.3
and on NeoForge 1.20.1, which never unlock the vanilla registries.
### Accepted 1.20.1 limitations
- The `typhoon` and `stonebloom` enchantments are registered from Java instead of shipping as data-driven
enchantments (1.20.1 has none). Weights, max level, costs, slots and the multi-school exclusivity are
unchanged, but they can no longer be overridden or disabled from a datapack.
- 1.20.1 has no entity-scale attribute, so everything that read a living entity's scale now uses 1.0.
- Trial Omen and Raid Omen do not exist on 1.20.1: `clearNegativeEffects` no longer clears Trial Omen, and
the Tenacity resist check covers Bad Omen only.
- Tag entries naming 1.21-only content (`bogged`, `breeze`, `wind_charge`) are declared optional and are
simply absent.
release
2.7.2+1.20.1-forge
2.7.2+1.20.1-forge20 сент. 2026 г.8,2 тыс.Minecraft: 1.20.1forge, neoforge
Что нового
# 2.7.2+1.20.1
> ### ⚠️ Read this before updating
>
> This release is a **major technical overhaul and is not backwards compatible.**
>
> - **Requires the matching Spell Engine release.** This version will not run on Spell Engine
> **0.9.x**, and mods built against 0.9.x will not work alongside it.
> - **Update the whole set together.** Spell Engine and every RPG Series mod must be on
> matching versions. Mixing in an older add-on will break at startup or misbehave in play.
>
> **Back up your world before updating.**
- Thanks to Daedelus for the PR!
- Ported to Minecraft 1.20.1 (Fabric + Forge 47). NeoForge is replaced by Forge on this line; the same
Forge jar also loads on NeoForge 1.20.1.
- Requires the matching 1.20.1 releases of Spell Engine (1.10.5) and Spell Power (1.6.0).
- Loot-table modification and the mob-beam packet were rebuilt on Spell Engine's platform seams, so both
loaders share one implementation.
- Every registry write goes through Forge's `RegisterEvent` window, so the mod also boots on Forge 47.0-47.3
and on NeoForge 1.20.1, which never unlock the vanilla registries.
### Accepted 1.20.1 limitations
- The `typhoon` and `stonebloom` enchantments are registered from Java instead of shipping as data-driven
enchantments (1.20.1 has none). Weights, max level, costs, slots and the multi-school exclusivity are
unchanged, but they can no longer be overridden or disabled from a datapack.
- 1.20.1 has no entity-scale attribute, so everything that read a living entity's scale now uses 1.0.
- Trial Omen and Raid Omen do not exist on 1.20.1: `clearNegativeEffects` no longer clears Trial Omen, and
the Tenacity resist check covers Bad Omen only.
- Tag entries naming 1.21-only content (`bogged`, `breeze`, `wind_charge`) are declared optional and are
simply absent.
release
2.7.2+1.21.1-neoforge
2.7.2+1.21.1-neoforge7 сент. 2026 г.12,1 тыс.Minecraft: 1.21.1neoforge
Что нового
# 2.7.2 - 1.21.1
- Drop Forgified Fabric API (FFAPI) as a required dependency
release
2.7.2+1.21.1-fabric
2.7.2+1.21.1-fabric7 сент. 2026 г.12,2 тыс.Minecraft: 1.21.1fabric
Что нового
# 2.7.2 - 1.21.1
- Drop Forgified Fabric API (FFAPI) as a required dependency




















