Page 1 of 1

[raiguard][2.1.7] Fluid mixing prevention breaks existing fluidboxes from 2.0 mods (Example code provided)

Posted: Wed Jun 24, 2026 2:02 am
by MeteorSwarm
Nothing in the documentation or changelog suggests that it's necessary to change fluidbox code to accommodate the new fluid mixing prevention system described in FFF 442. This is why I think the following behavior is a bug. The newest stable version of Muluna for 2.0.X uses fluidbox code in the greenhouse and fluidbox indices in greenhouse recipes identical to the following: This code works in 2.0.X, but in 2.1.7, connecting carbon dioxide pipes to carbon dioxide input results in a "no fluid mixing" warning.

Recipe

Code: Select all

{
        type = "recipe",
        name = "muluna-tree-growth-greenhouse",
        enabled = false,
        categories = {"muluna-greenhouse"},
        icons = dual_icon("muluna-sapling","carbon-dioxide"),
        ingredients = {
            {type = "item",name = "tree-seed", amount=10}, --Reminder: 1 tree seed = 2 wood
            {type = "fluid",name = "carbon-dioxide", amount=10000,fluidbox_index = 1},
            {type = "fluid",name = "water", amount=500,fluidbox_index = 2},
        },
        results = {
            {type = "item",name = "muluna-sapling", amount=10},
            {type = "fluid",name = "oxygen", amount=10000,ignored_by_productivity=10000,fluidbox_index = 1}
        },
        energy_required=5*60,
        subgroup="muluna-forestry",
        max_productivity = 3,
        allow_quality = false,
        auto_recycle=false,
        allow_productivity = true,
        hide_from_signal_gui = false,
        surface_conditions = {
            {
                property = "temperature",
                max = 314
            }
        }
    },
Greenhouse fluidboxes:

Code: Select all

fluid_boxes = {
      {
        volume = 200,
        pipe_covers = pipecoverspictures(),
        pipe_picture = Muluna.pipe_pictures.greenhouse_pipe_pictures(),
        pipe_connections =
        {
          {flow_direction = "input-output", direction = defines.direction.west, position = {-4.0, 3}},
          {flow_direction = "input-output", direction = defines.direction.east, position = {4.0, 3}},
          {flow_direction = "input-output", direction = defines.direction.south, position = {-3.0, 4}},
          {flow_direction = "input-output", direction = defines.direction.north, position = {-3, -4}},
        },
        production_type = "input",
        --filter = "carbon-dioxide"
      },
        {
          volume = 200,
          pipe_covers = pipecoverspictures(),
          pipe_picture = Muluna.pipe_pictures.greenhouse_pipe_pictures(),
          pipe_connections =
          {
            --{flow_direction = "input", direction = defines.direction.west, position = {-5.0, 0}},
            --{flow_direction = "input", direction = defines.direction.east, position = {5.0, 0}},
            --{flow_direction = "input", direction = defines.direction.south, position = {-0.0, 5}},
            {flow_direction = "input", direction = defines.direction.north, position = {-0, -4}},
          },
          production_type = "input",
          --filter = "water"
        },
        
        {
            volume = 200,
            pipe_covers = pipecoverspictures(),
            pipe_picture = Muluna.pipe_pictures.greenhouse_pipe_pictures(),
            --pipe_picture =  require("__space-age__.prototypes.entity.cryogenic-plant-pictures").pipe_picture,
            --always_draw_covers = true, -- fighting against FluidBoxPrototype::always_draw_covers crazy default
            pipe_connections =
            {
              {flow_direction = "input-output", direction = defines.direction.west, position = {-4.0, -3}},
              {flow_direction = "input-output", direction = defines.direction.east, position = {4.0, -3}},
              {flow_direction = "input-output", direction = defines.direction.south, position = {3.0, 4}},
            {flow_direction = "input-output", direction = defines.direction.north, position = {3, -4}},
            },
            production_type = "output",
            --filter = "oxygen"
        },
        {
          volume = 200,
          pipe_covers = pipecoverspictures(),
          pipe_picture = Muluna.pipe_pictures.greenhouse_pipe_pictures(),
          pipe_connections =
          {
            --{flow_direction = "input", direction = defines.direction.west, position = {-5.0, 0}},
            --{flow_direction = "input", direction = defines.direction.east, position = {5.0, 0}},
            --{flow_direction = "input", direction = defines.direction.south, position = {-0.0, 5}},
            {flow_direction = "input", direction = defines.direction.west, position = {-4, 0}},
          },
          production_type = "input",
          --filter = "fluoroketone-cold",
        },
        {
          volume = 200,
          pipe_covers = pipecoverspictures(),
          pipe_picture = Muluna.pipe_pictures.greenhouse_pipe_pictures(),
          pipe_connections =
          {
            --{flow_direction = "input", direction = defines.direction.west, position = {-5.0, 0}},
            --{flow_direction = "input", direction = defines.direction.east, position = {5.0, 0}},
            --{flow_direction = "input", direction = defines.direction.south, position = {-0.0, 5}},
            {flow_direction = "output", direction = defines.direction.east, position = {4, 0}},
          },
          production_type = "output",
          --filter = "fluoroketone-hot",
        },
    },

I don't believe this fluid mixing prevention system was intended to break existing fluidboxes or recipe fluidbox indices.

Muluna repo: https://github.com/nicholasgower/planet ... 6b663729c9

Re: [2.1.7] Fluid mixing prevention breaks existing fluidboxes from 2.0 mods (Example code provided)

Posted: Wed Jun 24, 2026 8:25 pm
by darkszero
This also happens with Moshine Start. There's no fluid indices, but there's an assembling machine with a Fluid Energy source and an fluid box, both passthrough.
06-24-2026, 23-24-57.png
06-24-2026, 23-24-57.png (927.75 KiB) Viewed 2615 times
Fluid boxes part of the entity

Code: Select all

    energy_source = {
        type = "fluid",
        maximum_temperature = 165,
        scale_fluid_usage = true,
        effectivity = 0.35,
        fluid_box = {
            production_type = "input",
            filter = "steam",
            volume = 50,
            pipe_connections = {
                { flow_direction = "input-output", direction = defines.direction.east, position = { 1, 0 } },
                { flow_direction = "input-output", direction = defines.direction.west, position = { -1, 0 } }
            },
            pipe_picture = assembler2pipepictures,
            pipe_covers = pipecoverspictures(),
        }
    },

    fluid_boxes = {
        {
            production_type = "input",
            pipe_picture = assembler2pipepictures,
            pipe_covers = pipecoverspictures(),
            volume = 1000,
            pipe_connections = {
                { flow_direction = "input-output", direction = defines.direction.north, position = { 0, -1 } },
                { flow_direction = "input-output", direction = defines.direction.south, position = { 0, 1 } },
            },
        },
    },
The rest of the code can be found at https://github.com/henriquegemignani/mo ... hammer.lua

Re: [2.1.7] Fluid mixing prevention breaks existing fluidboxes from 2.0 mods (Example code provided)

Posted: Wed Jun 24, 2026 8:42 pm
by darkszero
With the Steam Hammer, removing the fluidboxes does nothing.
06-24-2026, 23-39-42.png
06-24-2026, 23-39-42.png (896.84 KiB) Viewed 2593 times
However just removing the filter for steam in the energy source's fluidbox causes the issue to go away
06-24-2026, 23-40-21.png
06-24-2026, 23-40-21.png (1004.75 KiB) Viewed 2593 times
So this seems somewhat different from Muluna's issue.

Re: [raiguard][2.1.7] Fluid mixing prevention breaks existing fluidboxes from 2.0 mods (Example code provided)

Posted: Sun Jun 28, 2026 5:35 am
by MeteorSwarm

Re: [raiguard][2.1.7] Fluid mixing prevention breaks existing fluidboxes from 2.0 mods (Example code provided)

Posted: Mon Jun 29, 2026 2:12 am
by MeteorSwarm
From the Foundry Discord server, in reference to Lignumis: "i can't seem to power a steam assembler with steam from a boiler"
06-28-2026, 19-11-09.png
06-28-2026, 19-11-09.png (1.43 MiB) Viewed 2253 times

Re: [2.1.7] Fluid mixing prevention breaks existing fluidboxes from 2.0 mods (Example code provided)

Posted: Thu Aug 13, 2026 9:23 pm
by raiguard
darkszero wrote: Wed Jun 24, 2026 8:25 pm This also happens with Moshine Start. There's no fluid indices, but there's an assembling machine with a Fluid Energy source and an fluid box, both passthrough.

06-24-2026, 23-24-57.png

Fluid boxes part of the entity

Code: Select all

    energy_source = {
        type = "fluid",
        maximum_temperature = 165,
        scale_fluid_usage = true,
        effectivity = 0.35,
        fluid_box = {
            production_type = "input",
            filter = "steam",
            volume = 50,
            pipe_connections = {
                { flow_direction = "input-output", direction = defines.direction.east, position = { 1, 0 } },
                { flow_direction = "input-output", direction = defines.direction.west, position = { -1, 0 } }
            },
            pipe_picture = assembler2pipepictures,
            pipe_covers = pipecoverspictures(),
        }
    },

    fluid_boxes = {
        {
            production_type = "input",
            pipe_picture = assembler2pipepictures,
            pipe_covers = pipecoverspictures(),
            volume = 1000,
            pipe_connections = {
                { flow_direction = "input-output", direction = defines.direction.north, position = { 0, -1 } },
                { flow_direction = "input-output", direction = defines.direction.south, position = { 0, 1 } },
            },
        },
    },
The rest of the code can be found at https://github.com/henriquegemignani/mo ... hammer.lua
Please attach a save file with this case - I installed moshine start but I don't have that entity.

Edit: resolved on discord - I needed Moshine Start and to select Moshine in the any planet start settings.

Re: [raiguard][2.1.7] Fluid mixing prevention breaks existing fluidboxes from 2.0 mods (Example code provided)

Posted: Thu Aug 13, 2026 9:38 pm
by Thremtopod
Crucible's pressure forge, which uses steam as its energy source, also has this issue. In the attached save, the pump separating the steam turbines from the pressure forges can't be replaced with pipes.