diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 96c7827438a..99522e44faf 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -628,6 +628,9 @@
burn_state = LAVA_PROOF
hitsound = 'sound/weapons/sear.ogg'
var/turf_type = /turf/open/floor/plating/lava/smooth
+ var/transform_string = "lava"
+ var/reset_turf_type = /turf/open/floor/plating/asteroid/basalt
+ var/reset_string = "basalt"
var/cooldown = 200
var/timer = 0
var/banned_turfs
@@ -645,13 +648,18 @@
return
if(target in view(user.client.view, get_turf(user)))
- var/turf/T = get_turf(target)
- message_admins("[key_name_admin(user)] fired the lava staff at ([get_area(target)] ([T.x], [T.y], [T.z])).")
- log_game("[key_name(user)] fired the lava staff at [get_area(target)] ([T.x], [T.y], [T.z]).")
- var/turf/open/O = target
- user.visible_message("[user] turns \the [O] into lava!")
- O.ChangeTurf(turf_type)
+ var/turf/open/T = get_turf(target)
+ if(!istype(T))
+ return
+ if(!istype(T, turf_type))
+ user.visible_message("[user] turns \the [T] into [transform_string]!")
+ message_admins("[key_name_admin(user)] fired the lava staff at ([get_area(target)] ([T.x], [T.y], [T.z])).")
+ log_game("[key_name(user)] fired the lava staff at [get_area(target)] ([T.x], [T.y], [T.z]).")
+ T.ChangeTurf(turf_type)
+ else
+ user.visible_message("[user] turns \the [T] into [reset_string]!")
+ T.ChangeTurf(reset_turf_type)
playsound(get_turf(src),'sound/magic/Fireball.ogg', 200, 1)
timer = world.time + cooldown