The InputEnded event fires when a user stops interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc). This is useful when tracking when a user releases a keyboard key, mouse button, touchscreen input, etc.
This event can be used along with
UserInputService/InputChanged to track when user input begins, changes, and ends.
This event only fires when the Roblox client window is in focus. For example, inputs will not be captured when the window is minimized.
As this event only fires locally, it can only be used in a
Indicates whether the game engine internally observed this input and acted on it. Generally this refers to UI processing, so if a button was touched or clicked from this input,
The following example demonstrates one of many usage examples of handling user input from InputEnded depending on its type.
-- In order to use the InputChanged event, the UserInputService service must be used local UserInputService = game:GetService("UserInputService") -- A sample function providing multiple usage cases for various types of user input UserInputService.InputEnded:Connect(function(input, gameProcessed) if input.UserInputType == Enum.UserInputType.Keyboard then local keyPressed = input.KeyCode print("A key has been released! Key:",input.KeyCode) elseif input.UserInputType == Enum.UserInputType.MouseButton1 then print("The left mouse button has been released at",input.Position) elseif input.UserInputType == Enum.UserInputType.MouseButton2 then print("The right mouse button has been released at",input.Position) elseif input.UserInputType == Enum.UserInputType.Touch then print("A touchscreen input has been released at",input.Position) elseif input.UserInputType == Enum.UserInputType.Gamepad1 then print("A button has been released on a gamepad! Button:",input.KeyCode) end if gameProcessed then print("\tThe game engine internally observed this input!") else print("\tThe game engine did not internally observe this input!") end end)