diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index a03ba7c9d4c..b0b7bb991e5 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -66,6 +66,7 @@
//turf-only flags
#define NOJAUNT 1
+#define RPD_ALLOWED_HERE 2//By default, RPD is disabled on turfs.
//ITEM INVENTORY SLOT BITMASKS
#define SLOT_OCLOTHING 1
diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm
index 2bb948cddeb..85d50a6ad12 100644
--- a/code/game/objects/items/weapons/rpd.dm
+++ b/code/game/objects/items/weapons/rpd.dm
@@ -180,9 +180,12 @@ var/list/pipemenu = list(
/obj/item/weapon/rpd/afterattack(atom/target, mob/user, proximity)
..()
var/turf/T = get_turf(target)
- if(src.loc != user || ismob(target) || istype(target, /obj/structure/window) || !proximity || world.time < lastused + spawndelay)
+ if(loc != user || ismob(target) || istype(target, /obj/structure/window) || !proximity || world.time < lastused + spawndelay)
return
- if(mode == ATMOS_MODE && !istype(T, /turf/simulated/shuttle)) //No pipes on shuttles nerds
+ if(!(T.flags & RPD_ALLOWED_HERE))
+ to_chat(user, "[src] beeps, \"Unable to interface with [T]. Please try again later.\"")
+ return
+ if(mode == ATMOS_MODE)
if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time
playsound(loc, "sound/weapons/circsawhit.ogg", 50, 1)
user.visible_message("[user] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.")
diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm
index 61f622c071f..89c40be8641 100644
--- a/code/game/turfs/simulated.dm
+++ b/code/game/turfs/simulated.dm
@@ -4,6 +4,7 @@
var/image/wet_overlay = null
var/thermite = 0
+ flags = RPD_ALLOWED_HERE
oxygen = MOLES_O2STANDARD
nitrogen = MOLES_N2STANDARD
var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed
diff --git a/code/game/turfs/simulated/shuttle.dm b/code/game/turfs/simulated/shuttle.dm
index 6ab60fffd99..0c5e6c08f6b 100644
--- a/code/game/turfs/simulated/shuttle.dm
+++ b/code/game/turfs/simulated/shuttle.dm
@@ -1,6 +1,7 @@
/turf/simulated/shuttle
name = "shuttle"
icon = 'icons/turf/shuttle.dmi'
+ flags = null
thermal_conductivity = 0.05
heat_capacity = 0
layer = 2
diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm
index 7f185bf0e64..9225def20f6 100644
--- a/code/game/turfs/space/space.dm
+++ b/code/game/turfs/space/space.dm
@@ -3,6 +3,7 @@
name = "\proper space"
icon_state = "0"
dynamic_lighting = 0
+ flags = RPD_ALLOWED_HERE
luminosity = 1
temperature = TCMB
diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm
index 9feda5d78a7..611ff1656f3 100644
--- a/code/game/turfs/space/transit.dm
+++ b/code/game/turfs/space/transit.dm
@@ -1,4 +1,5 @@
/turf/space/transit
+ flags = null
var/pushdirection // push things that get caught in the transit tile this direction
//Overwrite because we dont want people building rods in space.