diff --git a/EXILED/Exiled.Events/Events.cs b/EXILED/Exiled.Events/Events.cs
index 103ba58829..79ee8b0c4d 100644
--- a/EXILED/Exiled.Events/Events.cs
+++ b/EXILED/Exiled.Events/Events.cs
@@ -73,6 +73,7 @@ public override void OnEnabled()
Handlers.Map.ChangedIntoGrenade += Handlers.Internal.ExplodingGrenade.OnChangedIntoGrenade;
CharacterClassManager.OnRoundStarted += Handlers.Server.OnRoundStarted;
+ RoleAssigner.OnPlayersSpawned += Handlers.Server.OnAllPlayersSpawned;
WaveManager.OnWaveSpawned += Handlers.Server.OnRespawnedTeam;
InventorySystem.InventoryExtensions.OnItemAdded += Handlers.Player.OnItemAdded;
InventorySystem.InventoryExtensions.OnItemRemoved += Handlers.Player.OnItemRemoved;
@@ -113,6 +114,7 @@ public override void OnDisabled()
InventorySystem.InventoryExtensions.OnItemAdded -= Handlers.Player.OnItemAdded;
InventorySystem.InventoryExtensions.OnItemRemoved -= Handlers.Player.OnItemRemoved;
+ RoleAssigner.OnPlayersSpawned -= Handlers.Server.OnAllPlayersSpawned;
WaveManager.OnWaveSpawned -= Handlers.Server.OnRespawnedTeam;
RagdollManager.OnRagdollSpawned -= Handlers.Internal.RagdollList.OnSpawnedRagdoll;
RagdollManager.OnRagdollRemoved -= Handlers.Internal.RagdollList.OnRemovedRagdoll;
@@ -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/Server.cs b/EXILED/Exiled.Events/Handlers/Server.cs
index 7ddffb003a..80453625bb 100644
--- a/EXILED/Exiled.Events/Handlers/Server.cs
+++ b/EXILED/Exiled.Events/Handlers/Server.cs
@@ -32,6 +32,11 @@ public static class Server
///
public static Event RoundStarted { get; set; } = new();
+ ///
+ /// Invoked after all players have spawned at the start of a new round.
+ ///
+ public static Event AllPlayersSpawned { get; set; } = new();
+
///
/// Invoked before ending a round.
///
@@ -137,6 +142,11 @@ public static class Server
///
public static void OnRoundStarted() => RoundStarted.InvokeSafely();
+ ///
+ /// Called after all players have spawned at the start of a new round.
+ ///
+ public static void OnAllPlayersSpawned() => AllPlayersSpawned.InvokeSafely();
+
///
/// Called before ending a round.
///
@@ -245,4 +255,4 @@ public static class Server
/// The instance.
public static void OnCompletingObjective(CompletingObjectiveEventArgs ev) => CompletingObjective.InvokeSafely(ev);
}
-}
\ No newline at end of file
+}