diff --git a/osu.Game/Online/Multiplayer/IMultiplayerClient.cs b/osu.Game/Online/Multiplayer/IMultiplayerClient.cs
index cfe5af3393..839ec9bd1f 100644
--- a/osu.Game/Online/Multiplayer/IMultiplayerClient.cs
+++ b/osu.Game/Online/Multiplayer/IMultiplayerClient.cs
@@ -63,6 +63,12 @@ namespace osu.Game.Online.Multiplayer
/// The new state of the room.
Task MatchRulesetRoomStateChanged(MatchRulesetRoomState state);
+ ///
+ /// Send a match ruleset specific request.
+ ///
+ /// The event to handle.
+ Task MatchRulesetEvent(MatchRulesetServerEvent e);
+
///
/// Signals that a user in this room changed their beatmap availability state.
///
diff --git a/osu.Game/Online/Multiplayer/MatchRulesetServerEvent.cs b/osu.Game/Online/Multiplayer/MatchRulesetServerEvent.cs
new file mode 100644
index 0000000000..c45615e914
--- /dev/null
+++ b/osu.Game/Online/Multiplayer/MatchRulesetServerEvent.cs
@@ -0,0 +1,17 @@
+// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
+// See the LICENCE file in the repository root for full licence text.
+
+using System;
+using MessagePack;
+
+namespace osu.Game.Online.Multiplayer
+{
+ ///
+ /// An event from the server to allow clients to update gameplay to an expected state.
+ ///
+ [Serializable]
+ [MessagePackObject]
+ public abstract class MatchRulesetServerEvent
+ {
+ }
+}
diff --git a/osu.Game/Online/Multiplayer/MultiplayerClient.cs b/osu.Game/Online/Multiplayer/MultiplayerClient.cs
index 299da2e06e..225d86ed9c 100644
--- a/osu.Game/Online/Multiplayer/MultiplayerClient.cs
+++ b/osu.Game/Online/Multiplayer/MultiplayerClient.cs
@@ -432,6 +432,11 @@ namespace osu.Game.Online.Multiplayer
throw new NotImplementedException();
}
+ public Task MatchRulesetEvent(MatchRulesetServerEvent e)
+ {
+ throw new NotImplementedException();
+ }
+
Task IMultiplayerClient.UserBeatmapAvailabilityChanged(int userId, BeatmapAvailability beatmapAvailability)
{
if (Room == null)