summaryrefslogtreecommitdiff
path: root/config/spell_engine
diff options
context:
space:
mode:
authorFelix Perktold <>2026-07-23 20:26:04 +0000
committerFelix Perktold <>2026-07-23 20:26:04 +0000
commite1feb22144d2821c577cb0a281f77c54306f437c (patch)
treec88aa93100893508ba9d60d2db55730f5a711616 /config/spell_engine
asd
Diffstat (limited to 'config/spell_engine')
-rw-r--r--config/spell_engine/enchantments.json9
-rw-r--r--config/spell_engine/server.json569
2 files changed, 78 insertions, 0 deletions
diff --git a/config/spell_engine/enchantments.json b/config/spell_engine/enchantments.json
new file mode 100644
index 0000000..85c0863
--- /dev/null
+++ b/config/spell_engine/enchantments.json
@@ -0,0 +1,9 @@
+{
+ "infinity": {
+ "enabled": true,
+ "max_level": 1,
+ "min_cost": 20,
+ "step_cost": 30,
+ "bonus_per_level": 1.0
+ }
+} \ No newline at end of file
diff --git a/config/spell_engine/server.json5 b/config/spell_engine/server.json5
new file mode 100644
index 0000000..ccf1682
--- /dev/null
+++ b/config/spell_engine/server.json5
@@ -0,0 +1,69 @@
+{
+ // Applied as multiplier on top of spell.cast.movement_speed. Default value of 1.0 means no change.
+ "movement_multiplier_speed_while_casting": 1.0,
+ // Allow spells to bypass invulnerability frames. This is required in order for high attack frequency spells (such as beams) to work.
+ "bypass_iframes": true,
+ // Spell haste reduces the cooldown time of abilities
+ "haste_affects_cooldown": true,
+ // Spell costs exhausts (hunger) will be multiplied with this value. Set `0` for no exhaust.
+ "spell_cost_exhaust_multiplier": 1.0,
+ // Spells should cost items. Set `false` to remove rune (or other item) cost from all spells.
+ "spell_cost_item_allowed": true,
+ // Spells should damage items on use. Set `false` to disable.
+ "spell_cost_durability_allowed": true,
+ // The time in ticks of global cooldown to apply to all instant cast spells when casted.
+ "spell_instant_cast_gcd": 0,
+ // Players cannot unequip a spell book, if one of the spells in it is on cooldown.
+ "spell_book_cooldown_lock": true,
+ // Players can use the Spell Binding Table to create spell books.
+ "spell_book_creation_enabled": true,
+ // Spell book creation level cost
+ "spell_book_creation_cost": 1,
+ // Spell book creation level requirement
+ "spell_book_creation_requirement": 1,
+ // Spell binding level cost multiplier
+ "spell_binding_level_cost_multiplier": 1,
+ // Spell binding lapis lazuli cost multiplier
+ "spell_binding_lapis_cost_multiplier": 1,
+ // Should the player be able to cast spells from the offhand spell book?
+ "spell_book_offhand": false,
+ // If set true, a Fireball doesn't collide with an ally, a healing projectile doesn't collide with an enemy
+ "projectiles_pass_thru_irrelevant_targets": true,
+ // Auto swap Bow & Spear cooldown ticks to apply for attack and itemUse
+ "auto_swap_cooldown": 5,
+ // Apply `Spell Casting from Spell Book` capability to anything that subclasses Sword
+ "add_spell_casting_to_swords": true,
+ // Apply `Spell Casting from Spell Book` capability to any item matching this regex. (Not applied of empty)
+ "add_spell_casting_regex": "",
+ // Do not apply `Spell Casting from Spell Book` capability to any item matching this regex. (Not applied of empty)
+ "blacklist_spell_casting_regex": "",
+ /* Relations determine which cases the effect of a player casted spell can effect a target.
+ +----------------+-----------+---------------+----------+----------+--------+
+ | | FRIENDLY | SEMI_FRIENDLY | NEUTRAL | HOSTILE | MIXED |
+ +----------------+-----------+---------------+----------+----------+--------+
+ | DIRECT DAMAGE | 🚫 | ✅ | ✅ | ✅ | ✅ |
+ | AREA DAMAGE | 🚫 | 🚫 | 🚫 | ✅ | ✅ |
+ | DIRECT HEALING | ✅ | ✅ | ✅ | 🚫 | ✅ |
+ | AREA HEALING | ✅ | ✅ | 🚫 | 🚫 | ✅ |
+ +----------------+-----------+---------------+----------+----------+--------+
+
+ The various relation related configs are being checked in the following order:
+ - `player_relations`
+ - `player_relation_to_passives`
+ - `player_relation_to_hostiles`
+ - `player_relation_to_other`
+ (The first relation to be found for the target will be applied.)
+ */
+ "player_relations": {
+ "minecraft:player": "SEMI_FRIENDLY",
+ "minecraft:villager": "SEMI_FRIENDLY",
+ "minecraft:iron_golem": "NEUTRAL",
+ "guardvillagers:guard": "SEMI_FRIENDLY"
+ },
+ // Relation to unspecified entities those are instance of PassiveEntity(Yarn)
+ "player_relation_to_passives": "HOSTILE",
+ // Relation to unspecified entities those are instance of HostileEntity(Yarn)
+ "player_relation_to_hostiles": "HOSTILE",
+ // Fallback relation
+ "player_relation_to_other": "HOSTILE"
+} \ No newline at end of file