Repository navigation
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.jsonthe 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.
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) |
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 |
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 = trueIf your pack or a guide still uses fix_all_spells, please change it to the new name.
| 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 |
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 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, 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 |
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 |
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/).
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).
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 } ]
}
}
}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
}| 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
}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.
Stormcaller (RPG Series Plus) for NeoForge 1.21.1 · CurseForge (coming soon) · Source · Report a bug
Start
For players
For pack makers
Reference