Spell Engine

Spell Engine

Mod

🪄 Data driven magic library

Client and server Game MechanicsLibraryMagic

1.28M downloads
336 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter versions...
Filter channels...

1.5.1

Functional changes:

  • Add /spell_cooldown command to reset specific or all spell cooldowns for given players
  • Add Spell Cooldown are now persistence and synchronization (between game sessions and dimension changes)
  • Add relic loot tags and injection entries (bumped loot config: config/rpg_series/loot_equipment_v1)
  • SpellBooks on cooldown can now be unequipped in creative mode
  • Fix spell tooltip power estimation causing rare crashes
  • Fix overly reactive spell hotbar
  • Fix knockback direction of directly delivered spell impacts
  • Fix spell cloud data tracker
  • Fix BuffParticleSpawner spawned batch shape
  • Fix spell projectile chain reaction forwarding null spell entry

API changes:

  • Add maxSpellCount option for spell book creation
  • Extend BuffParticleSpawner constructors

1.5.0

IMPORTANT DISCLAIMER:

  • This update requires content mods to be updated, due to major API changes

Functional changes:

  • Built in trinket slots
    • Spell Book slot spell/book (enabled by default)
    • Spell Scroll slot spell/scroll (disabled by default)
    • Quiver slot (in standalone group) misc/quiver (enabled by default)
    • Quiver slot (in the spell group) spell/quiver (disabled by default)
  • Add engine level immunity against slowing, rooting and stunning effects for bosses

API Changes:

  • Build with Fabric Loom 1.9
  • BREAKING CHANGES!
    • Completely refreshed spell data structure
    • Add spell type do differentiate between ACTIVE and PASSIVE spells
    • Spell structure: cast and scroll moved into active object
    • Spell structure: cost reworked to be more structured
    • Spell structure: release.target split into target and deliver
    • Completely rewrite spell stashes, now powered by unified spell triggers, stash effects are now automatically linked
    • Rewrite spell impact target conditions, now unified with spell trigger target conditions
  • Rewrite spell container merge logic
    • Spell containers are now resolved from: main-hand, off-hand, equipment, trinkets (plugin)
    • Custom spell container sources can be added
    • Spell containers are cached for improved performance
    • Add spell container slot field, to allow offhand containers
  • Rewrite ammo handling
    • Add support for ammo lookup in container items (Bundle)
    • Add support for multiple ammo item cost
    • Add quiver slot for Quivers and Rune Pouches
  • Add support for passive spells
    • Add spell triggers (for passives and stashes): ARROW_SHOT, ARROW_IMPACT, MELEE_IMPACT, SPELL_IMPACT_ANY, SPELL_IMPACT_SPECIFIC, DAMAGE_TAKEN, ROLL
  • Removed HealthImpacting status effect configuration interface. Replaced by new attributes:
    • spell_engine:healing_taken
    • spell_engine:damage_taken
  • Misc technical
    • Impact.apply_to_caster now overrides all intent checks, add effect remove action
    • Add StatusEffectClassification to check action impairing effects
    • Included sound entries are now available as static references in SpellEngineSounds
    • StatusEffect impact can now be used for helpful and harmful dispels
    • Spell Projectile data synchronization rewritten
  • Add generic data file providers to be used by any content mod
    • SpellGenerator
    • SimpleParticleGenerator
    • SimpleSoundGenerator
  • Magic related particles are now sorted and systematically generated
    • Name formula: magic_FAMILY_SHAPE_MOTION
    • Example: magic_frost_impact_burst
    • For all variants, check out net.spell_engine.fx.Particles
    • ParticleBatch PIPE shape now fixed, use WIDE_PIPE for old behaviour
    • Clean up magic related particle effects
  • Restructure config related api packages

1.4.5

  • Fix Spell Registry synchronization, datapacks should no longer cause connection failure

1.4.4

  • Fix Spell Projectiles sometimes visually glitching after piercing a target
  • Fix Spell Projectiles spamming the console
  • Allays and Iron Golems are now considered as friendly by default

1.4.3

  • Improve spell projectile interpolation

1.4.2

  • Fix high luminance of beams spell layer ordering
  • Fix brightness for some spell particles

1.4.1

  • Fix Arcane Charge not applying to spell caster
  • Fix unstable multiplayer alongside Better Combat mod
  • Improve render effect of spell beams (with added configuration to disable high luminance)
  • Restore disabling creation of certain spell books, by adding to them to spell_engine:non_craftable_spell_books item tag

API Changes:

  • Add spell.projectile.homing_after_absolute_distance to allow homing projectiles to start homing after reaching certain distance
  • Add spell.projectile.homing_after_relative_distance to allow homing projectiles to start homing after reaching certain distance relative to the target
  • Add spell.release.target.projectile.direction_offsets to allow shooting projectile into various directions
  • Add channelTickIndex to ImpactContext, to allow tracking channeling progress

1.4.0

IMPORTANT DISCLAIMER:

  • Items in the spell book trinket slot will be lost (as the slot itself is being relocated)
  • This update requires content mods to be updated, due to major API changes

Functional changes:

  • Add support for spell scroll slot, can be enabled using data pack
  • Rework trinkets integration, to declare custom slot group
  • Rework container merge logic
  • Spell cooldowns now get imposed onto the hosting item
  • Durability cost of spell cast will be imposed on the source ItemStack of the spell (if possible)
  • Spell projectiles may perform area impacts when colliding blocks
  • Fix empty spell scrolls generated in loot chests
  • Updated loot defaults (Illager Invasion)

API Changes:

  • Add spell.cost.cooldown_hosting_item to disable imposing spell cooldowns onto the hosting item
  • Add spell.range_melee to match spell range with melee attack range (EIR)
  • Add spell.impact.target_conditions allowing entity type specific immunities, weaknesses and resistances

1.3.2

  • Fix dedicated server crash

1.3.0

Functional changes:

  • Add Spell Scrolls, automatically generated for all spells, found in loot chests, can be added to matching spell books
  • Add support for any spell book logic, any item can be turned into a spell book by adding to spell_engine:spell_books tag, and adding proper spell container to it
  • Improved Spell Container merge logic, to allow resolving spells from equipment (New config options available in spell_engine/server.json5, starting with spell_container_from )
  • Renamed loot config (responsible for equipment loot injection) to rpg_series/loot_equipment.json
  • Add separate config file for Spell Scroll loot injection, rpg_series/loot_scrolls.json
  • Update loot config defaults (Aether Villages, BOMD: Obsidilith, DNT: End Castle, Dungeons Arise: Shiraz Palace, Aviary)
  • Spell Books and Spell Scrolls placeable into Chiseled Bookshelf
  • Fix spell tooltip ordering with advanced tooltip
  • Fix loot injection from non tag entries

API Changes:

  • Add spell.learn.enabled field to disable unlocking via Spell Binding Table
  • Add spell.scroll object, defining various spell scroll related parameters
  • Spell container from held item, now requires is_proxy = true to cast spells

1.2.2

Functional changes:

  • Fix HUD rendering issues

1.2.1

Functional changes:

  • Modify loot config, to reduce loot frequency in some of the commonly occurring chests
  • Restore LambdaDynamicLights compatibility

API Changes:

  • Add spell.cast.animation_pitch field

1.2.0

Functional changes:

  • Rework spell hotbar logic around Use key (right-click), to enable compatibility with weapons those have a right click use (such as Trident)
  • Rewrite first person camera compatibility (to support FirstPersonModel and Real Camera)
  • Fix item use while spell casting
  • Fix rendering on hidden HUD (Fabric API related)
  • Fix spamming console with advancement info
  • Fix misc render crash #87
  • Fix spell projectile rendering order issues

API Changes:

  • BREAKING - Deprecated all item usage related fields and types in Spell.java
  • Internal: SpellHelper.performImpacts now requires array of impacts to be supplied
  • Extend ArrowPerks API with custom array of impacts
  • Add SpellStash capability to StatusEffects to store a spell

0.15.12

Functional changes:

  • Fix crashes alongside Supplementaries, due to outdated quiver compatibility (now removed), thanks to @Dralaon #90

1.1.2

  • Improve safety of Spell Projectile persistence
  • Fix rare case where offhand item use was incorrectly shown on Spell Hotbar

1.1.1

  • Improve safety of effect ID synchronization

0.15.11

Functional changes:

  • Fix targeting Ender Dragon with spells #63
  • Fix casting sound muting after failed cast attempt
  • Improve spell Beam rendering (no longer casts shadows, no longer conflicting with other transparent blocks, such as water)
  • Improve auto swap feature to consider tools #71
  • Improve spell projectile ricochet hit consistency
  • Improve spell projectile parsing and restoring stability

1.1.0

Functional changes:

  • Allow falling projectile (Meteor alike) spells to be casted on the ground
  • Netherite (and above) armor and weapons get automatic fireproof setting
  • Fix some tooltip issues
  • Reinstate Trinkets mod requirement
  • Disable Dynamic Lights compat, to avoid crashing, as updated alternatives violate class path

API Changes:

  • BREAKING, internal! - SpellHelper.performSpell expects SpellTargetResult instead List of entities
  • Add spell release type METEOR requires_entity field

1.0.5

Functional changes:

  • Improve auto swap feature, to prioritize block interactions
  • Fix targeting Ender Dragon with spells #63

Project members

ZsoltMolnarrr

Owner

Details

Licensed GPL-3.0-only
Published 2 years ago
Updated 8 days ago