diff --git a/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java b/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java index 210f931a..dc24a39c 100644 --- a/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java +++ b/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java @@ -84,8 +84,12 @@ public class CommonDeviceBusController implements DeviceBusController { @Override public void scheduleBusScan() { - scanDelay = 0; // scan as soon as possible - state = BusState.SCAN_PENDING; + // For multiple controllers, avoid ping-ponging immediate scans when controllers + // detect each other during their scans. + if (state != BusState.MULTIPLE_CONTROLLERS) { + scanDelay = 0; // scan as soon as possible + state = BusState.SCAN_PENDING; + } } @Override