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

MeteorSwarm
Long Handed Inserter
Long Handed Inserter
Posts: 50
Joined: Thu Sep 25, 2025 10:49 pm
Contact:

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

Post 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
Attachments
Incorrect application of mix prevention
Incorrect application of mix prevention
06-23-2026, 18-53-36.png (3.37 MiB) Viewed 2167 times
darkszero
Burner Inserter
Burner Inserter
Posts: 17
Joined: Wed Jul 19, 2017 3:30 am
Contact:

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

Post 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 2011 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
darkszero
Burner Inserter
Burner Inserter
Posts: 17
Joined: Wed Jul 19, 2017 3:30 am
Contact:

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

Post 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 1989 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 1989 times
So this seems somewhat different from Muluna's issue.
MeteorSwarm
Long Handed Inserter
Long Handed Inserter
Posts: 50
Joined: Thu Sep 25, 2025 10:49 pm
Contact:

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

Post 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 1649 times
User avatar
raiguard
Factorio Staff
Factorio Staff
Posts: 829
Joined: Wed Dec 13, 2017 8:29 pm
Contact:

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

Post 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.
Don't forget, you're here forever.
User avatar
Thremtopod
Long Handed Inserter
Long Handed Inserter
Posts: 56
Joined: Wed Nov 06, 2024 8:52 pm
Contact:

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

Post 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.
Attachments
aps 2.1.zip
(10.22 MiB) Downloaded 5 times
Post Reply

Return to “Assigned”