
KeylessUniversal

--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Debris = game:GetService("Debris")
local player = Players.LocalPlayer
local gui = player:WaitForChild("PlayerGui")
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local root = character:WaitForChild("HumanoidRootPart")
-- SETUP JUMP ANIMATION
local jumpAnim = Instance.new("Animation")
jumpAnim.AnimationId = "rbxassetid://131814798893284"
local jumpAnimTrack = humanoid:LoadAnimation(jumpAnim)
local scriptEnabled = true
local spaceHeld = false
local infJumpEnabled = false -- NEW
local velocity = Vector3.new()
local isGrounded = false
local wasGrounded = false
local footstepTimer = 0
local footstepInterval = 0.35
local lastFootstepIndex = 0
-- config
local cfg = {
groundAccel = 50,
airAccel = 3200,
maxAirSpeed = 20,
runSpeed = 23,
jumpPower = 32,
gravity = 80,
friction = 6,
stopSpeed = 5,
}
local footstepSounds = {
"rbxassetid://81623756670923",
"rbxassetid://78754179999047",
"rbxassetid://79418255155423",
"rbxassetid://112240321395589",
}
local jumpSound
local landSound
local function createSounds()
if jumpSound then jumpSound:Destroy() end
if landSound then landSound:Destroy() end
jumpSound = Instance.new("Sound")
jumpSound.SoundId = "rbxassetid://78754179999047"
jumpSound.Volume = 0.5
jumpSound.PlaybackSpeed = 1
jumpSound.Parent = root
landSound = Instance.new("Sound")
landSound.SoundId = "rbxassetid://78754179999047"
landSound.Volume = 0.6
landSound.PlaybackSpeed = 1
landSound.Parent = root
end
createSounds()
local function playFootstep()
local sound = Instance.new("Sound")
sound.Parent = workspace
lastFootstepIndex = lastFootstepIndex + 1
if lastFootstepIndex > #footstepSounds then
lastFootstepIndex = 1
end
sound.SoundId = footstepSounds[lastFootstepIndex]
sound.Volume = 0.6
sound.PlaybackSpeed = 1.0 + math.random(-10, 10) / 100
sound:Play()
Debris:AddItem(sound, 2)
end
local function playJump()
if jumpSound then
jumpSound:Stop()
jumpSound:Play()
end
if jumpAnimTrack then
jumpAnimTrack:Play()
end
end
local function playLand()
if landSound then
landSound:Stop()
landSound:Play()
end
if jumpAnimTrack then
jumpAnimTrack:Stop(0.1)
end
end
local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
local gameModes = {}
if isMobile then
gameModes = {"default (mobile)", "no grenades (mobile)", "hard (mobile)"}
else
gameModes = {"default (PC)", "no grenades (PC)", "hard (PC)"}
end
local currentModeIndex = 1
-- GUI
local function createGui()
local g = Instance.new("ScreenGui")
g.ResetOnSpawn = false
g.Name = "SourceDBG"
g.Parent = gui
-- DESTROY button
local destroy = Instance.new("TextButton")
destroy.Size = UDim2.new(0, 70, 0, 30)
destroy.Position = UDim2.new(0, 10, 1, -250)
destroy.BackgroundColor3 = Color3.fromRGB(255, 60, 60)
destroy.Text = "DESTROY"
destroy.Parent = g
destroy.MouseButton1Click:Connect(function()
if humanoid then
humanoid.WalkSpeed = 16
humanoid.JumpPower = 50
end
g:Destroy()
scriptEnabled = false
end)
-- ON/OFF toggle
local toggle = Instance.new("TextButton")
toggle.Size = UDim2.new(0, 70, 0, 30)
toggle.Position = UDim2.new(0, 10, 1, -210)
toggle.BackgroundColor3 = Color3.fromRGB(80, 255, 130)
toggle.Text = "ON"
toggle.Parent = g
toggle.MouseButton1Click:Connect(function()
scriptEnabled = not scriptEnabled
toggle.Text = scriptEnabled and "ON" or "OFF"
toggle.BackgroundColor3 = scriptEnabled and Color3.fromRGB(80, 255, 130) or Color3.fromRGB(255, 60, 60)
end)
-- INF JUMP button (NEW)
local infJumpButton = Instance.new("TextButton")
infJumpButton.Size = UDim2.new(0, 150, 0, 30)
infJumpButton.Position = UDim2.new(0, 10, 1, -170)
infJumpButton.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
infJumpButton.Text = "Inf Jump: OFF"
infJumpButton.TextScaled = true
infJumpButton.Parent = g
infJumpButton.MouseButton1Click:Connect(function()
infJumpEnabled = not infJumpEnabled
infJumpButton.Text = infJumpEnabled and "Inf Jump: ON" or "Inf Jump: OFF"
infJumpButton.BackgroundColor3 = infJumpEnabled and Color3.fromRGB(80, 255, 130) or Color3.fromRGB(255, 80, 80)
end)
-- Mode button
local modeButton = Instance.new("TextButton")
modeButton.Size = UDim2.new(0, 150, 0, 30)
modeButton.Position = UDim2.new(0, 10, 1, -130)
modeButton.BackgroundColor3 = Color3.fromRGB(100, 150, 255)
modeButton.Text = "Mode: " .. gameModes[currentModeIndex]
modeButton.TextScaled = true
modeButton.Parent = g
modeButton.MouseButton1Click:Connect(function()
currentModeIndex = currentModeIndex + 1
if currentModeIndex > #gameModes then
currentModeIndex = 1
end
modeButton.Text = "Mode: " .. gameModes[currentModeIndex]
end)
-- SPEED LABEL
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(0, 150, 0, 20)
speedLabel.Position = UDim2.new(0, 10, 1, -90)
speedLabel.BackgroundTransparency = 1
speedLabel.Text = "Type Speed + Enter:"
speedLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
speedLabel.TextScaled = true
speedLabel.Font = Enum.Font.GothamBold
speedLabel.Parent = g
-- SPEED TEXTBOX
local speedBox = Instance.new("TextBox")
speedBox.Size = UDim2.new(0, 150, 0, 35)
speedBox.Position = UDim2.new(0, 10, 1, -70)
speedBox.BackgroundColor3 = Color3.fromRGB(255, 180, 50)
speedBox.Text = tostring(cfg.runSpeed)
speedBox.TextColor3 = Color3.fromRGB(0, 0, 0)
speedBox.TextScaled = true
speedBox.Font = Enum.Font.GothamBold
speedBox.ClearTextOnFocus = false
speedBox.Parent = g
local function applySpeed()
local number = tonumber(speedBox.Text)
if number and number > 0 and number < 500 then
cfg.runSpeed = number
cfg.maxAirSpeed = math.floor(number * 0.85)
speedBox.Text = tostring(number)
speedBox.BackgroundColor3 = Color3.fromRGB(80, 255, 130)
task.wait(0.4)
speedBox.BackgroundColor3 = Color3.fromRGB(255, 180, 50)
else
speedBox.Text = tostring(cfg.runSpeed)
speedBox.BackgroundColor3 = Color3.fromRGB(255, 60, 60)
task.wait(0.4)
speedBox.BackgroundColor3 = Color3.fromRGB(255, 180, 50)
end
end
speedBox.FocusLost:Connect(function()
applySpeed()
end)
-- Mobile Jump button
if isMobile then
local jumpButton = Instance.new("TextButton")
jumpButton.Size = UDim2.new(0, 80, 0, 80)
jumpButton.Position = UDim2.new(1, -90, 1, -90)
jumpButton.Text = "JUMP"
jumpButton.Name = "JumpButton"
jumpButton.Parent = g
jumpButton.MouseButton1Down:Connect(function()
spaceHeld = true
end)
jumpButton.MouseButton1Up:Connect(function()
spaceHeld = false
end)
end
end
createGui()
local function grounded()
local rayParams = RaycastParams.new()
rayParams.FilterDescendantsInstances = {character}
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(root.Position, Vector3.new(0, -3.8, 0), rayParams)
return result and result.Instance and result.Instance.CanCollide
end
local function applyFriction(dt)
local speed = velocity.Magnitude
if speed < 0.1 then
velocity = Vector3.new()
return
end
local drop = isGrounded and (math.max(speed, cfg.stopSpeed) * cfg.friction * dt) or 0
local newSpeed = math.max(speed - drop, 0)
if newSpeed ~= speed then
velocity = velocity * (newSpeed / speed)
end
end
local function accel(wishDir, wishSpeed, accelAmount, dt)
local cur = velocity:Dot(wishDir)
local add = wishSpeed - cur
if add <= 0 then return end
local accelSpeed = math.min(accelAmount * dt * wishSpeed, add)
velocity = velocity + wishDir * accelSpeed
end
local function process(dt)
if not scriptEnabled then return end
if not humanoid or humanoid.Health <= 0 then return end
if not root or not root.Parent then return end
humanoid.WalkSpeed = 0
humanoid.JumpPower = 0
wasGrounded = isGrounded
isGrounded = grounded()
-- Landing
if isGrounded and not wasGrounded then
playLand()
footstepTimer = 0
end
local cam = workspace.CurrentCamera
local fwd = cam.CFrame.LookVector
local right = cam.CFrame.RightVector
fwd = Vector3.new(fwd.X, 0, fwd.Z)
right = Vector3.new(right.X, 0, right.Z)
if fwd.Magnitude > 0 then
fwd = fwd.Unit
end
if right.Magnitude > 0 then
right = right.Unit
end
local input = Vector3.new()
if isMobile then
input = humanoid.MoveDirection
else
if UserInputService:IsKeyDown(Enum.KeyCode.W) then
input = input + fwd
end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then
input = input - fwd
end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then
input = input - right
end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then
input = input + right
end
end
if input.Magnitude > 0 then
input = input.Unit
end
if isGrounded then
applyFriction(dt)
accel(input, cfg.runSpeed, cfg.groundAccel, dt)
if input.Magnitude > 0.1 then
footstepTimer = footstepTimer + dt
if footstepTimer >= footstepInterval then
playFootstep()
footstepTimer = 0
end
end
if spaceHeld then
velocity = Vector3.new(velocity.X, cfg.jumpPower, velocity.Z)
playJump()
else
velocity = Vector3.new(velocity.X, 0, velocity.Z)
end
else
-- Air movement
accel(input, cfg.maxAirSpeed, cfg.airAccel, dt)
velocity = velocity + Vector3.new(0, -cfg.gravity * dt, 0)
-- Infinite Jump (when enabled)
if infJumpEnabled and spaceHeld then
velocity = Vector3.new(velocity.X, cfg.jumpPower, velocity.Z)
playJump()
end
end
root.AssemblyLinearVelocity = velocity
end
UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Space then
spaceHeld = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Space then
spaceHeld = false
end
end)
RunService.Heartbeat:Connect(function(dt)
process(dt)
end)
player.CharacterAdded:Connect(function(char)
character = char
humanoid = char:WaitForChild("Humanoid")
root = char:WaitForChild("HumanoidRootPart")
jumpAnimTrack = humanoid:LoadAnimation(jumpAnim)
createSounds()
velocity = Vector3.new()
isGrounded = false
wasGrounded = false
end)
print("Source Movement Loaded | Infinite Jump Added")No comments yet for this script.



