I've been working on a Spider-Man Physics game for the longest but just got back into coding after a few years. I had the RopeConstraint's Length change over on the client side but wanting to push it to the server side. I did change up the code a lot from when it worked on the client side but STRUGGLING! I did leave some comments in the code aswell.
My question to you is, how would you go about making this code work to where if they hit the key "Q", the rope reduces length. If "E" then, it adds length. But, I don't want the player's input to override so that way the rope doesn't bug out.
---------------------------------------------------[[ ServerScript --// Web Length Controller WebLengthRemote.OnServerInvoke = function(Player,Request,HoldingKey) local Character = Player.Character local HumanoidRP = Character:FindFirstChild('HumanoidRootPart') local LeftHand = Character:FindFirstChild('LeftHand') local Rope = LeftHand:FindFirstChild('RopeConstraint') if Request == 'Q_ClimbUp' and Rope then if HoldingKey == true then while HoldingKey == true and Rope do wait() Rope.Length = Rope.Length - 4 end end elseif Request == 'E_ClimbDown' and Rope then if HoldingKey == true then while HoldingKey == true and Rope do wait() Rope.Length = Rope.Length + 4 end end elseif Request == 'StopAll' then WebLengthRemote.OnServerInvoke = nil -- Wanting to stop the rope's length from increasing and decreasing end end ---------------------------------------------------[[ LocalScript --Trying to detect when the player holds down 'Q' or 'E', it should run the function on the server side but with the given "Request" argument. local HoldingKey = false --// Climbing Web UIS.InputBegan:Connect(function(Input) if Input.KeyCode == Enum.KeyCode.Q and Input.KeyCode ~= Enum.KeyCode.E then -- Trying to disable players from holding the same key down so the rope doesn't bug out local Request = 'Q_ClimbUp' if HoldingKey == false then HoldingKey = true print(HoldingKey) WebLengthRemote:InvokeServer(Request,HoldingKey) end end end) --// Release Web UIS.InputBegan:Connect(function(Input) if Input.KeyCode == Enum.KeyCode.E and Input.KeyCode ~= Enum.KeyCode.R then local Request = 'E_ClimbDown' if HoldingKey == false then HoldingKey = true print(HoldingKey) WebLengthRemote:InvokeServer(Request,HoldingKey) end end end) UIS.InputEnded:Connect(function(Input) if Input.KeyCode == Enum.KeyCode.Q or Input.KeyCode == Enum.KeyCode.E then local Request = 'StopAll' HoldingKey = false print('Stopped holding every key') WebLengthRemote:InvokeServer(Request,HoldingKey) end end)
You are my life saver :) If you are willing to contact me, I have discord @Previized#7500