diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 8caa0407d1..0f10c46097 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -534,6 +534,17 @@
/obj/item/stock_parts/capacitor = 1)
def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high/empty)
+/obj/item/circuitboard/machine/rad_collector
+ name = "Radiation Collector (Machine Board)"
+ build_path = /obj/machinery/power/rad_collector
+ req_components = list(
+ /obj/item/stack/cable_coil = 5,
+ /obj/item/stock_parts/matter_bin = 1,
+ /obj/item/stack/sheet/plasmarglass = 2,
+ /obj/item/stock_parts/capacitor = 1,
+ /obj/item/stock_parts/manipulator = 1)
+ needs_anchored = FALSE
+
/obj/item/circuitboard/machine/tesla_coil
name = "Tesla Controller (Machine Board)"
desc = "You can use a screwdriver to switch between Research and Power Generation"
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index fcbb366187..ff78a71bda 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -15,6 +15,7 @@
// use_power = NO_POWER_USE
max_integrity = 350
integrity_failure = 80
+ circuit = /obj/item/circuitboard/machine/rad_collector
var/obj/item/tank/internals/plasma/loaded_tank = null
var/last_power = 0
var/active = 0
@@ -112,6 +113,9 @@
if(loaded_tank)
to_chat(user, "There's already a plasma tank loaded!")
return TRUE
+ if(panel_open)
+ to_chat(user, "Close the maintenance panel first!")
+ return TRUE
if(!user.transferItemToLoc(W, src))
return
loaded_tank = W
@@ -133,6 +137,13 @@
default_unfasten_wrench(user, I, 0)
return TRUE
+/obj/machinery/power/rad_collector/screwdriver_act(mob/living/user, obj/item/I)
+ if(loaded_tank)
+ to_chat(user, "Remove the plasma tank first!")
+ else
+ default_deconstruction_screwdriver(user, icon_state, icon_state, I)
+ return TRUE
+
/obj/machinery/power/rad_collector/crowbar_act(mob/living/user, obj/item/I)
if(loaded_tank)
if(locked)
@@ -140,6 +151,8 @@
return TRUE
eject()
return TRUE
+ if(default_deconstruction_crowbar(I))
+ return TRUE
to_chat(user, "There isn't a tank loaded!")
return TRUE
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 330b6f57a1..e1a2695a2f 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -419,6 +419,14 @@
category = list ("Misc. Machinery")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
+/datum/design/board/rad_collector
+ name = "Machine Design (Radiation Collector Board)"
+ desc = "The circuit board for a radiation collector array."
+ id = "rad_collector"
+ build_path = /obj/item/circuitboard/machine/rad_collector
+ category = list ("Misc. Machinery")
+ departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
+
/datum/design/board/grounding_rod
name = "Machine Design (Grounding Rod Board)"
desc = "The circuit board for a grounding rod."
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 881211ea83..aea94b1f2c 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -93,7 +93,7 @@
description = "A refresher course on modern engineering technology."
prereq_ids = list("base")
design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin",
- "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "tesla_coil", "grounding_rod", "apc_control", "cell_charger")
+ "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", "apc_control", "cell_charger")
research_cost = 7500
export_price = 5000