
Spell Engine
Spell Engine - библиотека (API) для создания магии в Minecraft. Даёт разработчикам инструменты для spells, spell books и интеграции с weapons, а игрокам - полноценную систему casting с эффектами и анимациями.
Оцените первым
5.4M
619
Список изменений
1.9.10
Functional changes:
- Targeted entities may only be highlighted if not invisible
- Fixed missing default translation for Spell Scroll item
- Fixed incorrect ordering of spell scrolls in creative menu
- Fixed inaccurate landing position of meteor storm spells
- Fixed spell cloud
impact_particlesnot executed - Fixed spell projectile
heldItemrender not respecting pitch - Fixed Impact Action with "apply_to_caster" true, cancels all the other impacts #139
- Fixed crash when you try to use a skill on a horse (without Better Combat) #190
API changes:
- BREAKING! -
CustomModelStatusEffect.Renderernow has different arguments - Added new generic status effect:
spell_engine:bleed - Added true volumetric collision detection for spell projectiles
- Added server-side entry point for entity spell casting (SpellHelper.java)
- Added some new assets: player animations, particles, sounds
- Added new external spell school
PHYSICAL_MELEE_DUAL, providing the combined power value of main hand and offhand melee attacks - Spell data structure changes:
- Added new root field
order, for sorting spells on the hotbar and spell binding GUI - Added new trigger field
weapon_condition— item pattern (id,#tagor~regex) the triggering attack's item must match: the firing weapon forARROW_SHOT/ARROW_IMPACT(spell-fired arrows never match), the striking hand's item forMELEE_IMPACT, otherwise the caster's main-hand item
- Added new root field
- Added Hybrid Power — per-impact blending of multiple spell schools (
impacts[].power_blend)- Each component merges the enabled aspects (
power,critical_chance,critical_damageflags) of another school's power into the impact's base school as a weighted average (base school weighs 1, componentweightdefaults to 1); any number of components allowed - Lets hybrid classes scale a spell with several attributes (e.g. Attack Damage + Healing Power) without registering class-specific spell schools
- Applied identically in impact execution and tooltip damage/heal estimation — power resolution is now shared via
SpellHelper.resolveImpactPower() SpellBuilder.Impacts.powerBlend()datagen helpers; authoring guide indocs/06-impacts.md, balancing guidance indocs/11-content-development-guidelines.md
- Each component merges the enabled aspects (
- Status effect
REMOVEimpacts: newALLselector (strips every matching effect at once, previously one per impact) andmovement_impairingfilter (classification-based, covers modded slows/snares);SpellBuilder.Impacts.effectRemoveMovementImpairing()helper for "freedom" dispels - Trigger
meleecondition gained acriticalfield —MELEE_IMPACTtriggers can require (or exclude) critical strikes, enabling "on melee crit" passives - Spell execution pipeline now supports performing impacts on other's behalf (ImpactContext.effectiveCaster field)
- Fine-tuned some server config defaults related to owned entities
- Added Model FX — animated 3D spell model effects spawned as world entities
- Supports per-axis
scale,translate, androtatetransforms with easing - Full easing library matching easings.net conventions (31 functions)
initial[]transforms define the starting state;animations[]drive changes over time withstart,end, andeasingfields- Extensible operation registry:
ModelEffectOperations.register()for third-party transform types model_fxfield available at:release,impacts[],area_impact,deliver.melee.swing,deliver.clouds[].spawn, and teleportdepart/arrive- Model files placed at
assets/MOD_ID/models/spell_effect/are auto-discovered
- Supports per-axis
- Reworked projectile and spell cloud models to build on the Model FX system — both can now render multiple, individually animatable models
- Projectiles: new
client_data.composite_model(andarrow_perks.composite_modelfor arrows) — a list of models, each with its ownorientation, spin, optionaluse_held_item, and anfxModel FX block driving scale/translate/rotate animation - Spell clouds: new
client_data.model_fx— a list of Model FX definitions rendered on the cloud SpellBuilder.ProjectileModelsdatagen helpers for the common cases (single,model,heldItem,composite)- Legacy single-model fields
client_data.modelandarrow_perks.override_renderare deprecated and marked for removal
- Projectiles: new
- Added Entity Summoning — a new
SUMMONimpact action that spawns and controls owned entities, fully data-drivenSpell.Impact.Action.Summon: entity type, runtime behaviour, placement formation, group layout, and spawn FX/soundSummonedEntitybase class (api.spell.summon, implementSpellSummoned) — phase-driven, owner-aware, with a full goal/targeting AISummonBehaviour: spawn→active→despawn lifespan, movement/collision modes, targeting + target-clear conditions, owner-driven attribute scaling, lifecycle sounds, and FX- Summoned entity capabilities:
- Melee attacks — windup timing, attack speed, size-scaled reach, optional AoE radius, swing/impact sounds and animation variants
- Spell casting — casts any active SpellEngine spell on cooldown, with aiming modes (track target / fire forward / self) and min/preferred/max engagement range bands
- Following — trails the owner within a distance band, teleporting to them when left too far behind
- Targeting — auto-acquires nearby hostiles or wounded allies, mirrors the owner's target, defends the owner and retaliates, with optional target-clear conditions (timeout, out-of-range, on action completed)
- Placement on
Spell.EntityPlacement(look-relative offset, ground-snap, line-of-sight clamp) withSpellBuilder.Placementsfactories:byLook,compass,square,line,circle,staggered - Groups: spawn N formations, each translated by a group placement, with summed group + per-entity spawn delays
- One-shot spawn FX/sound at individual and group level; client-side existence particles (configurable tick interval, no per-tick network traffic)
- Spell modifiers can now target the
SUMMONimpact viaSpell.Modifierfieldssummon_attribute_scaling(merged with the summon's scaling, summed per attribute)summon_spawn_count_add,summon_group_count_addsummon_behavioursub-structure adding behaviour (attack and spell casting)
- Added new spell casting mode: Charging
- Similar to regular spell casting, but can be released prematurely
- The longer the spell is charged, the stronger it becomes
- Uses spell modifier pipeline to modify spell properties based on charge time
- Reworked
spell.active.castdata structure to accommodate this feature - some fields are now marked for removal
- Added
KnockbackImmunityeffect API - status effects configured with this prevent taking knockback - Added
GlowingItemStatusEffecteffect API - status effects configured with this make the held weapon glow, in a configurable color, much brighter than the enchantment glint- Brightness scales with stacks (
opacityPerStack), colors of multiple such effects blend - Applies to weapons by default (items with main/off hand attribute modifiers), or to a given item tag
- Better Combat swing trails take on the glow color while active
- Brightness scales with stacks (
- Added
ParticleBatch.Origin:OVER_HEADcase (spawning at 1.5x height of the entity) - Added new impact type:
VELOCITY— pushes the target's velocity, for knockbacks, pulls, and mobility launches- Push is a
Vector3fin a referenceframe(LOOK= caster facing,ORIGIN= radial to the impact origin); the vector's Y is always world-up power_coefficientscales the push with the impact's spell power;reset_velocityzeroes prior motion first; hostile pushes respect knockback resistance- Synced to a player's own client, so it moves the caster too (e.g. self-mobility), not just other entities
SpellBuilder.Impactshelpers:velocity,velocityUp,knockback,pull,leap
- Push is a
Файлы
spell_engine-neoforge-1.9.10+1.21.1.jar(4.26 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.9.10+1.21.1-neoforge
Загрузчики
NeoForge
Версии игры
1.21–1.21.1
Загрузок
924
Дата публикации
20.07.2026
