Hook → Signal Catalog

Signal Catalog

Every key Hook recognises as a Roblox built-in signal. Any key not in this list is treated as a custom event — use Hook.Fire to dispatch it.

Client-only signals warn and no-op if subscribed from a server script. Per-player signals pass (player, ...) — Hook wires them automatically for every current and future player.

Players

KeyArgsContext
"PlayerAdded"player: PlayerBoth
"PlayerRemoving"player: PlayerBoth
"PlayerMembershipChanged"player: PlayerBoth
"CharacterAdded"player: Player, character: ModelBoth · per-player
"CharacterRemoving"player: Player, character: ModelBoth · per-player
"CharacterAppearanceLoaded"player: Player, character: ModelBoth · per-player

RunService

KeyArgsContext
"Heartbeat"dt: numberBoth
"Stepped"time: number, dt: numberBoth
"PostSimulation"dt: numberBoth
"PreAnimation"dt: numberBoth
"PostAnimation"dt: numberBoth
"RenderStepped"dt: numberClient only
"PreRender"dt: numberClient only

UserInputService

KeyArgsContext
"InputBegan"input: InputObject, processed: booleanClient only
"InputChanged"input: InputObject, processed: booleanClient only
"InputEnded"input: InputObject, processed: booleanClient only
"JumpRequest"Client only
"GamepadConnected"gamepad: Enum.UserInputTypeClient only
"GamepadDisconnected"gamepad: Enum.UserInputTypeClient only
"WindowFocused"Client only
"WindowFocusReleased"Client only
"TouchStarted"touch: InputObject, processed: booleanClient only
"TouchMoved"touch: InputObject, processed: booleanClient only
"TouchEnded"touch: InputObject, processed: booleanClient only
"TouchTap"positions: {Vector2}, processed: booleanClient only
"TouchLongPress"positions: {Vector2}, state: Enum.UserInputState, processed: booleanClient only
"TouchSwipe"direction: Enum.SwipeDirection, numberOfTouches: number, processed: booleanClient only
"TouchPinch"positions: {Vector2}, scale: number, velocity: number, state: Enum.UserInputState, processed: booleanClient only
"TouchRotate"positions: {Vector2}, rotation: number, velocity: number, state: Enum.UserInputState, processed: booleanClient only
"DeviceAccelerationChanged"acceleration: InputObjectClient only
"DeviceGravityChanged"gravity: InputObjectClient only
"DeviceRotationChanged"rotation: InputObject, cframe: CFrameClient only
"PointerAction"wheel: number, pan: Vector2, pinch: number, processed: booleanClient only

MarketplaceService

KeyArgsContext
"PromptPurchaseFinished"player: Player, assetId: number, purchased: booleanBoth
"PromptGamePassPurchaseFinished"player: Player, gamePassId: number, purchased: booleanBoth
"PromptBundlePurchaseFinished"player: Player, bundleId: number, purchased: booleanBoth
"PromptSubscriptionPurchaseFinished"player: Player, subscriptionId: string, purchased: booleanBoth

TeleportService

KeyArgsContext
"TeleportInitFailed"player: Player, teleportResult: Enum.TeleportResult, errorMessage: stringBoth
"LocalPlayerArrivedFromTeleport"loadingGui: ScreenGui, dataTable: anyClient only

SocialService

KeyArgsContext
"GameInvitePromptClosed"player: Player, recipientIds: {number}Both
"PromptInviteRequested"player: PlayerBoth

GuiService

KeyArgsContext
"MenuOpened"Client only
"MenuClosed"Client only
"KeyboardVisibilityChanged"visible: booleanClient only

TextChatService

KeyArgsContext
"MessageReceived"message: TextChatMessageBoth
"SendingMessage"message: TextChatMessageBoth

VoiceChatService

KeyArgsContext
"ParticipantsStateChanged"participants: {any}, oldState: any, newState: anyBoth
"PlayerMicActivitySignalChange"player: Player, isActive: booleanBoth

CollectionService — parameterised

Pass the tag name after a colon. Each unique tag gets its own priority queue.

Key patternArgs
"TagAdded:tagName"instance: Instance
"TagRemoved:tagName"instance: Instance
Hook("TagAdded:Enemy",   "normal", function(instance) SetupEnemy(instance) end)
Hook("TagRemoved:Enemy", "normal", function(instance) TeardownEnemy(instance) end)

Game / Lighting

KeyArgsContext
"Close"Both
"DescendantAdded"descendant: InstanceBoth
"DescendantRemoving"descendant: InstanceBoth
"LightingChanged"skyboxChanged: booleanBoth

See also

← Hook  ·  Subscribing | Hook(), Once, Off, Clear  ·  Custom Events | Hook.Fire