diff --git a/src/Jaket/Content/Enemies.cs b/src/Jaket/Content/Enemies.cs
index 16aa03a1..fc86dc18 100644
--- a/src/Jaket/Content/Enemies.cs
+++ b/src/Jaket/Content/Enemies.cs
@@ -132,11 +132,13 @@ public static bool SyncDamage(EnemyIdentifier enemyId, float damage, bool explod
/// Synchronizes the death of the enemy.
public static void SyncDeath(EnemyIdentifier enemyId)
{
- if (LobbyController.Lobby == null || enemyId.dead || !LobbyController.IsOwner) return;
+ if (LobbyController.Lobby == null || enemyId.dead) return;
if (enemyId.TryGetComponent(out var enemy))
{
- Networking.Send(PacketType.KillEntity, w => w.Id(enemy.Id), size: 8);
+ if (LobbyController.IsOwner)
+ Networking.Send(PacketType.KillEntity, w => w.Id(enemy.Id), (data, size) => Events.Post2(() => Networking.Redirect(data, size)), 8);
+
Tools.Destroy(enemy);
}
}
diff --git a/src/Jaket/Net/Endpoints/Client.cs b/src/Jaket/Net/Endpoints/Client.cs
index 077a0ae7..9cf31e2f 100644
--- a/src/Jaket/Net/Endpoints/Client.cs
+++ b/src/Jaket/Net/Endpoints/Client.cs
@@ -26,8 +26,7 @@ public override void Load()
// after respawn, Leviathan or hand may be absent, so it must be returned if possible
// sometimes players disappear for some unknown reason, and sometimes I destroy them myself
- if (entities[id] == null && (type == EntityType.Hand || type == EntityType.Leviathan || type == EntityType.Minotaur_Chase || type == EntityType.Player))
- entities[id] = Entities.Get(id, type);
+ if (entities[id] == null) entities[id] = Entities.Get(id, type);
entities[id]?.Read(r);
});