diff --git a/code/__defines/admin_vr.dm b/code/__defines/admin_vr.dm
index bd3cdd9fd8..62c4add906 100644
--- a/code/__defines/admin_vr.dm
+++ b/code/__defines/admin_vr.dm
@@ -2,3 +2,4 @@
#define SMITE_SHADEKIN_NOMF "Shadekin (Devour)"
#define SMITE_REDSPACE_ABDUCT "Redspace Abduction"
#define SMITE_AUTOSAVE "10 Second Autosave"
+#define SMITE_AUTOSAVE_WIDE "10 Second Autosave (AoE)"
diff --git a/code/modules/admin/verbs/smite_vr.dm b/code/modules/admin/verbs/smite_vr.dm
index 71fc821b1d..fb52f18b50 100644
--- a/code/modules/admin/verbs/smite_vr.dm
+++ b/code/modules/admin/verbs/smite_vr.dm
@@ -8,7 +8,7 @@
if(!istype(target))
return
- var/list/smite_types = list(SMITE_SHADEKIN_ATTACK,SMITE_SHADEKIN_NOMF,SMITE_REDSPACE_ABDUCT,SMITE_AUTOSAVE)
+ var/list/smite_types = list(SMITE_SHADEKIN_ATTACK,SMITE_SHADEKIN_NOMF,SMITE_REDSPACE_ABDUCT,SMITE_AUTOSAVE,SMITE_AUTOSAVE_WIDE)
var/smite_choice = input("Select the type of SMITE for [target]","SMITE Type Choice") as null|anything in smite_types
if(!smite_choice)
@@ -125,6 +125,9 @@
if(SMITE_AUTOSAVE)
fake_autosave(target, src)
+ if(SMITE_AUTOSAVE_WIDE)
+ fake_autosave(target, src, TRUE)
+
else
return //Injection? Don't print any messages.
@@ -215,9 +218,14 @@ var/redspace_abduction_z
target.transforming = FALSE
-/proc/fake_autosave(mob/living/target, user)
+/proc/fake_autosave(var/mob/living/target, var/client/user, var/wide)
if(!istype(target) || !target.client)
- to_chat(user, "Not a living mob or no client, so no point!")
+ to_chat(user, "Skipping [target] because they are not a /mob/living or have no client.")
+ return
+
+ if(wide)
+ for(var/mob/living/L in orange(user.view, user.mob))
+ fake_autosave(L, user)
return
target.move_delay = 99999999
diff --git a/icons/obj/discs_vr.dmi b/icons/obj/discs_vr.dmi
index f2d511fc49..90c5a7e0c9 100644
Binary files a/icons/obj/discs_vr.dmi and b/icons/obj/discs_vr.dmi differ