public Program() { Runtime.UpdateFrequency = UpdateFrequency.Update10; } List containers = new List(); List Rovercontainers = new List(); IMyCargoContainer shipContainerBlock; public void Main(string args) { var connector = GridTerminalSystem.GetBlockWithName("Connector Miner") as IMyShipConnector; var connectorRover = GridTerminalSystem.GetBlockWithName("Connector Rover") as IMyShipConnector; GridTerminalSystem.SearchBlocksOfName("[RoverContainer]", Rovercontainers, Rovercontainer => Rovercontainer is IMyCargoContainer); Echo("Rovercontainers count " + Rovercontainers.Count); if(connector.Status == MyShipConnectorStatus.Connected) { try { shipContainerBlock = GridTerminalSystem.GetBlockWithName("MinerContainer") as IMyCargoContainer; IMyInventory shipContainer = shipContainerBlock.GetInventory(0); TransferToContainers(shipContainer,Rovercontainers); } catch (Exception e) { // Dump the exception content to the Echo("Elements disconnected mid check"); } } if(connectorRover.Status == MyShipConnectorStatus.Connected) { try { GridTerminalSystem.SearchBlocksOfName("[Base]", containers, container => container is IMyCargoContainer); Echo("Test"); TransferToContainers(Rovercontainers,containers); } catch (Exception e) { // Dump the exception content to the Echo("Elements disconnected mid check"); } } } void TransferToContainers(IMyInventory from, List ToContainers) { foreach (var container in ToContainers) { IMyInventory containerInv = container.GetInventory(0); for (int i = 0; i < from.ItemCount; i++) { from.TransferItemTo(containerInv,i); } } } void TransferToContainers(List fromContainers, List ToContainers) { foreach (var fromContainer in fromContainers){ IMyInventory fromContainerInventory = fromContainer.GetInventory(0); foreach (var container in ToContainers){ IMyInventory containerInv = container.GetInventory(0); for (int i = 0; i < fromContainerInventory.ItemCount; i++) { fromContainerInventory.TransferItemTo(containerInv,i); } } } }