diff --git a/code/__defines/misc_vr.dm b/code/__defines/misc_vr.dm
index bf6cb4d150a..71589e80c13 100644
--- a/code/__defines/misc_vr.dm
+++ b/code/__defines/misc_vr.dm
@@ -48,6 +48,7 @@
#define SHELTER_DEPLOY_BAD_TURFS "bad turfs"
#define SHELTER_DEPLOY_BAD_AREA "bad area"
#define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects"
+#define SHELTER_DEPLOY_SHIP_SPACE "ship not in space"
#define PTO_SECURITY "Security"
#define PTO_MEDICAL "Medical"
diff --git a/code/modules/mining/shelter_atoms_vr.dm b/code/modules/mining/shelter_atoms_vr.dm
index c44ca2ed97a..fd380e513e6 100644
--- a/code/modules/mining/shelter_atoms_vr.dm
+++ b/code/modules/mining/shelter_atoms_vr.dm
@@ -17,6 +17,7 @@ GLOBAL_LIST_EMPTY(unique_deployable)
var/template_id = "shelter_alpha"
var/datum/map_template/shelter/template
var/used = FALSE
+ var/is_ship = FALSE
var/unique_id = null
/obj/item/device/survivalcapsule/proc/get_template()
@@ -47,7 +48,7 @@ GLOBAL_LIST_EMPTY(unique_deployable)
sleep(5 SECONDS)
var/turf/deploy_location = get_turf(src)
- var/status = template.check_deploy(deploy_location)
+ var/status = template.check_deploy(deploy_location, is_ship)
var/turf/above_location = GetAbove(deploy_location)
switch(status)
@@ -61,6 +62,9 @@ GLOBAL_LIST_EMPTY(unique_deployable)
var/height = template.height
src.loc.visible_message("\The [src] doesn't have room to deploy! You need to clear a [width]x[height] area!")
+ if(SHELTER_DEPLOY_SHIP_SPACE)
+ src.loc.visible_message("\The [src] can only be deployed in space.")
+
if(status != SHELTER_DEPLOY_ALLOWED)
used = FALSE
return
@@ -109,12 +113,14 @@ GLOBAL_LIST_EMPTY(unique_deployable)
desc = "A prefabricated escape pod in a capsule. Contains a basic escape pod for survival purposes. There's a license for use printed on the bottom."
template_id = "shelter_epsilon"
unique_id = "shelter_5"
+ is_ship = TRUE
/obj/item/device/survivalcapsule/dropship
name = "dropship surfluid shelter capsule"
desc = "A military dropship in a capsule. Contains everything an assault squad would need, minus the squad itself. This capsule is significantly larger than most. There's a license for use printed on the bottom."
template_id = "shelter_zeta"
unique_id = "shelter_6"
+ is_ship = TRUE
w_class = ITEMSIZE_SMALL
//Custom Shelter Capsules
diff --git a/code/modules/mining/shelters_vr.dm b/code/modules/mining/shelters_vr.dm
index 837ebb1bec3..e9839cafe7f 100644
--- a/code/modules/mining/shelters_vr.dm
+++ b/code/modules/mining/shelters_vr.dm
@@ -11,7 +11,7 @@
banned_areas = typecacheof(/area/shuttle)
banned_objects = list()
-/datum/map_template/shelter/proc/check_deploy(turf/deploy_location)
+/datum/map_template/shelter/proc/check_deploy(turf/deploy_location, var/is_ship)
var/affected = get_affected_turfs(deploy_location, centered=TRUE)
for(var/turf/T in affected)
var/area/A = get_area(T)
@@ -21,6 +21,9 @@
var/banned = is_type_in_typecache(T, blacklisted_turfs)
if(banned || T.density)
return SHELTER_DEPLOY_BAD_TURFS
+ //Ships can only deploy in space (bacause their base turf is always turf/space)
+ if(is_ship && !is_type_in_typecache(T, typecacheof(/turf/space)))
+ return SHELTER_DEPLOY_SHIP_SPACE
for(var/obj/O in T)
if((O.density && O.anchored) || is_type_in_typecache(O, banned_objects))
diff --git a/maps/tether/submaps/om_ships/shelter_5.dmm b/maps/tether/submaps/om_ships/shelter_5.dmm
index ef509d04d9c..3a3ef78f86c 100644
--- a/maps/tether/submaps/om_ships/shelter_5.dmm
+++ b/maps/tether/submaps/om_ships/shelter_5.dmm
@@ -192,6 +192,7 @@
/obj/effect/floor_decal/techfloor{
dir = 10
},
+/obj/machinery/recharger,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/deployable/escapepod)
"r" = (