diff --git a/code/__DEFINES/icon_smoothing_defines.dm b/code/__DEFINES/icon_smoothing_defines.dm
index 525ccd6b9f0..0fc60109b58 100644
--- a/code/__DEFINES/icon_smoothing_defines.dm
+++ b/code/__DEFINES/icon_smoothing_defines.dm
@@ -114,6 +114,7 @@ DEFINE_BITFIELD(smoothing_flags, list(
#define SMOOTH_GROUP_GLASS_TABLES S_OBJ(55) ///obj/structure/table/glass
#define SMOOTH_GROUP_REINFORCED_TABLES S_OBJ(56) ///obj/structure/table/reinforced, /obj/structure/table/glass/reinforced
#define SMOOTH_GROUP_CULT_TABLES S_OBJ(57) ///obj/structire/table/reinforced/cult
+#define SMOOTH_GROUP_FLOCK_TABLES S_OBJ(58) /// obj/structure/table/reinforced/flock
#define SMOOTH_GROUP_ALIEN_RESIN S_OBJ(60) ///obj/structure/alien/resin
#define SMOOTH_GROUP_ALIEN_WALLS S_OBJ(61) ///obj/structure/alien/resin/wall,
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 0ab1b79ed5a..29c3d93e8b5 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -141,6 +141,8 @@ GLOBAL_LIST_INIT(adamantine_recipes, list(
GLOBAL_LIST_INIT(gnesis_recipes, list (
new /datum/stack_recipe("flock chair", /obj/structure/chair/comfy/flock, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
+ new /datum/stack_recipe("flock table", /obj/structure/table/reinforced/flock, 2, time = 5.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
+ new /datum/stack_recipe("flock shelf", /obj/structure/shelf/flock, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("flock closet", /obj/structure/closet/flock, 2, time = 10 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("flock grille", /obj/structure/grille/flock, 1, time = 5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("flock door", /obj/machinery/door/flock, 10, time = 10 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
diff --git a/code/game/objects/structures/shelves.dm b/code/game/objects/structures/shelves.dm
index 151b1daf991..68c622c57e8 100644
--- a/code/game/objects/structures/shelves.dm
+++ b/code/game/objects/structures/shelves.dm
@@ -85,6 +85,10 @@ GLOBAL_LIST_INIT(shelf_colors, list("basic", "sci", "sup", "serv", "med", "sec",
new build_stack_type(get_turf(src), 5)
return ..()
+/obj/structure/shelf/try_flock_convert(datum/flock/flock, force)
+ new /obj/structure/shelf/flock(loc)
+ qdel(src)
+
/obj/structure/shelf/engineering
icon_state = "shelf_engi"
shelf_style = "engi"
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 355f0ab12bf..eb5a2061dde 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -105,6 +105,10 @@
new /obj/structure/table/reinforced/cult(loc)
qdel(src)
+/obj/structure/table/try_flock_convert(datum/flock/flock, force)
+ new /obj/structure/table/reinforced/flock(loc)
+ qdel(src)
+
/obj/structure/table/start_climb(mob/living/user)
. = ..()
item_placed(user)
diff --git a/code/modules/antagonists/flockmind/flock_structure/flock_shelf.dm b/code/modules/antagonists/flockmind/flock_structure/flock_shelf.dm
new file mode 100644
index 00000000000..cf12a7baa30
--- /dev/null
+++ b/code/modules/antagonists/flockmind/flock_structure/flock_shelf.dm
@@ -0,0 +1,26 @@
+/obj/structure/shelf/flock
+ name = "strange shelf"
+ desc = "A shelf (most likely), made of a strange material."
+ icon_state = "shelf_flock"
+ shelf_style = "flock"
+ build_stack_type = /obj/item/stack/sheet/gnesis
+
+/obj/structure/shelf/flock/Initialize(mapload, datum/flock/join_flock)
+ . = ..()
+ AddComponent(/datum/component/flock_protection, FALSE, TRUE, FALSE, FALSE)
+ ADD_TRAIT(src, TRAIT_FLOCK_EXAMINE, INNATE_TRAIT)
+ ADD_TRAIT(src, TRAIT_FLOCK_THING, INNATE_TRAIT)
+
+/obj/structure/shelf/flock/examine(mob/user)
+ if(!isflockmob(user))
+ return ..()
+
+ . = list(
+ SPAN_FLOCKSAY("###=- Ident confirmed, data packet received."),
+ SPAN_FLOCKSAY("ID: Vertical material storage rack."),
+ SPAN_FLOCKSAY("System Integrity: [get_integrity_percentage()]%"),
+ SPAN_FLOCKSAY("###=-")
+ )
+
+/obj/structure/shelf/flock/try_flock_convert(datum/flock/flock, force)
+ return
diff --git a/code/modules/antagonists/flockmind/flock_structure/flock_table.dm b/code/modules/antagonists/flockmind/flock_structure/flock_table.dm
new file mode 100644
index 00000000000..a0c8eb25404
--- /dev/null
+++ b/code/modules/antagonists/flockmind/flock_structure/flock_table.dm
@@ -0,0 +1,43 @@
+/obj/structure/table/reinforced/flock
+ name = "odd slab"
+ desc = "It's a flat surface made of a strange material. Despite its alien appearance, there's not many things this could be except a table."
+ icon = 'icons/obj/smooth_structures/tables/flock_table.dmi'
+ icon_state = "flock_table-0"
+ base_icon_state = "flock_table"
+ buildstack = /obj/item/stack/sheet/gnesis
+ buildstackamount = 2
+ framestack = null
+ frame = null
+ framestackamount = 0
+ armor = list(MELEE = -20, BULLET = -20, LASER = 80, ENERGY = 80, BOMB = 0, RAD = 100, FIRE = 80, ACID = 100)
+ smoothing_groups = list(SMOOTH_GROUP_FLOCK_TABLES)
+ canSmoothWith = list(SMOOTH_GROUP_FLOCK_TABLES)
+
+/obj/structure/table/reinforced/flock/Initialize(mapload, datum/flock/join_flock)
+ . = ..()
+ AddComponent(/datum/component/flock_protection, FALSE, TRUE, FALSE, FALSE)
+ ADD_TRAIT(src, TRAIT_FLOCK_EXAMINE, INNATE_TRAIT)
+ ADD_TRAIT(src, TRAIT_FLOCK_THING, INNATE_TRAIT)
+
+/obj/structure/table/reinforced/flock/examine(mob/user)
+ if(!isflockmob(user))
+ return ..()
+
+ . = list(
+ SPAN_FLOCKSAY("###=- Ident confirmed, data packet received."),
+ SPAN_FLOCKSAY("ID: Table."),
+ SPAN_FLOCKSAY("System Integrity: [get_integrity_percentage()]%"),
+ SPAN_FLOCKSAY("###=-")
+ )
+
+/obj/structure/table/reinforced/flock/screwdriver_act()
+ return
+
+/obj/structure/table/reinforced/flock/deconstruct(disassembled = TRUE, wrench_disassembly = FALSE)
+ if(!(flags & NODECONSTRUCT))
+ var/turf/T = get_turf(src)
+ new buildstack(T, buildstackamount)
+ qdel(src)
+
+/obj/structure/table/reinforced/flock/try_flock_convert(datum/flock/flock, force)
+ return
diff --git a/icons/obj/smooth_structures/tables/flock_table.dmi b/icons/obj/smooth_structures/tables/flock_table.dmi
new file mode 100644
index 00000000000..e20381d8078
Binary files /dev/null and b/icons/obj/smooth_structures/tables/flock_table.dmi differ
diff --git a/icons/obj/structures/shelves.dmi b/icons/obj/structures/shelves.dmi
index f772e038a87..c8048148f3f 100644
Binary files a/icons/obj/structures/shelves.dmi and b/icons/obj/structures/shelves.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 0ab033058ce..656b6ea2ca8 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1887,6 +1887,8 @@
#include "code\modules\antagonists\flockmind\flock_structure\flock_relay.dm"
#include "code\modules\antagonists\flockmind\flock_structure\flock_rift.dm"
#include "code\modules\antagonists\flockmind\flock_structure\flock_sentinel.dm"
+#include "code\modules\antagonists\flockmind\flock_structure\flock_shelf.dm"
+#include "code\modules\antagonists\flockmind\flock_structure\flock_table.dm"
#include "code\modules\antagonists\flockmind\flock_structure\flock_tealprint.dm"
#include "code\modules\antagonists\flockmind\flock_structure\flock_turret.dm"
#include "code\modules\antagonists\flockmind\flock_structure\flock_window.dm"
@@ -2141,8 +2143,8 @@
#include "code\modules\awaymissions\mission_code\ruins\nian_freighter.dm"
#include "code\modules\awaymissions\mission_code\ruins\oldstation.dm"
#include "code\modules\awaymissions\mission_code\ruins\processing_facility.dm"
-#include "code\modules\awaymissions\mission_code\ruins\ragnarok_ship.dm"
#include "code\modules\awaymissions\mission_code\ruins\providence_wreck.dm"
+#include "code\modules\awaymissions\mission_code\ruins\ragnarok_ship.dm"
#include "code\modules\awaymissions\mission_code\ruins\sieged_lab.dm"
#include "code\modules\awaymissions\mission_code\ruins\snowbiodome.dm"
#include "code\modules\awaymissions\mission_code\ruins\syndiecakesfactory.dm"