diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index fa09155b63..1d49c1aacb 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -115,7 +115,13 @@
if(alert(src,"Are you sure you wish to observe? You will have to wait 5 minutes before being able to respawn!","Player Setup","Yes","No") == "Yes")
if(!client) return 1
- var/mob/observer/dead/observer = new()
+
+ //Make a new mannequin quickly, and allow the observer to take the appearance
+ var/mob/living/carbon/human/dummy/mannequin = new()
+ client.prefs.dress_preview_mob(mannequin)
+ var/mob/observer/dead/observer = new(mannequin)
+ observer.forceMove(null) //Let's not stay in our doomed mannequin
+ qdel(mannequin)
spawning = 1
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo
@@ -125,20 +131,13 @@
close_spawn_windows()
var/obj/O = locate("landmark*Observer-Start")
if(istype(O))
- src << "Now teleporting."
- observer.loc = O.loc
+ to_chat(src,"Now teleporting.")
+ observer.forceMove(O.loc)
else
- src << "Could not locate an observer spawn point. Use the Teleport verb to jump to the station map."
+ to_chat(src,"Could not locate an observer spawn point. Use the Teleport verb to jump to the station map.")
observer.timeofdeath = world.time // Set the time of death so that the respawn timer works correctly.
announce_ghost_joinleave(src)
- var/mob/living/carbon/human/dummy/mannequin = new()
- client.prefs.dress_preview_mob(mannequin)
- observer.appearance = mannequin
- observer.alpha = 127
- observer.layer = initial(observer.layer)
- observer.invisibility = initial(observer.invisibility)
- qdel(mannequin)
if(client.prefs.be_random_name)
client.prefs.real_name = random_name(client.prefs.identifying_gender)