diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 9eadec2ba93..350218bcf4a 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1099,9 +1099,18 @@
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.", confidential = TRUE)
return
+ var/move = TRUE
+ switch(alert(usr,"Move new AI to AI spawn location?","Move AI?", "Yes", "No","Cancel"))
+ if("Cancel")
+ return
+ if("No")
+ move = FALSE
+ if(QDELETED(H))
+ to_chat(usr, "Subject was deleted already. Transform canceled.")
+ return
message_admins("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!")
log_admin("[key_name(usr)] AIized [key_name(H)].")
- H.AIize(TRUE, H.client)
+ H.AIize(TRUE, H.client, move)
else if(href_list["makealien"])
if(!check_rights(R_SPAWN))
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 95aa443b25a..93700e92bc8 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -77,20 +77,24 @@
invisibility = INVISIBILITY_MAXIMUM
return ..()
-/mob/proc/AIize(transfer_after = TRUE, client/preference_source)
+/mob/proc/AIize(transfer_after = TRUE, client/preference_source, move = TRUE)
var/list/turf/landmark_loc = list()
- for(var/obj/effect/landmark/start/ai/sloc in GLOB.landmarks_list)
- if(locate(/mob/living/silicon/ai) in sloc.loc)
- continue
- if(sloc.primary_ai)
- LAZYCLEARLIST(landmark_loc)
- landmark_loc += sloc.loc
- break
- landmark_loc += sloc.loc
- if(!landmark_loc.len)
- to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.")
+
+ if(!move)
+ landmark_loc += loc
+ else
for(var/obj/effect/landmark/start/ai/sloc in GLOB.landmarks_list)
+ if(locate(/mob/living/silicon/ai) in sloc.loc)
+ continue
+ if(sloc.primary_ai)
+ LAZYCLEARLIST(landmark_loc)
+ landmark_loc += sloc.loc
+ break
landmark_loc += sloc.loc
+ if(!landmark_loc.len)
+ to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.")
+ for(var/obj/effect/landmark/start/ai/sloc in GLOB.landmarks_list)
+ landmark_loc += sloc.loc
if(!landmark_loc.len)
message_admins("Could not find ai landmark for [src]. Yell at a mapper! We are spawning them at their current location.")