Cause: The icon collection was done in two separate passes — first matching all [item=...] icons, then appending all [fluid=...] icons. This meant all item icons were always placed before all fluid icons in the list regardless of their actual order in the station name
Pretty easy fix-
In Control.lua
Replace:
-- Find all item and fluid tags
local items = {}
for item in name:gmatch("%[item=([%w%-]+)%]") do
items[#items+1] = item
end
for fluid in name:gmatch("%[fluid=([%w%-]+)%]") do
items[#items+1] = fluid
end
With:
-- Collect item and fluid tags in the order they appear in the name
local items = {}
for tag_type, tag_name in name:gmatch("%[(%a+)=([%w%-_]+)%]") do
if tag_type == "item" or tag_type == "fluid" then
items[#items+1] = tag_name
end
end