This script should be passing 2 values when f is pressed , however every time I press f, the arguments return nil
Argument 1 missing or nil
Can anyone tell me why? Thanks in advance!
local Hotbar = player.PlayerGui.HotbarUI.Hotbar local e = game.ReplicatedStorage:WaitForChild("ChangeToolEvent") function onKeyPress(inputObject, gameProcessedEvent) if inputObject.KeyCode == Enum.KeyCode.W then script.Asset.Value = ("Forward") elseif inputObject.KeyCode == Enum.KeyCode.S then script.Asset.Value = ("Backward") elseif inputObject.KeyCode == Enum.KeyCode.F then local V1 = Hotbar.CurrentSlot.Itemtype.Value local V2 = Hotbar.CurrentSlot.CurrentItem.Value e:FireServer(V1,V2) end end game:GetService("UserInputService").InputBegan:connect(onKeyPress)
--The Event
function weld(p1,p2,c0) local w = Instance.new("Weld",p1) w.Part0 = p1 w.Part1 = p2 w.C0 = c0 or p1.CFrame:inverse() * p2.CFrame return w end local event = game.ReplicatedStorage:WaitForChild("ChangeToolEvent") event.OnServerEvent:connect(function(player,arguments) print(arguments[1]) print(arguments[2]) local F = game.ServerStorage.GlobalStorage:WaitForChild(arguments[1]) local Target = F:WaitForChild(arguments[2]):Clone() for _,v in pairs(Target:GetChildren()) do if v.ClassName == "Part" or v.ClassName == "UnionOperation" then v.Anchored = true end end Target.Parent = player.Character.PlayerEquipment for _,v in pairs(Target:GetChildren()) do if v.ClassName == "Part" or v.ClassName == "UnionOperation" then if v ~= Target["EquipmentCore"] then weld(v, Target["EquipmentCore"]) end end end local TargetWeld = weld(Target["EquipmentCore"], player.Character["RightHand"], CFrame.new()) for _,v in pairs(Target:GetChildren()) do if v.ClassName == "Part" or v.ClassName == "UnionOperation" then v.Anchored = false v.CanCollide = false --print ("Welded "..WD.Value) end end end)