Alright, so this a crouch/prone script (more like scripts) I am using for my game. When I tested them out on a different game, they worked fine. I put them in the place where I wanted them to be, and now they won't work correctly. As soon as you go into the crouch/prone position, it will immediately put you back into the normal (standing) position. Output gave me nothing, and I have no idea what the problem is.
Can some please help me? Here's the crouch script:
local StealthLava = 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
function StandUp()
Humanoid.CameraOffset = Vector3.new(0, 0, 0)
-- 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)
end
--[ Hooks ]--
-- Controls
Mouse.KeyDown:connect(function(Key)
if (Hold ~= nil) then return end
if (string.upper(Key) ~= "C") and (string.lower(Key) ~= " ") then return end
Hold = true
if (Torso:FindFirstChild("LegWeld") == nil) and (string.lower(Key) ~= " ") 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.CameraOffset = Vector3.new(0, -1.25, 0)
Humanoid.WalkSpeed = 8
else
StandUp()
-- Normal Walk Speed
Humanoid.CameraOffset = Vector3.new(0, 0, 0)
Humanoid.WalkSpeed = 16
end
wait(0.5)
Hold = nil
end)
-- Value Changed
Humanoid.Changed:connect(function()
if (Humanoid.WalkSpeed > 8) and (Hold == nil) then StandUp() end
end)
Here is the prone script:
local StealthLava = 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
function StandUp()
Humanoid.CameraOffset = Vector3.new(0, 0, 0)
-- 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)
end
--[ Hooks ]--
-- Controls
Mouse.KeyDown:connect(function(Key)
if (Hold ~= nil) then return end
if (string.upper(Key) ~= "X") and (string.lower(Key) ~= " ") then return end
Hold = true
if (Torso:FindFirstChild("LegWeld") == nil) and (string.lower(Key) ~= " ") then
-- Right Leg
RH.Part1 = nil
CreateWeld(RL, CFrame.new(-0.4, 1.25, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(90),-0.25,0))
-- Left Leg
LH.Part1 = nil
CreateWeld(LL, CFrame.new(0.4, 1.25, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(90),0.25,0))
-- Lower Character
RJ.C0 = CFrame.new(0, -2, 0) * CFrame.Angles(0, 0, 0)
RJ.C1 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
-- Slow Walk Speed
Humanoid.CameraOffset = Vector3.new(0, -2, 0)
Humanoid.WalkSpeed = 4
else
StandUp()
-- Normal Walk Speed
Humanoid.CameraOffset = Vector3.new(0, 0, 0)
Humanoid.WalkSpeed = 16
end
wait(0.5)
Hold = nil
end)
-- Value Changed
Humanoid.Changed:connect(function()
if (Humanoid.WalkSpeed > 8) and (Hold == nil) then StandUp() end
end)
