diff --git a/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs b/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs
index ba6ecc95f8..a539d89deb 100644
--- a/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs
+++ b/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs
@@ -936,7 +936,7 @@ private void OnInternalChangingRole(ChangingRoleEventArgs ev)
private void OnSpawningRagdoll(SpawningRagdollEventArgs ev)
{
- if (Check(ev.Player))
+ if (Check(ev.Player) && RoleExtensions.GetTeam(Role) != Team.Dead && Role != RoleTypeId.Scp079)
ev.Role = Role;
}
diff --git a/EXILED/Exiled.Events/Events.cs b/EXILED/Exiled.Events/Events.cs
index 103ba58829..80173fa27a 100644
--- a/EXILED/Exiled.Events/Events.cs
+++ b/EXILED/Exiled.Events/Events.cs
@@ -68,6 +68,7 @@ public override void OnEnabled()
Handlers.Server.RestartingRound += Handlers.Internal.Round.OnRestartingRound;
Handlers.Server.RoundStarted += Handlers.Internal.Round.OnRoundStarted;
Handlers.Player.ChangingRole += Handlers.Internal.Round.OnChangingRole;
+ Handlers.Player.SpawningRagdoll += Handlers.Internal.Round.OnSpawningRagdoll;
Handlers.Scp049.ActivatingSense += Handlers.Internal.Round.OnActivatingSense;
Handlers.Player.Verified += Handlers.Internal.Round.OnVerified;
Handlers.Map.ChangedIntoGrenade += Handlers.Internal.ExplodingGrenade.OnChangedIntoGrenade;
@@ -105,6 +106,7 @@ public override void OnDisabled()
Handlers.Server.RestartingRound -= Handlers.Internal.Round.OnRestartingRound;
Handlers.Server.RoundStarted -= Handlers.Internal.Round.OnRoundStarted;
Handlers.Player.ChangingRole -= Handlers.Internal.Round.OnChangingRole;
+ Handlers.Player.SpawningRagdoll -= Handlers.Internal.Round.OnSpawningRagdoll;
Handlers.Scp049.ActivatingSense -= Handlers.Internal.Round.OnActivatingSense;
Handlers.Player.Verified -= Handlers.Internal.Round.OnVerified;
Handlers.Map.ChangedIntoGrenade -= Handlers.Internal.ExplodingGrenade.OnChangedIntoGrenade;
@@ -161,4 +163,4 @@ public void Unpatch()
Log.Debug("All events have been unpatched complete. Goodbye!");
}
}
-}
\ No newline at end of file
+}
diff --git a/EXILED/Exiled.Events/Handlers/Internal/Round.cs b/EXILED/Exiled.Events/Handlers/Internal/Round.cs
index 99212af062..7bda542f7c 100644
--- a/EXILED/Exiled.Events/Handlers/Internal/Round.cs
+++ b/EXILED/Exiled.Events/Handlers/Internal/Round.cs
@@ -82,6 +82,13 @@ public static void OnChangingRole(ChangingRoleEventArgs ev)
ev.Player.Inventory.ServerDropEverything();
}
+ ///
+ public static void OnSpawningRagdoll(SpawningRagdollEventArgs ev)
+ {
+ if (RoleExtensions.GetTeam(ev.Role) == Team.Dead || ev.Role == RoleTypeId.Scp079)
+ ev.IsAllowed = false;
+ }
+
///
public static void OnActivatingSense(ActivatingSenseEventArgs ev)
{