diff --git a/Projects/Server/World/EntityPersistence.cs b/Projects/Server/World/EntityPersistence.cs index bf2f415df..59a9d5e80 100644 --- a/Projects/Server/World/EntityPersistence.cs +++ b/Projects/Server/World/EntityPersistence.cs @@ -200,6 +200,12 @@ namespace Server continue; } + if (entry.Length == 0) + { + t.Delete(); + continue; + } + var buffer = GC.AllocateUninitializedArray(entry.Length); if (br == null) { @@ -310,6 +316,12 @@ namespace Server { var saveBuffer = entity.SaveBuffer; + // If nothing was serialized we expect the object to be deleted on deserialization + if (saveBuffer.Position == 0) + { + return; + } + // Resize to the exact size saveBuffer.Resize((int)saveBuffer.Position);