diff --git a/MiraAPI/Events/Vanilla/Gameplay/IntroRoleRevealEvent.cs b/MiraAPI/Events/Vanilla/Gameplay/IntroRoleRevealEvent.cs
new file mode 100644
index 0000000..809ce11
--- /dev/null
+++ b/MiraAPI/Events/Vanilla/Gameplay/IntroRoleRevealEvent.cs
@@ -0,0 +1,21 @@
+namespace MiraAPI.Events.Vanilla.Gameplay;
+
+///
+/// The event that is invoked when the player's role is shown on the intro cutscene. Non cancelable.
+///
+public class IntroRoleRevealEvent : MiraEvent
+{
+ ///
+ /// Gets the instance of the IntroCutscene.
+ ///
+ public IntroCutscene IntroCutscene { get; }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The intro cutscene.
+ public IntroRoleRevealEvent(IntroCutscene introCutscene)
+ {
+ IntroCutscene = introCutscene;
+ }
+}
diff --git a/MiraAPI/Patches/IntroCutscenePatches.cs b/MiraAPI/Patches/IntroCutscenePatches.cs
index af7ce8c..41217e6 100644
--- a/MiraAPI/Patches/IntroCutscenePatches.cs
+++ b/MiraAPI/Patches/IntroCutscenePatches.cs
@@ -29,6 +29,16 @@ public static class IntroCutscenePatches
MiraEventManager.InvokeEvent(@event);
}
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(IntroCutscene._ShowRole_d__41), nameof(IntroCutscene._ShowRole_d__41.MoveNext))]
+ [HarmonyPriority(Priority.Last)]
+ public static void ShowRolePatch(IntroCutscene._ShowRole_d__41 __instance)
+ {
+ var realInstance = __instance.__4__this;
+ var @event = new IntroRoleRevealEvent(realInstance);
+ MiraEventManager.InvokeEvent(@event);
+ }
+
[HarmonyPrefix]
[HarmonyPatch(nameof(IntroCutscene.BeginImpostor))]
[HarmonyPatch(nameof(IntroCutscene.BeginCrewmate))]