SpellEngine icon indicating copy to clipboard operation
SpellEngine copied to clipboard

[1.20.1] Presence sound causes game crash

Open kallmetony opened this issue 9 months ago • 1 comments

Description

I wanted to create spell in form of a cloud, but when I tried to cast my cloud I my minecraft crashed. By the way, why it cant perform SPAWN action in form of impact?

My spell.json file:

{
  "school": "SOUL",
  "group": "primary",
  "range": 16,
  "learn": {
    "tier": 0
  },
  "cast": {
    "duration": 2,
    "animation": "spell_engine:one_handed_area_charge",
    "sound": {
      "id": "necromancer_rpg:never_goon",
      "randomness": 0
    },
    "particles": [
      {
        "particle_id": "minecraft:soul",
        "shape": "PIPE",
        "origin": "FEET",
        "count": 1,
        "min_speed": 0.05,
        "max_speed": 0.1
      }
    ]
  },
  "release": {
    "target": {
      "type": "CLOUD",
      "cloud": {
        "entity_type_id": "necromancer_rpg:graveyard_cloud",
        "volume": {
          "radius": 1,
          "particles": [
            {
              "particle_id": "minecraft:soul",
              "shape": "PIPE",
              "origin": "FEET",
              "count": 0.5,
              "min_speed": 0.05,
              "max_speed": 0.1
            }
          ]
        },
        "time_to_live_seconds": 6,
        "impact_tick_interval": 40,
        "placement": {
          "location_offset_by_look": 5
        },
        "presence_sound": {
          "id": "minecraft:entity.skeleton.ambient"
        },
        "client_data": {
          "particles": [
            {
              "particle_id": "minecraft:soul",
              "shape": "PIPE",
              "origin": "FEET",
              "count": 0.5,
              "min_speed": 0.05,
              "max_speed": 0.1
            }
          ],
          "model": {
            "model_id": "wizards:projectile/arcane_missile",
            "scale": 0.75
          }
        },
        "spawn": {
          "sound": {
            "id": "spell_engine:generic_soul_release"
          },
          "particles": [
            {
              "particle_id": "minecraft:soul",
              "shape": "PIPE",
              "origin": "FEET",
              "count": 0.5,
              "min_speed": 0.05,
              "max_speed": 0.1
            }
          ]
        }
      }
    },
    "animation": "spell_engine:one_handed_area_release",
    "sound": {
      "id": "spell_engine:generic_soul_release"
    }
  },
  "impact": [
    {
      "action": {
        "type": "SPAWN",
        "spawns": [
          {
            "entity_type_id": "necromancer_rpg:bone_guardian",
            "time_to_live_seconds": 12,
            "delay_ticks": 0,
            "placement": {
              "location_offset_by_look": 3,
              "location_yaw_offset": -30.0
            }
          }
        ]
      }
    }
  ],
  "cost": {
    "item_id": "runes:soul_stone",
    "cooldown_duration": 12
  }
}

Crash log

[22:11:16] [Render thread/ERROR] (Minecraft) Reported exception thrown!
 net.minecraft.util.crash.CrashException: Ticking entity
	at net.minecraft.world.World.tickEntity(World.java:487) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.world.ClientWorld.method_32124(ClientWorld.java:255) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.world.EntityList.forEach(EntityList.java:54) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld.java:251) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.MinecraftClient.tick(MinecraftClient.java:1901) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1181) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:802) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:250) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480) ~[fabric-loader-0.16.13.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.16.13.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.16.13.jar:?]
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) ~[dev-launch-injector-0.2.1+build.8.jar:?]
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.registry.entry.RegistryEntry.value()" because "sound" is null
	at net.minecraft.client.world.ClientWorld.playSoundFromEntity(ClientWorld.java:476) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.world.World.playSoundFromEntity(World.java:419) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.world.ClientWorld.playSoundFromEntity(ClientWorld.java:2109) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.spell_engine.entity.SpellCloud.tick(SpellCloud.java:186) ~[spell-engine-0.15.12+1.20.1.jar:?]
	at net.minecraft.client.world.ClientWorld.tickEntity(ClientWorld.java:272) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.world.World.tickEntity(World.java:480) ~[minecraft-merged-e9d88d1754-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	... 11 more
---- Minecraft Crash Report ----
// Why did you do that?

Time: 2025-04-18 22:11:16
Description: Ticking entity

java.lang.NullPointerException: Cannot invoke "net.minecraft.registry.entry.RegistryEntry.value()" because "sound" is null
	at knot//net.minecraft.client.world.ClientWorld.playSoundFromEntity(ClientWorld.java:476)
	at knot//net.minecraft.world.World.playSoundFromEntity(World.java:419)
	at knot//net.minecraft.client.world.ClientWorld.playSoundFromEntity(ClientWorld.java:2109)
	at knot//net.spell_engine.entity.SpellCloud.tick(SpellCloud.java:186)
	at knot//net.minecraft.client.world.ClientWorld.tickEntity(ClientWorld.java:272)
	at knot//net.minecraft.world.World.tickEntity(World.java:480)
	at knot//net.minecraft.client.world.ClientWorld.method_32124(ClientWorld.java:255)
	at knot//net.minecraft.world.EntityList.forEach(EntityList.java:54)
	at knot//net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld.java:251)
	at knot//net.minecraft.client.MinecraftClient.tick(MinecraftClient.java:1901)
	at knot//net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1181)
	at knot//net.minecraft.client.MinecraftClient.run(MinecraftClient.java:802)
	at knot//net.minecraft.client.main.Main.main(Main.java:250)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at knot//net.minecraft.client.world.ClientWorld.playSoundFromEntity(ClientWorld.java:476)
	at knot//net.minecraft.world.World.playSoundFromEntity(World.java:419)
	at knot//net.minecraft.client.world.ClientWorld.playSoundFromEntity(ClientWorld.java:2109)
	at knot//net.spell_engine.entity.SpellCloud.tick(SpellCloud.java:186)
	at knot//net.minecraft.client.world.ClientWorld.tickEntity(ClientWorld.java:272)
	at knot//net.minecraft.world.World.tickEntity(World.java:480)
	at knot//net.minecraft.client.world.ClientWorld.method_32124(ClientWorld.java:255)
	at knot//net.minecraft.world.EntityList.forEach(EntityList.java:54)
	at knot//net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld.java:251)

-- Entity being ticked --
Details:
	Entity Type: necromancer_rpg:graveyard_cloud (com.kallmetony.necromancer_rpg.entity.GraveyardCloudEntity)
	Entity ID: 810
	Entity Name: entity.necromancer_rpg.graveyard_cloud
	Entity's Exact location: -432.20, 72.00, -554.77
	Entity's Block location: World: (-433,72,-555), Section: (at 15,8,5 in -28,4,-35; chunk contains blocks -448,-64,-560 to -433,319,-545), Region: (-1,-2; contains chunks -32,-64 to -1,-33, blocks -512,-64,-1024 to -1,319,-513)
	Entity's Momentum: 0.00, 0.00, 0.00
	Entity's Passengers: []
	Entity's Vehicle: null
Stacktrace:
	at knot//net.minecraft.world.World.tickEntity(World.java:480)
	at knot//net.minecraft.client.world.ClientWorld.method_32124(ClientWorld.java:255)
	at knot//net.minecraft.world.EntityList.forEach(EntityList.java:54)
	at knot//net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld.java:251)
	at knot//net.minecraft.client.MinecraftClient.tick(MinecraftClient.java:1901)
	at knot//net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1181)
	at knot//net.minecraft.client.MinecraftClient.run(MinecraftClient.java:802)
	at knot//net.minecraft.client.main.Main.main(Main.java:250)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)

kallmetony avatar Apr 18 '25 19:04 kallmetony

After one hour of investigation I have still no idea whats causing the crash.

As this logic seems to work perfectly fine for paladin Battle Banner.

ZsoltMolnarrr avatar Apr 21 '25 10:04 ZsoltMolnarrr