1.9.9
Functional changes:
- Added server-side config fields for spell binding level requirements
- Removed auto hand swap feature (due to colliding with weapon skills)
1.9.8
Functional changes:
- Fixed crash without Better Combat #174
- Fixed melee skill modifiers:
- attack damage bonus
- momentum bonus
- Fixed immobilize effect attribute modifiers
1.9.7
Functional changes:
- Fixed melee skill animations for replay mod
- Added new server config options:
spell_binding_level_cost_offsetspell_binding_level_cost_min
- Rebalanced some of the weapon skill cooldowns
API Changes:
- Added new shared status effect:
spell_engine:immobilize- Immobilizes the target, preventing movement and jumping
- Added melee delivery related spell modifier fields:
spell.modifier.melee_momentum_addadding extra momentum to all melee attacksspell.modifier.melee_slipperiness_addadding extra slipperiness to the caster while performing melee attacksspell.modifier.melee_damage_multipliermultiplying damage of all melee attacksmelee_attackslist of additional melee attacks
- Added new impact type:
IMMUNITYto provide temporary invulnerability to certain damage types, and effects- Specific damage type, or tag of damage types
- Directness check
- Duration
- Additionally available via java API:
LivingEntityImmunity - Old
EntityImmunityAPI is now deprecated
- Melee attack triggers now support spell condition requirement
1.9.6
Hotfix:
- Fixed
arrow contextnot being cleaned up properly, causing Barrage skill to degrade ranged damage over (short) time
1.9.5
Functional changes:
- Improved handling of number keys concurrently to vanilla item switching, fixes #153
API Changes:
- Added new spell delivery method
AFFECT_ARROWallowing passive spells to applyarrow_perksand impacts to any fired arrow
1.9.4
Functional changes:
- Fixed some weapon factory constants
- Fixed ranged weapon pull time constants
1.9.3
Functional changes:
- Improve interaction between melee skills and given momentum while being airborne
API Changes:
- Added new melee attack skill fields related to momentum
spell.deliver.melee.allow_airborne(default: true) - to hold up using momentum based melee skills while airbornespell.deliver.melee.attack.allow_momentum_airborne(default: false) - whether the attack specific forward momentum can be applied while airborne
- Added
SPAWNimpact intent specifier to enable spawning onto hostile targets
1.9.2
Functional changes:
- Fixed issues of Flurry skill (windup time, animation speed, cooldown proportionality)
- Fixed issues of Swift Strikes skill (windup time)
- Fixed fallback config applying to Axes
- Fixed movement friction of attack skills on NeoForge
- Fine tune momentum given by Swipe and Thrust skills
API changes:
- Added new spell modifier
channel_ticks_add, to add extra channel ticks to channeling spells - Added new SpellEvents:
SpellEvents.CASTING_ATTEMPT(with Pre & Post stages) - to be able to inject custom failure reasonSpellEvents.COST_CONSUME- executed when spell cost is being consumed
1.9.1
Fix NeoForge launch crash.
1.9.0
DISCLAIMER: All spell books and spell scrolls will be reset, due to major API changes. Some (looted) weapons with custom spell containers become non-functional, and need to be re-obtained. Apologies for the inconvenience.
API Breaking Changes:
- Reworked
SpellContainerstructure- Removed
contentfield, replace byaccessfield - Removed
is_proxyfields, replace byaccessfield - Add new
accessfield, controlling the spell resolution behavior (ANY, NONE, MAGIC, ARCHERY, CONTAINED, TAG) - Add new
access_paramfield, providing additional parameter for certain access types (such as tag name forTAGaccess type) - Add new
extra_tier_bindingfield toSpellContainer, to specify spell choice limit per spell tiers
- Removed
- Reworked spell tag conventions
<NAMESPACE>:spell_books/<TAG_NAME>- spell collections in this folder, are explicitly marked for generating spell books<NAMESPACE>:spell_scrolls/<TAG_NAME>- spell collections in this folder, are explicitly marked for generating scrolls<NAMESPACE>:weapon/<WEAPON_NAME>- spell collections meant for weapons (such as Wizard Staff)
- Fully data driven Spell Scrolls
- New item id:
spell_engine:spell_scroll - Generated for all spells listed under tags located in
spell_scroll/folder (such as:#wizards:spell_scroll/fire) - Automatically assigned item model based on tag id:
<NAMESPACE>:models/item/spell_scroll/<TAG_NAME>.json - Automatically assigned custom name based on tag id, translation key:
item.<NAMESPACE>.spell_scroll/<TAG_NAME>
- New item id:
- Fully data driven Spell Books
- All spell books now use the same item id:
spell_engine:spell_book - Generated for all spells listed under tags located in
spell_books/folder (such as:#wizards:spell_book/fire) - Automatically assigned item model based on tag id:
<NAMESPACE>:models/item/spell_book/<TAG_NAME>.json - Automatically assigned custom name based on tag id, translation key:
item.<NAMESPACE>.spell_book/<TAG_NAME> - Custom spell books can be made with datapacks, for any combination of spells, just with a spell tag (and some additional assets)
- All spell books now use the same item id:
- Spell Data structure changes
- Casting and release animations are now wrapped into a
PlayerAnimationobject, instead of a plain String PlayerAnimationsupports:overrides,speed- Reworked
spell.active.cast.channel_ticksnow representing the number of releases during channeling, instead of a duration interval (in game ticks) between channel releases
- Casting and release animations are now wrapped into a
- Relocated all equipment related APIs to a new dedicated package
rpg_series.item, to better separate them from the core spell engine APIs- types moved:
Equipment,Armor,ConfigurableAttributes,Weapon
- types moved:
API Additions:
- Added new
spell_choicesdata component- Defines a one-time single spell selection, from a given spell tag, before first use
- Designed for weapons meant for multiple classes (such as Wizard Staff)
- Add choices in Spell Books (Spell Binding Screen)
- Spells in the same tier are presented as choices
- Spell tags of spell books can be expanded with choices by third party content
- Behavior controlled by new
extra_tier_bindingfield of spell container
- Added new centralized weapon factory APIs (in
rpg_seriespackage)- Add
Weapons.javaAPI, creating melee and magic weapons - Add
Shields.javaAPI, creating shields - Add
RangedWeapons.javaAPI, creating bows and crossbows
- Add
- Added automatic item model registration for assets in the following folders:
models/item/spell_book/models/item/spell_scroll/models/spell_projectile/models/spell_effect/
- Added shared spell cooldowns
- Spells with the same coodown group set each other on cooldown
spell.cost.cooldown.groupfield specifies the cooldown group- To be used for weapon specific spells
- Added new delivery type:
MELEE, for performing better combat alike weapon swings- Upon performing this delivery type, the caster gains melee attacks, to be automatically executed
- Attack duration may be static, or attack speed based
- Custom hitbox definition, using OBB collision detection, ran on the client side
- Supports fx: animation, sound, particles
- Includes optional momentum to be gained with the attack
- Supports additional impacts to be performed on hit
- Add new impact type:
DISRUPT- Can disable: shield blocking, item usage
- Spell Data structure changes
- Added
spell.cost.cooldown.attempt_durationto prevent multiple performs of delayed deliveries
- Added
- Added
WeaponAttributeGeneratorto datagen API
Functional changes:
- RPG Series core dedicated sub-package now includes melee weapon skills
- Whirlwind (designed for double axes) - Hold to spin around, dealing {damage} damage per second, to nearby enemies.
- Cleave (designed for axes) - Performs a spin attack, dealing {damage} damage to nearby enemies.
- Ground Slam (designed for great hammers) - Leaps into the air and slams into the ground, dealing {damage} damage to nearby enemies.
- Smash (designed for maces) - SmashesDelivers a strike with powerful knockback, disabling shield and item usage of target.
- Flurry (designed for claymores) - Hold to unleash a rapid series of strikes, while also gaining momentum.
- Swift Strikes (designed for swords) - Unleash a rapid series of strikes.
- Impale (designed for spears) - Throws your weapon forwards, dealing {damage} damage and powerful knockback.
- Fan of Knives (designed for daggers) - Throws several of your blades in a cone, dealing {damage} damage, bouncing off terrain up to 2 times.
- Thrust (designed for glaives) - Lunge forward with your weapon, striking all enemies along your path.
- Swipe (designed for sickles) - Slide forward with your weapon, striking all enemies along your path.
- Added fallback config for automatic spell container assignment to weapons without spell container
- Supports various pattern matching methods (item id, item tag, regex, inversion)
- Config file:
config/spell_engine/weapon_fallbacks.json - Removed related old config options from
server.json5
- Added new server config options:
melee_skills_area_focus_mode- Determines the focus mode (AREA vs DIRECT) for melee skills.spell_book_additional_cooldown- Additional cooldown in seconds applied to spell book items, to prevent quick swapping and casting."
- Improved spell channeling mechanics
- Channel ticks are now calculated more accurately, spell haste actually increasing tick frequency
- Melee skill haste - casting duration is now effected by attack speed multiplier bonuses
- Fixed operation of spell variant, target:
AIM+ deliver:DIRECT+ area impact - Fixed Player data corruption caused by invalid spell identifiers #170
- Update loot injection defaults: Hellish Trials, Draugr Invasion
- Improved Friend or Foe logic on FTB Teams membership, thanks to LeDok
