diff --git a/runs/client/usercache.json b/runs/client/usercache.json
index aad3ae3da..6ecd3c10f 100644
--- a/runs/client/usercache.json
+++ b/runs/client/usercache.json
@@ -1 +1 @@
-[{"name":"Dev","uuid":"380df991-f603-344c-a090-369bad2a924a","expiresOn":"2025-02-03 11:49:34 -0600"}]
\ No newline at end of file
+[{"name":"Dev","uuid":"380df991-f603-344c-a090-369bad2a924a","expiresOn":"2025-02-04 13:58:10 -0600"}]
\ No newline at end of file
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_aluminum_from_royal_aluminum.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_aluminum_from_royal_aluminum.json
index 1b3a09627..567d5a6aa 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_aluminum_from_royal_aluminum.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_aluminum_from_royal_aluminum.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_chromium_from_royal_chromium.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_chromium_from_royal_chromium.json
index d26a1b25e..391ee0a42 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_chromium_from_royal_chromium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_chromium_from_royal_chromium.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_copper_from_royal_copper.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_copper_from_royal_copper.json
index a54af0e4f..22185e5c6 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_copper_from_royal_copper.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_copper_from_royal_copper.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_gold_from_royal_gold.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_gold_from_royal_gold.json
index bd4767860..c753084d2 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_gold_from_royal_gold.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_gold_from_royal_gold.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_iron_from_royal_iron.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_iron_from_royal_iron.json
index bfc3fb9b1..0d7c4990e 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_iron_from_royal_iron.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_iron_from_royal_iron.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lead_from_royal_lead.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lead_from_royal_lead.json
index 3aed79056..c710ef5c7 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lead_from_royal_lead.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lead_from_royal_lead.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lithium_from_royal_lithium.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lithium_from_royal_lithium.json
index 40befaab0..a1dcf8136 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lithium_from_royal_lithium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_lithium_from_royal_lithium.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_molybdenum_from_royal_molybdenum.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_molybdenum_from_royal_molybdenum.json
index 4427a4200..5a31e87a7 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_molybdenum_from_royal_molybdenum.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_molybdenum_from_royal_molybdenum.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_netherite_from_royal_netherite.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_netherite_from_royal_netherite.json
index 79f9ca088..3ca04a0fa 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_netherite_from_royal_netherite.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_netherite_from_royal_netherite.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_silver_from_royal_silver.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_silver_from_royal_silver.json
index 72ccc91f9..9a8c6307e 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_silver_from_royal_silver.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_silver_from_royal_silver.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_tin_from_royal_tin.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_tin_from_royal_tin.json
index 218df0870..4f50baa36 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_tin_from_royal_tin.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_tin_from_royal_tin.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_titanium_from_royal_titanium.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_titanium_from_royal_titanium.json
index e614bed9d..f43098795 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_titanium_from_royal_titanium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_titanium_from_royal_titanium.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_vanadium_from_royal_vanadium.json b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_vanadium_from_royal_vanadium.json
index ca727940a..851f3fdaa 100644
--- a/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_vanadium_from_royal_vanadium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/chemicalreactor/crude_vanadium_from_royal_vanadium.json
@@ -2,7 +2,7 @@
   "type": "electrodynamics:chemical_reactor_recipe",
   "fluidbi": [
     {
-      "amount": 200,
+      "amount": 50,
       "chance": 1.0,
       "fluid": "electrodynamics:fluidaquaregia"
     }
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_aluminum.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_aluminum.json
index 40e0d8778..b1647c73d 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_aluminum.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_aluminum.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralaluminum"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_chromium.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_chromium.json
index 2568bda9d..3ba852dc5 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_chromium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_chromium.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralchromium"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_copper.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_copper.json
index eaa508e74..2fc31b8c6 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_copper.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_copper.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralcopper"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_gold.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_gold.json
index 573888742..10d1c614d 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_gold.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_gold.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralgold"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_iron.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_iron.json
index 980866bf8..d032b11dd 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_iron.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_iron.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineraliron"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lead.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lead.json
index a9fff7f0f..667354f50 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lead.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lead.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalminerallead"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lithium.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lithium.json
index 04a900485..e3df0ea30 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lithium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_lithium.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalminerallithium"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_molybdenum.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_molybdenum.json
index f6f17e153..60e8ba2ae 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_molybdenum.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_molybdenum.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralmolybdenum"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_netherite.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_netherite.json
index 40f381c9f..cb134f479 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_netherite.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_netherite.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralnetherite"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_silver.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_silver.json
index b714d56a3..25aebd6ab 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_silver.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_silver.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralsilver"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_tin.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_tin.json
index 592111d4c..3eb7db8b7 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_tin.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_tin.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineraltin"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_titanium.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_titanium.json
index 78f396f76..4b6b21e01 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_titanium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_titanium.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineraltitanium"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_vanadium.json b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_vanadium.json
index e8cfda33d..19a133658 100644
--- a/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_vanadium.json
+++ b/src/generated/resources/data/electrodynamics/recipe/fluiditem2fluid/mineral_washer/royalmineral_vanadium.json
@@ -16,7 +16,7 @@
     }
   ],
   "output": {
-    "amount": 3000,
+    "amount": 4000,
     "id": "electrodynamics:fluidroyalmineralvanadium"
   },
   "ticks": 200,
diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json
index f239909b8..bef317be5 100644
--- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json
+++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json
@@ -1,307 +1,307 @@
 {
   "values": [
+    "electrodynamics:oresylvite",
+    "electrodynamics:orefluorite",
+    "electrodynamics:orelead",
+    "electrodynamics:oremonazite",
+    "electrodynamics:oreuranium",
+    "electrodynamics:oremolybdenum",
+    "electrodynamics:oresilver",
+    "electrodynamics:oresulfur",
     "electrodynamics:oretitanium",
-    "electrodynamics:orevanadium",
+    "electrodynamics:oresalt",
     "electrodynamics:orethorium",
+    "electrodynamics:orevanadium",
+    "electrodynamics:oretin",
     "electrodynamics:orechromium",
     "electrodynamics:orelithium",
-    "electrodynamics:oretin",
-    "electrodynamics:oresylvite",
     "electrodynamics:orealuminum",
     "electrodynamics:oreniter",
-    "electrodynamics:oresilver",
-    "electrodynamics:orefluorite",
-    "electrodynamics:oremonazite",
-    "electrodynamics:oresalt",
-    "electrodynamics:oresulfur",
-    "electrodynamics:oreuranium",
-    "electrodynamics:orelead",
-    "electrodynamics:oremolybdenum",
-    "electrodynamics:deepslateorelithium",
     "electrodynamics:deepslateorefluorite",
-    "electrodynamics:deepslateorelead",
+    "electrodynamics:deepslateoretitanium",
+    "electrodynamics:deepslateorelithium",
+    "electrodynamics:deepslateorealuminum",
+    "electrodynamics:deepslateoresalt",
+    "electrodynamics:deepslateorevanadium",
+    "electrodynamics:deepslateoretin",
     "electrodynamics:deepslateoremonazite",
-    "electrodynamics:deepslateoreniter",
-    "electrodynamics:deepslateorethorium",
+    "electrodynamics:deepslateoresylvite",
     "electrodynamics:deepslateorechromium",
-    "electrodynamics:deepslateoresalt",
+    "electrodynamics:deepslateoresilver",
     "electrodynamics:deepslateoresulfur",
     "electrodynamics:deepslateoreuranium",
-    "electrodynamics:deepslateorevanadium",
-    "electrodynamics:deepslateoretitanium",
-    "electrodynamics:deepslateoresylvite",
-    "electrodynamics:deepslateoretin",
+    "electrodynamics:deepslateoreniter",
+    "electrodynamics:deepslateorethorium",
+    "electrodynamics:deepslateorelead",
     "electrodynamics:deepslateoremolybdenum",
-    "electrodynamics:deepslateorealuminum",
-    "electrodynamics:deepslateoresilver",
-    "electrodynamics:raworeblocksilver",
-    "electrodynamics:raworeblocklead",
-    "electrodynamics:raworeblocktin",
     "electrodynamics:raworeblockchromium",
-    "electrodynamics:raworeblocktitanium",
-    "electrodynamics:raworeblockthorium",
+    "electrodynamics:raworeblocktin",
     "electrodynamics:raworeblockuranium",
+    "electrodynamics:raworeblocklead",
+    "electrodynamics:raworeblockthorium",
+    "electrodynamics:raworeblocksilver",
+    "electrodynamics:raworeblocktitanium",
+    "electrodynamics:circuitmonitor",
+    "electrodynamics:electricarcfurnace",
     "electrodynamics:wiremilldouble",
+    "electrodynamics:mineralcrusherdouble",
+    "electrodynamics:electrolosischamber",
+    "electrodynamics:gasvalve",
+    "electrodynamics:energizedalloyer",
+    "electrodynamics:quarry",
+    "electrodynamics:motorcomplex",
+    "electrodynamics:fermentationplant",
+    "electrodynamics:wiremilltriple",
+    "electrodynamics:combustionchamber",
+    "electrodynamics:potentiometer",
+    "electrodynamics:fluidpipefilter",
     "electrodynamics:mineralgrindertriple",
-    "electrodynamics:creativegassource",
-    "electrodynamics:wiremill",
-    "electrodynamics:coolantresavoir",
-    "electrodynamics:gaspipepump",
-    "electrodynamics:gascollector",
+    "electrodynamics:seismicrelay",
+    "electrodynamics:relay",
+    "electrodynamics:batterybox",
+    "electrodynamics:lithiumbatterybox",
+    "electrodynamics:thermoelectricgenerator",
+    "electrodynamics:gastankhsla",
     "electrodynamics:electricfurnacetriple",
-    "electrodynamics:mineralgrinderdouble",
-    "electrodynamics:currentregulator",
-    "electrodynamics:potentiometer",
-    "electrodynamics:chargerlv",
-    "electrodynamics:tankreinforced",
-    "electrodynamics:chemicalmixer",
-    "electrodynamics:creativefluidsource",
+    "electrodynamics:upgradetransformer",
     "electrodynamics:fluidvalve",
-    "electrodynamics:lithiumbatterybox",
-    "electrodynamics:solarpanel",
+    "electrodynamics:chargermv",
+    "electrodynamics:mineralgrinder",
+    "electrodynamics:electricarcfurnacetriple",
+    "electrodynamics:chemicalmixer",
+    "electrodynamics:gaspipefilter",
+    "electrodynamics:advancedsolarpanel",
+    "electrodynamics:circuitbreaker",
+    "electrodynamics:tanksteel",
+    "electrodynamics:creativegassource",
     "electrodynamics:chargerhv",
-    "electrodynamics:upgradetransformer",
-    "electrodynamics:electrolyticseparator",
+    "electrodynamics:mineralcrushertriple",
+    "electrodynamics:multimeterblock",
+    "electrodynamics:hydroelectricgenerator",
+    "electrodynamics:coolantresavoir",
+    "electrodynamics:electricfurnace",
+    "electrodynamics:creativefluidsource",
+    "electrodynamics:advanceddowngradetransformer",
+    "electrodynamics:mineralcrusher",
+    "electrodynamics:windmill",
+    "electrodynamics:gastankreinforced",
+    "electrodynamics:carbynebatterybox",
+    "electrodynamics:tankreinforced",
+    "electrodynamics:fluidvoid",
+    "electrodynamics:electricfurnacedouble",
+    "electrodynamics:fluidpipepump",
     "electrodynamics:mineralwasher",
-    "electrodynamics:electricarcfurnacedouble",
-    "electrodynamics:gastankhsla",
+    "electrodynamics:coalgenerator",
+    "electrodynamics:wiremill",
     "electrodynamics:creativepowersource",
     "electrodynamics:downgradetransformer",
-    "electrodynamics:electricfurnace",
-    "electrodynamics:electricfurnacedouble",
-    "electrodynamics:relay",
-    "electrodynamics:windmill",
-    "electrodynamics:gastanksteel",
-    "electrodynamics:combustionchamber",
-    "electrodynamics:chargermv",
+    "electrodynamics:gasvent",
     "electrodynamics:advancedupgradetransformer",
-    "electrodynamics:oxidationfurnace",
-    "electrodynamics:thermoelectricgenerator",
-    "electrodynamics:hydroelectricgenerator",
-    "electrodynamics:batterybox",
-    "electrodynamics:fluidpipefilter",
-    "electrodynamics:circuitmonitor",
-    "electrodynamics:coalgenerator",
-    "electrodynamics:multimeterblock",
-    "electrodynamics:energizedalloyer",
-    "electrodynamics:mineralcrusherdouble",
+    "electrodynamics:currentregulator",
     "electrodynamics:chemicalcrystallizer",
-    "electrodynamics:gaspipefilter",
-    "electrodynamics:quarry",
-    "electrodynamics:fluidpipepump",
-    "electrodynamics:electricarcfurnacetriple",
-    "electrodynamics:fermentationplant",
-    "electrodynamics:wiremilltriple",
-    "electrodynamics:seismicrelay",
-    "electrodynamics:lathe",
+    "electrodynamics:electricarcfurnacedouble",
     "electrodynamics:electricpump",
-    "electrodynamics:tanksteel",
-    "electrodynamics:electrolosischamber",
-    "electrodynamics:gasvalve",
-    "electrodynamics:motorcomplex",
-    "electrodynamics:carbynebatterybox",
-    "electrodynamics:fluidvoid",
-    "electrodynamics:gastankreinforced",
-    "electrodynamics:electricarcfurnace",
-    "electrodynamics:mineralgrinder",
-    "electrodynamics:advancedsolarpanel",
-    "electrodynamics:tankhsla",
-    "electrodynamics:advanceddowngradetransformer",
-    "electrodynamics:mineralcrushertriple",
-    "electrodynamics:gasvent",
-    "electrodynamics:circuitbreaker",
-    "electrodynamics:mineralcrusher",
     "electrodynamics:reinforcedalloyer",
-    "electrodynamics:wireceramicinsulatedgoldblack",
-    "electrodynamics:wirelogisticstinblack",
-    "electrodynamics:wireinsulatedsilveryellow",
-    "electrodynamics:wireinsulatedironwhite",
-    "electrodynamics:wireceramicinsulatedcopperbrown",
-    "electrodynamics:wirelogisticssuperconductiveblue",
-    "electrodynamics:wirelogisticstinred",
-    "electrodynamics:wirehighlyinsulatedsilverbrown",
-    "electrodynamics:wiresilver",
-    "electrodynamics:wireinsulatedgoldwhite",
-    "electrodynamics:wirehighlyinsulatedcopperred",
-    "electrodynamics:wirelogisticsgoldgreen",
-    "electrodynamics:wirehighlyinsulatedironwhite",
-    "electrodynamics:wireceramicinsulatedgoldbrown",
-    "electrodynamics:wireceramicinsulatedsilverwhite",
-    "electrodynamics:wirelogisticssilverwhite",
-    "electrodynamics:wirehighlyinsulatedsilverwhite",
+    "electrodynamics:gascollector",
+    "electrodynamics:oxidationfurnace",
+    "electrodynamics:tankhsla",
+    "electrodynamics:electrolyticseparator",
+    "electrodynamics:gaspipepump",
+    "electrodynamics:gastanksteel",
+    "electrodynamics:mineralgrinderdouble",
+    "electrodynamics:solarpanel",
+    "electrodynamics:chargerlv",
+    "electrodynamics:lathe",
+    "electrodynamics:wireinsulatedsilverwhite",
+    "electrodynamics:wirehighlyinsulatedsilverblue",
+    "electrodynamics:wireinsulatedsuperconductiveyellow",
+    "electrodynamics:wirehighlyinsulatedcopperyellow",
+    "electrodynamics:wirelogisticstinblue",
+    "electrodynamics:wireinsulatedsuperconductivegreen",
+    "electrodynamics:wirehighlyinsulatedgoldgreen",
+    "electrodynamics:wireceramicinsulatedcopperwhite",
+    "electrodynamics:wirelogisticsgoldyellow",
     "electrodynamics:wirelogisticsgoldred",
-    "electrodynamics:wireceramicinsulatedsuperconductiveblue",
-    "electrodynamics:wireceramicinsulatedsilverblack",
-    "electrodynamics:wirehighlyinsulatedsuperconductiveblue",
-    "electrodynamics:wireceramicinsulatedsilveryellow",
-    "electrodynamics:wirelogisticscopperblack",
+    "electrodynamics:wirelogisticsirongreen",
+    "electrodynamics:wirehighlyinsulatedsuperconductivered",
+    "electrodynamics:wirehighlyinsulatedsilverwhite",
+    "electrodynamics:wirehighlyinsulatedsuperconductivewhite",
+    "electrodynamics:wireinsulatedironred",
+    "electrodynamics:wireinsulatedsuperconductivewhite",
+    "electrodynamics:wireinsulatedgoldyellow",
+    "electrodynamics:wirelogisticsironbrown",
+    "electrodynamics:wireinsulatedironblue",
     "electrodynamics:wirehighlyinsulatedsuperconductivegreen",
-    "electrodynamics:wirehighlyinsulatedtinyellow",
-    "electrodynamics:wirehighlyinsulatedironbrown",
-    "electrodynamics:wireceramicinsulatedtinyellow",
-    "electrodynamics:wirelogisticsgoldbrown",
-    "electrodynamics:wirehighlyinsulatedironblack",
+    "electrodynamics:wireceramicinsulatedtinblue",
+    "electrodynamics:wireinsulatedcopperred",
+    "electrodynamics:wireiron",
+    "electrodynamics:wirehighlyinsulatedgoldyellow",
+    "electrodynamics:wirehighlyinsulatedcopperwhite",
+    "electrodynamics:wireceramicinsulatedcopperblue",
+    "electrodynamics:wireceramicinsulatedsuperconductivebrown",
+    "electrodynamics:wireinsulatedgoldblue",
+    "electrodynamics:wireceramicinsulatedcopperbrown",
+    "electrodynamics:wirehighlyinsulatedsuperconductiveyellow",
     "electrodynamics:wirelogisticstinbrown",
-    "electrodynamics:wirelogisticssuperconductivered",
-    "electrodynamics:wireceramicinsulatedgoldgreen",
-    "electrodynamics:wirelogisticstingreen",
-    "electrodynamics:wireinsulatedgoldblack",
-    "electrodynamics:wireinsulatedsilverblue",
-    "electrodynamics:wirehighlyinsulatedcopperblue",
-    "electrodynamics:wireceramicinsulatedgoldred",
+    "electrodynamics:wirehighlyinsulatedcopperbrown",
+    "electrodynamics:wireinsulatedsilveryellow",
+    "electrodynamics:wirehighlyinsulatedtinbrown",
+    "electrodynamics:wirelogisticscopperwhite",
+    "electrodynamics:wirehighlyinsulatedsilverred",
+    "electrodynamics:wirehighlyinsulatedsuperconductiveblack",
+    "electrodynamics:wirehighlyinsulatedsuperconductivebrown",
+    "electrodynamics:wireceramicinsulatedcoppergreen",
+    "electrodynamics:wirehighlyinsulatedtinblack",
+    "electrodynamics:wireceramicinsulatedsuperconductivewhite",
     "electrodynamics:wireceramicinsulatedsilverblue",
-    "electrodynamics:wireceramicinsulatedsuperconductivebrown",
-    "electrodynamics:wirelogisticsgoldwhite",
-    "electrodynamics:wirelogisticssuperconductivebrown",
+    "electrodynamics:wirelogisticscopperblue",
+    "electrodynamics:wireceramicinsulatedsuperconductivegreen",
+    "electrodynamics:wireceramicinsulatedtinwhite",
+    "electrodynamics:wireceramicinsulatedcopperyellow",
+    "electrodynamics:wireinsulatedcopperblack",
+    "electrodynamics:wireceramicinsulatedgoldyellow",
+    "electrodynamics:wireinsulatedsilverred",
+    "electrodynamics:wireceramicinsulatedsilverblack",
+    "electrodynamics:wirehighlyinsulatedgoldwhite",
+    "electrodynamics:wireinsulatedirongreen",
+    "electrodynamics:wirehighlyinsulatedcopperblue",
     "electrodynamics:wirehighlyinsulatedirongreen",
-    "electrodynamics:wirelogisticsironwhite",
-    "electrodynamics:wirelogisticscopperbrown",
-    "electrodynamics:wirelogisticstinblue",
-    "electrodynamics:wireceramicinsulatedtinred",
+    "electrodynamics:wireceramicinsulatedtinblack",
+    "electrodynamics:wireceramicinsulatedironyellow",
+    "electrodynamics:wirelogisticsgoldbrown",
+    "electrodynamics:wirelogisticsgoldblue",
+    "electrodynamics:wireceramicinsulatedsilverwhite",
+    "electrodynamics:wireinsulatedironyellow",
+    "electrodynamics:wirelogisticssilverwhite",
+    "electrodynamics:wireinsulatedtinblue",
+    "electrodynamics:wireceramicinsulatedtinyellow",
+    "electrodynamics:wirelogisticsgoldwhite",
     "electrodynamics:wireinsulatedsilverblack",
-    "electrodynamics:wirelogisticssuperconductivegreen",
-    "electrodynamics:wirelogisticsironblue",
-    "electrodynamics:wirelogisticscopperyellow",
-    "electrodynamics:wirelogisticsgoldyellow",
-    "electrodynamics:wireinsulatedsilverred",
-    "electrodynamics:wireinsulatedironblue",
-    "electrodynamics:wireceramicinsulatedtinbrown",
-    "electrodynamics:wireinsulatedironblack",
-    "electrodynamics:wirehighlyinsulatedsilverblue",
-    "electrodynamics:wirehighlyinsulatedcopperyellow",
-    "electrodynamics:wireinsulatedgoldyellow",
-    "electrodynamics:wireceramicinsulatedcoppergreen",
-    "electrodynamics:wireinsulatedsuperconductiveblack",
-    "electrodynamics:wirehighlyinsulatedtinblack",
-    "electrodynamics:wirehighlyinsulatedtinblue",
-    "electrodynamics:wirelogisticssilverblue",
-    "electrodynamics:wireinsulatedsuperconductivered",
-    "electrodynamics:wireinsulatedsilvergreen",
-    "electrodynamics:wirehighlyinsulatedtinbrown",
-    "electrodynamics:wirelogisticssilverred",
-    "electrodynamics:wirelogisticssuperconductiveyellow",
-    "electrodynamics:wirehighlyinsulatedsuperconductivebrown",
-    "electrodynamics:wireinsulatedgoldbrown",
-    "electrodynamics:wireceramicinsulatedironblack",
-    "electrodynamics:wirelogisticsgoldblack",
-    "electrodynamics:wireceramicinsulatedsilverred",
-    "electrodynamics:wirehighlyinsulatedironyellow",
-    "electrodynamics:wireinsulatedcopperblue",
-    "electrodynamics:wireinsulatedsuperconductivebrown",
-    "electrodynamics:wireceramicinsulatedsuperconductivered",
-    "electrodynamics:wireceramicinsulatedgoldwhite",
-    "electrodynamics:wireinsulatedcopperyellow",
-    "electrodynamics:wirelogisticsironbrown",
-    "electrodynamics:wireinsulatedtinyellow",
-    "electrodynamics:wirelogisticssuperconductivewhite",
     "electrodynamics:wireinsulatedtinblack",
-    "electrodynamics:wireinsulatedtinblue",
-    "electrodynamics:wiretin",
-    "electrodynamics:wireceramicinsulatedtingreen",
+    "electrodynamics:wirelogisticssuperconductiveblack",
+    "electrodynamics:wireinsulatedironbrown",
+    "electrodynamics:wireceramicinsulatedtinred",
+    "electrodynamics:wireinsulatedironwhite",
+    "electrodynamics:wirelogisticsgoldblack",
+    "electrodynamics:wirehighlyinsulatedgoldred",
+    "electrodynamics:wirelogisticssilverblack",
+    "electrodynamics:wirelogisticsironwhite",
+    "electrodynamics:wirelogisticscopperred",
+    "electrodynamics:wireceramicinsulatedsilvergreen",
+    "electrodynamics:wiresuperconductive",
+    "electrodynamics:wireinsulatedgoldred",
+    "electrodynamics:wireceramicinsulatedironred",
+    "electrodynamics:wireceramicinsulatedsilverbrown",
     "electrodynamics:wireinsulatedcopperwhite",
-    "electrodynamics:wireinsulatedsilverbrown",
-    "electrodynamics:wirehighlyinsulatedgoldbrown",
-    "electrodynamics:wirelogisticsgoldblue",
-    "electrodynamics:wirehighlyinsulatedsilverred",
-    "electrodynamics:wirehighlyinsulatedtingreen",
-    "electrodynamics:wireinsulatedsuperconductiveyellow",
-    "electrodynamics:wireceramicinsulatedtinblue",
-    "electrodynamics:wireceramicinsulatedgoldyellow",
-    "electrodynamics:wireinsulatedgoldblue",
-    "electrodynamics:wirelogisticscoppergreen",
-    "electrodynamics:wireinsulatedsuperconductiveblue",
-    "electrodynamics:wirelogisticsironblack",
-    "electrodynamics:wireinsulatedironyellow",
-    "electrodynamics:wireceramicinsulatedgoldblue",
-    "electrodynamics:wireceramicinsulatedsuperconductivewhite",
+    "electrodynamics:wireceramicinsulatedtingreen",
+    "electrodynamics:wirehighlyinsulatedironblack",
+    "electrodynamics:wireceramicinsulatedgoldgreen",
+    "electrodynamics:wireinsulatedsuperconductiveblack",
+    "electrodynamics:wirelogisticssilveryellow",
+    "electrodynamics:wirelogisticssuperconductiveyellow",
+    "electrodynamics:wireinsulatedironblack",
+    "electrodynamics:wireceramicinsulatedtinbrown",
     "electrodynamics:wirelogisticssilverbrown",
-    "electrodynamics:wirehighlyinsulatedtinred",
     "electrodynamics:wirehighlyinsulatedironred",
-    "electrodynamics:wirehighlyinsulatedtinwhite",
-    "electrodynamics:wireinsulatedtinred",
-    "electrodynamics:wireceramicinsulatedcopperwhite",
-    "electrodynamics:wireinsulatedironred",
-    "electrodynamics:wirelogisticscopperred",
-    "electrodynamics:wirelogisticssilverblack",
+    "electrodynamics:wirehighlyinsulatedgoldbrown",
+    "electrodynamics:wireinsulatedtinwhite",
+    "electrodynamics:wirehighlyinsulatedironbrown",
     "electrodynamics:wireceramicinsulatedsuperconductiveyellow",
-    "electrodynamics:wirelogisticssilvergreen",
-    "electrodynamics:wireinsulatedirongreen",
-    "electrodynamics:wirehighlyinsulatedsuperconductiveyellow",
+    "electrodynamics:wireinsulatedcopperbrown",
+    "electrodynamics:wirelogisticssuperconductivegreen",
+    "electrodynamics:wirelogisticssilverblue",
+    "electrodynamics:wirelogisticssuperconductiveblue",
+    "electrodynamics:wireceramicinsulatedcopperblack",
     "electrodynamics:wirehighlyinsulatedsilveryellow",
-    "electrodynamics:wirecopper",
-    "electrodynamics:wirehighlyinsulatedcopperblack",
     "electrodynamics:wireinsulatedtinbrown",
-    "electrodynamics:wirehighlyinsulatedgoldred",
+    "electrodynamics:wireceramicinsulatedgoldbrown",
+    "electrodynamics:wirelogisticscopperbrown",
+    "electrodynamics:wireinsulatedgoldwhite",
+    "electrodynamics:wireinsulatedcoppergreen",
+    "electrodynamics:wirehighlyinsulatedtinwhite",
+    "electrodynamics:wirelogisticstinwhite",
+    "electrodynamics:wirelogisticsgoldgreen",
+    "electrodynamics:wirelogisticstinyellow",
+    "electrodynamics:wireceramicinsulatedironblue",
+    "electrodynamics:wireinsulatedcopperyellow",
+    "electrodynamics:wirelogisticstinblack",
+    "electrodynamics:wirehighlyinsulatedcopperred",
+    "electrodynamics:wiretin",
+    "electrodynamics:wireinsulatedcopperblue",
+    "electrodynamics:wirehighlyinsulatedtinblue",
+    "electrodynamics:wireceramicinsulatedironbrown",
+    "electrodynamics:wirelogisticscoppergreen",
+    "electrodynamics:wireinsulatedsuperconductivebrown",
+    "electrodynamics:wirelogisticssuperconductivewhite",
+    "electrodynamics:wireinsulatedsilverbrown",
     "electrodynamics:wirehighlyinsulatedgoldblue",
-    "electrodynamics:wireceramicinsulatedsilverbrown",
+    "electrodynamics:wireinsulatedgoldblack",
+    "electrodynamics:wireceramicinsulatedsuperconductiveblack",
+    "electrodynamics:wirelogisticscopperblack",
+    "electrodynamics:wireinsulatedsuperconductiveblue",
+    "electrodynamics:wireceramicinsulatedgoldwhite",
     "electrodynamics:wireceramicinsulatedirongreen",
-    "electrodynamics:wireinsulatedcopperbrown",
-    "electrodynamics:wirelogisticscopperblue",
-    "electrodynamics:wireinsulatedsuperconductivegreen",
-    "electrodynamics:wirehighlyinsulatedgoldgreen",
-    "electrodynamics:wirehighlyinsulatedironblue",
-    "electrodynamics:wirehighlyinsulatedsuperconductivered",
-    "electrodynamics:wireceramicinsulatedcopperred",
-    "electrodynamics:wireceramicinsulatedironyellow",
-    "electrodynamics:wireiron",
-    "electrodynamics:wireceramicinsulatedironred",
-    "electrodynamics:wirehighlyinsulatedcopperwhite",
-    "electrodynamics:wirehighlyinsulatedgoldwhite",
-    "electrodynamics:wirehighlyinsulatedcopperbrown",
-    "electrodynamics:wiresuperconductive",
-    "electrodynamics:wireinsulatedtingreen",
-    "electrodynamics:wirehighlyinsulatedsilverblack",
     "electrodynamics:wirehighlyinsulatedgoldblack",
-    "electrodynamics:wirehighlyinsulatedsuperconductivewhite",
-    "electrodynamics:wireceramicinsulatedtinwhite",
-    "electrodynamics:wirehighlyinsulatedgoldyellow",
-    "electrodynamics:wirelogisticstinwhite",
-    "electrodynamics:wirehighlyinsulatedsuperconductiveblack",
-    "electrodynamics:wireceramicinsulatedsilvergreen",
     "electrodynamics:wiregold",
-    "electrodynamics:wireinsulatedcopperblack",
-    "electrodynamics:wireceramicinsulatedsuperconductivegreen",
-    "electrodynamics:wireceramicinsulatedironbrown",
+    "electrodynamics:wirehighlyinsulatedsilverbrown",
+    "electrodynamics:wireceramicinsulatedgoldred",
+    "electrodynamics:wirelogisticsironyellow",
+    "electrodynamics:wiresilver",
+    "electrodynamics:wireinsulatedtinyellow",
+    "electrodynamics:wirehighlyinsulatedtinred",
+    "electrodynamics:wireceramicinsulatedcopperred",
+    "electrodynamics:wirecopper",
+    "electrodynamics:wirehighlyinsulatedcopperblack",
+    "electrodynamics:wireceramicinsulatedsuperconductivered",
+    "electrodynamics:wireceramicinsulatedsuperconductiveblue",
+    "electrodynamics:wireceramicinsulatedgoldblue",
+    "electrodynamics:wirelogisticscopperyellow",
     "electrodynamics:wireinsulatedgoldgreen",
-    "electrodynamics:wirelogisticssuperconductiveblack",
-    "electrodynamics:wirehighlyinsulatedsilvergreen",
-    "electrodynamics:wireceramicinsulatedcopperblack",
-    "electrodynamics:wirelogisticsironred",
+    "electrodynamics:wireceramicinsulatedsilveryellow",
+    "electrodynamics:wirehighlyinsulatedtingreen",
+    "electrodynamics:wirehighlyinsulatedironyellow",
+    "electrodynamics:wirehighlyinsulatedsuperconductiveblue",
+    "electrodynamics:wirelogisticssilverred",
     "electrodynamics:wireceramicinsulatedironwhite",
-    "electrodynamics:wirelogisticsirongreen",
-    "electrodynamics:wirelogisticssilveryellow",
-    "electrodynamics:wireceramicinsulatedtinblack",
-    "electrodynamics:wireceramicinsulatedsuperconductiveblack",
-    "electrodynamics:wireinsulatedtinwhite",
-    "electrodynamics:wireinsulatedgoldred",
-    "electrodynamics:wireinsulatedsuperconductivewhite",
-    "electrodynamics:wireinsulatedcoppergreen",
-    "electrodynamics:wireinsulatedcopperred",
+    "electrodynamics:wirehighlyinsulatedtinyellow",
+    "electrodynamics:wireceramicinsulatedironblack",
+    "electrodynamics:wirelogisticssuperconductivered",
+    "electrodynamics:wireinsulatedsilverblue",
+    "electrodynamics:wirelogisticssuperconductivebrown",
+    "electrodynamics:wirelogisticssilvergreen",
+    "electrodynamics:wirelogisticsironblue",
+    "electrodynamics:wireceramicinsulatedsilverred",
+    "electrodynamics:wirelogisticsironblack",
+    "electrodynamics:wirelogisticstingreen",
+    "electrodynamics:wireceramicinsulatedgoldblack",
+    "electrodynamics:wireinsulatedgoldbrown",
+    "electrodynamics:wireinsulatedtinred",
+    "electrodynamics:wireinsulatedsilvergreen",
+    "electrodynamics:wirehighlyinsulatedironwhite",
+    "electrodynamics:wirelogisticsironred",
+    "electrodynamics:wireinsulatedsuperconductivered",
+    "electrodynamics:wirehighlyinsulatedsilverblack",
     "electrodynamics:wirehighlyinsulatedcoppergreen",
-    "electrodynamics:wirelogisticsironyellow",
-    "electrodynamics:wireceramicinsulatedcopperyellow",
-    "electrodynamics:wirelogisticscopperwhite",
-    "electrodynamics:wirelogisticstinyellow",
-    "electrodynamics:wireceramicinsulatedcopperblue",
-    "electrodynamics:wireinsulatedsilverwhite",
-    "electrodynamics:wireceramicinsulatedironblue",
-    "electrodynamics:wireinsulatedironbrown",
+    "electrodynamics:wirelogisticstinred",
+    "electrodynamics:wireinsulatedtingreen",
+    "electrodynamics:wirehighlyinsulatedironblue",
+    "electrodynamics:wirehighlyinsulatedsilvergreen",
     "electrodynamics:pipecopper",
     "electrodynamics:pipesteel",
     "electrodynamics:glassaluminum",
     "electrodynamics:glassclear",
-    "electrodynamics:resourceblocktitaniumcarbide",
-    "electrodynamics:resourceblockbronze",
-    "electrodynamics:resourceblocksteel",
-    "electrodynamics:resourceblockstainlesssteel",
-    "electrodynamics:resourceblocktitanium",
     "electrodynamics:resourceblockchromium",
     "electrodynamics:resourceblockhslasteel",
-    "electrodynamics:resourceblockvanadiumsteel",
+    "electrodynamics:resourceblocksilver",
+    "electrodynamics:resourceblockbronze",
     "electrodynamics:resourceblocklead",
+    "electrodynamics:resourceblockstainlesssteel",
+    "electrodynamics:resourceblockvanadiumsteel",
+    "electrodynamics:resourceblocktitaniumcarbide",
     "electrodynamics:resourceblockaluminum",
+    "electrodynamics:resourceblocksteel",
     "electrodynamics:resourceblocktin",
-    "electrodynamics:resourceblocksilver",
+    "electrodynamics:resourceblocktitanium",
     "electrodynamics:seismicmarker",
     "electrodynamics:logisticalmanager",
     "electrodynamics:logisticalmanager",
diff --git a/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json b/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json
index 61a2dc421..34991d0e3 100644
--- a/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json
+++ b/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json
@@ -1,76 +1,76 @@
 {
   "values": [
+    "electrodynamics:circuitmonitor",
+    "electrodynamics:electricarcfurnace",
     "electrodynamics:wiremilldouble",
+    "electrodynamics:mineralcrusherdouble",
+    "electrodynamics:electrolosischamber",
+    "electrodynamics:gasvalve",
+    "electrodynamics:energizedalloyer",
+    "electrodynamics:quarry",
+    "electrodynamics:motorcomplex",
+    "electrodynamics:fermentationplant",
+    "electrodynamics:wiremilltriple",
+    "electrodynamics:combustionchamber",
+    "electrodynamics:potentiometer",
+    "electrodynamics:fluidpipefilter",
     "electrodynamics:mineralgrindertriple",
-    "electrodynamics:creativegassource",
-    "electrodynamics:wiremill",
-    "electrodynamics:coolantresavoir",
-    "electrodynamics:gaspipepump",
-    "electrodynamics:gascollector",
+    "electrodynamics:seismicrelay",
+    "electrodynamics:relay",
+    "electrodynamics:batterybox",
+    "electrodynamics:lithiumbatterybox",
+    "electrodynamics:thermoelectricgenerator",
+    "electrodynamics:gastankhsla",
     "electrodynamics:electricfurnacetriple",
-    "electrodynamics:mineralgrinderdouble",
-    "electrodynamics:currentregulator",
-    "electrodynamics:potentiometer",
-    "electrodynamics:chargerlv",
-    "electrodynamics:tankreinforced",
-    "electrodynamics:chemicalmixer",
-    "electrodynamics:creativefluidsource",
+    "electrodynamics:upgradetransformer",
     "electrodynamics:fluidvalve",
-    "electrodynamics:lithiumbatterybox",
-    "electrodynamics:solarpanel",
+    "electrodynamics:chargermv",
+    "electrodynamics:mineralgrinder",
+    "electrodynamics:electricarcfurnacetriple",
+    "electrodynamics:chemicalmixer",
+    "electrodynamics:gaspipefilter",
+    "electrodynamics:advancedsolarpanel",
+    "electrodynamics:circuitbreaker",
+    "electrodynamics:tanksteel",
+    "electrodynamics:creativegassource",
     "electrodynamics:chargerhv",
-    "electrodynamics:upgradetransformer",
-    "electrodynamics:electrolyticseparator",
+    "electrodynamics:mineralcrushertriple",
+    "electrodynamics:multimeterblock",
+    "electrodynamics:hydroelectricgenerator",
+    "electrodynamics:coolantresavoir",
+    "electrodynamics:electricfurnace",
+    "electrodynamics:creativefluidsource",
+    "electrodynamics:advanceddowngradetransformer",
+    "electrodynamics:mineralcrusher",
+    "electrodynamics:windmill",
+    "electrodynamics:gastankreinforced",
+    "electrodynamics:carbynebatterybox",
+    "electrodynamics:tankreinforced",
+    "electrodynamics:fluidvoid",
+    "electrodynamics:electricfurnacedouble",
+    "electrodynamics:fluidpipepump",
     "electrodynamics:mineralwasher",
-    "electrodynamics:electricarcfurnacedouble",
-    "electrodynamics:gastankhsla",
+    "electrodynamics:coalgenerator",
+    "electrodynamics:wiremill",
     "electrodynamics:creativepowersource",
     "electrodynamics:downgradetransformer",
-    "electrodynamics:electricfurnace",
-    "electrodynamics:electricfurnacedouble",
-    "electrodynamics:relay",
-    "electrodynamics:windmill",
-    "electrodynamics:gastanksteel",
-    "electrodynamics:combustionchamber",
-    "electrodynamics:chargermv",
+    "electrodynamics:gasvent",
     "electrodynamics:advancedupgradetransformer",
-    "electrodynamics:oxidationfurnace",
-    "electrodynamics:thermoelectricgenerator",
-    "electrodynamics:hydroelectricgenerator",
-    "electrodynamics:batterybox",
-    "electrodynamics:fluidpipefilter",
-    "electrodynamics:circuitmonitor",
-    "electrodynamics:coalgenerator",
-    "electrodynamics:multimeterblock",
-    "electrodynamics:energizedalloyer",
-    "electrodynamics:mineralcrusherdouble",
+    "electrodynamics:currentregulator",
     "electrodynamics:chemicalcrystallizer",
-    "electrodynamics:gaspipefilter",
-    "electrodynamics:quarry",
-    "electrodynamics:fluidpipepump",
-    "electrodynamics:electricarcfurnacetriple",
-    "electrodynamics:fermentationplant",
-    "electrodynamics:wiremilltriple",
-    "electrodynamics:seismicrelay",
-    "electrodynamics:lathe",
+    "electrodynamics:electricarcfurnacedouble",
     "electrodynamics:electricpump",
-    "electrodynamics:tanksteel",
-    "electrodynamics:electrolosischamber",
-    "electrodynamics:gasvalve",
-    "electrodynamics:motorcomplex",
-    "electrodynamics:carbynebatterybox",
-    "electrodynamics:fluidvoid",
-    "electrodynamics:gastankreinforced",
-    "electrodynamics:electricarcfurnace",
-    "electrodynamics:mineralgrinder",
-    "electrodynamics:advancedsolarpanel",
-    "electrodynamics:tankhsla",
-    "electrodynamics:advanceddowngradetransformer",
-    "electrodynamics:mineralcrushertriple",
-    "electrodynamics:gasvent",
-    "electrodynamics:circuitbreaker",
-    "electrodynamics:mineralcrusher",
     "electrodynamics:reinforcedalloyer",
+    "electrodynamics:gascollector",
+    "electrodynamics:oxidationfurnace",
+    "electrodynamics:tankhsla",
+    "electrodynamics:electrolyticseparator",
+    "electrodynamics:gaspipepump",
+    "electrodynamics:gastanksteel",
+    "electrodynamics:mineralgrinderdouble",
+    "electrodynamics:solarpanel",
+    "electrodynamics:chargerlv",
+    "electrodynamics:lathe",
     "electrodynamics:pipecopper",
     "electrodynamics:pipesteel",
     "electrodynamics:orefluorite",
diff --git a/src/generated/resources/data/neoforge/tags/block/needs_wood_tool.json b/src/generated/resources/data/neoforge/tags/block/needs_wood_tool.json
index adaa1fb3a..24aab7293 100644
--- a/src/generated/resources/data/neoforge/tags/block/needs_wood_tool.json
+++ b/src/generated/resources/data/neoforge/tags/block/needs_wood_tool.json
@@ -2,180 +2,180 @@
   "values": [
     "electrodynamics:glassaluminum",
     "electrodynamics:glassclear",
-    "electrodynamics:wireceramicinsulatedgoldblack",
-    "electrodynamics:wirelogisticstinblack",
-    "electrodynamics:wireinsulatedsilveryellow",
-    "electrodynamics:wireinsulatedironwhite",
-    "electrodynamics:wireceramicinsulatedcopperbrown",
-    "electrodynamics:wirelogisticssuperconductiveblue",
-    "electrodynamics:wirelogisticstinred",
-    "electrodynamics:wirehighlyinsulatedsilverbrown",
-    "electrodynamics:wiresilver",
-    "electrodynamics:wireinsulatedgoldwhite",
-    "electrodynamics:wirehighlyinsulatedcopperred",
-    "electrodynamics:wirelogisticsgoldgreen",
-    "electrodynamics:wirehighlyinsulatedironwhite",
-    "electrodynamics:wireceramicinsulatedgoldbrown",
-    "electrodynamics:wireceramicinsulatedsilverwhite",
-    "electrodynamics:wirelogisticssilverwhite",
-    "electrodynamics:wirehighlyinsulatedsilverwhite",
+    "electrodynamics:wireinsulatedsilverwhite",
+    "electrodynamics:wirehighlyinsulatedsilverblue",
+    "electrodynamics:wireinsulatedsuperconductiveyellow",
+    "electrodynamics:wirehighlyinsulatedcopperyellow",
+    "electrodynamics:wirelogisticstinblue",
+    "electrodynamics:wireinsulatedsuperconductivegreen",
+    "electrodynamics:wirehighlyinsulatedgoldgreen",
+    "electrodynamics:wireceramicinsulatedcopperwhite",
+    "electrodynamics:wirelogisticsgoldyellow",
     "electrodynamics:wirelogisticsgoldred",
-    "electrodynamics:wireceramicinsulatedsuperconductiveblue",
-    "electrodynamics:wireceramicinsulatedsilverblack",
-    "electrodynamics:wirehighlyinsulatedsuperconductiveblue",
-    "electrodynamics:wireceramicinsulatedsilveryellow",
-    "electrodynamics:wirelogisticscopperblack",
+    "electrodynamics:wirelogisticsirongreen",
+    "electrodynamics:wirehighlyinsulatedsuperconductivered",
+    "electrodynamics:wirehighlyinsulatedsilverwhite",
+    "electrodynamics:wirehighlyinsulatedsuperconductivewhite",
+    "electrodynamics:wireinsulatedironred",
+    "electrodynamics:wireinsulatedsuperconductivewhite",
+    "electrodynamics:wireinsulatedgoldyellow",
+    "electrodynamics:wirelogisticsironbrown",
+    "electrodynamics:wireinsulatedironblue",
     "electrodynamics:wirehighlyinsulatedsuperconductivegreen",
-    "electrodynamics:wirehighlyinsulatedtinyellow",
-    "electrodynamics:wirehighlyinsulatedironbrown",
-    "electrodynamics:wireceramicinsulatedtinyellow",
-    "electrodynamics:wirelogisticsgoldbrown",
-    "electrodynamics:wirehighlyinsulatedironblack",
+    "electrodynamics:wireceramicinsulatedtinblue",
+    "electrodynamics:wireinsulatedcopperred",
+    "electrodynamics:wireiron",
+    "electrodynamics:wirehighlyinsulatedgoldyellow",
+    "electrodynamics:wirehighlyinsulatedcopperwhite",
+    "electrodynamics:wireceramicinsulatedcopperblue",
+    "electrodynamics:wireceramicinsulatedsuperconductivebrown",
+    "electrodynamics:wireinsulatedgoldblue",
+    "electrodynamics:wireceramicinsulatedcopperbrown",
+    "electrodynamics:wirehighlyinsulatedsuperconductiveyellow",
     "electrodynamics:wirelogisticstinbrown",
-    "electrodynamics:wirelogisticssuperconductivered",
-    "electrodynamics:wireceramicinsulatedgoldgreen",
-    "electrodynamics:wirelogisticstingreen",
-    "electrodynamics:wireinsulatedgoldblack",
-    "electrodynamics:wireinsulatedsilverblue",
-    "electrodynamics:wirehighlyinsulatedcopperblue",
-    "electrodynamics:wireceramicinsulatedgoldred",
+    "electrodynamics:wirehighlyinsulatedcopperbrown",
+    "electrodynamics:wireinsulatedsilveryellow",
+    "electrodynamics:wirehighlyinsulatedtinbrown",
+    "electrodynamics:wirelogisticscopperwhite",
+    "electrodynamics:wirehighlyinsulatedsilverred",
+    "electrodynamics:wirehighlyinsulatedsuperconductiveblack",
+    "electrodynamics:wirehighlyinsulatedsuperconductivebrown",
+    "electrodynamics:wireceramicinsulatedcoppergreen",
+    "electrodynamics:wirehighlyinsulatedtinblack",
+    "electrodynamics:wireceramicinsulatedsuperconductivewhite",
     "electrodynamics:wireceramicinsulatedsilverblue",
-    "electrodynamics:wireceramicinsulatedsuperconductivebrown",
-    "electrodynamics:wirelogisticsgoldwhite",
-    "electrodynamics:wirelogisticssuperconductivebrown",
+    "electrodynamics:wirelogisticscopperblue",
+    "electrodynamics:wireceramicinsulatedsuperconductivegreen",
+    "electrodynamics:wireceramicinsulatedtinwhite",
+    "electrodynamics:wireceramicinsulatedcopperyellow",
+    "electrodynamics:wireinsulatedcopperblack",
+    "electrodynamics:wireceramicinsulatedgoldyellow",
+    "electrodynamics:wireinsulatedsilverred",
+    "electrodynamics:wireceramicinsulatedsilverblack",
+    "electrodynamics:wirehighlyinsulatedgoldwhite",
+    "electrodynamics:wireinsulatedirongreen",
+    "electrodynamics:wirehighlyinsulatedcopperblue",
     "electrodynamics:wirehighlyinsulatedirongreen",
-    "electrodynamics:wirelogisticsironwhite",
-    "electrodynamics:wirelogisticscopperbrown",
-    "electrodynamics:wirelogisticstinblue",
-    "electrodynamics:wireceramicinsulatedtinred",
+    "electrodynamics:wireceramicinsulatedtinblack",
+    "electrodynamics:wireceramicinsulatedironyellow",
+    "electrodynamics:wirelogisticsgoldbrown",
+    "electrodynamics:wirelogisticsgoldblue",
+    "electrodynamics:wireceramicinsulatedsilverwhite",
+    "electrodynamics:wireinsulatedironyellow",
+    "electrodynamics:wirelogisticssilverwhite",
+    "electrodynamics:wireinsulatedtinblue",
+    "electrodynamics:wireceramicinsulatedtinyellow",
+    "electrodynamics:wirelogisticsgoldwhite",
     "electrodynamics:wireinsulatedsilverblack",
-    "electrodynamics:wirelogisticssuperconductivegreen",
-    "electrodynamics:wirelogisticsironblue",
-    "electrodynamics:wirelogisticscopperyellow",
-    "electrodynamics:wirelogisticsgoldyellow",
-    "electrodynamics:wireinsulatedsilverred",
-    "electrodynamics:wireinsulatedironblue",
-    "electrodynamics:wireceramicinsulatedtinbrown",
-    "electrodynamics:wireinsulatedironblack",
-    "electrodynamics:wirehighlyinsulatedsilverblue",
-    "electrodynamics:wirehighlyinsulatedcopperyellow",
-    "electrodynamics:wireinsulatedgoldyellow",
-    "electrodynamics:wireceramicinsulatedcoppergreen",
-    "electrodynamics:wireinsulatedsuperconductiveblack",
-    "electrodynamics:wirehighlyinsulatedtinblack",
-    "electrodynamics:wirehighlyinsulatedtinblue",
-    "electrodynamics:wirelogisticssilverblue",
-    "electrodynamics:wireinsulatedsuperconductivered",
-    "electrodynamics:wireinsulatedsilvergreen",
-    "electrodynamics:wirehighlyinsulatedtinbrown",
-    "electrodynamics:wirelogisticssilverred",
-    "electrodynamics:wirelogisticssuperconductiveyellow",
-    "electrodynamics:wirehighlyinsulatedsuperconductivebrown",
-    "electrodynamics:wireinsulatedgoldbrown",
-    "electrodynamics:wireceramicinsulatedironblack",
-    "electrodynamics:wirelogisticsgoldblack",
-    "electrodynamics:wireceramicinsulatedsilverred",
-    "electrodynamics:wirehighlyinsulatedironyellow",
-    "electrodynamics:wireinsulatedcopperblue",
-    "electrodynamics:wireinsulatedsuperconductivebrown",
-    "electrodynamics:wireceramicinsulatedsuperconductivered",
-    "electrodynamics:wireceramicinsulatedgoldwhite",
-    "electrodynamics:wireinsulatedcopperyellow",
-    "electrodynamics:wirelogisticsironbrown",
-    "electrodynamics:wireinsulatedtinyellow",
-    "electrodynamics:wirelogisticssuperconductivewhite",
     "electrodynamics:wireinsulatedtinblack",
-    "electrodynamics:wireinsulatedtinblue",
-    "electrodynamics:wiretin",
-    "electrodynamics:wireceramicinsulatedtingreen",
+    "electrodynamics:wirelogisticssuperconductiveblack",
+    "electrodynamics:wireinsulatedironbrown",
+    "electrodynamics:wireceramicinsulatedtinred",
+    "electrodynamics:wireinsulatedironwhite",
+    "electrodynamics:wirelogisticsgoldblack",
+    "electrodynamics:wirehighlyinsulatedgoldred",
+    "electrodynamics:wirelogisticssilverblack",
+    "electrodynamics:wirelogisticsironwhite",
+    "electrodynamics:wirelogisticscopperred",
+    "electrodynamics:wireceramicinsulatedsilvergreen",
+    "electrodynamics:wiresuperconductive",
+    "electrodynamics:wireinsulatedgoldred",
+    "electrodynamics:wireceramicinsulatedironred",
+    "electrodynamics:wireceramicinsulatedsilverbrown",
     "electrodynamics:wireinsulatedcopperwhite",
-    "electrodynamics:wireinsulatedsilverbrown",
-    "electrodynamics:wirehighlyinsulatedgoldbrown",
-    "electrodynamics:wirelogisticsgoldblue",
-    "electrodynamics:wirehighlyinsulatedsilverred",
-    "electrodynamics:wirehighlyinsulatedtingreen",
-    "electrodynamics:wireinsulatedsuperconductiveyellow",
-    "electrodynamics:wireceramicinsulatedtinblue",
-    "electrodynamics:wireceramicinsulatedgoldyellow",
-    "electrodynamics:wireinsulatedgoldblue",
-    "electrodynamics:wirelogisticscoppergreen",
-    "electrodynamics:wireinsulatedsuperconductiveblue",
-    "electrodynamics:wirelogisticsironblack",
-    "electrodynamics:wireinsulatedironyellow",
-    "electrodynamics:wireceramicinsulatedgoldblue",
-    "electrodynamics:wireceramicinsulatedsuperconductivewhite",
+    "electrodynamics:wireceramicinsulatedtingreen",
+    "electrodynamics:wirehighlyinsulatedironblack",
+    "electrodynamics:wireceramicinsulatedgoldgreen",
+    "electrodynamics:wireinsulatedsuperconductiveblack",
+    "electrodynamics:wirelogisticssilveryellow",
+    "electrodynamics:wirelogisticssuperconductiveyellow",
+    "electrodynamics:wireinsulatedironblack",
+    "electrodynamics:wireceramicinsulatedtinbrown",
     "electrodynamics:wirelogisticssilverbrown",
-    "electrodynamics:wirehighlyinsulatedtinred",
     "electrodynamics:wirehighlyinsulatedironred",
-    "electrodynamics:wirehighlyinsulatedtinwhite",
-    "electrodynamics:wireinsulatedtinred",
-    "electrodynamics:wireceramicinsulatedcopperwhite",
-    "electrodynamics:wireinsulatedironred",
-    "electrodynamics:wirelogisticscopperred",
-    "electrodynamics:wirelogisticssilverblack",
+    "electrodynamics:wirehighlyinsulatedgoldbrown",
+    "electrodynamics:wireinsulatedtinwhite",
+    "electrodynamics:wirehighlyinsulatedironbrown",
     "electrodynamics:wireceramicinsulatedsuperconductiveyellow",
-    "electrodynamics:wirelogisticssilvergreen",
-    "electrodynamics:wireinsulatedirongreen",
-    "electrodynamics:wirehighlyinsulatedsuperconductiveyellow",
+    "electrodynamics:wireinsulatedcopperbrown",
+    "electrodynamics:wirelogisticssuperconductivegreen",
+    "electrodynamics:wirelogisticssilverblue",
+    "electrodynamics:wirelogisticssuperconductiveblue",
+    "electrodynamics:wireceramicinsulatedcopperblack",
     "electrodynamics:wirehighlyinsulatedsilveryellow",
-    "electrodynamics:wirecopper",
-    "electrodynamics:wirehighlyinsulatedcopperblack",
     "electrodynamics:wireinsulatedtinbrown",
-    "electrodynamics:wirehighlyinsulatedgoldred",
+    "electrodynamics:wireceramicinsulatedgoldbrown",
+    "electrodynamics:wirelogisticscopperbrown",
+    "electrodynamics:wireinsulatedgoldwhite",
+    "electrodynamics:wireinsulatedcoppergreen",
+    "electrodynamics:wirehighlyinsulatedtinwhite",
+    "electrodynamics:wirelogisticstinwhite",
+    "electrodynamics:wirelogisticsgoldgreen",
+    "electrodynamics:wirelogisticstinyellow",
+    "electrodynamics:wireceramicinsulatedironblue",
+    "electrodynamics:wireinsulatedcopperyellow",
+    "electrodynamics:wirelogisticstinblack",
+    "electrodynamics:wirehighlyinsulatedcopperred",
+    "electrodynamics:wiretin",
+    "electrodynamics:wireinsulatedcopperblue",
+    "electrodynamics:wirehighlyinsulatedtinblue",
+    "electrodynamics:wireceramicinsulatedironbrown",
+    "electrodynamics:wirelogisticscoppergreen",
+    "electrodynamics:wireinsulatedsuperconductivebrown",
+    "electrodynamics:wirelogisticssuperconductivewhite",
+    "electrodynamics:wireinsulatedsilverbrown",
     "electrodynamics:wirehighlyinsulatedgoldblue",
-    "electrodynamics:wireceramicinsulatedsilverbrown",
+    "electrodynamics:wireinsulatedgoldblack",
+    "electrodynamics:wireceramicinsulatedsuperconductiveblack",
+    "electrodynamics:wirelogisticscopperblack",
+    "electrodynamics:wireinsulatedsuperconductiveblue",
+    "electrodynamics:wireceramicinsulatedgoldwhite",
     "electrodynamics:wireceramicinsulatedirongreen",
-    "electrodynamics:wireinsulatedcopperbrown",
-    "electrodynamics:wirelogisticscopperblue",
-    "electrodynamics:wireinsulatedsuperconductivegreen",
-    "electrodynamics:wirehighlyinsulatedgoldgreen",
-    "electrodynamics:wirehighlyinsulatedironblue",
-    "electrodynamics:wirehighlyinsulatedsuperconductivered",
-    "electrodynamics:wireceramicinsulatedcopperred",
-    "electrodynamics:wireceramicinsulatedironyellow",
-    "electrodynamics:wireiron",
-    "electrodynamics:wireceramicinsulatedironred",
-    "electrodynamics:wirehighlyinsulatedcopperwhite",
-    "electrodynamics:wirehighlyinsulatedgoldwhite",
-    "electrodynamics:wirehighlyinsulatedcopperbrown",
-    "electrodynamics:wiresuperconductive",
-    "electrodynamics:wireinsulatedtingreen",
-    "electrodynamics:wirehighlyinsulatedsilverblack",
     "electrodynamics:wirehighlyinsulatedgoldblack",
-    "electrodynamics:wirehighlyinsulatedsuperconductivewhite",
-    "electrodynamics:wireceramicinsulatedtinwhite",
-    "electrodynamics:wirehighlyinsulatedgoldyellow",
-    "electrodynamics:wirelogisticstinwhite",
-    "electrodynamics:wirehighlyinsulatedsuperconductiveblack",
-    "electrodynamics:wireceramicinsulatedsilvergreen",
     "electrodynamics:wiregold",
-    "electrodynamics:wireinsulatedcopperblack",
-    "electrodynamics:wireceramicinsulatedsuperconductivegreen",
-    "electrodynamics:wireceramicinsulatedironbrown",
+    "electrodynamics:wirehighlyinsulatedsilverbrown",
+    "electrodynamics:wireceramicinsulatedgoldred",
+    "electrodynamics:wirelogisticsironyellow",
+    "electrodynamics:wiresilver",
+    "electrodynamics:wireinsulatedtinyellow",
+    "electrodynamics:wirehighlyinsulatedtinred",
+    "electrodynamics:wireceramicinsulatedcopperred",
+    "electrodynamics:wirecopper",
+    "electrodynamics:wirehighlyinsulatedcopperblack",
+    "electrodynamics:wireceramicinsulatedsuperconductivered",
+    "electrodynamics:wireceramicinsulatedsuperconductiveblue",
+    "electrodynamics:wireceramicinsulatedgoldblue",
+    "electrodynamics:wirelogisticscopperyellow",
     "electrodynamics:wireinsulatedgoldgreen",
-    "electrodynamics:wirelogisticssuperconductiveblack",
-    "electrodynamics:wirehighlyinsulatedsilvergreen",
-    "electrodynamics:wireceramicinsulatedcopperblack",
-    "electrodynamics:wirelogisticsironred",
+    "electrodynamics:wireceramicinsulatedsilveryellow",
+    "electrodynamics:wirehighlyinsulatedtingreen",
+    "electrodynamics:wirehighlyinsulatedironyellow",
+    "electrodynamics:wirehighlyinsulatedsuperconductiveblue",
+    "electrodynamics:wirelogisticssilverred",
     "electrodynamics:wireceramicinsulatedironwhite",
-    "electrodynamics:wirelogisticsirongreen",
-    "electrodynamics:wirelogisticssilveryellow",
-    "electrodynamics:wireceramicinsulatedtinblack",
-    "electrodynamics:wireceramicinsulatedsuperconductiveblack",
-    "electrodynamics:wireinsulatedtinwhite",
-    "electrodynamics:wireinsulatedgoldred",
-    "electrodynamics:wireinsulatedsuperconductivewhite",
-    "electrodynamics:wireinsulatedcoppergreen",
-    "electrodynamics:wireinsulatedcopperred",
+    "electrodynamics:wirehighlyinsulatedtinyellow",
+    "electrodynamics:wireceramicinsulatedironblack",
+    "electrodynamics:wirelogisticssuperconductivered",
+    "electrodynamics:wireinsulatedsilverblue",
+    "electrodynamics:wirelogisticssuperconductivebrown",
+    "electrodynamics:wirelogisticssilvergreen",
+    "electrodynamics:wirelogisticsironblue",
+    "electrodynamics:wireceramicinsulatedsilverred",
+    "electrodynamics:wirelogisticsironblack",
+    "electrodynamics:wirelogisticstingreen",
+    "electrodynamics:wireceramicinsulatedgoldblack",
+    "electrodynamics:wireinsulatedgoldbrown",
+    "electrodynamics:wireinsulatedtinred",
+    "electrodynamics:wireinsulatedsilvergreen",
+    "electrodynamics:wirehighlyinsulatedironwhite",
+    "electrodynamics:wirelogisticsironred",
+    "electrodynamics:wireinsulatedsuperconductivered",
+    "electrodynamics:wirehighlyinsulatedsilverblack",
     "electrodynamics:wirehighlyinsulatedcoppergreen",
-    "electrodynamics:wirelogisticsironyellow",
-    "electrodynamics:wireceramicinsulatedcopperyellow",
-    "electrodynamics:wirelogisticscopperwhite",
-    "electrodynamics:wirelogisticstinyellow",
-    "electrodynamics:wireceramicinsulatedcopperblue",
-    "electrodynamics:wireinsulatedsilverwhite",
-    "electrodynamics:wireceramicinsulatedironblue",
-    "electrodynamics:wireinsulatedironbrown",
+    "electrodynamics:wirelogisticstinred",
+    "electrodynamics:wireinsulatedtingreen",
+    "electrodynamics:wirehighlyinsulatedironblue",
+    "electrodynamics:wirehighlyinsulatedsilvergreen",
     "electrodynamics:frame",
     "electrodynamics:framecorner"
   ]
diff --git a/src/main/java/electrodynamics/api/gas/Gas.java b/src/main/java/electrodynamics/api/gas/Gas.java
index 98e791a0b..3282d384b 100644
--- a/src/main/java/electrodynamics/api/gas/Gas.java
+++ b/src/main/java/electrodynamics/api/gas/Gas.java
@@ -1,12 +1,10 @@
 package electrodynamics.api.gas;
 
-import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import electrodynamics.registers.ElectrodynamicsGases;
 import net.minecraft.core.Holder;
 import net.minecraft.network.chat.Component;
-import net.minecraft.tags.TagKey;
 import net.minecraft.world.item.Item;
 import net.minecraft.world.level.material.Fluid;
 import net.minecraft.world.level.material.Fluids;
@@ -27,23 +25,20 @@ public class Gas {
 	public static final int MINIMUM_FREEZE_TEMP = 260;
 
 	private final Holder<Item> container;
-	private final TagKey<Gas> tag;
 	private final Component description;
 	private final int condensationTemp; // Degrees Kelvin; set to 0 if this gas does not condense
 	@Nullable
 	private final Holder<Fluid> condensedFluid; // set to empty if gas does not condense
 
-	public Gas(Holder<Item> container, @Nullable TagKey<Gas> tag, Component description) {
+	public Gas(Holder<Item> container, Component description) {
 		this.container = container;
-		this.tag = tag;
 		this.description = description;
 		this.condensationTemp = 0;
-		this.condensedFluid = new Holder.Direct(Fluids.EMPTY);
+		this.condensedFluid = new Holder.Direct<>(Fluids.EMPTY);
 	}
 
-	public Gas(Holder<Item> container, @Nullable TagKey<Gas> tag, Component description, int condensationTemp, Holder<Fluid> condensedFluid) {
+	public Gas(Holder<Item> container, Component description, int condensationTemp, Holder<Fluid> condensedFluid) {
 		this.container = container;
-		this.tag = tag;
 		this.description = description;
 		this.condensationTemp = condensationTemp;
 		this.condensedFluid = condensedFluid;
@@ -58,8 +53,8 @@ public Item getContainer() {
 		return container.value();
 	}
 
-	public boolean is(@Nonnull TagKey<Gas> tag) {
-		return this.tag == null ? false : this.tag.equals(tag);
+	public Holder<Gas> getBuiltInRegistry() {
+		return ElectrodynamicsGases.GAS_REGISTRY.wrapAsHolder(this);
 	}
 
 	public boolean isEmpty() {
diff --git a/src/main/java/electrodynamics/api/gas/GasStack.java b/src/main/java/electrodynamics/api/gas/GasStack.java
index 7f956b209..6685f967f 100644
--- a/src/main/java/electrodynamics/api/gas/GasStack.java
+++ b/src/main/java/electrodynamics/api/gas/GasStack.java
@@ -5,13 +5,20 @@
 
 import electrodynamics.registers.ElectrodynamicsGases;
 import net.minecraft.core.Holder;
+import net.minecraft.core.HolderSet;
 import net.minecraft.nbt.CompoundTag;
-import net.minecraft.network.FriendlyByteBuf;
+import net.minecraft.network.RegistryFriendlyByteBuf;
 import net.minecraft.network.codec.ByteBufCodecs;
 import net.minecraft.network.codec.StreamCodec;
 import net.minecraft.resources.ResourceLocation;
+import net.minecraft.tags.TagKey;
+import net.minecraft.util.ExtraCodecs;
+import org.checkerframework.checker.nullness.qual.NonNull;
+import org.jetbrains.annotations.Nullable;
 
 import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Predicate;
 
 /**
  * An implementation of a FluidStack-like object for gases
@@ -20,11 +27,11 @@
  */
 public class GasStack {
 
-    public static final Codec<GasStack> CODEC = RecordCodecBuilder.create(instance ->
+    private static final Codec<GasStack> INTERNAL_CODEC = RecordCodecBuilder.create(instance ->
                     //
                     instance.group(
                             //
-                            ElectrodynamicsGases.GAS_REGISTRY.byNameCodec().fieldOf("gas").forGetter(instance0 -> instance0.gas.value()),
+                            ElectrodynamicsGases.GAS_REGISTRY.holderByNameCodec().fieldOf("gas").forGetter(GasStack::getGasHolder),
                             //
                             Codec.INT.fieldOf("amount").forGetter(instance0 -> instance0.amount),
                             //
@@ -37,47 +44,68 @@ public class GasStack {
 //        
     );
 
-    public static final StreamCodec<FriendlyByteBuf, GasStack> STREAM_CODEC = StreamCodec.composite(
+    public static final Codec<GasStack> CODEC = ExtraCodecs.optionalEmptyMap(INTERNAL_CODEC)
+            .xmap(optional -> optional.orElse(GasStack.EMPTY), stack -> stack.isEmpty() ? Optional.empty() : Optional.of(stack));
 
-            ByteBufCodecs.fromCodec(ElectrodynamicsGases.GAS_REGISTRY.byNameCodec()), GasStack::getGas,
-            ByteBufCodecs.INT, GasStack::getAmount,
-            ByteBufCodecs.INT, GasStack::getTemperature,
-            ByteBufCodecs.INT, GasStack::getPressure,
-            GasStack::new
-    );
+    public static final StreamCodec<RegistryFriendlyByteBuf, GasStack> STREAM_CODEC = new StreamCodec<>() {
+
+        private static final StreamCodec<RegistryFriendlyByteBuf, Holder<Gas>> GAS_STREAM_CODEC = ByteBufCodecs.holderRegistry(ElectrodynamicsGases.GAS_REGISTRY_KEY);
+
+        @Override
+        public GasStack decode(RegistryFriendlyByteBuf buffer) {
+            int amt = buffer.readInt();
+
+            if (amt <= 0) {
+                return GasStack.EMPTY;
+            }
 
-    public static final GasStack EMPTY = new GasStack();
+            return new GasStack(GAS_STREAM_CODEC.decode(buffer), amt, buffer.readInt(), buffer.readInt());
+        }
+
+        @Override
+        public void encode(RegistryFriendlyByteBuf buffer, GasStack value) {
+            if (value.isEmpty()) {
+                buffer.writeInt(0);
+            } else {
+                buffer.writeInt(value.getAmount());
+                GAS_STREAM_CODEC.encode(buffer, value.getGasHolder());
+                buffer.writeInt(value.getTemperature());
+                buffer.writeInt(value.getPressure());
+            }
+        }
+    };
+
+    public static final GasStack EMPTY = new GasStack(null);
 
     public static final int ABSOLUTE_ZERO = 1; // zero technically, but that makes volumes a pain in the ass
     public static final int VACUUM = 1; // zero technically, but that makes volumes a pain in the ass
 
-    private Holder<Gas> gas = ElectrodynamicsGases.EMPTY;
+    private final Gas gas;
     private int amount = 0; // mB
     private int temperature = Gas.ROOM_TEMPERATURE;
     private int pressure = Gas.PRESSURE_AT_SEA_LEVEL; // ATM
 
-    private boolean isEmpty = false;
-
-    private GasStack() {
-        isEmpty = true;
-    }
-
-    public GasStack(Gas gas) {
-        this.gas = Holder.direct(gas);
-        if (gas.isEmpty()) {
-            isEmpty = true;
-        }
+    private GasStack(@Nullable Void unused) {
+        this.gas = null;
     }
 
-    public GasStack(Gas gas, int amount, int temperature, int pressure) {
-        this(gas);
+    public GasStack(@NonNull Gas gas, int amount, int temperature, int pressure) {
+        this.gas = gas;
         this.amount = amount;
         this.temperature = temperature;
         this.pressure = pressure;
     }
 
+    public GasStack(@NonNull Holder<Gas> gas, int amount, int temperature, int pressure) {
+        this(gas.value(), amount, temperature, pressure);
+    }
+
     public Gas getGas() {
-        return gas.value();
+        return gas;
+    }
+
+    public Holder<Gas> getGasHolder() {
+        return getGas().getBuiltInRegistry();
     }
 
     public int getAmount() {
@@ -93,32 +121,21 @@ public int getPressure() {
     }
 
     public GasStack copy() {
-        return new GasStack(gas.value(), amount, temperature, pressure);
+        if (isEmpty()) {
+            return EMPTY;
+        }
+        return new GasStack(gas, amount, temperature, pressure);
     }
 
     public void setAmount(int amount) {
-        if (isEmpty()) {
-            throw new UnsupportedOperationException("An empty Gas Stack cannot be modified");
-        }
         this.amount = amount;
     }
 
     public void shrink(int amount) {
-        if (isEmpty()) {
-            throw new UnsupportedOperationException("An empty Gas Stack cannot be modified");
-        }
         this.amount -= Math.min(Math.abs(amount), this.amount);
-        if (this.amount == 0) {
-            gas = ElectrodynamicsGases.EMPTY;
-            this.amount = 0;
-            isEmpty = true;
-        }
     }
 
     public void grow(int amount) {
-        if (isEmpty()) {
-            throw new UnsupportedOperationException("An empty Gas Stack cannot be modified");
-        }
         this.amount += Math.abs(amount);
     }
 
@@ -145,9 +162,6 @@ public void bringPressureTo(int atm) {
     }
 
     public int getVolumeChangeFromHeating(int deltaTemp) {
-        if (isEmpty()) {
-            throw new UnsupportedOperationException("An empty Gas Stack cannot be modified");
-        }
         if (isAbsoluteZero() && deltaTemp < 0 || temperature + deltaTemp < ABSOLUTE_ZERO) {
             throw new UnsupportedOperationException("The temperature cannot drop below absolute zero");
         }
@@ -159,10 +173,6 @@ public int getVolumeChangeFromHeating(int deltaTemp) {
     }
 
     public int getVolumeChangeFromPressurizing(int atm) {
-        if (isEmpty()) {
-            throw new UnsupportedOperationException("An empty Gas Stack cannot be modified");
-        }
-
         if (isVacuum() || atm < VACUUM) {
             throw new UnsupportedOperationException("You cannot have a pressure less than " + VACUUM);
         }
@@ -173,7 +183,27 @@ public int getVolumeChangeFromPressurizing(int atm) {
     }
 
     public boolean isEmpty() {
-        return this.getGas().isEmpty() || isEmpty;
+        return this == EMPTY || this.gas == ElectrodynamicsGases.EMPTY.value() || this.amount <= 0;
+    }
+
+    public boolean is(TagKey<Gas> tag) {
+        return this.getGas().getBuiltInRegistry().is(tag);
+    }
+
+    public boolean is(Gas fluid) {
+        return this.getGas() == fluid;
+    }
+
+    public boolean is(Predicate<Holder<Gas>> holderPredicate) {
+        return holderPredicate.test(this.getGasHolder());
+    }
+
+    public boolean is(Holder<Gas> holder) {
+        return is(holder.value());
+    }
+
+    public boolean is(HolderSet<Gas> holderSet) {
+        return holderSet.contains(this.getGasHolder());
     }
 
     public boolean isSameGas(GasStack other) {
@@ -201,20 +231,26 @@ public boolean isVacuum() {
     }
 
     public boolean isCondensed() {
-        return temperature <= gas.value().getCondensationTemp();
+        return temperature <= gas.getCondensationTemp();
     }
 
     @Override
     public boolean equals(Object obj) {
         if (obj instanceof GasStack other) {
-            return other.getGas().equals(getGas()) && other.amount == amount && other.temperature == temperature && other.pressure == pressure;
+            boolean empty = isEmpty();
+            boolean otherEmpty = other.isEmpty();
+
+            if ((empty && !otherEmpty) || (!empty && otherEmpty)) {
+                return false;
+            }
+            return (empty && otherEmpty) || other.getGas().equals(getGas()) && other.amount == amount && other.temperature == temperature && other.pressure == pressure;
         }
         return false;
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(gas, amount, temperature, pressure, isEmpty);
+        return Objects.hash(gas, amount, temperature, pressure);
     }
 
     @Override
@@ -224,19 +260,29 @@ public String toString() {
 
     public CompoundTag writeToNbt() {
         CompoundTag tag = new CompoundTag();
-        tag.putString("name", ElectrodynamicsGases.GAS_REGISTRY.getKey(getGas()).toString());
-        tag.putDouble("amount", amount);
-        tag.putDouble("temperature", temperature);
-        tag.putInt("pressure", pressure);
+
+        if (isEmpty()) {
+            tag.putInt("amount", 0);
+        } else {
+            tag.putString("name", ElectrodynamicsGases.GAS_REGISTRY.getKey(getGas()).toString());
+            tag.putInt("amount", amount);
+            tag.putInt("temperature", temperature);
+            tag.putInt("pressure", pressure);
+        }
         return tag;
     }
 
     public static GasStack readFromNbt(CompoundTag tag) {
-        Gas gas = ElectrodynamicsGases.GAS_REGISTRY.get(ResourceLocation.parse(tag.getString("name")));
         int amount = tag.getInt("amount");
-        int temperature = tag.getInt("temperature");
-        int pressure = tag.getInt("pressure");
-        return new GasStack(gas, amount, temperature, pressure);
+
+        if (amount <= 0) {
+            return GasStack.EMPTY;
+        } else {
+            Gas gas = ElectrodynamicsGases.GAS_REGISTRY.get(ResourceLocation.parse(tag.getString("name")));
+            int temperature = tag.getInt("temperature");
+            int pressure = tag.getInt("pressure");
+            return new GasStack(gas, amount, temperature, pressure);
+        }
     }
 
     /**
@@ -266,13 +312,7 @@ public static GasStack equalizePresrsureAndTemperature(GasStack stack1, GasStack
         stack1.heat(deltaT1);
         stack2.heat(deltaT2);
 
-        GasStack stack = new GasStack(stack1.getGas());
-
-        stack.setAmount(stack1.getAmount() + stack2.getAmount());
-        stack.temperature = medianTemperature;
-        stack.pressure = stack1.getPressure();
-
-        return stack;
+        return new GasStack(stack1.getGas(), stack1.getAmount() + stack2.getAmount(), medianTemperature, stack1.getPressure());
 
     }
 
diff --git a/src/main/java/electrodynamics/api/gas/GasTank.java b/src/main/java/electrodynamics/api/gas/GasTank.java
index 1a551fbcc..ba4af6be0 100644
--- a/src/main/java/electrodynamics/api/gas/GasTank.java
+++ b/src/main/java/electrodynamics/api/gas/GasTank.java
@@ -7,7 +7,7 @@
 import electrodynamics.api.capability.types.gas.IGasHandler;
 import electrodynamics.api.gas.utils.IGasTank;
 import net.minecraft.nbt.CompoundTag;
-import net.minecraft.network.FriendlyByteBuf;
+import net.minecraft.network.RegistryFriendlyByteBuf;
 
 public class GasTank implements IGasTank, IGasHandler {
 
@@ -331,7 +331,7 @@ public static GasTank readFromNbt(CompoundTag tag) {
 
 	}
 
-	public void writeToBuffer(FriendlyByteBuf buffer) {
+	public void writeToBuffer(RegistryFriendlyByteBuf buffer) {
 
 		GasStack.STREAM_CODEC.encode(buffer, getGas());
 
@@ -343,7 +343,7 @@ public void writeToBuffer(FriendlyByteBuf buffer) {
 
 	}
 
-	public static GasTank readFromBuffer(FriendlyByteBuf buffer) {
+	public static GasTank readFromBuffer(RegistryFriendlyByteBuf buffer) {
 
 		GasStack stack = GasStack.STREAM_CODEC.decode(buffer);
 
diff --git a/src/main/java/electrodynamics/common/item/gear/armor/types/ItemCombatArmor.java b/src/main/java/electrodynamics/common/item/gear/armor/types/ItemCombatArmor.java
index b93c7f6cb..05ca08372 100644
--- a/src/main/java/electrodynamics/common/item/gear/armor/types/ItemCombatArmor.java
+++ b/src/main/java/electrodynamics/common/item/gear/armor/types/ItemCombatArmor.java
@@ -299,10 +299,10 @@ public Item getDefaultStorageBattery() {
     }
 
     public static Predicate<GasStack> getHelmetGasValidator() {
-        return gas -> gas.getGas().is(ElectrodynamicsTags.Gases.OXYGEN);
+        return gas -> gas.is(ElectrodynamicsTags.Gases.OXYGEN);
     }
     public static Predicate<GasStack> getLeggingsGasValidator() {
-        return gas -> gas.getGas().is(ElectrodynamicsTags.Gases.ARGON);
+        return gas -> gas.is(ElectrodynamicsTags.Gases.ARGON);
     }
 
 
diff --git a/src/main/java/electrodynamics/common/item/gear/armor/types/ItemServoLeggings.java b/src/main/java/electrodynamics/common/item/gear/armor/types/ItemServoLeggings.java
index 86cd62115..18469a4e8 100644
--- a/src/main/java/electrodynamics/common/item/gear/armor/types/ItemServoLeggings.java
+++ b/src/main/java/electrodynamics/common/item/gear/armor/types/ItemServoLeggings.java
@@ -160,7 +160,7 @@ protected static void wearingTick(ItemStack stack, Level world, Player player) {
                         break;
                     case 3:
                         stack.set(ElectrodynamicsDataComponentTypes.SUCESS, false);
-                        if (!stack.set(ElectrodynamicsDataComponentTypes.RESET, false)) {
+                        if (!stack.getOrDefault(ElectrodynamicsDataComponentTypes.RESET, false)) {
                             player.getAttribute(Attributes.STEP_HEIGHT).removeModifier(ElectrodynamicsAttributeModifiers.SERVO_LEGGINGS_STEP);
                         }
                         break;
@@ -169,7 +169,7 @@ protected static void wearingTick(ItemStack stack, Level world, Player player) {
                 }
             } else {
                 stack.set(ElectrodynamicsDataComponentTypes.SUCESS, false);
-                if (!stack.set(ElectrodynamicsDataComponentTypes.RESET, false)) {
+                if (!stack.getOrDefault(ElectrodynamicsDataComponentTypes.RESET, false)) {
                     player.getAttribute(Attributes.STEP_HEIGHT).removeModifier(ElectrodynamicsAttributeModifiers.SERVO_LEGGINGS_STEP);
 
                 }
diff --git a/src/main/java/electrodynamics/common/network/type/GasNetwork.java b/src/main/java/electrodynamics/common/network/type/GasNetwork.java
index 9475fbeb5..b3ec94b30 100644
--- a/src/main/java/electrodynamics/common/network/type/GasNetwork.java
+++ b/src/main/java/electrodynamics/common/network/type/GasNetwork.java
@@ -18,9 +18,7 @@
 import electrodynamics.common.tags.ElectrodynamicsTags;
 import electrodynamics.common.tile.pipelines.gas.TileGasPipePump;
 import electrodynamics.prefab.network.AbstractNetwork;
-import electrodynamics.registers.ElectrodynamicsGases;
 import net.minecraft.core.Direction;
-import net.minecraft.core.Holder;
 import net.minecraft.world.level.block.entity.BlockEntity;
 
 // NOTE to add in pipe heat loss, uncomment commented code
@@ -323,12 +321,12 @@ private Pair<GasStack, Set<TileGasPipePump>> emitToPumpSet(GasStack transfer, Se
 
 	private boolean checkForOverloadAndHandle(GasStack stack, boolean live) {
 
-		if (stack.getPressure() <= maxPressure) {
+		boolean isCorrosive = stack.is(ElectrodynamicsTags.Gases.IS_CORROSIVE);
+
+		if (stack.getPressure() <= maxPressure && !isCorrosive) {
 			return false;
 		}
 
-		boolean isCorrosive = ElectrodynamicsGases.GAS_REGISTRY.getTag(ElectrodynamicsTags.Gases.IS_CORROSIVE).get().contains(new Holder.Direct<>(stack.getGas()));
-
 		boolean exploded = false;
 		HashSet<SubtypeGasPipe> overloadedPipes = new HashSet<>();
 
@@ -342,7 +340,7 @@ private boolean checkForOverloadAndHandle(GasStack stack, boolean live) {
 
 		}
 		for (SubtypeGasPipe pipe : overloadedPipes) {
-			for (IGasPipe gasPipe : conductorTypeMap.get(pipe)) {
+			for (IGasPipe gasPipe : conductorTypeMap.getOrDefault(pipe, new HashSet<>())) {
 				if (live) {
 					gasPipe.destroyViolently();
 				}
diff --git a/src/main/java/electrodynamics/common/recipe/recipeutils/GasIngredient.java b/src/main/java/electrodynamics/common/recipe/recipeutils/GasIngredient.java
index 4b681b82a..789cf345a 100644
--- a/src/main/java/electrodynamics/common/recipe/recipeutils/GasIngredient.java
+++ b/src/main/java/electrodynamics/common/recipe/recipeutils/GasIngredient.java
@@ -47,7 +47,7 @@ public class GasIngredient implements Predicate<GasStack>, ICustomIngredient {
             Codec.INT.fieldOf("pressure").forGetter(instance0 -> instance0.pressure)
 
     //
-    ).apply(instance, (gas, amount, temp, pressure) -> new GasIngredient(gas, amount, temp, pressure))
+    ).apply(instance, GasIngredient::new)
     //
 
     );
@@ -66,7 +66,7 @@ public class GasIngredient implements Predicate<GasStack>, ICustomIngredient {
             Codec.INT.fieldOf("pressure").forGetter(instance0 -> instance0.pressure)
 
     //
-    ).apply(instance, (gas, amount, temp, pressure) -> new GasIngredient(gas, amount, temp, pressure))
+    ).apply(instance, GasIngredient::new)
     //
 
     );
diff --git a/src/main/java/electrodynamics/common/tile/pipelines/gas/GenericTileGasPipe.java b/src/main/java/electrodynamics/common/tile/pipelines/gas/GenericTileGasPipe.java
index cf856838d..fba559461 100644
--- a/src/main/java/electrodynamics/common/tile/pipelines/gas/GenericTileGasPipe.java
+++ b/src/main/java/electrodynamics/common/tile/pipelines/gas/GenericTileGasPipe.java
@@ -73,7 +73,7 @@ public GasStack getGasInTank(int tank) {
 
 				@Override
 				public int fill(GasStack gas, GasAction action) {
-					if (action == GasAction.SIMULATE || getNetwork() == null) {
+					if (action == GasAction.SIMULATE || getNetwork() == null || gas.isEmpty()) {
 						return 0;
 					}
 					return gasNetwork.emit(gas, Lists.newArrayList(level.getBlockEntity(worldPos.relative(dir))), action == GasAction.SIMULATE).getAmount();
diff --git a/src/main/java/electrodynamics/common/tile/pipelines/gas/TileGasPipe.java b/src/main/java/electrodynamics/common/tile/pipelines/gas/TileGasPipe.java
index 90cc60a9a..b481ebd69 100644
--- a/src/main/java/electrodynamics/common/tile/pipelines/gas/TileGasPipe.java
+++ b/src/main/java/electrodynamics/common/tile/pipelines/gas/TileGasPipe.java
@@ -7,7 +7,8 @@
 import electrodynamics.registers.ElectrodynamicsTiles;
 import net.minecraft.core.BlockPos;
 import net.minecraft.nbt.CompoundTag;
-import net.minecraft.world.level.Level.ExplosionInteraction;
+import net.minecraft.sounds.SoundEvents;
+import net.minecraft.sounds.SoundSource;
 import net.minecraft.world.level.block.state.BlockState;
 
 public class TileGasPipe extends GenericTileGasPipe {
@@ -31,7 +32,8 @@ public void destroyViolently() {
 		if (level.isClientSide) {
 			return;
 		}
-		level.explode(null, getBlockPos().getX(), getBlockPos().getY(), getBlockPos().getZ(), 2.0F, ExplosionInteraction.BLOCK);
+		level.playSound(null, getBlockPos(), SoundEvents.GENERIC_EXPLODE.value(), SoundSource.BLOCKS, 1.0F, 1.0F);
+		level.destroyBlock(getBlockPos(), false);
 	}
 
 	@Override
diff --git a/src/main/java/electrodynamics/compatibility/jei/ElectrodynamicsJEIPlugin.java b/src/main/java/electrodynamics/compatibility/jei/ElectrodynamicsJEIPlugin.java
index 998196eed..f82cc618e 100644
--- a/src/main/java/electrodynamics/compatibility/jei/ElectrodynamicsJEIPlugin.java
+++ b/src/main/java/electrodynamics/compatibility/jei/ElectrodynamicsJEIPlugin.java
@@ -6,6 +6,7 @@
 
 import electrodynamics.api.electricity.formatting.ChatFormatter;
 import electrodynamics.api.electricity.formatting.DisplayUnit;
+import electrodynamics.api.gas.Gas;
 import electrodynamics.api.gas.GasStack;
 import electrodynamics.client.guidebook.ScreenGuidebook;
 import electrodynamics.client.screen.tile.*;
@@ -43,17 +44,14 @@
 import electrodynamics.prefab.utilities.ElectroTextUtils;
 import electrodynamics.prefab.utilities.object.CombustionFuelSource;
 import electrodynamics.registers.ElectrodynamicsBlocks;
+import electrodynamics.registers.ElectrodynamicsFluids;
+import electrodynamics.registers.ElectrodynamicsGases;
 import mezz.jei.api.IModPlugin;
 import mezz.jei.api.JeiPlugin;
 import mezz.jei.api.constants.VanillaTypes;
 import mezz.jei.api.helpers.IGuiHelper;
 import mezz.jei.api.neoforge.NeoForgeTypes;
-import mezz.jei.api.registration.IAdvancedRegistration;
-import mezz.jei.api.registration.IGuiHandlerRegistration;
-import mezz.jei.api.registration.IModIngredientRegistration;
-import mezz.jei.api.registration.IRecipeCatalystRegistration;
-import mezz.jei.api.registration.IRecipeCategoryRegistration;
-import mezz.jei.api.registration.IRecipeRegistration;
+import mezz.jei.api.registration.*;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.multiplayer.ClientLevel;
 import net.minecraft.resources.ResourceLocation;
@@ -61,7 +59,9 @@
 import net.minecraft.world.item.ItemStack;
 import net.minecraft.world.item.crafting.RecipeManager;
 import net.minecraft.world.item.crafting.RecipeType;
+import net.minecraft.world.level.material.Fluid;
 import net.neoforged.neoforge.fluids.FluidStack;
+import net.neoforged.neoforge.registries.DeferredHolder;
 import org.jetbrains.annotations.NotNull;
 
 @JeiPlugin
@@ -110,7 +110,9 @@ public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) {
         registration.addRecipeCatalyst(ReinforcedAlloyerRecipeCategory.INPUT_MACHINE, ReinforcedAlloyerRecipeCategory.RECIPE_TYPE);
         registration.addRecipeCatalyst(ElectrolyticSeparatorRecipeCategory.INPUT_MACHINE, ElectrolyticSeparatorRecipeCategory.RECIPE_TYPE);
         registration.addRecipeCatalyst(CondensingGasRecipeCategory.INPUT_MACHINE, CondensingGasRecipeCategory.RECIPE_TYPE);
+        registration.addRecipeCatalyst(new ItemStack(ElectrodynamicsBlocks.BLOCK_ADVANCED_THERMOELECTRICMANIPULATOR.get()), CondensingGasRecipeCategory.RECIPE_TYPE);
         registration.addRecipeCatalyst(EvaporatingFluidRecipeCategory.INPUT_MACHINE, EvaporatingFluidRecipeCategory.RECIPE_TYPE);
+        registration.addRecipeCatalyst(new ItemStack(ElectrodynamicsBlocks.BLOCK_ADVANCED_THERMOELECTRICMANIPULATOR.get()), EvaporatingFluidRecipeCategory.RECIPE_TYPE);
         registration.addRecipeCatalyst(ChemicalReactorRecipeCategory.INPUT_MACHINE, ChemicalReactorRecipeCategory.RECIPE_TYPE);
         registration.addRecipeCatalyst(GasCollectorRecipeCategory.INPUT_MACHINE, GasCollectorRecipeCategory.RECIPE_TYPE);
         registration.addRecipeCatalyst(ElectrolosisChamberRecipeCategory.INPUT_MACHINE, ElectrolosisChamberRecipeCategory.RECIPE_TYPE);
@@ -273,4 +275,23 @@ public void registerAdvanced(IAdvancedRegistration registration) {
 
     }
 
+    @Override
+    public void registerExtraIngredients(IExtraIngredientRegistration registration) {
+        List<FluidStack> fluids = new ArrayList<>();
+        for (DeferredHolder<Fluid, ? extends Fluid> fluid : ElectrodynamicsFluids.FLUIDS.getEntries()) {
+            fluids.add(new FluidStack(fluid.get(), 1000));
+        }
+        registration.addExtraIngredients(NeoForgeTypes.FLUID_STACK, fluids);
+
+        List<GasStack> gases = new ArrayList<>();
+        for(DeferredHolder<Gas, ? extends Gas> gas : ElectrodynamicsGases.GASES.getEntries()) {
+            if(gas.get() == ElectrodynamicsGases.EMPTY.value()) {
+                continue;
+            }
+
+            gases.add(new GasStack(gas.get(), 1000, Gas.ROOM_TEMPERATURE, Gas.PRESSURE_AT_SEA_LEVEL));
+        }
+        registration.addExtraIngredients(ElectrodynamicsJeiTypes.GAS_STACK, gases);
+    }
+
 }
diff --git a/src/main/java/electrodynamics/compatibility/jei/recipecategories/utils/psuedorecipes/ElectrodynamicsPsuedoRecipes.java b/src/main/java/electrodynamics/compatibility/jei/recipecategories/utils/psuedorecipes/ElectrodynamicsPsuedoRecipes.java
index d5af915ee..ccca8e06b 100644
--- a/src/main/java/electrodynamics/compatibility/jei/recipecategories/utils/psuedorecipes/ElectrodynamicsPsuedoRecipes.java
+++ b/src/main/java/electrodynamics/compatibility/jei/recipecategories/utils/psuedorecipes/ElectrodynamicsPsuedoRecipes.java
@@ -30,6 +30,9 @@ public class ElectrodynamicsPsuedoRecipes {
 
 	public static void initRecipes() {
 
+		EVAPORATION_RECIPES.clear();
+		CONDENSATION_RECIPES.clear();
+
 		for (Gas gas : ElectrodynamicsGases.GAS_REGISTRY.stream().toList()) {
 
 			if (gas.isEmpty()) {
diff --git a/src/main/java/electrodynamics/compatibility/jei/utils/ingredients/IngredientRendererGasStack.java b/src/main/java/electrodynamics/compatibility/jei/utils/ingredients/IngredientRendererGasStack.java
index 8ec00fa9e..31941bff6 100644
--- a/src/main/java/electrodynamics/compatibility/jei/utils/ingredients/IngredientRendererGasStack.java
+++ b/src/main/java/electrodynamics/compatibility/jei/utils/ingredients/IngredientRendererGasStack.java
@@ -8,6 +8,7 @@
 import electrodynamics.api.electricity.formatting.ChatFormatter;
 import electrodynamics.api.electricity.formatting.DisplayUnit;
 import electrodynamics.api.gas.GasStack;
+import electrodynamics.client.ClientRegister;
 import electrodynamics.compatibility.jei.utils.gui.types.gasgauge.IGasGaugeTexture;
 import electrodynamics.prefab.screen.component.types.gauges.ScreenComponentGasGauge;
 import mezz.jei.api.ingredients.IIngredientRenderer;
@@ -22,11 +23,12 @@ public class IngredientRendererGasStack implements IIngredientRenderer<GasStack>
 
 		@Override
 		public void render(GuiGraphics graphics, GasStack ingredient) {
+			graphics.blit(0, 0, 0, 16, 16, ClientRegister.getSprite(ClientRegister.TEXTURE_GAS));
 		}
 
 		@Override
 		public List<Component> getTooltip(GasStack ingredient, TooltipFlag tooltipFlag) {
-			return new ArrayList<>();
+			return List.of(ingredient.getGas().getDescription());
 		}
 
 	};
diff --git a/src/main/java/electrodynamics/datagen/server/recipe/types/custom/ElectrodynamicsChemicalReactorRecipes.java b/src/main/java/electrodynamics/datagen/server/recipe/types/custom/ElectrodynamicsChemicalReactorRecipes.java
index 445e3132a..67938f494 100644
--- a/src/main/java/electrodynamics/datagen/server/recipe/types/custom/ElectrodynamicsChemicalReactorRecipes.java
+++ b/src/main/java/electrodynamics/datagen/server/recipe/types/custom/ElectrodynamicsChemicalReactorRecipes.java
@@ -124,7 +124,7 @@ public void addRecipes(RecipeOutput output) {
                     //
                     .addFluidTagInput(FluidTags.WATER, 1000)
                     //
-                    .addFluidBiproduct(new ProbableFluid(new FluidStack(ElectrodynamicsFluids.FLUID_AQUAREGIA.get(), 200), 1))
+                    .addFluidBiproduct(new ProbableFluid(new FluidStack(ElectrodynamicsFluids.FLUID_AQUAREGIA.get(), 50), 1))
                     //
                     .save(output);
         }
diff --git a/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluiditem2fluid/ElectrodynamicsMineralWasherRecipes.java b/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluiditem2fluid/ElectrodynamicsMineralWasherRecipes.java
index 9186102b0..f43ec879a 100644
--- a/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluiditem2fluid/ElectrodynamicsMineralWasherRecipes.java
+++ b/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluiditem2fluid/ElectrodynamicsMineralWasherRecipes.java
@@ -56,7 +56,7 @@ public void addRecipes(RecipeOutput output) {
 
 		for (SubtypeRoyalMineralFluid fluid : SubtypeRoyalMineralFluid.values()) {
 			if (fluid.source != null) {
-				newRecipe(new FluidStack(ElectrodynamicsFluids.FLUIDS_ROYALMINERAL.getValue(fluid), 3000), 0, 200, 400.0, "royalmineral_" + fluid.name(), modID)
+				newRecipe(new FluidStack(ElectrodynamicsFluids.FLUIDS_ROYALMINERAL.getValue(fluid), 4000), 0, 200, 400.0, "royalmineral_" + fluid.name(), modID)
 						//
 						.addItemTagInput(fluid.source, 1)
 						//
diff --git a/src/main/java/electrodynamics/prefab/properties/PropertyTypes.java b/src/main/java/electrodynamics/prefab/properties/PropertyTypes.java
index f0a0ae519..3f38d2787 100644
--- a/src/main/java/electrodynamics/prefab/properties/PropertyTypes.java
+++ b/src/main/java/electrodynamics/prefab/properties/PropertyTypes.java
@@ -284,7 +284,7 @@ public class PropertyTypes {
             //
     );
 
-    public static final PropertyType<GasStack, FriendlyByteBuf> GAS_STACK = new PropertyType<>(
+    public static final PropertyType<GasStack, RegistryFriendlyByteBuf> GAS_STACK = new PropertyType<>(
             //
             ResourceLocation.fromNamespaceAndPath(References.ID, "gasstack"),
             //
diff --git a/src/main/java/electrodynamics/registers/ElectrodynamicsGases.java b/src/main/java/electrodynamics/registers/ElectrodynamicsGases.java
index 35743c971..7920ccd9b 100644
--- a/src/main/java/electrodynamics/registers/ElectrodynamicsGases.java
+++ b/src/main/java/electrodynamics/registers/ElectrodynamicsGases.java
@@ -4,7 +4,6 @@
 
 import electrodynamics.api.References;
 import electrodynamics.api.gas.Gas;
-import electrodynamics.common.tags.ElectrodynamicsTags;
 import electrodynamics.prefab.utilities.ElectroTextUtils;
 import net.minecraft.core.Holder;
 import net.minecraft.core.Registry;
@@ -13,6 +12,7 @@
 import net.minecraft.world.item.Items;
 import net.minecraft.world.level.material.Fluid;
 import net.minecraft.world.level.material.Fluids;
+import net.neoforged.neoforge.registries.DeferredHolder;
 import net.neoforged.neoforge.registries.DeferredRegister;
 
 public class ElectrodynamicsGases {
@@ -24,14 +24,14 @@ public class ElectrodynamicsGases {
     public static final DeferredRegister<Gas> GASES = DeferredRegister.create(GAS_REGISTRY_KEY, References.ID);
     public static final Registry<Gas> GAS_REGISTRY = ElectrodynamicsGases.GASES.makeRegistry(builder -> builder.sync(true));
 
-    public static final Holder<Gas> EMPTY = GASES.register("empty", () -> new Gas(new Holder.Direct<>(Items.AIR), null, ElectroTextUtils.gas("empty")));
-    public static final Holder<Gas> HYDROGEN = GASES.register("hydrogen", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.HYDROGEN, ElectroTextUtils.gas("hydrogen"), 33, ElectrodynamicsFluids.FLUID_HYDROGEN));
-    public static final Holder<Gas> OXYGEN = GASES.register("oxygen", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.OXYGEN, ElectroTextUtils.gas("oxygen"), 90, ElectrodynamicsFluids.FLUID_OXYGEN));
-    public static final Holder<Gas> STEAM = GASES.register("steam", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.STEAM, ElectroTextUtils.gas("steam"), 373, new Holder.Direct<>(Fluids.WATER)));
-    public static final Holder<Gas> NITROGEN = GASES.register("nitrogen", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.NITROGEN, ElectroTextUtils.gas("nitrogen")));
-    public static final Holder<Gas> CARBON_DIOXIDE = GASES.register("carbondioxide", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.CARBON_DIOXIDE, ElectroTextUtils.gas("carbondioxide")));
-    public static final Holder<Gas> ARGON = GASES.register("argon", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.ARGON, ElectroTextUtils.gas("argon")));
-    public static final Holder<Gas> SULFUR_DIOXIDE = GASES.register("sulfurdioxide", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.SULFUR_DIOXIDE, ElectroTextUtils.gas("sulfurdioxide")));
-    public static final Holder<Gas> AMMONIA = GASES.register("ammonia", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectrodynamicsTags.Gases.AMMONIA, ElectroTextUtils.gas("ammonia"), 239, ElectrodynamicsFluids.FLUID_AMMONIA));
+    public static final DeferredHolder<Gas, Gas> EMPTY = GASES.register("empty", () -> new Gas(new Holder.Direct<>(Items.AIR), ElectroTextUtils.gas("empty")));
+    public static final DeferredHolder<Gas, Gas> HYDROGEN = GASES.register("hydrogen", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("hydrogen"), 33, ElectrodynamicsFluids.FLUID_HYDROGEN));
+    public static final DeferredHolder<Gas, Gas> OXYGEN = GASES.register("oxygen", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("oxygen"), 90, ElectrodynamicsFluids.FLUID_OXYGEN));
+    public static final DeferredHolder<Gas, Gas> STEAM = GASES.register("steam", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("steam"), 373, new Holder.Direct<>(Fluids.WATER)));
+    public static final DeferredHolder<Gas, Gas> NITROGEN = GASES.register("nitrogen", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("nitrogen")));
+    public static final DeferredHolder<Gas, Gas> CARBON_DIOXIDE = GASES.register("carbondioxide", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("carbondioxide")));
+    public static final DeferredHolder<Gas, Gas> ARGON = GASES.register("argon", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("argon")));
+    public static final DeferredHolder<Gas, Gas> SULFUR_DIOXIDE = GASES.register("sulfurdioxide", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("sulfurdioxide")));
+    public static final DeferredHolder<Gas, Gas> AMMONIA = GASES.register("ammonia", () -> new Gas(ElectrodynamicsItems.ITEM_PORTABLECYLINDER, ElectroTextUtils.gas("ammonia"), 239, ElectrodynamicsFluids.FLUID_AMMONIA));
 
 }
diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml
index adc5b7e7f..fad297af8 100644
--- a/src/main/resources/META-INF/neoforge.mods.toml
+++ b/src/main/resources/META-INF/neoforge.mods.toml
@@ -18,7 +18,7 @@ displayURL="https://github.com/aurilisdev/Electrodynamics"
 
 logoFile="electrodynamics.png"
 
-credits="Thanks to all contributors. Roi Pasteque, FITFC, Quarkrus, JSBurger, 9thCore."
+credits="Thanks to all contributors. Roi Pasteque, FITFC, Quarkrus, JSBurger, 9thCore, goshante."
 
 authors="${mod_authors}" #optional