
KeylessUniversal

print("thx for using")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local clone = nil
local cloneHRP = nil
local hum = nil
local playerHum = nil
local function cleanup()
if clone then clone:Destroy() end
clone, cloneHRP, hum = nil, nil, nil
end
local R6_ANIMATE_SOURCE = [[
print("Animate script running in clone!") -- DEBUG: Confirms it loads
local Character = script.Parent
local Humanoid = Character:WaitForChild("Humanoid")
local RootPart = Character:WaitForChild("HumanoidRootPart")
local Animator = Humanoid:WaitForChild("Animator")
local currentAnim = ""
local currentAnimTrack = nil
local animationTable = {}
local animations = {
idleAnimation = "rbxassetid://180435571",
walkAnimation = "rbxassetid://180426354",
runAnimation = "rbxassetid://180426354",
jumpAnimation = "rbxassetid://125750702",
fallAnimation = "rbxassetid://180436148",
climbAnimation = "rbxassetid://180436334",
sitAnimation = "rbxassetid://178130996",
}
for animName, animId in pairs(animations) do
local anim = Instance.new("Animation")
anim.AnimationId = animId
animationTable[animName] = anim
end
local function StopAllAnimations()
if currentAnimTrack then
currentAnimTrack:Stop()
currentAnimTrack:Destroy()
currentAnimTrack = nil
end
end
local function PlayAnimation(animName, priority)
if animName == currentAnim then return end
StopAllAnimations()
currentAnim = animName
currentAnimTrack = Animator:LoadAnimation(animationTable[animName])
currentAnimTrack.Priority = priority or Enum.AnimationPriority.Idle
currentAnimTrack.Looped = true
currentAnimTrack:Play()
print("Playing animation: " .. animName) -- DEBUG: See what plays
end
local function onSeated() PlayAnimation("sitAnimation") end
local function onJumping() PlayAnimation("jumpAnimation", Enum.AnimationPriority.Action) end
local function onFalling() PlayAnimation("fallAnimation") end
local function onClimbing(speed)
if math.abs(speed) > 0.2 then PlayAnimation("climbAnimation") end
end
local function onRunning(speed)
if speed > 0.75 then
PlayAnimation("runAnimation")
elseif speed > 0.2 then
PlayAnimation("walkAnimation")
else
PlayAnimation("idleAnimation")
end
end
task.wait(0.1)
Humanoid.Seated:Connect(onSeated)
Humanoid.Jumping:Connect(onJumping)
Humanoid.Running:Connect(onRunning)
Humanoid.FreeFalling:Connect(onFalling)
Humanoid.Climbing:Connect(onClimbing)
Humanoid.Died:Connect(StopAllAnimations)
PlayAnimation("idleAnimation")
print("R6 Animate events connected!") -- DEBUG
]]
local function createFollower()
cleanup()
local character = player.Character
if not character then return end
playerHum = character:FindFirstChildOfClass("Humanoid")
if not playerHum then return end
-- Get YOUR appearance
local success1, desc = pcall(Players.GetHumanoidDescriptionFromUserId, Players, player.UserId)
if not success1 then
warn("Failed to get description - using default R6")
desc = Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R6)
end
local success2, r6Model = pcall(Players.CreateHumanoidModelFromDescription, Players, desc, Enum.HumanoidRigType.R6)
if not success2 or not r6Model then
warn("Failed to create R6 model")
return
end
clone = r6Model
clone.Name = "R6GhostFollower"
for _, obj in clone:GetDescendants() do
if obj:IsA("Script") or obj:IsA("LocalScript") or obj:IsA("ModuleScript") then
obj:Destroy()
end
end
cloneHRP = clone:FindFirstChild("HumanoidRootPart")
hum = clone:FindFirstChildOfClass("Humanoid")
if not cloneHRP or not hum then
clone:Destroy()
return
end
local animateScript = Instance.new("LocalScript")
animateScript.Name = "Animate"
animateScript.Source = R6_ANIMATE_SOURCE
animateScript.Parent = clone
for _, part in clone:GetDescendants() do
if part:IsA("BasePart") or part:IsA("MeshPart") then
part.CanCollide = false
end
end
hum.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
hum.WalkSpeed = 16
hum.AutoRotate = true
cloneHRP.CFrame = cloneHRP.CFrame + Vector3.new(0, 5, 0)
clone.Parent = workspace
print("tested on drift executor")
end
local offset = Vector3.new(4, 0, 6)
local connection
connection = RunService.Heartbeat:Connect(function()
if not clone or not player.Character then return end
local playerHRP = player.Character:FindFirstChild("HumanoidRootPart")
if not playerHRP or not cloneHRP or not hum or not playerHum then return end
hum.WalkSpeed = playerHum.WalkSpeed
local targetPos = playerHRP.Position + playerHRP.CFrame.RightVector * offset.X + playerHRP.CFrame.LookVector * (-offset.Z)
local dir = (targetPos - cloneHRP.Position)
local dist = dir.Magnitude
local moveDir = Vector3.new(dir.X, 0, dir.Z).Unit
if dist > 3.5 then
hum:Move(moveDir, true) -- 'true' = face direction, triggers Running!
else
hum:Move(Vector3.new())
end
local heightDiff = playerHRP.Position.Y - cloneHRP.Position.Y + 2
cloneHRP.CFrame = cloneHRP.CFrame + Vector3.new(0, heightDiff * 0.2, 0)
end)
local function onCharAdded(char)
task.wait(2.5) -- Extra time for Animate to connect
createFollower()
end
if player.Character then
task.spawn(onCharAdded, player.Character)
end
player.CharacterAdded:Connect(onCharAdded)
print("created by:ascoolasthe0cean")
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


couldnt figure out on how to give it walking animations sry!
no funciona