This applies to UserInputService too when I press Any of the WASD characters to move is there any way I can make it not fire when it does that?
How Do I make it so that ContextActionService:BindAction does not fire when i move using WASD?
3 answers
You could use the postion to see if it moved but mainly, don't use WASD keybinds. There confusing to you to script to work the right way and to players that think they should move with WASD. Also WASD keybinds is in corescripts meaning you cannot change that.
3 comments
Yes you can, it's just extrremely difficult
extremely*
who said it is in corescripts lol it's all in the ControlScript
You can remove the binding easily by doing the following:
If you place a copy of the ROBLOX ControlScript in the StarterPlayerScripts then you can use the following to remove the bind:
player.PlayerScripts.ControlScript.Parent = game.ReplicatedStorage
When you want to place the control script back, just use
game.ReplicatedStorage.ControlScript.Parent = player.PlayerScripts
Both of these lines of code should be used in a LocalScript
I've uploaded a copy of the ControlScript here: https://www.roblox.com/library/2911707729/ROBLOX-ControlScript
Otherwise, use the ContextActionService as described here: https://developer.roblox.com/api-reference/class/ContextActionService
In ContextActionService:BindAction will return as ActionName, InputState Check both actionname and inputstate is that what you want inside function
local function onD(ActionName, InputState)
if ActionName == "MDetain" and InputState == Enum.UserInputState.Begin then
print("D")
end
end
Link https://devforum.roblox.com/t/contextactionservice-bind-automatically-runs/571870/
This discussion is preserved as it was. New answers, comments, and votes are closed.

3 comments
The keybinding of WASD is located in the core scripts I think
You can unbind the actions for movement in the ContextActionService but then you will need to rebind the things you want
Pls explain in more detail what this is for and how it will be used.