diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index 4ded524e40c..146f803edfb 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -73,11 +73,11 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
/obj/machinery/r_n_d/circuit_imprinter/proc/check_mat(datum/design/being_built, var/M)
switch(M)
if(MAT_GLASS)
- return (g_amount - (being_built.materials[M]) >= 0)
+ return (g_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
if(MAT_GOLD)
- return (gold_amount - (being_built.materials[M]) >= 0)
+ return (gold_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
if(MAT_DIAMOND)
- return (diamond_amount - (being_built.materials[M]) >= 0)
+ return (diamond_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
else
return (reagents.has_reagent(M, (being_built.materials[M]/efficiency_coeff)) != 0)
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index d806ec80a54..9e8b29f94c1 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -457,6 +457,7 @@ proc/CallMaterialName(ID)
updateUsrDialog()
else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
+ var/coeff = linked_imprinter.efficiency_coeff
var/g2g = 1
if(linked_imprinter)
var/datum/design/being_built = null
@@ -489,13 +490,13 @@ proc/CallMaterialName(ID)
break
switch(M)
if(MAT_GLASS)
- linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]))
+ linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]/coeff))
if(MAT_GOLD)
- linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]))
+ linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]/coeff))
if(MAT_DIAMOND)
- linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]))
+ linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]/coeff))
else
- linked_imprinter.reagents.remove_reagent(M, being_built.materials[M])
+ linked_imprinter.reagents.remove_reagent(M, being_built.materials[M]/coeff)
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
spawn(16)
@@ -1076,6 +1077,7 @@ proc/CallMaterialName(ID)
dat += "Material Amount: [linked_imprinter.TotalMaterials()]
"
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]