clone youself
Key RequiredUniversal

clone youself

Universal Scriptascoolasthe0ceanascoolasthe0cean 1.5K views 187 executesUpdated Feb 8, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•205 lines (5823 chars)
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")

Features & Information

summons a clone of yourself (clientsided but still cool)

Community Comments (2)

ascoolasthe0ceanascoolasthe0ceanFeb 8, 2026

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

CisarCisarJul 23, 2026

no funciona

More Scripts for Universal Scripts