I'm creating a game that requires you to crouch/crawl, and I tried a script but seems not to fully work. Can anyone help please? Thanks :)
--[ Setup ]--
-- Locations
local Serkisx = script.Parent
local Player = game.Players.LocalPlayer
local Avatar = Player.Character
local Mouse = Player:GetMouse()
-- Emptys
local Hold = nil
--[ Get Items ]--
local Humanoid = Avatar:WaitForChild("Humanoid")
local Torso = Avatar:WaitForChild("Torso")
local RH = Torso:WaitForChild("Right Hip")
local LH = Torso:WaitForChild("Left Hip")
local RL = Avatar:WaitForChild("Right Leg")
local LL = Avatar:WaitForChild("Left Leg")
local RJ = Avatar:WaitForChild("HumanoidRootPart"):WaitForChild("RootJoint")
--[ Functions ]--
function CreateWeld(Part, CF)
local w = Instance.new("Weld")
w.Name = "LegWeld"
w.Parent = Torso
w.Part0 = Torso
w.Part1 = Part
w.C1 = CF
end
--[ Hooks ]--
-- Controls
Mouse.KeyDown:connect(function(Key)
if (Hold ~= nil) then return end
if (string.upper(Key) ~= "C") and (string.lower(Key) ~= " ") and (string.lower(Key) ~= "0") then return end
Hold = true
if (Torso:FindFirstChild("LegWeld") == nil) and (string.lower(Key) ~= " ") and (string.lower(Key) ~= "0")then
-- Right Leg
RH.Part1 = nil
CreateWeld(RL, CFrame.new(-0.5, 0.75, 1))
-- Left Leg
LH.Part1 = nil
CreateWeld(LL, CFrame.new(0.5, 0.495, 1.25) * CFrame.Angles(math.rad(90), 0, 0))
-- Lower Character
RJ.C0 = CFrame.new(0, -1.25, 0) * CFrame.Angles(0, 0, 0)
RJ.C1 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
-- Slow Walk Speed
Humanoid.WalkSpeed = 5
else
-- Right Leg
RH.Part1 = RL
-- Left Leg
LH.Part1 = LL
-- Delete Welds
for i, s in pairs(Torso:GetChildren()) do
if (s.Name == "LegWeld") and (s.ClassName == "Weld") then
s:Destroy()
end
end
-- Raise Character
RJ.C0 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
RJ.C1 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
-- Normal Walk Speed
Humanoid.WalkSpeed = 16
end
wait(0.5)
Hold = nil
end)
