Extreme Reactors

Extreme Reactors

75M Downloads

I also tried to make Mekanism Coolant and Vapor/Steam compatible within ATM10

Taracraft opened this issue · 0 comments

commented

[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

  1. Launch Minecraft with All the Mods 10 (with Mekanism and Extreme Reactors enabled)
  2. Produce Liquid Sodium (e.g. via solar or chemical processes)
  3. Try to transport it using pipes or pumps → does not flow
  4. Attempt to register Sodium as Coolant and Superheated Sodium as Vapor via KubeJS scripts
  5. Check tags via debug → fluids appear registered but only show minecraft:barrier in tag contents
  6. 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:barrier despite 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.