Iron's Spells 'n Spellbooks

Iron's Spells 'n Spellbooks

10M Downloads

[Bug] Earthquake spell underground crashes modpack server

Mercylayne opened this issue ยท 3 comments

commented

Observed behaviour

After player casted Earthquake spell in the 2x1 tunnel underground server starts to ticking too high, fps dropped low, ram usage goes high with everyone who stands close to epicenter, chunks stopped generating.

I used to reproduce same thing in singleplayer - same issue.

Expected behaviour

Earthquake spell will casts with the same effect like on surface, and does not crash server when used underground

Steps to reproduce

  1. Dig staircase-like tunnel 2x1 straight under the ground to the y coord below 30 or even under 0
  2. Turn around facing to the place where are you come from
  3. Turn your vision up while beign under the ground in the tunnel
  4. Cast spell Earthquake 3+ level on the blocks that in your sight
  5. Do it 1-2 times and wait until spell time goes off
  6. Check your FPS rate and RAM usage

I've done it in singleplayer and on the server, crash happened in both cases

Server Type

Dedicated Server

Crashlog

https://gist.github.com/Mercylayne/e61a6c933e13f8282d7875b48545c765

Iron's Spells N Spellbooks version

1.20.1-2.2.2

Forge version

1.20.1. - 47.2.20

Other mods

explorer_eG6T83IdzC
explorer_9cGQuUo4Pc
explorer_ml1dP2nuy0
explorer_xlOwdWb8U8
explorer_VB4KZb585M
explorer_5oUGfXpq2B
explorer_67QTRKXK9L
explorer_CS5hLWUSS5
explorer_D7iDvU0WM5

commented

protected void createTremorBlock(BlockPos blockPos, float impulseStrength) {
var fallingblockentity = new VisualFallingBlockEntity(level, blockPos.getX(), blockPos.getY(), blockPos.getZ(), level.getBlockState(blockPos), 20);
fallingblockentity.setDeltaMovement(0, impulseStrength, 0);
level.addFreshEntity(fallingblockentity);
if (!level.getBlockState(blockPos.above()).isAir()) {
createTremorBlock(blockPos.above(), impulseStrength);
}
}

shouldn't there be a cap on how many recursive calls this can make (in addition to the air check)?
like a max. height (from the origin)

commented

shouldn't there be a cap on how many recursive calls this can make (in addition to the air check)?

yeah i already fixed it on curio casting

commented

fixed in 3.0.0