I also tried to make Mekanism Coolant and Vapor/Steam compatible within ATM10
Taracraft opened this issue · 0 comments
[Mekanism/ExtremeReactors] Liquid Sodium and Coolant/Vapor compatibility issues (ATM10)
Description
In All the Mods 10, the Mekanism fluid Liquid Sodium is not behaving as expected. It cannot be pumped, moved, or used properly – unlike other fluids in the mod.
Also posted on:
https://www.reddit.com/r/allthemods/comments/1nrula4/atm10_mekanism_liquid_sodium_not_working_as
I also tried multiple approaches to integrate Mekanism Sodium and Superheated Sodium as Coolant/Vapor for Extreme Reactors. The script ran successfully, but the Extreme Reactor Active Fluid Port still does not accept Sodium for creating Superheated Sodium.
Steps to Reproduce
- Launch Minecraft with All the Mods 10 (with Mekanism and Extreme Reactors enabled)
- Produce Liquid Sodium (e.g. via solar or chemical processes)
- Try to transport it using pipes or pumps → does not flow
- Attempt to register Sodium as Coolant and Superheated Sodium as Vapor via KubeJS scripts
- Check tags via debug → fluids appear registered but only show
minecraft:barrierin tag contents - Extreme Reactor Active Fluid Port still does not accept Sodium
Expected Behavior
- Liquid Sodium should:
- flow through pipes
- be transported by pumps
- interact with Mekanism machines and tanks like other fluids
- Mekanism Sodium and Superheated Sodium should work with Extreme Reactors as Coolant and Vapor
Actual Behavior
- Fluid does not move through pipes or pumps
- Machines/tanks do not recognize or accept it
- Extreme Reactor Active Fluid Port does not accept Mekanism Sodium
- Tags show
minecraft:barrierdespite fluids being registered - No obvious error messages in logs
Versions
- Modpack: All the Mods 10 – Version 4.10
- Mekanism: 1.21.1-10.7.15.81
- Minecraft: 1.21.1
- NeoForge: 21.1.203
Attempts / Scripts
fix_sodium_for_extremereactors.js
// kubejs/startup_scripts/fix_sodium_for_extremereactors.js
ServerEvents.tags("fluid", event => {
let fluids = ["mekanism:sodium", "mekanism:superheated_sodium"]
fluids.forEach(f => {
if (Fluid.exists(f)) {
event.add("bigreactors:reactorcoolants", f)
event.add("forge:coolants", f)
event.add("bigreactors:superheatedsodium", f)
console.log("[KubeJS] " + f + " added to Coolant-Tags")
} else {
console.log("[KubeJS] Fluid not found: " + f)
}
})
})
ServerEvents.loaded(event => {
let fluids = Ingredient.of("#bigreactors:reactorcoolants").stacks
console.log("[KubeJS] === Current Coolants ===")
if (fluids.size() === 0) {
console.log("[KubeJS] (empty - no coolants found)")
} else {
fluids.forEach(stack => console.log("[KubeJS] " + stack.id))
}
console.log("[KubeJS] ========================")
})✅ Script executed and confirmed the fluids were added to tags, but debug showed only Barrier.
extremreactors_sodium.js
const FluidsRegistry = Java.loadClass("it.zerono.mods.extremereactors.api.coolant.FluidsRegistry");
const FluidMappingsRegistry = Java.loadClass("it.zerono.mods.extremereactors.api.coolant.FluidMappingsRegistry");
const TransitionsRegistry = Java.loadClass("it.zerono.mods.extremereactors.api.coolant.TransitionsRegistry");
console.info("[KubeJS][PATCH] === Starting Sodium Integration for ExtremeReactors ===");
try {
// Sodium as Coolant
FluidsRegistry.registerCoolant("sodium", 95.0, 4.0, "coolant.bigreactors.sodium", 0xFFFF00);
FluidMappingsRegistry.registerCoolantMapping("sodium", 1, "mekanism:sodium");
FluidMappingsRegistry.registerCoolantMapping("sodium", 1, "mekanism:flowing_sodium");
// Superheated Sodium as Vapor
FluidsRegistry.registerVapor("superheated_sodium", 10.0, "vapor.bigreactors.superheated_sodium", 0xFFAA00);
FluidMappingsRegistry.registerVaporMapping("superheated_sodium", 1, "mekanism:superheated_sodium");
// Transition
TransitionsRegistry.register("sodium", "superheated_sodium");
console.info("[KubeJS][PATCH] Sodium + Superheated Sodium successfully registered");
} catch (err) {
console.error("[KubeJS][PATCH][ERROR] Sodium integration failed: " + err);
}✅ Script executed and confirmed Sodium + Superheated Sodium were registered.
debug_extremereactors.js
ServerEvents.loaded(event => {
console.log("[KubeJS][DEBUG] ===== Starting ExtremeReactors Debug =====")
function checkTag(tagName, fluidsToCheck) {
let stacks = Ingredient.of("#" + tagName).stacks
console.log("[KubeJS][DEBUG] Contents of #" + tagName + ":")
if (stacks.size() == 0) {
console.log(" (empty)")
} else {
stacks.forEach(f => console.log(" " + f))
}
fluidsToCheck.forEach(f => {
if (Ingredient.of(f).test(stacks)) {
console.log(" ✔ " + f + " found in #" + tagName)
} else {
console.log(" ✘ " + f + " NOT found in #" + tagName)
}
})
}
checkTag("bigreactors:reactorcoolants", ["mekanism:sodium"])
checkTag("bigreactors:vapors", ["mekanism:superheated_sodium"])
checkTag("forge:coolants", ["mekanism:sodium"])
console.log("[KubeJS][DEBUG] ===== Debug Finished =====")
})Logs (excerpt)
[INFO] [KubeJS][PATCH] -> Sodium registered as Coolant (mekanism:sodium + flowing)
[INFO] [KubeJS][PATCH] -> Superheated Sodium registered as Vapor
[INFO] [KubeJS][PATCH] -> Transition Sodium -> Superheated Sodium registered
[INFO] [KubeJS][PATCH] === Sodium Integration completed ===
[KubeJS][DEBUG] Contents of #bigreactors:reactorcoolants:
1 minecraft:barrier
✔ mekanism:sodium found in #bigreactors:reactorcoolants
[KubeJS][DEBUG] Contents of #bigreactors:vapors:
1 minecraft:barrier
✔ mekanism:superheated_sodium found in #bigreactors:vapors
[KubeJS][DEBUG] Contents of #forge:coolants:
1 minecraft:barrier
✔ mekanism:sodium found in #forge:coolants
Additional Context
- Scripts run without errors and confirm registration.
- Debug logs detect Sodium and Superheated Sodium in tags, but actual contents only show
minecraft:barrier. - Extreme Reactor Active Fluid Port still does not accept Mekanism Sodium.
- Appears to be either a compatibility issue or API limitation between Mekanism and ExtremeReactors in ATM10.