
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local root = char:WaitForChild("HumanoidRootPart")
local animator = hum:WaitForChild("Animator")
local animateScript = char:WaitForChild("Animate")
if animateScript then animateScript.Disabled = true end
for _, track in pairs(animator:GetPlayingAnimationTracks()) do
track:Stop()
end
hum.WalkSpeed = 0
hum.JumpPower = 0
hum.AutoRotate = false
local flingEnabled = true
local function loadAnim(id)
local a = Instance.new("Animation")
a.AnimationId = id
return animator:LoadAnimation(a)
end
local introTrack = loadAnim("rbxassetid://101421264927228")
local walkTrack = loadAnim("rbxassetid://138992096476836")
local idleTrack = loadAnim("rbxassetid://126098522622859")
local jumpTrack = loadAnim("rbxassetid://88608327916498")
local flingTrack = loadAnim("rbxassetid://137181141349617")
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed and input.KeyCode == Enum.KeyCode.T then
flingEnabled = not flingEnabled
end
end)
introTrack:Play()
task.wait(5)
introTrack:Stop()
hum.WalkSpeed = 50
hum.JumpPower = 50
local isMoving = false
local currentFlingTarget = nil
local flingEndTime = 0
local preFlingPosition = nil
local noclipConnection = nil
local rayParams = RaycastParams.new()
rayParams.FilterDescendantsInstances = {char}
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local function enableNoclip(enable)
if enable then
if not noclipConnection then
noclipConnection = RunService.Stepped:Connect(function()
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.CanCollide = false end
end
end)
end
else
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.CanCollide = true end
end
end
end
end
root.Touched:Connect(function(hit)
if not flingEnabled then return end
if currentFlingTarget then return end
local targetChar = hit.Parent
local targetHum = targetChar:FindFirstChild("Humanoid")
local targetRoot = targetChar:FindFirstChild("HumanoidRootPart")
if targetHum and targetRoot and targetChar ~= char and targetHum.Health > 0 then
preFlingPosition = root.Position
currentFlingTarget = targetRoot
flingEndTime = tick() + 2
end
end)
RunService.Heartbeat:Connect(function(dt)
if root.Position.Y < -50 then
root.AssemblyLinearVelocity = Vector3.zero
root.Velocity = Vector3.zero
if preFlingPosition then
root.CFrame = CFrame.new(preFlingPosition + Vector3.new(0, 5, 0))
else
root.CFrame = CFrame.new(0, 50, 0)
end
end
if currentFlingTarget and not flingEnabled then
currentFlingTarget = nil
flingTrack:Stop()
enableNoclip(false)
root.AssemblyAngularVelocity = Vector3.zero
root.AssemblyLinearVelocity = Vector3.zero
if preFlingPosition then
root.CFrame = CFrame.new(preFlingPosition + Vector3.new(0, 2, 0))
preFlingPosition = nil
end
end
if currentFlingTarget then
enableNoclip(true)
if tick() >= flingEndTime or not currentFlingTarget.Parent then
enableNoclip(false)
currentFlingTarget = nil
flingTrack:Stop()
root.AssemblyAngularVelocity = Vector3.zero
root.AssemblyLinearVelocity = Vector3.zero
if preFlingPosition then
root.CFrame = CFrame.new(preFlingPosition + Vector3.new(0, 2, 0))
preFlingPosition = nil
end
return
end
if not flingTrack.IsPlaying then
walkTrack:Stop()
idleTrack:Stop()
jumpTrack:Stop()
flingTrack:Play()
end
local chaoticRotation = CFrame.Angles(math.random()*10, math.random()*10, math.random()*10)
root.CFrame = currentFlingTarget.CFrame * chaoticRotation
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.new(100000, 100000, 100000)
else
enableNoclip(false)
if flingTrack.IsPlaying then flingTrack:Stop() end
root.AssemblyAngularVelocity = Vector3.zero
local moveDir = hum.MoveDirection
local groundRay = Workspace:Raycast(root.Position, Vector3.new(0, -10, 0), rayParams)
local onGround = false
local targetY = root.Position.Y
if groundRay then
local dist = (root.Position - groundRay.Position).Magnitude
if dist < (hum.HipHeight + 2) and not jumpTrack.IsPlaying then
onGround = true
targetY = groundRay.Position.Y + hum.HipHeight + (root.Size.Y / 2)
end
end
if moveDir.Magnitude > 0 then
local newPos = root.Position + (moveDir * 50 * dt)
if onGround then
root.CFrame = CFrame.lookAt(Vector3.new(newPos.X, targetY, newPos.Z), Vector3.new(newPos.X, targetY, newPos.Z) + moveDir)
root.Velocity = Vector3.zero
else
root.CFrame = CFrame.lookAt(newPos, newPos + moveDir)
end
if not isMoving and onGround then
isMoving = true
idleTrack:Stop()
walkTrack:Play()
end
else
if onGround then
root.CFrame = CFrame.new(root.Position.X, targetY, root.Position.Z) * root.CFrame.Rotation
root.Velocity = Vector3.zero
end
if isMoving then
isMoving = false
walkTrack:Stop()
idleTrack:Play()
end
if not idleTrack.IsPlaying and not walkTrack.IsPlaying and not jumpTrack.IsPlaying then
idleTrack:Play()
end
end
end
end)
RunService.RenderStepped:Connect(function()
if walkTrack.IsPlaying then walkTrack:AdjustSpeed(10) end
if idleTrack.IsPlaying then idleTrack:AdjustSpeed(2) end
if flingTrack.IsPlaying then flingTrack:AdjustSpeed(10) end
if jumpTrack.IsPlaying then jumpTrack:AdjustSpeed(5) end
end)
hum.StateChanged:Connect(function(_, new)
if currentFlingTarget then return end
if new == Enum.HumanoidStateType.Jumping or new == Enum.HumanoidStateType.Freefall then
walkTrack:Stop()
idleTrack:Stop()
jumpTrack:Play()
elseif new == Enum.HumanoidStateType.Landed then
jumpTrack:Stop()
if hum.MoveDirection.Magnitude > 0 then
walkTrack:Play()
else
idleTrack:Play()
end
end
end)No comments yet for this script.



