diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index 4cc748af13d..e3afa1ecbf0 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -451,7 +451,15 @@ //Let's let our mob out! /obj/item/capture_crystal/proc/unleash(mob/living/user, atom/target) if(!user && !target) //We got thrown but we're not sure who did it, let's go to where the crystal is - bound_mob.forceMove(src.drop_location()) + var/atom/drop_loc = drop_location() + var/n = 0 + while (istype(drop_loc, /obj/item/weapon/storage) && n++ <= 10) //if they ooc escape inside a bag, this will happen or they won't be able to get out + drop_loc = drop_loc.drop_location() + if (istype(drop_loc, /obj/item/weapon/storage)) + drop_loc = get_turf(src) + if (!drop_loc) + return + bound_mob.forceMove(drop_loc) return if(!target) //We know who wants to let us out, but they didn't say where, so let's drop us on them bound_mob.forceMove(user.drop_location())