diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs
index 609905a312..eb59d090be 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs
@@ -42,7 +42,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
///
/// The players to spectate.
public MultiSpectatorScreen(int[] userIds)
- : base(userIds.AsSpan().Slice(0, Math.Min(16, userIds.Length)).ToArray())
+ : base(userIds.Take(PlayerGrid.MAX_PLAYERS).ToArray())
{
instances = new PlayerArea[UserIds.Length];
}
diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/PlayerGrid.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/PlayerGrid.cs
index 830378f129..6638d47dca 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/PlayerGrid.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/PlayerGrid.cs
@@ -15,6 +15,12 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
///
public partial class PlayerGrid : CompositeDrawable
{
+ ///
+ /// A temporary limitation on the number of players, because only layouts up to 16 players are supported for a single screen.
+ /// Todo: Can be removed in the future with scrolling support + performance improvements.
+ ///
+ public const int MAX_PLAYERS = 16;
+
private const float player_spacing = 5;
///
@@ -58,11 +64,11 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
/// Adds a new cell with content to this grid.
///
/// The content the cell should contain.
- /// If more than 16 cells are added.
+ /// If more than cells are added.
public void Add(Drawable content)
{
- if (cellContainer.Count == 16)
- throw new InvalidOperationException("Only 16 cells are supported.");
+ if (cellContainer.Count == MAX_PLAYERS)
+ throw new InvalidOperationException($"Only {MAX_PLAYERS} cells are supported.");
int index = cellContainer.Count;