2.8.0+1.21.1-neoforge
Curse Maven Snippet
What's new
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 asmrpg_lib:conditional_item, custom impact handlers such asmrpg_lib:knock_up_fixed) - Package renamed
net.more_rpg_classes->com.mrpg_lib, maven groupcom.mrpg_lib, archive base namemrpg-lib - Everything that touches Spell Engine, Spell Power, playerAnimator, Ranged Weapon API or Critical Strike moved into
com.mrpg_lib.compat.<name> MoreParticlessplit: the Spell Engine dependent particles moved tocompat.spell_engine.particle.MoreSpellParticles;client.particle.MoreParticlesCustomMethodssplit:spellSchoolDamageCalculationandisEntityProtectedCheckmoved toSpellEngineMethods;isEntityProtectedCheckis deprecated, useAllyHelper.canHelp,getHighestSpellSchoolPowertoSpellPowerMethodsStealthStatusEffect.stealthPopParticles()is no longer abstract, it returnsObject(defaultnull) so the class no longer references Spell Engine typesMobSpellCastGoalruns in real time now: it ticks every game tick and tracks cooldowns against world time, soupdateCooldown()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_libit wasmore_rpg_classes. - The config folder moved from
config/more_rpg_classestoconfig/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_cloudentity, 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 nowisMobCasting(). The old name collides with vanilla's ownisCastingSpellon spellcasting illagers, which broke the interface on NeoForge dev environments MobSpellCastGoal:SpellTimingswithwithTimings(...)(goal-wide or per spell; cast/channel seconds, cooldown seconds, channel ticks) andwithAnimations(true)to play the spell's cast and release animationsMobSpellCastGoalcasts arrow spells (SHOOT_ARROW,AFFECT_ARROW) with real arrows, and stash spells (STASH_EFFECT, e.g. Power Shot) like on players.MobSpellCastGoalrunsCUSTOMdeliveries through Spell Engine, so handlers registered withSpellHandlers.registerCustomDeliverywork for mobs (they get the mob ascaster).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,MobAnimationLayerwithPOSE,OFF_HAND_POSE,MISC,ATTACK,CASTING,RELEASE,DODGE, clientMobModelAdapters, built-inVillagerModelAdapter) - Goals:
LongReachMeleeAttackGoal,WindupMeleeAttackGoal,PredicateGatedGoal BetterCombatCompat.createMeleeGoal(...)(Better Combat combo melee for mobs, a plainMeleeAttackGoalwithout the mod) withMeleeSettings(baseRange,intervalScale,animations,resetInvulnerability,weaponTrails), andBetterCombatCompat.onGoalRemoved(goal)to drop the weapon pose of a goal you removeMobAnimations.playWeaponPose(mob, layer, poseId, twoHanded): plays the Better Combat weapon pose onPOSEorOFF_HAND_POSEMobGoals(add goals to mobs you don't own, e.g. villagers) andSpellCasterState(cast timer to back anISpellCasterEntitymixin)- Dev-environment commands
/mrpg_goal <targets> bettercombat|combatroll [dodge]|spellcast <spell>|shoot [count]|clearto 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
custommap of numbers (with the same difficulty multipliers) and string values (with optionalnormal_stringandhard_stringper difficulty), for mob tuning like cooldowns, projectile counts, ranges or summoned entity ids. Set defaults withEntry.setCustom(...)/setCustomString(...), read them live withEntityAttributeApplier.custom(entity, config, fallback)(getInt,getDouble,getBoolean,getString) - Config entries can also carry an
equipmentmap (mainhand,offhand,head,chest,legs,feet) to equip mobs on spawn: an item id or a#tag(random item from the tag), with optional spawnchance,enchant_chance/enchant_levels/enchant_tag,drop_chance, andrequired_modswith afallback_itemfor items from optional mods. Set defaults withEntry.setEquipment(...)andEquipmentValue MobSpellCastGoal.withEquipmentSpells(true)reads the caster's mainhand item for passive and modifier spellswithPassiveSpellTag(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.
This mod has no additional files

