
KeylessUniversal

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local hrp = character:WaitForChild("HumanoidRootPart")
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://46196309"
local loadedAnim = humanoid:LoadAnimation(animation)
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://2428506580"
sound.Volume = 1
sound.Parent = hrp
local debris = game:GetService("Debris")
local runService = game:GetService("RunService")
local uis = game:GetService("UserInputService")
local isJumping = false
uis.JumpRequest:Connect(function()
if character and humanoid and hrp then
sound:Play()
task.delay(0, function()
local direction = hrp.CFrame.LookVector
hrp.Velocity = (direction * 100) + Vector3.new(0, 50, 0)
end)
task.delay(0.1, function()
if isJumping then
loadedAnim:Play()
end
end)
end
end)
humanoid.StateChanged:Connect(function(_, newState)
if newState == Enum.HumanoidStateType.Jumping then
isJumping = true
elseif newState == Enum.HumanoidStateType.Landed then
isJumping = false
if loadedAnim.IsPlaying then
loadedAnim:Stop()
end
for _, legName in pairs({"LeftFoot", "RightFoot", "LeftLeg", "RightLeg"}) do
local leg = character:FindFirstChild(legName)
if leg then
local attachment = Instance.new("Attachment")
attachment.Parent = leg
local dust = Instance.new("ParticleEmitter")
dust.Texture = "rbxassetid://241837157"
dust.Rate = 2000
dust.Lifetime = NumberRange.new(0.2)
dust.Speed = NumberRange.new(15, 20)
dust.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 5), NumberSequenceKeypoint.new(1, 0)})
dust.SpreadAngle = Vector2.new(180, 0)
dust.Rotation = NumberRange.new(0, 360)
dust.RotSpeed = NumberRange.new(100)
dust.Parent = attachment
debris:AddItem(attachment, 0.2)
debris:AddItem(dust, 0.2)
end
end
end
end)
runService.Heartbeat:Connect(function()
if isJumping then
local rayOrigin = hrp.Position
local rayDirection = Vector3.new(0, -3, 0)
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = {character}
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
local rayResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)
if rayResult then
isJumping = false
if loadedAnim.IsPlaying then
loadedAnim:Stop()
end
for _, legName in pairs({"LeftFoot", "RightFoot", "LeftLeg", "RightLeg"}) do
local leg = character:FindFirstChild(legName)
if leg then
local attachment = Instance.new("Attachment")
attachment.Parent = leg
local dust = Instance.new("ParticleEmitter")
dust.Texture = "rbxassetid://241837157"
dust.Rate = 2000
dust.Lifetime = NumberRange.new(0.2)
dust.Speed = NumberRange.new(15, 20)
dust.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 5), NumberSequenceKeypoint.new(1, 0)})
dust.SpreadAngle = Vector2.new(180, 0)
dust.Rotation = NumberRange.new(0, 360)
dust.RotSpeed = NumberRange.new(100)
dust.Parent = attachment
debris:AddItem(attachment, 0.2)
debris:AddItem(dust, 0.2)
end
end
end
end
end)



Pretty good script! The animation is fine, but the idea works! (Ay btw after you reset it goes away, if that's intentional then π₯π₯π₯)
not working xeno
@pffryu use another exec instead of xeno, it has lots of vulns
3 comments on my scriptπ