diff --git a/src/main/java/mekanism/api/transmitters/TransmitterNetworkRegistry.java b/src/main/java/mekanism/api/transmitters/TransmitterNetworkRegistry.java
index 7a43930aa..0f9c1c5fb 100644
--- a/src/main/java/mekanism/api/transmitters/TransmitterNetworkRegistry.java
+++ b/src/main/java/mekanism/api/transmitters/TransmitterNetworkRegistry.java
@@ -115,7 +115,7 @@ public class TransmitterNetworkRegistry
for(IGridTransmitter invalid : invalidTransmitters)
{
- if(!invalid.isOrphan())
+ if(!(invalid.isOrphan() && invalid.isValid()))
{
DynamicNetwork n = invalid.getTransmitterNetwork();
@@ -163,7 +163,7 @@ public class TransmitterNetworkRegistry
case 0:
if(MekanismAPI.debug)
{
- logger.info("No networks found. Creating new network");
+ logger.info("No networks found. Creating new network for " + finder.connectedTransmitters.size() + " transmitters");
}
network = startOrphan.createEmptyNetwork();
@@ -172,7 +172,7 @@ public class TransmitterNetworkRegistry
case 1:
if(MekanismAPI.debug)
{
- logger.info("Using single found network");
+ logger.info("Adding " + finder.connectedTransmitters.size() + " transmitters to single found network");
}
network = finder.networksFound.iterator().next();
@@ -181,7 +181,7 @@ public class TransmitterNetworkRegistry
default:
if(MekanismAPI.debug)
{
- logger.info("Merging " + finder.networksFound.size() + " networks");
+ logger.info("Merging " + finder.networksFound.size() + " networks with " + finder.connectedTransmitters.size() + " new transmitters");
}
network = startOrphan.mergeNetworks(finder.networksFound);
diff --git a/src/main/java/mekanism/common/multipart/MultipartTransmitter.java b/src/main/java/mekanism/common/multipart/MultipartTransmitter.java
index 03265e0b1..015f21c52 100644
--- a/src/main/java/mekanism/common/multipart/MultipartTransmitter.java
+++ b/src/main/java/mekanism/common/multipart/MultipartTransmitter.java
@@ -74,7 +74,7 @@ public class MultipartTransmitter> extends Tran
@Override
public boolean isValid()
{
- return !(getPart().tile() == null || getPart().tile().isInvalid()) && coord().exists(world());
+ return getPart().tile() != null && !getPart().tile().isInvalid() && !getPart().unloaded && coord().exists(world());
}
@Override
diff --git a/src/main/java/mekanism/common/multipart/PartTransmitter.java b/src/main/java/mekanism/common/multipart/PartTransmitter.java
index da8498aaf..5772a1375 100644
--- a/src/main/java/mekanism/common/multipart/PartTransmitter.java
+++ b/src/main/java/mekanism/common/multipart/PartTransmitter.java
@@ -13,6 +13,8 @@ public abstract class PartTransmitter> extends
{
public MultipartTransmitter transmitterDelegate;
+ public boolean unloaded = true;
+
public PartTransmitter()
{
transmitterDelegate = new MultipartTransmitter<>(this);
@@ -36,6 +38,8 @@ public abstract class PartTransmitter> extends
else {
MinecraftForge.EVENT_BUS.post(new NetworkClientRequest(tile()));
}
+
+ unloaded = false;
}
public abstract N createNewNetwork();
@@ -46,6 +50,8 @@ public abstract class PartTransmitter> extends
public void onChunkUnload()
{
super.onChunkUnload();
+
+ unloaded = true;
if(!world().isRemote)
{