Shouldn't this work? If not how can I modify it?

on character creation I give the player an object called self, using this object to see if this is a new player that requires creation or if this player has already gone through the process on login and disconnect I have this:

player startscript {
for each object in <$name(%userid%)$> move <#quest.thing#;player%userid%>
if got <self> then goto <#lastroom[userid]#> else goto <Gender> }
disconnect {
for each object in <player%userid%> move <#quest.thing#; $name(%userid%)$>

set string <lastroom; #quest.currentroom[userid]#> }




Shouldn't this code allow the player to be placed in the last room they were in when they quit?

Yes, but you have many other promlems with the code, which I've already pointed out to you...