diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 31b789844be..9b3d413e94d 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -218,6 +218,14 @@
if(src.holder && src.holder.marked_datum && src.holder.marked_datum == D)
body += "
Marked Object"
+ if(D.var_edited)
+ body += "
Var Edited"
+
+ if(istype(D, /atom))
+ var/atom/A = D
+ if(A.admin_spawned)
+ body += "
Admin Spawned"
+
body += ""
body += ""
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 0df047cdca3..eef930f78a7 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -36,7 +36,7 @@
var/list/original_atom
var/allow_spin = 1 //Set this to 1 for a _target_ that is being thrown at; if an atom has this set to 1 then atoms thrown AT it will not spin; currently used for the singularity. -Fox
-
+
var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff.
/atom/proc/onCentcom()
@@ -469,4 +469,5 @@
/atom/on_varedit(modified_var)
if(!Debug2)
- admin_spawned = TRUE
\ No newline at end of file
+ admin_spawned = TRUE
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm
index 8b6c00d6b7c..005ef313a4f 100644
--- a/code/game/objects/items/weapons/power_cells.dm
+++ b/code/game/objects/items/weapons/power_cells.dm
@@ -30,6 +30,14 @@
processing_objects.Remove(src)
return ..()
+/obj/item/weapon/stock_parts/cell/on_varedit(modified_var)
+ if(modified_var == "self_recharge")
+ if(self_recharge)
+ processing_objects.Add(src)
+ else
+ processing_objects.Remove(src)
+ ..()
+
/obj/item/weapon/stock_parts/cell/suicide_act(mob/user)
to_chat(viewers(user), "[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.")
return (FIRELOSS)
diff --git a/code/modules/mob/living/update_status.dm b/code/modules/mob/living/update_status.dm
index f817b03482e..bcd19a0ba89 100644
--- a/code/modules/mob/living/update_status.dm
+++ b/code/modules/mob/living/update_status.dm
@@ -95,3 +95,27 @@
/mob/living/proc/update_stamina()
return
+
+/mob/living/on_varedit(modified_var)
+ switch(modified_var)
+ if("weakened")
+ SetWeakened(weakened)
+ if("stunned")
+ SetStunned(stunned)
+ if("paralysis")
+ SetParalysis(paralysis)
+ if("sleeping")
+ SetSleeping(sleeping)
+ if("eye_blind")
+ SetEyeBlind(eye_blind)
+ if("eye_blurry")
+ SetEyeBlurry(eye_blurry)
+ if("ear_deaf")
+ SetEarDeaf(ear_deaf)
+ if("ear_damage")
+ SetEarDamage(ear_damage)
+ if("maxHealth")
+ updatehealth()
+ if("resize")
+ update_transform()
+ ..()
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 2d87a32be2b..7c6391a7af8 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -160,6 +160,14 @@
playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1)
return (OXYLOSS)
+/obj/item/weapon/gun/energy/on_varedit(modified_var)
+ if(modified_var == "selfcharge")
+ if(selfcharge)
+ processing_objects.Add(src)
+ else
+ processing_objects.Remove(src)
+ ..()
+
/obj/item/weapon/gun/energy/proc/robocharge()
if(isrobot(loc))
var/mob/living/silicon/robot/R = loc