Skip to content
JasperLorelai edited this page Aug 24, 2025 · 34 revisions

Note

4.0 Beta 18 has been tested on 1.21.4-1.21.8.

Changes:

  • The ExternalCommandSpell option command-to-execute-later can now use the rest of the available placeholders.
  • The default value for ops-ignore-(reagents/cooldowns/cast-times) in general.yml has been changed to false.
  • Added namespaced-key to custom recipes as a more appropriate alias to namespace-key. Any namespace may now be used, while magicspells remains the default.
  • Custom recipe choices now support item and block tags. Tags can now be prefixed with # instead of just tag:.
  • Added Predicate support to ResistSpell, InvulnerabilitySpell and damage passive trigger's Damage Type list.
  • With can-cast-with-item: false, spells will remain disabled from casting with items, but the spell will now be bound to its cast item.
  • Most teleportations done by MagicSpells will now attempt to retain passengers if the teleportation origin and destination are done in the same world.

Additions:

  • Added %a_uuid, %t_uuid, and %r_uuid placeholders.
  • Added new spell effects:
  • Added auto-discover (boolean) to custom recipes. Crafting recipes marked as true (default) will be discovered by any online player, like before.
  • Added potion custom recipe for brewing stands.
  • Added hasrecipe modifier condition.
  • Added .targeted.DiscoverRecipeSpell for discovering or un-discovering recipes.
  • Function expressions are now evaluated with EvalEx rather than exp4j. This adds multiple new functions to expressions, as well as boolean logic. Check out the full list here.
  • Added check-can-cast-with-item to BindSpell, which defaults to true. When false, the can-cast-with-item will no longer prevent binding.
  • Added fake-blocks boolean option (true by default) to .targeted.NovaSpell and nova spell effect.
  • The inventoryclick Passive trigger now has a section format with the following options:

Fixes:

  • Fixed an issue with MagnetSpell where items could be picked up when they had data preventing normal pickup.
  • Fixed an issue with the Magic Items caching being unlimited, causing lag when accessed in some cases.
  • Fixed an issue with meta_altitude not considering the world's heightmap or, in some cases, non-passable blocks other than air.
  • Fixed Magic Item fake-glint not applying the enchantment_glint_override item component added in 1.20.x.
Clone this wiki locally