SFM can transfer a fluid that is not included in an INPUT/OUTPUT whitelist, and is explicitly excluded with EXCEPT, when the source IFluidHandler uses dynamic tank indices.
This was reproduced with a Tinkers' Construct smeltery on Minecraft 1.19.2 using SFM 4.19.0.
The issue appears to be caused by SFM caching multiple LimitedInputSlot objects before moving resources. Tinkers' Construct stores smeltery fluids in a dynamic List.When one fluid is completely drained, its list entry is removed and later tank indices shift.
A cached input slot may therefore still contain the original matching FluidStack, while its cached numeric tank index now points to a different fluid.
SFM can transfer a fluid that is not included in an INPUT/OUTPUT whitelist, and is explicitly excluded with EXCEPT, when the source IFluidHandler uses dynamic tank indices.
This was reproduced with a Tinkers' Construct smeltery on Minecraft 1.19.2 using SFM 4.19.0.
The issue appears to be caused by SFM caching multiple LimitedInputSlot objects before moving resources. Tinkers' Construct stores smeltery fluids in a dynamic List.When one fluid is completely drained, its list entry is removed and later tank indices shift.
A cached input slot may therefore still contain the original matching FluidStack, while its cached numeric tank index now points to a different fluid.