Skip to content

Configuration

Drehverschluss edited this page Nov 15, 2026 · 3 revisions

Configuration

Stormcaller has two TOML configs and five JSON configs, all in the config folder. Spell values (damage, cooldowns, jumps, shock chance …) are not in a config; they live in the spell files and are changed with a datapack, see Changing spell values.

File Side Content When a change applies
stormcaller-server.toml server (sent to clients) Tier 1 lightning values, shock, ricochet fix, merchant offers, skill tree lock, staff balls, Stored Charge While the game runs (except [wizards_tier_one]: restart)
stormcaller-client.toml client only Lightning visuals As soon as the file is saved
stormcaller/equipment.json server and client Robes and weapons Restart
stormcaller/effects.json server and client Static Shield, Galvanic Rush Restart
stormcaller/summoned_entities.json server and client Storm Elemental base values Restart
stormcaller/trinkets.json server and client Rings, amulets, relic effects, Ball Lightning (relic and Stormbringer Staff) Restart
stormcaller/tweaks.json server and client Items that need other mods Restart
  • The server TOML is sent to every client when it logs in, so item tooltips on the client show the values the server uses. NeoForge reloads it when the file changes; players who are already online see a changed value in the tooltips after they log in again.
  • The JSON files are not sent to the clients. They are read once at startup on each side. On a server, give the clients the same files, otherwise their tooltips show other numbers than the server uses (and with tweaks.json the item lists would not match).
  • JSON has no comments, so all fields are explained below. A file that is missing is written again with the defaults.

stormcaller-server.toml

[wizards_tier_one]

Lightning power for the tier 1 gear of Wizards. Stormcaller uses the same modifier ids as Spell Engine, so an entry for spell_power:lightning in config/wizards/equipment_v2.json always wins and nothing counts twice. Changes need a restart (players keep the old values until then).

The lightning line is placed right under Frost Spell Power in the tooltip, also when a pack adds more attributes (such as mana) in the Wizards config. Since 0.2.0 a pack does not need its own spell_power:lightning entry for that. If it has one, that entry stays where the Wizards config puts it.

Option Default Range Meaning
enabled true Add Lightning Spell Power to the Wizard Robe and the Wizard Staff
wizard_robe_lightning 0.2 0 – 10 Lightning Spell Power per Wizard Robe piece (multiplier on the base, 0.2 = +20 %)
wizard_staff_lightning 5.0 0 – 1000 Flat Lightning Spell Power of the Wizard Staff (main hand)

[shock]

See Shock for how it works.

Option Default Range Meaning
stun_seconds 0.5 0 – 60 Stun of a shock on normal targets, in seconds
nova_stun_seconds 1.5 0 – 60 Stun of Lightning Nova on normal targets (it always shocks)
stun_pause_seconds 2.0 0 – 30 After a stun from a shock ends, shocks can't stun the same target again for this long (stages of Shocked still stack). Lightning Nova always stuns and starts the pause again. 0 = no pause
stun_players false true: players are stunned like normal targets. false: players are slowed like bosses. They get the stages of Shocked either way
shocked_damage_per_stage 0.05 0 – 10 Shocked: extra lightning damage taken per stage (0.05 = +5 %). Other damage types are not changed
shocked_max_stages 5 1 – 255 Shocked: highest stage
shocked_seconds 8.0 0 – 600 Shocked: duration; every new shock adds a stage and refreshes it. 0 turns the stages off
slow_enabled true Bosses (#stormcaller:shock_resistant): slow briefly on a shock instead of stunning
slow_amount 0.5 0 – 1 Bosses: movement speed reduction of the slow (0.5 = −50 %)
slow_seconds 1.0 0 – 60 Bosses: duration of the slow
slow_cooldown_seconds 3.0 0 – 600 Bosses: after a slow ends, the same target cannot be slowed again for this long. Stages of Shocked still stack

[ricochet]

Spell Engine moves a projectile a full step right after it jumps to the next target, without a hit check, so fast projectiles fly through that target. Stormcaller's fix keeps the projectile in place for that one tick and searches the next target around the enemy that was hit, not around the projectile. It always applies to the spells in #stormcaller:fx/ricochet_fix (Spark, Lightning Bolt, Chain Lightning).

Option Default Meaning
fix_ricochet_all_spells false Apply the fix to the projectiles of all spells, also those of other mods

Renamed in 0.3.0: up to 0.2.0 this key was called fix_all_spells. An existing value is carried over automatically on the first start (one line in the log), afterwards only the new name is in the file.

For modpack makers: to fix the ricochet bug of Spell Engine for all spells, for example the Frostbolt of Wizards (then 3 hits instead of 1–2), set this in config/stormcaller-server.toml:

[ricochet]
fix_ricochet_all_spells = true

If your pack or a guide still uses fix_all_spells, please change it to the new name.

[trades]

Option Default Meaning
wizard_merchant true The Wizard Merchant also offers Lightning Rune (level 1), Lightning Wand (level 2) and an enchanted Lightning Staff (level 5). false: no lightning offers. Applies to offers rolled from then on, merchants keep the offers they have

[skill_tree]

Only used with Skill Tree (RPG Series).

Option Default Meaning
class_lock true Stormcaller counts as a class: a player with a class in the Class Skills tab cannot take the Stormcaller root, and the other way round. Players who already have both keep them. See Skill tree

[ball_lightning]

Ball Lightning of the Stormbringer Staff (see Equipment). Movement, lifetime, pulse, range and target count of all balls are in trinkets.json, chance, cooldown, damage and shock chance in the spell files.

Option Default Range Meaning
max_staff_balls 3 1 – 10 Most staff balls one player can have at once. Each lives its full time; at the limit, casting again ends the oldest one. The relic ball counts on its own (always one at most)

[stored_charge]

Stored Charge, the passive of the Amber Lightning Staff (see Equipment). The trigger (which hits charge, at most one per tick) is in the spell file stormcaller:stored_charge.

Option Default Range Meaning
max_charges 5 1 – 50 Charges for a full staff (stages of the effect Stored Charge)
extra_ricochets 2 0 – 20 Extra jumps of the discharging Lightning Bolt, added to those of the spell and its modifiers
decay_seconds 15.0 1 – 600 The whole charge fades this long after the last hit that charged it
discharge_shock_chance 1.0 0 – 1 Base shock chance of every hit of the discharging Lightning Bolt (1.0 = always; bosses are slowed instead of stunned)
discharge_hits_charge false true: the hits of the discharging Lightning Bolt charge the staff again (in groups of 5 or more enemies it is full again right away). false: they give no charge

stormcaller-client.toml

Only changes what this client draws; spells work the same either way.

Option Default Range Meaning
[fx] arcs_enabled true Draw lightning arcs: jumps between targets, arcs at impacts, the Lightning Nova ring and strikes. Flashes, sparks and flying projectiles are always drawn
[fx] strength FULL FULL, REDUCED FULL: branches, wide glow and sky flashes. REDUCED: thinner, no branches, fewer sparks, no sky flash
[fx] max_arcs 64 0 – 1024 Most arcs at the same time; when more arrive, the oldest are removed
[items] crystal_arcs true Small arcs at the crystal of the Stormbringer Staff while it is held

stormcaller/equipment.json

Robes and weapons, in the same format as the equipment configs of Wizards (Spell Engine). Two sections:

weapons, keyed by item path (wand_lightning, wand_netherite_lightning, staff_lightning, staff_netherite_lightning, staff_stormbringer; staff_amber_lightning only appears when the staff is registered). The Stormbringer Staff has +10 Lightning Spell Power by default since 0.2.0; a file written by 0.1.0 keeps its +8 (set the value to 10 or delete the entry to get the new default).

Field Meaning
attack_damage Attack damage added to the base of 1 (2.0 shows as "3 Attack Damage")
attack_speed Added to the base of 4 (−2.4 shows as "1.6 Attack Speed")
attributes List of attribute modifiers in the main hand: attribute (id), value, operation

armor_sets, keyed by set (lightning_robe, netherite_lightning_robe, fulgurite_robe, stormweave_robe):

Field Meaning
armor_toughness Armor toughness of every piece
knockback_resistance Knockback resistance of every piece
head, chest, legs, feet Per piece: armor (armor points) and attributes (list like above)

Operations: ADD_VALUE adds a flat amount (+5 Lightning Spell Power), ADD_MULTIPLIED_BASE a share of the base (0.25 = +25 %), ADD_MULTIPLIED_TOTAL multiplies the total.

Example: the Lightning Robe hat with mana from RunelessRPG added.

"head": {
  "armor": 1,
  "attributes": [
    { "attribute": "spell_power:lightning", "value": 0.25, "operation": "ADD_MULTIPLIED_BASE" },
    { "attribute": "stormcaller:shock_chance", "value": 0.02, "operation": "ADD_MULTIPLIED_BASE" },
    { "attribute": "runelessrpg:max_mana", "value": 8.0, "operation": "ADD_VALUE" }
  ]
}

The set bonuses of the tier 4 robes are not in this file; they are datapack files (data/stormcaller/equipment_set/).

stormcaller/effects.json

Attribute modifiers of two status effects, same format as config/wizards/effects.json.

Field Meaning
effects Keyed by effect id: stormcaller:static_shield (Static Shield) and stormcaller:galvanic_rush (skill tree)
attributes List of modifiers while the effect is active: attribute, value, operation
{
  "effects": {
    "stormcaller:static_shield": {
      "attributes": [
        { "attribute": "spell_engine:damage_taken", "value": -0.1, "operation": "ADD_MULTIPLIED_BASE" }
      ]
    },
    "stormcaller:galvanic_rush": {
      "attributes": [
        { "attribute": "minecraft:generic.movement_speed", "value": 0.05, "operation": "ADD_MULTIPLIED_BASE" }
      ]
    }
  }
}
  • Static Shield: −0.1 = 10 % less damage taken. The spell tooltip reads the value from here.
  • Galvanic Rush: speed per stage (Minecraft multiplies it with the stage, up to 3 stages).

stormcaller/summoned_entities.json

Base values of the Storm Elemental, same format as config/wizards/summoned_entities.json. The spell file adds the scaling with your Lightning Spell Power on top (see Spells).

Field Meaning
entries Keyed by entity id, here stormcaller:storm_elemental
common.max_health Base health (30)
common.movement_speed Base speed (0.25)
common.attack_damage Base melee damage (4)
common.follow_range How far it looks for targets (32)
custom More attributes as id and value; default spell_power:lightning 1.0
schema_version Version of the file format, written by the mod; leave it as it is
{
  "entries": {
    "stormcaller:storm_elemental": {
      "common": { "max_health": 30.0, "movement_speed": 0.25, "attack_damage": 4.0, "follow_range": 32.0 },
      "custom": [ { "id": "spell_power:lightning", "value": 1.0 } ]
    }
  }
}

stormcaller/trinkets.json

Values of the jewelry and relics (only used with Curios API). The file has a _comment field that explains it.

Field Meaning
items Keyed by item id (stormcaller:stormheart_ring, stormheart_necklace, thunderstrike_ring, thunderstrike_necklace): attributes while worn, list of attribute, value, operation (0.08 = +8 %)
effects Keyed by effect id: stormcaller:static_charge (Static Lodestone) and stormcaller:storm_power (Storm Orb), attributes while active
ball_lightning.speed Blocks per second (default 2, range 0 – 20)
ball_lightning.duration_seconds Lifetime (10, range 0.5 – 120)
ball_lightning.pulse_seconds Time between two lightning pulses (0.5, range 0.05 – 60)
ball_lightning.range Enemies whose hitbox is this close to the ball can be struck (4, range 0 – 16)
ball_lightning.max_targets Enemies struck per pulse, nearest first (3, range 0 – 16)
ball_lightning.spawn_distance The ball appears this many blocks in front of the player (1.5, range 0 – 8)

These values apply to the ball of the Caged Ball Lightning and to the ball of the Stormbringer Staff. The section is read also without Curios API. Chance, cooldown, damage and shock chance are in the spell files (datapack), the most staff balls at once in stormcaller-server.toml ([ball_lightning]).

"ball_lightning": {
  "speed": 2.0,
  "duration_seconds": 10.0,
  "pulse_seconds": 0.5,
  "range": 4.0,
  "max_targets": 3,
  "spawn_distance": 1.5
}

stormcaller/tweaks.json

Field Default Meaning
ignore_items_required_mods false true registers items that need another mod even without that mod (Amber Lightning Staff: Better End). Server and client must use the same value
{
  "ignore_items_required_mods": false
}

Tags

Most behavior that is not a number is a tag that datapacks can extend:

Tag Use
#stormcaller:shock_resistant (entity type) Slowed instead of stunned by a shock
#stormcaller:shock_immune (entity type) Not affected by shocks at all (empty)
#stormcaller:static_shield/ignored (damage type) Damage that does not trigger Static Shield and Storm Ward
#stormcaller:eye_of_the_storm (spell) Spells that Eye of the Storm makes instant
#stormcaller:spell_book/lightning, #stormcaller:spell_scroll/lightning (spell) Spells of the tome and the scrolls
#stormcaller:fx/ricochet_fix (spell) Spells with the ricochet fix
#stormcaller:loot_affiliation/lightning (item) Lightning items for class loot
#stormcaller:armor_type/lightning_robes (item) All 16 lightning robe pieces
#stormcaller:area/nearest_target (spell) Spells whose area impact only hits the nearest enemy (Forked Spark, Static Shield)
#stormcaller:fx/chain_arc, #stormcaller:fx/chain_arc_strong (spell) Draw an arc from target to target on every jump (strong style for Chain Lightning)
#stormcaller:fx/nova_ring, #stormcaller:fx/shield_burst, #stormcaller:fx/sky_strike (spell) Lightning ring around the caster, short burst on release, bolt from the sky where a falling projectile lands
#stormcaller:rune_crafting/reagent/lightning_small, #stormcaller:rune_crafting/reagent/lightning_medium (item) Ingredients of the Lightning Rune recipes (Copper Ingot, Lightning Rod)
#stormcaller:weapon/lightning_staff (spell) Contains Lightning Bolt; not read by Stormcaller itself (the staves have their spell set directly)

Loot tags: see Loot, trades and advancements.

Clone this wiki locally