diff --git a/code/ATMOSPHERICS/pipes/heat_exchange/junction.dm b/code/ATMOSPHERICS/pipes/heat_exchange/junction.dm
index b4424371ac0..0cba512ec63 100644
--- a/code/ATMOSPHERICS/pipes/heat_exchange/junction.dm
+++ b/code/ATMOSPHERICS/pipes/heat_exchange/junction.dm
@@ -7,7 +7,6 @@
minimum_temperature_difference = 300
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
- volume = 70
dir = SOUTH
initialize_directions = NORTH
diff --git a/code/ATMOSPHERICS/pipes/heat_exchange/manifold.dm b/code/ATMOSPHERICS/pipes/heat_exchange/manifold.dm
new file mode 100644
index 00000000000..b9e7780cbac
--- /dev/null
+++ b/code/ATMOSPHERICS/pipes/heat_exchange/manifold.dm
@@ -0,0 +1,60 @@
+//3-way manifold
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold
+ icon_state = "manifold"
+
+ name = "pipe manifold"
+ desc = "A manifold composed of regular pipes"
+
+ dir = SOUTH
+ initialize_directions_he = EAST|NORTH|WEST
+
+ device_type = TRINARY
+
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/SetInitDirections()
+ switch(dir)
+ if(NORTH)
+ initialize_directions_he = EAST|SOUTH|WEST
+ if(SOUTH)
+ initialize_directions_he = WEST|NORTH|EAST
+ if(EAST)
+ initialize_directions_he = SOUTH|WEST|NORTH
+ if(WEST)
+ initialize_directions_he = NORTH|EAST|SOUTH
+
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/update_icon()
+ var/invis = invisibility ? "-f" : ""
+
+ icon_state = "manifold_center[invis]"
+
+ overlays.Cut()
+
+ //Add non-broken pieces
+ for(DEVICE_TYPE_LOOP)
+ if(NODE_I)
+ overlays += getpipeimage('icons/obj/atmospherics/pipes/heat.dmi', "manifold_intact[invis]", get_dir(src, NODE_I))
+
+//4-way manifold
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w
+ icon_state = "manifold4w"
+
+ name = "4-way pipe manifold"
+ desc = "A manifold composed of heat-exchanging pipes"
+
+ initialize_directions_he = NORTH|SOUTH|EAST|WEST
+
+ device_type = QUATERNARY
+
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/SetInitDirections()
+ initialize_directions_he = initial(initialize_directions_he)
+
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/update_icon()
+ var/invis = invisibility ? "-f" : ""
+
+ icon_state = "manifold4w_center[invis]"
+
+ overlays.Cut()
+
+ //Add non-broken pieces
+ for(DEVICE_TYPE_LOOP)
+ if(NODE_I)
+ overlays += getpipeimage('icons/obj/atmospherics/pipes/heat.dmi', "manifold_intact[invis]", get_dir(src, NODE_I))
\ No newline at end of file
diff --git a/code/ATMOSPHERICS/pipes/heat_exchange/simple.dm b/code/ATMOSPHERICS/pipes/heat_exchange/simple.dm
index 71d9b06b647..040e3cf8ae6 100644
--- a/code/ATMOSPHERICS/pipes/heat_exchange/simple.dm
+++ b/code/ATMOSPHERICS/pipes/heat_exchange/simple.dm
@@ -4,8 +4,6 @@
name = "pipe"
desc = "A one meter section of heat-exchanging pipe"
- volume = 70
-
dir = SOUTH
initialize_directions_he = SOUTH|NORTH
diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm
index afee736108c..bae84ae22ce 100644
--- a/code/ATMOSPHERICS/pipes/manifold.dm
+++ b/code/ATMOSPHERICS/pipes/manifold.dm
@@ -8,8 +8,6 @@
name = "pipe manifold"
desc = "A manifold composed of regular pipes"
- volume = 105
-
dir = SOUTH
initialize_directions = EAST|NORTH|WEST
diff --git a/code/ATMOSPHERICS/pipes/manifold4w.dm b/code/ATMOSPHERICS/pipes/manifold4w.dm
index aeacfcd0b48..7b5514adc0e 100644
--- a/code/ATMOSPHERICS/pipes/manifold4w.dm
+++ b/code/ATMOSPHERICS/pipes/manifold4w.dm
@@ -8,8 +8,6 @@
name = "4-way pipe manifold"
desc = "A manifold composed of regular pipes"
- volume = 140
-
initialize_directions = NORTH|SOUTH|EAST|WEST
device_type = QUATERNARY
diff --git a/code/ATMOSPHERICS/pipes/pipes.dm b/code/ATMOSPHERICS/pipes/pipes.dm
index ca295939ceb..df05d4d18bc 100644
--- a/code/ATMOSPHERICS/pipes/pipes.dm
+++ b/code/ATMOSPHERICS/pipes/pipes.dm
@@ -16,6 +16,7 @@
/obj/machinery/atmospherics/pipe/New()
color = pipe_color
+ volume = 35 * device_type
..()
/obj/machinery/atmospherics/pipe/nullifyNode(I)
diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/ATMOSPHERICS/pipes/simple.dm
index 2830f75f804..02337d84ec3 100644
--- a/code/ATMOSPHERICS/pipes/simple.dm
+++ b/code/ATMOSPHERICS/pipes/simple.dm
@@ -10,8 +10,6 @@ The regular pipe you see everywhere, including bent ones.
name = "pipe"
desc = "A one meter section of regular pipe"
- volume = 70
-
dir = SOUTH
initialize_directions = SOUTH|NORTH
diff --git a/code/__DEFINES/pipe_construction.dm b/code/__DEFINES/pipe_construction.dm
index f04e8a32ee9..f19c19824ab 100644
--- a/code/__DEFINES/pipe_construction.dm
+++ b/code/__DEFINES/pipe_construction.dm
@@ -9,6 +9,8 @@ Construction breaks otherwise
#define PIPE_MANIFOLD /obj/machinery/atmospherics/pipe/manifold
#define PIPE_4WAYMANIFOLD /obj/machinery/atmospherics/pipe/manifold4w
#define PIPE_HE /obj/machinery/atmospherics/pipe/heat_exchanging/simple
+#define PIPE_HE_MANIFOLD /obj/machinery/atmospherics/pipe/heat_exchanging/manifold
+#define PIPE_HE_4WAYMANIFOLD /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w
#define PIPE_JUNCTION /obj/machinery/atmospherics/pipe/heat_exchanging/junction
//Unary
#define PIPE_CONNECTOR /obj/machinery/atmospherics/components/unary/portables_connector
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 9644bc0e8a8..78adee3d5b0 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -26,6 +26,8 @@ Buildable meters
PIPE_MANIFOLD, \
PIPE_4WAYMANIFOLD, \
PIPE_HE, \
+ PIPE_HE_MANIFOLD, \
+ PIPE_HE_4WAYMANIFOLD, \
PIPE_JUNCTION, \
\
PIPE_CONNECTOR, \
@@ -83,6 +85,8 @@ var/global/list/pipeID2State = list(
"[PIPE_MANIFOLD]" = "manifold", \
"[PIPE_4WAYMANIFOLD]" = "manifold4w", \
"[PIPE_HE]" = "he", \
+ "[PIPE_HE_MANIFOLD]" = "he_manifold", \
+ "[PIPE_HE_4WAYMANIFOLD]" = "he_manifold4w", \
"[PIPE_JUNCTION]" = "junction", \
\
"[PIPE_CONNECTOR]" = "connector", \
@@ -108,6 +112,8 @@ var/global/list/pipeID2State = list(
"[PIPE_4WAYMANIFOLD]" = "4-way manifold", \
"[PIPE_HE]" = "h/e pipe", \
"[PIPE_HE]_b" = "bent h/e pipe", \
+ "[PIPE_HE_MANIFOLD]" = "h/e manifold", \
+ "[PIPE_HE_4WAYMANIFOLD]"= "h/e 4-way manifold", \
"[PIPE_JUNCTION]" = "junction", \
\
"[PIPE_CONNECTOR]" = "connector", \
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index 749d167bc3a..a23489333ea 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -33,6 +33,8 @@
Heat exchange:
Pipe
Bent Pipe
+Manifold
+4-Way Manifold
Junction
Heat Exchanger
"}
diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm
index 424fc84ee3e..41162bbe617 100644
--- a/code/game/objects/items/weapons/RPD.dm
+++ b/code/game/objects/items/weapons/RPD.dm
@@ -103,6 +103,8 @@ var/global/list/RPD_recipes=list(
"Heat Exchange" = list(
"Pipe" = new /datum/pipe_info(PIPE_HE, 1, PIPE_BENDABLE),
//"Bent Pipe" = new /datum/pipe_info(PIPE_HE, 5, PIPE_BENT),
+ "Manifold" = new /datum/pipe_info(PIPE_HE_MANIFOLD, 1, PIPE_TRINARY),
+ "4-Way Manifold" = new /datum/pipe_info(PIPE_HE_4WAYMANIFOLD, 1, PIPE_QUAD),
"Junction" = new /datum/pipe_info(PIPE_JUNCTION, 1, PIPE_UNARY),
"Heat Exchanger" = new /datum/pipe_info(PIPE_HEAT_EXCHANGE, 1, PIPE_UNARY),
),
diff --git a/icons/obj/atmospherics/pipes/heat.dmi b/icons/obj/atmospherics/pipes/heat.dmi
index 977fde8cad9..3545e22a8ce 100644
Binary files a/icons/obj/atmospherics/pipes/heat.dmi and b/icons/obj/atmospherics/pipes/heat.dmi differ
diff --git a/icons/obj/atmospherics/pipes/pipe_item.dmi b/icons/obj/atmospherics/pipes/pipe_item.dmi
index 376fb40b49f..e3ac2254bfd 100644
Binary files a/icons/obj/atmospherics/pipes/pipe_item.dmi and b/icons/obj/atmospherics/pipes/pipe_item.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 0117102b466..d6b0a07cea8 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -128,6 +128,7 @@
#include "code\ATMOSPHERICS\pipes\simple.dm"
#include "code\ATMOSPHERICS\pipes\heat_exchange\he_pipes.dm"
#include "code\ATMOSPHERICS\pipes\heat_exchange\junction.dm"
+#include "code\ATMOSPHERICS\pipes\heat_exchange\manifold.dm"
#include "code\ATMOSPHERICS\pipes\heat_exchange\simple.dm"
#include "code\controllers\configuration.dm"
#include "code\controllers\failsafe.dm"