Hello, I wanted to familiarize a little more with ContextActionService to make my game more mobile friendly. I wanted to make button that whenever is held, it fires in a weapon, and when the player stops holding the button, it stops firing. I tried it in a test place and everything worked fine. So I moved the script that manages all of this to my game, but now, I get an error every time I try to bind the action. Here's a screenshot of what the errors look like: http://imgur.com/a/ZptkO
The script I use is exactly the same in both places.
Here's my code (which is obviously in a local script):
if not game:GetService("UserInputService").KeyboardEnabled then local ContextAction = game:GetService("ContextActionService") local EquippedTool = nil local Fire = function(ActionName, ActionInputState) if ActionInputState == Enum.UserInputState.Begin then require(EquippedTool.Fire).Button1Down(EquippedTool.Parent.Humanoid.TargetPoint) elseif ActionInputState == Enum.UserInputState.End then require(EquippedTool.Fire).Button1Up() end end ContextAction.LocalToolEquipped:Connect(function(Tool) if Tool:FindFirstChild("Fire") then EquippedTool = Tool ContextAction:BindAction("Fire",Fire,true,Enum.UserInputType.MouseButton1) ContextAction:SetPosition("Fire",UDim2.new(1,-135,1,-75)) ContextAction:SetImage("Fire","http://www.roblox.com/asset/?id=541371647") end end) ContextAction.LocalToolUnequipped:Connect(function(Tool) if Tool:FindFirstChild("Fire") then ContextAction:UnbindAction("Fire") EquippedTool = nil end end) end
I think my code is correct, but let me know ! Thanks