I'm trying to make a gamepass that allows the player to teleport anywhere he is pointing with the mouse cursor but the problem is that i can teleport while i'm typing.
As example if i want to say in chat "Today is Thursday" the player will teleport 2 times.
Here is the code:
local player = game.Players.LocalPlayer local mouse = player:GetMouse() local teleportPassID = 112767933 game:GetService('UserInputService').InputBegan:Connect(function(input) if input.KeyCode == Enum.KeyCode.T and game:GetService('MarketplaceService'):UserOwnsGamePassAsync(player.UserId, teleportPassID) or game:GetService('MarketplaceService'):UserOwnsGamePassAsync(player.UserId, 112617906) then print("T") local target = mouse.Hit if target then player.Character.HumanoidRootPart.CFrame = target + Vector3.new(0, 5, 0) end end end)
You can use the parameter that comes with this event called GameProcessedEvent
.
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, gameProcessedEvent would be true. This is also true for input events connected via ContextActionService.
local player = game.Players.LocalPlayer local mouse = player:GetMouse() local teleportPassID = 112767933 game:GetService('UserInputService').InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.T and game:GetService('MarketplaceService'):UserOwnsGamePassAsync(player.UserId, teleportPassID) or game:GetService('MarketplaceService'):UserOwnsGamePassAsync(player.UserId, 112617906) then print("T") local target = mouse.Hit if target then player.Character.HumanoidRootPart.CFrame = target + Vector3.new(0, 5, 0) end end end)