diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index 40435c2000..d6f304653d 100644
--- a/code/game/objects/structures/lattice.dm
+++ b/code/game/objects/structures/lattice.dm
@@ -51,6 +51,20 @@
new /obj/item/stack/rods(get_turf(src), number_of_rods)
qdel(src)
+/obj/structure/lattice/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
+ if(the_rcd.mode == RCD_FLOORWALL)
+ return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 2)
+
+/obj/structure/lattice/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
+ if(passed_mode == RCD_FLOORWALL)
+ to_chat(user, "You build a floor.")
+ var/turf/T = src.loc
+ if(isspaceturf(T))
+ T.PlaceOnTop(/turf/open/floor/plating)
+ qdel(src)
+ return TRUE
+ return FALSE
+
/obj/structure/lattice/singularity_pull(S, current_size)
if(current_size >= STAGE_FOUR)
deconstruct()
diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm
index 9d2adbdfba..e783b8a9a0 100644
--- a/code/game/turfs/simulated/floor/plating.dm
+++ b/code/game/turfs/simulated/floor/plating.dm
@@ -126,6 +126,17 @@
else
to_chat(user, "You hit [src], to no effect!")
+/turf/open/floor/plating/foam/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
+ if(the_rcd.mode == RCD_FLOORWALL)
+ return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 1)
+
+/turf/open/floor/plating/foam/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
+ if(passed_mode == RCD_FLOORWALL)
+ to_chat(user, "You build a floor.")
+ ChangeTurf(/turf/open/floor/plating)
+ return TRUE
+ return FALSE
+
/turf/open/floor/plating/foam/ex_act()
..()
ScrapeAway()