diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 0a9de239cc..29c504edd3 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -132,14 +132,18 @@
remove_padding()
else if(istype(W, /obj/item/weapon/grab))
- user.visible_message("[user] attempts to buckle [W:affecting] into \the [src]!")
+ var/obj/item/weapon/grab/G = W
+ var/mob/living/affecting = G.affecting
+ user.visible_message("[user] attempts to buckle [affecting] into \the [src]!")
if(do_after(user, 20))
- W:affecting.loc = loc
- if(buckle_mob(W:affecting))
- W:affecting.visible_message(\
- "[W:affecting.name] is buckled to [src] by [user.name]!",\
- "You are buckled to [src] by [user.name]!",\
- "You hear metal clanking.")
+ affecting.loc = loc
+ spawn(0)
+ if(buckle_mob(affecting))
+ affecting.visible_message(\
+ "[affecting.name] is buckled to [src] by [user.name]!",\
+ "You are buckled to [src] by [user.name]!",\
+ "You hear metal clanking.")
+ qdel(W)
else
..()
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 8f01fe91e2..ea1824462f 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -404,7 +404,7 @@ var/list/admin_verbs_mentor = list(
var/mob/dead/observer/ghost = body.ghostize(1)
ghost.admin_ghosted = 1
if(body)
- body.aghosted = ghost
+ body.teleop = ghost
if(!body.key)
body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus
feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index ac3ec16a75..4c55a7ec92 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -217,7 +217,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
mind.current.ajourn=0
mind.current.key = key
- mind.current.aghosted = null
+ mind.current.teleop = null
if(!admin_ghosted)
announce_ghost_joinleave(mind, 0, "They now occupy their body again.")
return 1
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 47aa05aeda..c8bfa94443 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -260,7 +260,7 @@
var/show_ssd
var/mob/living/carbon/human/H = src
if(istype(H)) show_ssd = H.species.show_ssd
- if(show_ssd && !client && !aghosted)
+ if(show_ssd && !client && !teleop)
M.visible_message("[M] shakes [src] trying to wake [t_him] up!", \
"You shake [src], but they do not respond... Maybe they have S.S.D?")
else if(lying || src.sleeping)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 45fd6d36d1..4e4bb11e27 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -915,11 +915,7 @@
if(status_flags & GODMODE) return 0
//SSD check, if a logged player is awake put them back to sleep!
- if(species.show_ssd && !client && !aghosted)
- sleeping = 2
-
- //SSD check, if a logged player is awake put them back to sleep!
- if(species.show_ssd && !client && !aghosted)
+ if(species.show_ssd && !client && !teleop)
Sleeping(2)
if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP
blinded = 1
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 06fbd2d8f4..ae64d8800a 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -214,8 +214,9 @@
var/stance_damage = 0 //Whether this mob's ability to stand has been affected
- //Indicates if a clientless mob is actually an admin aghosting
- var/mob/dead/observer/aghosted = null
+ //If set, indicates that the client "belonging" to this (clientless) mob is currently controlling some other mob
+ //so don't treat them as being SSD even though their client var is null.
+ var/mob/teleop = null
var/turf/listed_turf = null //the current turf being examined in the stat panel
var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index f72fa474fd..39ee957902 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -4,13 +4,13 @@
*/
/obj/item/weapon/paper
- name = "paper"
- gender = PLURAL
+ name = "sheet of paper"
+ gender = NEUTER
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "paper"
item_state = "paper"
throwforce = 0
- w_class = 1.0
+ w_class = 1
throw_range = 1
throw_speed = 1
layer = 4
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index b29525cb96..db7a088216 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -1,6 +1,6 @@
/obj/item/weapon/paper_bundle
name = "paper bundle"
- gender = PLURAL
+ gender = NEUTER
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "paper"
item_state = "paper"
diff --git a/code/modules/spells/artifacts.dm b/code/modules/spells/artifacts.dm
index 9790dc3dbe..f643012ce3 100644
--- a/code/modules/spells/artifacts.dm
+++ b/code/modules/spells/artifacts.dm
@@ -19,5 +19,7 @@
user << "You can see... everything!"
visible_message("[user] stares into [src], their eyes glazing over.")
- announce_ghost_joinleave(user.ghostize(1), 1, "You feel that they used a powerful artifact to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place with their presence.")
+
+ user.teleop = user.ghostize(1)
+ announce_ghost_joinleave(user.teleop, 1, "You feel that they used a powerful artifact to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place with their presence.")
return