Modern fuel system electric pumps conflict

Version: 1.5.27.0

Frequency: Consistently

Severity: Blocker

Bug description: The new modern electrical system will not allow an index for CIRCUIT_FUEL_PUMP And so in the Modern fuel system with two electrical pumps I am forced to set both index’s on 1 or they will not appear in the debug window. But no matter how I create junctions and lines you end up with a conflict. See video. Looking forward to a fix in SU4 beta for development of our new product.

Hello @Flysimware

What version of the electrical system are you using? Major=1?
Are you defining the index with Type=CIRCUIT_FUEL_PUMP:x ?

If so, be aware that in later version of the electrical system, the Name attribute is used as the index instead.
This was done to avoid any confusion in the case of ModularSimObject where multiple attachments can define such circuits and have conflicting indexes.

Regards,
Sylvain

Major=1

I have tried to add an index but then as soon as you use index 1 or 2 or 3 the pump will no longer appear in the debug. I found the electrical call from the pump had to have index 1 or also never appear.

Maybe this is my issue. Not sure what you mean by Name attribute and how you would setup separate electrical circuits for separate pumps without an index.

Then this shouldn’t be a problem. This is the version from MSFS 2020, so the old way of defining index should be fine.

Can you show what the cfg lines look like exactly when the issue occurs?

Oh right we are using Version=Latest. Not sure if this is valid. Before that it was Version=2.

[FUEL_SYSTEM]
Version = Latest
fuel_type = 1
; ---- Engine ----
engine.1 = Name:Engine #Index:1
; ---- Tanks (66 total / 64 usable) ----
tank.1 = Name:LeftTank #Title:TT:MENU.FUEL.LEFT_TANK #Capacity:33 #Unusablecapacity:1.0 #Position:-3.6,-3.1,2.9 #Inputonlylines:LeftTankToSelector,SelectorReturnToLeft #Outputonlylines:LeftTankToSelector #Priority:0
tank.2 = Name:RightTank #Title:TT:MENU.FUEL.RIGHT_TANK #Capacity:33 #Unusablecapacity:1.0 #Position:-3.6, 3.1,2.9 #Inputonlylines:RightTankToSelector,SelectorReturnToRight #Outputonlylines:RightTankToSelector #Priority:0
; ---- Single junction does BOTH supply selection and return routing ----
junction.1 = Name:FuelSelector #Title:Selector #Inputonlylines:LeftTankToSelector,RightTankToSelector,EngineToSelectorReturn #Outputonlylines:SelectorToMainValve,SelectorReturnToLeft,SelectorReturnToRight #Option:LeftTankToSelector,SelectorToMainValve,EngineToSelectorReturn,SelectorReturnToLeft #Option:RightTankToSelector,SelectorToMainValve,EngineToSelectorReturn,SelectorReturnToRight
; ---- Valves ----
valve.1 = Name:MainSupplyValve#Title:MainSupplyValve
; ---- Pumps ----
pump.1 = Name:AuxBoostLow #Type:Electric #Index:1 #Pressure:8 #Destinationline:AuxLowToEngPump
pump.2 = Name:AuxBoostHigh #Type:Electric #Index:1 #Pressure:25 #Destinationline:AuxHighToEngPump
pump.3 = Name:EngineDrivenPump #Type:EngineDriven #Index:1 #Pressure:25 #Destinationline:EngPumpToEngine
; ---- Lines (supply forward) ----
line.1 = Name:LeftTankToSelector #Source:LeftTank #Destination:FuelSelector #Fuelflowat1psi:0.1 #Volume:0.24
line.2 = Name:RightTankToSelector #Source:RightTank #Destination:FuelSelector #Fuelflowat1psi:0.1 #Volume:0.24
line.3 = Name:SelectorToMainValve #Source:FuelSelector #Destination:MainSupplyValve #Fuelflowat1psi:0.1 #Volume:0.10
line.4 = Name:MainValveToAuxLow #Source:MainSupplyValve #Destination:AuxBoostLow #Fuelflowat1psi:0.1 #Volume:0.10
line.5 = Name:MainValveToAuxHigh #Source:MainSupplyValve #Destination:AuxBoostHigh #Fuelflowat1psi:0.1 #Volume:0.10
line.6 = Name:AuxHighToEngPump #Source:AuxBoostHigh #Destination:EngineDrivenPump #Fuelflowat1psi:0.1 #Volume:0.05
line.7 = Name:EngPumpToEngine #Source:EngineDrivenPump #Destination:Engine #Fuelflowat1psi:0.1 #Volume:0.05
line.8 = Name:EngineToSelectorReturn #Source:Engine #Destination:FuelSelector #Fuelflowat1psi:0.1 #Volume:0.05
line.9 = Name:SelectorReturnToLeft #Source:FuelSelector #Destination:LeftTank #Fuelflowat1psi:0.1 #Volume:0.05
line.10 = Name:SelectorReturnToRight #Source:FuelSelector #Destination:RightTank #Fuelflowat1psi:0.1 #Volume:0.05
line.11 = Name:AuxLowToEngPump #Source:AuxBoostLow #Destination:EngineDrivenPump #Fuelflowat1psi:0.1 #Volume:0.05
; ---- Return paths (engine → selector → selected tank) ----
; ---- Triggers ----
Trigger.1 = Name:AutoStart Condition:Autostart_Enabled#Condition:Autostart_Enabled#EffectTrue:StartPump.AuxBoostHigh,SetJunction.FuelSelector.1
Trigger.2 = Name:AutoShutDown Condition:Autoshutdown_Enabled#Condition:Autoshutdown_Enabled#EffectTrue:StopPump.AuxBoostHigh,StopPump.AuxBoostLow

I’m sorry I meant the systems.cfg electrical section, where your circuits are defined.
(the fuel one will be useful too so that okay)

The fuel section is big, here is the circuits used. Let me know if you want more.

circuit.1 = Type:CIRCUIT_XML#Name:01_PRI_ALT_FIELD#ConsumerCfg:Cons_24V_5A
circuit.2 = Type:CIRCUIT_XML#Name:02_STBY_ALT_FIELD#ConsumerCfg:Cons_24V_3A
circuit.3 = Type:CIRCUIT_XML#Name:03_PRI_ALT_SENSE#ConsumerCfg:Cons_24V_5A
circuit.4 = Type:CIRCUIT_XML#Name:04_STBY_ALT_SENSE#ConsumerCfg:Cons_24V_3A
circuit.5 = Type:CIRCUIT_STARTER#Name:05_START#ConsumerCfg:Cons_24V_10A
circuit.6 = Type:CIRCUIT_FUEL_PUMP#Name:06_FUEL_BOOST#ConsumerCfg:Cons_24V_15A
circuit.7 = Type:CIRCUIT_XML#Name:07_HYD_PUMP#ConsumerCfg:Cons_24V_35A
circuit.8 = Type:CIRCUIT_XML#Name:08_GEAR_CONTROL#ConsumerCfg:Cons_24V_3A
circuit.9 = Type:CIRCUIT_PFD#Name:09_PFD#ConsumerCfg:Cons_24V_5A
circuit.10 = Type:CIRCUIT_MFD#Name:10_MFD#ConsumerCfg:Cons_24V_3A
circuit.11 = Type:CIRCUIT_XML#Name:11_GEA24#ConsumerCfg:Cons_24V_5A
circuit.12 = Type:CIRCUIT_XML#Name:12_GSU25_1#ConsumerCfg:Cons_24V_3A
circuit.13 = Type:CIRCUIT_XML#Name:13_GSU25_2#ConsumerCfg:Cons_24V_3A
circuit.14 = Type:CIRCUIT_XML#Name:14_DOOR_SEAL_PUMP#ConsumerCfg:Cons_24V_3A
circuit.15 = Type:CIRCUIT_XML#Name:15_GAD29#ConsumerCfg:Cons_24V_3A
circuit.16 = Type:CIRCUIT_FLAP_MOTOR#Name:16_FLAPS#ConsumerCfg:Cons_24V_5A
circuit.17 = Type:CIRCUIT_XML#Name:17_AN21_ANNUNCIATOR#ConsumerCfg:Cons_24V_3A
circuit.18 = Type:CIRCUIT_XML#Name:18_SPEED_BRAKES#ConsumerCfg:Cons_24V_5A
circuit.19 = Type:CIRCUIT_XML#Name:19_ELT#ConsumerCfg:Cons_24V_5A
circuit.20 = Type:CIRCUIT_LIGHT_NAV#Name:20_NAV_LTS#ConsumerCfg:Cons_24V_3A
circuit.21 = Type:CIRCUIT_LIGHT_STROBE#Name:21_STROBE_LTS#ConsumerCfg:Cons_24V_15A
circuit.22 = Type:CIRCUIT_LIGHT_LANDING#Name:22_LDG_LTS#ConsumerCfg:Cons_24V_15A
circuit.23 = Type:CIRCUIT_AVIONICS#Name:23_AVIONICS_RELAY#ConsumerCfg:Cons_24V_3A
circuit.24 = Type:CIRCUIT_PITOT_HEAT#Name:24_PITOT_HEAT#ConsumerCfg:Cons_24V_15A
circuit.25 = Type:CIRCUIT_XML#Name:25_IPS#ConsumerCfg:Cons_24V_3A
circuit.26 = Type:CIRCUIT_AUDIO#Name:26_AUDIO_PANEL#ConsumerCfg:Cons_24V_5A
circuit.27 = Type:CIRCUIT_COM#Name:27_GPS1_NAV_COM1#ConsumerCfg:Cons_24V_5A
circuit.28 = Type:CIRCUIT_COM#Name:28_COMM2#ConsumerCfg:Cons_24V_5A
circuit.29 = Type:CIRCUIT_XML#Name:29_OXYGEN#ConsumerCfg:Cons_24V_3A
circuit.30 = Type:CIRCUIT_XPNDR#Name:30_XPDR#ConsumerCfg:Cons_24V_5A
circuit.31 = Type:CIRCUIT_XML#Name:31_GTS800#ConsumerCfg:Cons_24V_5A
circuit.32 = Type:CIRCUIT_XML#Name:32_ADSB#ConsumerCfg:Cons_24V_3A
circuit.33 = Type:CIRCUIT_XML#Name:33_AOA#ConsumerCfg:Cons_24V_3A
circuit.34 = Type:CIRCUIT_AUTOPILOT#Name:34_AUTOPILOT_CTRL#ConsumerCfg:Cons_24V_3A
circuit.35 = Type:CIRCUIT_XML#Name:35_CO_DETECTOR#ConsumerCfg:Cons_24V_3A
circuit.36 = Type:CIRCUIT_XML#Name:36_ANR_POWER#ConsumerCfg:Cons_24V_5A
circuit.37 = Type:CIRCUIT_PFD#Name:37_PFD_ESS#ConsumerCfg:Cons_24V_5A
circuit.38 = Type:CIRCUIT_XML#Name:38_GEA24_ESS#ConsumerCfg:Cons_24V_3A
circuit.39 = Type:CIRCUIT_XML#Name:39_GSU25_1_ESS#ConsumerCfg:Cons_24V_3A
circuit.40 = Type:CIRCUIT_COM#Name:40_COMM2_ESS#ConsumerCfg:Cons_24V_5A
circuit.41 = Type:CIRCUIT_XML#Name:41_STBY_EFIS#ConsumerCfg:Cons_24V_3A
circuit.42 = Type:CIRCUIT_XML#Name:42_CONVERTER_24_TO_12#ConsumerCfg:Cons_24V_15A
circuit.43 = Type:CIRCUIT_XML#Name:43_TRIM#ConsumerCfg:Cons_12V_7_5A
circuit.44 = Type:CIRCUIT_XML#Name:44_PITOT_HEAT_12V#ConsumerCfg:Cons_12V_15A
circuit.45 = Type:CIRCUIT_LIGHT_PANEL#Name:45_DIMMER_1#ConsumerCfg:Cons_12V_3A
circuit.46 = Type:CIRCUIT_LIGHT_GLARESHIELD#Name:46_DIMMER_2#ConsumerCfg:Cons_12V_7_5A
circuit.47 = Type:CIRCUIT_XML#Name:47_12V_AUX_1#ConsumerCfg:Cons_12V_5A
circuit.48 = Type:CIRCUIT_XML#Name:48_12V_AUX_2#ConsumerCfg:Cons_12V_5A
circuit.49 = Type:CIRCUIT_XML#Name:49_CANOPY_OPEN#ConsumerCfg:Cons_12V_5A
circuit.50 = Type:CIRCUIT_XML#Name:50_DIMMER_HOT#ConsumerCfg:Cons_12V_5A
circuit.51 = Type:CIRCUIT_XML#Name:51_5V_AUX#ConsumerCfg:Cons_12V_3A

Here is what the fuel will look like once done. The return lines were removed until the electric fuel pump issue is resolved.

And this exact config (apart from the fuel system version being changed from 2 to latest) worked in MSFS 2020?

This is a new product. Never made for 2020.

Ah ok.
I’ll need to review this with our systems engineering team and I’ll come back to you.

Regards,
Sylvain

1 Like

Hey @FlyingRaccoon and @Flysimware ,

I was dealing with this issue some months ago. If the circuit type fuel pump is not indexed at all in the electric system things should work. Index will then only be used in the pump section of the fuel system.

It’s broken for major = 2. I too am forced to use no index when I prefer an index so I can have more than one electric pump. And in the fuel system the pump index can only be 1 right now or will not appear.

So conclusion. I am using the Modern Fuel System and the Modern Electrical system and the pump index can only be 1 and the Electric circuit has to have no index or everything fails. So this requires a fix.

I am not sure if it was clear what I wanted to say. I have a bunch of electric pumps in my fuel system and I use the latest fuel system version. You do not need to index the fuel pump circuits even when there is more than one, leave the index part away and just name the circuits individually.

Screenshot 2025-09-11 001505

For what fuel system do you use latest? Legacy or Modern!

There are two issues here.

  1. If I were to include the index for each circuit, then in the fuel pump index it will still only allow me to set index 1 or it will not appear in the debug. And if you have two electric pumps both have to be set to index 1 or again they will not appear. And if you do NOT have at least one CIRCUIT_FUEL_PUMP that has no index no pump will appear not matter what index you call.

  2. And how would the pump know what circuit to use since the fuel pump index is for the CIRCUIT_FUEL_PUMP:? not the circuit.?

    Are you using both modern for fuel and electric? Then you will see the issue.

    Since I am using the Modern Electrical I am forced to use major=2 or it will throw a ton of errors for the fuel system since it Modern. So this combination is where the issue is.

    [FUEL_SYSTEM]
    Version = Latest

    [ELECTRICAL]
    major = 2

Yes I am using both the latest fuel and electrical system.

The index you define in the pump section of the fuel system is not the circuit index.

Just start indexing from 1 to how many pumps you have. The pumps will then use the fuel pump circuits. If you look at my screenshot, although the circuits start at index 3, I have indexed the pumps from 1 to 4. And then pump 1 will be assigned to circuit 3, pump 2 to circuit 4 etc.

1 Like

Now that you have confirmed you’re using both Modern. I will give this a go again. Previously I had done so many variations except one. I never put the CIRCUIT_FUEL_PUMP with no index multiple times. This means the SDK never got updated if this is the current method! So now I am starting to see how the Modern fuel index will grab the first in the list of circuits and sequence from there. Looking forward to this test. Thanks.

Also just realized that the Modern Electric also has no index for CIRCUIT_XML anymore. So this auto index seems to be the new method. The clue was right there the whole time. Thanks for being persistent.

Yes, as far as I have seen and tested none of the circuit types need to be indexed when using them several times. Let me know if it works for you.

Yes it worked. :smiley: Which confirms it auto index’s.

1 Like

Reviewed by core sim engineers, circuit index is indeed auto incremented when the same type is used multiple times.
There is an issue with fuel system pump not allowing to explicitly provide a name as an index, as the hydraulic pump is doing with “Circuit” attribute for example.
This will be addressed.

In the meantime, the suggested way to handle this is to let the sim define the circuit indices, and then configure the pumps based on the indices visible in the electrical debug panel.

Regards,
Sylvain

2 Likes