SpellEngine
SpellEngine copied to clipboard
[1.20.1] Presence sound causes game crash
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)
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.