Configuration¶
Server tuning
The values below describe the packaged defaults from src/main/resources/server-config.json. A live world can diverge once it has already written its own runtime server-config.json.
High-impact defaults¶
Global spell timing
spellbooks.inputDebounceSeconds = 0.6, spellbooks.castDebounceSeconds = 0.6, and spellbooks.secondaryUseDelaySeconds = 0.3.
Arcane Crystals
chance = 0.33, placementsPerChunk = 1, densityRadius = 64, maxPlacementsPerRadius = 1.
Kudu Adepts
interval = 120s, maxAttempts = 3, cellSize = 256, cellChance = 33%, and no timed despawn.
Movement blocks
Cloud defaults to a 6-block target height. Bounce starts at 4 blocks, gains 2 per chain, and caps at 18.
Spell and weapon keys¶
| System | Defaults that matter most |
|---|---|
| Healing Book | manaCost = 25, healAmount = "full", projectileDelaySeconds = 0.15 |
| Teleport Book | maxDistanceBlocks = 100, manaCost = 10, castDelaySeconds = 0.5 |
| Mining Book | maxDistanceBlocks = 12, manaCost = 5, chargeTierSeconds = 1.0, maxTunnelBlocks = 10 |
| Immunity Book | manaCost = 15, immunitySeconds = 3 |
| Taunt Book | manaCost = 25, launchHeightBlocks = 10, fallImmunitySeconds = 6, slamDamage = 40, groundBreakDepthBlocks = 2 |
| Horde Book | manaCost = 25, minionLifetimeSeconds = 30, ownerFriendlySeconds = 60 |
| Doom Book | manaCost = 25, projectileDelaySeconds = 0.24 |
| Morph Book | manaCost = 25 |
| Frost Book | manaCost = 20 |
| Flame Book | manaCost = 20, projectileDelaySeconds = 0.2 |
| Light Book | manaCost = 15, projectileDelaySeconds = 0.16, dynamicLightRadius = 1 |
| Ancient Sword | manaCost = 20, cooldownSeconds = 1.25, castDelaySeconds = 0.34 |
World and NPC keys¶
Arcane Matter ore¶
worldgen.arcaneMatterOres.enabledworldgen.arcaneMatterOres.processExistingChunksworldgen.arcaneMatterOres.stone.*worldgen.arcaneMatterOres.volcanic.*
Arcane Crystals¶
worldgen.arcaneCrystalChancePerNewChunkworldgen.arcaneCrystalPlacementsPerChunkworldgen.arcaneCrystalDensityRadiusBlocksworldgen.arcaneCrystalMaxPlacementsPerRadiusworldgen.arcaneCrystalProcessExistingChunksworldgen.arcaneCrystalPruneLegacyClusters
Rune Knight¶
runeKnight.spawn.*runeKnight.despawn.*runeKnight.projectiles.*runeKnight.loot.*
Kudu Adept¶
kuduAdept.spawn.*kuduAdept.despawn.*
Movement blocks¶
cloudBlock.*bounceBlock.*
Practical tuning advice¶
- Compare the live runtime config with the packaged defaults before assuming the guidebook is out of date.
- Tune
teleportBook.castDelaySeconds,doomBook.projectileDelaySeconds,flameBook.projectileDelaySeconds, andlightBook.projectileDelaySecondsindependently. They are separate on purpose. - Keep
worldgen.arcaneCrystalMaxPlacementsPerRadius = 1unless you intentionally want crystals to become much more common again. - Pair config review with
spellbooks-debug.logwhenever a spell or movement report sounds vague. A lot of "balance" bugs are actually state or routing bugs.