diff --git a/code/__DEFINES/~skyrat_defines/preferences.dm b/code/__DEFINES/~skyrat_defines/preferences.dm
index 3c2d5f469c6..42a1e65bee3 100644
--- a/code/__DEFINES/~skyrat_defines/preferences.dm
+++ b/code/__DEFINES/~skyrat_defines/preferences.dm
@@ -3,5 +3,6 @@
#define CHAT_LOOC_ADMIN (1<<1)
#define APHRO_PREF (1<<2)
#define CUMFACE_PREF (1<<3)
+#define ADMINDEL_ZAP_PREF (1<<4)
#define TOGGLES_DEFAULT_SKYRAT (CHAT_LOOC_ADMIN|APHRO_PREF|CUMFACE_PREF)
diff --git a/code/modules/admin/view_variables/admin_delete.dm b/code/modules/admin/view_variables/admin_delete.dm
index 947ad5db2ca..27105b6f30a 100644
--- a/code/modules/admin/view_variables/admin_delete.dm
+++ b/code/modules/admin/view_variables/admin_delete.dm
@@ -2,8 +2,9 @@
var/atom/A = D
var/coords = ""
var/jmp_coords = ""
+ var/turf/T // SKYRAT EDIT -- Bluespace sparks on admin delete
if(istype(A))
- var/turf/T = get_turf(A)
+ T = get_turf(A) // SKYRAT EDIT, orginal: var/turf/T = get_turf(A)
if(T)
coords = "at [COORD(T)]"
jmp_coords = "at [ADMIN_COORDJMP(T)]"
@@ -15,10 +16,17 @@
message_admins("[key_name_admin(usr)] deleted [D] [jmp_coords]")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
if(isturf(D))
- var/turf/T = D
+ T = D // SKYRAT EDIT, orginal: var/turf/T = D
T.ScrapeAway()
else
vv_update_display(D, "deleted", VV_MSG_DELETED)
qdel(D)
if(!QDELETED(D))
vv_update_display(D, "deleted", "")
+ // Skyrat edit addition start -- optional bluespace sparks on delete
+ if(T && prefs.skyrat_toggles & ADMINDEL_ZAP_PREF)
+ playsound(T, 'sound/magic/Repulse.ogg', 100, 1)
+ var/datum/effect_system/spark_spread/quantum/sparks = new
+ sparks.set_up(10, 1, T)
+ sparks.attach(T)
+ sparks.start()
diff --git a/code/modules/buildmode/submodes/advanced.dm b/code/modules/buildmode/submodes/advanced.dm
index 1dbc5fbb348..8f5c265b79b 100644
--- a/code/modules/buildmode/submodes/advanced.dm
+++ b/code/modules/buildmode/submodes/advanced.dm
@@ -60,4 +60,12 @@
else if(right_click)
if(isobj(object))
log_admin("Build Mode: [key_name(c)] deleted [object] at [AREACOORD(object)]")
+ // SKYRAT EDIT -- BS delete sparks. Original was just qdel(object)
+ var/turf/T = get_turf(object)
qdel(object)
+ if(T && c.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF)
+ playsound(T, 'sound/magic/Repulse.ogg', 100, 1)
+ var/datum/effect_system/spark_spread/quantum/sparks = new
+ sparks.set_up(10, 1, T)
+ sparks.attach(T)
+ sparks.start()
diff --git a/code/modules/buildmode/submodes/basic.dm b/code/modules/buildmode/submodes/basic.dm
index a5abd94fdd0..1bb229368d5 100644
--- a/code/modules/buildmode/submodes/basic.dm
+++ b/code/modules/buildmode/submodes/basic.dm
@@ -38,7 +38,15 @@
var/turf/T = object
T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
else if(isobj(object))
+ // SKYRAT EDIT -- BS delete sparks. Original was just qdel(object)
+ var/turf/T = get_turf(object)
qdel(object)
+ if(T && c.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF)
+ playsound(T, 'sound/magic/Repulse.ogg', 100, 1)
+ var/datum/effect_system/spark_spread/quantum/sparks = new
+ sparks.set_up(10, 1, T)
+ sparks.attach(T)
+ sparks.start()
return
else if(istype(object,/turf) && alt_click && left_click)
log_admin("Build Mode: [key_name(c)] built an airlock at [AREACOORD(object)]")
diff --git a/code/modules/buildmode/submodes/delete.dm b/code/modules/buildmode/submodes/delete.dm
index 8a4129fc40f..dad3ff33f3b 100644
--- a/code/modules/buildmode/submodes/delete.dm
+++ b/code/modules/buildmode/submodes/delete.dm
@@ -15,7 +15,15 @@
var/turf/T = object
T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
else if(isatom(object))
+ // SKYRAT EDIT -- BS delete sparks. Original was just qdel(object)
+ var/turf/T = get_turf(object)
qdel(object)
+ if(T && c.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF)
+ playsound(T, 'sound/magic/Repulse.ogg', 100, 1)
+ var/datum/effect_system/spark_spread/quantum/sparks = new
+ sparks.set_up(10, 1, T)
+ sparks.attach(T)
+ sparks.start()
if(LAZYACCESS(modifiers, RIGHT_CLICK))
if(check_rights(R_DEBUG|R_SERVER)) //Prevents buildmoded non-admins from breaking everything.
diff --git a/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm b/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm
index cc2abd1a36d..dac3338d6b7 100644
--- a/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm
+++ b/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm
@@ -7,3 +7,14 @@
usr.client.prefs.save_preferences()
to_chat(usr, "You will [(usr.client.prefs.skyrat_toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel.")
SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Seeing LOOC", "[usr.client.prefs.skyrat_toggles & CHAT_LOOC ? "Enabled" : "Disabled"]"))
+
+/client/verb/admin_delete_zap_pref()
+ set name = "Toggle Delete Sparks"
+ set category = "Preferences.Admin"
+ set desc = "Toggles the appearance of bluespace zaps when you use the Delete command on stuff. Also applies to simple/advanced/del buildmode."
+ if(!holder)
+ return
+ usr.client.prefs.skyrat_toggles ^= ADMINDEL_ZAP_PREF
+ usr.client.prefs.save_preferences()
+ to_chat(usr, "There will [(usr.client.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF) ? "now" : "no longer"] be bluespace sparks when you Delete objects.")
+ SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Delete Sparks", "[usr.client.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF ? "Enabled" : "Disabled"]"))