Alt Account Manager
Key RequiredUniversal

Alt Account Manager

Universal Script100OTD100OTD 5.2K views 90 executesUpdated Jun 20, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•198 lines (7031 chars)
local Players    = game:GetService("Players")
local RunService = game:GetService("RunService")
local player     = Players.LocalPlayer

local ownerId = put ur main account id 
local altList = {alt account's id}

local isOwner = (player.UserId == ownerId)
local isAlt   = table.find(altList, player.UserId) ~= nil

local whitelist     = {}      -- [userid] = true
local currentTarget = ownerId

local orbitLoop, orbitCo  = false, nil
local orbitSpeed          = 1
local orbitHeight         = 5
local orbitRadius         = 5
local insaneOrbit         = false

local doRespawnTeleport = false
local autospawnEnabled  = false
local lastPosition      = nil

-- ▶️ Utility: parse "-cmd arg"
local function parse(msg)
    return msg:match("^%-(%w+)%s*(.*)")
end

local function isWhitelisted(id)
    return whitelist[id]
end
local function canControl(id)
    return id == ownerId or isWhitelisted(id)
end

local function tpToTarget(offset)
    local char   = player.Character
    local target = Players:GetPlayerByUserId(currentTarget)
    if char and target and target.Character then
        local root  = char:FindFirstChild("HumanoidRootPart")
        local troot = target.Character:FindFirstChild("HumanoidRootPart")
        if root and troot then
            root.CFrame = troot.CFrame * (offset or CFrame.new())
        end
    end
end

local function startOrbitLoop()
    if orbitLoop or not isAlt then return end
    orbitLoop = true
    orbitCo = coroutine.create(function()
        local t = 0
        while orbitLoop do
            t = t + RunService.Heartbeat:Wait() * orbitSpeed
            local angle = t
            local h = insaneOrbit and (math.sin(t * 2) * orbitHeight) or orbitHeight
            local r = insaneOrbit and (orbitRadius + math.sin(t * 3)) or orbitRadius
            local x = math.cos(angle) * r
            local z = math.sin(angle) * r
            tpToTarget(CFrame.new(x, h, z))
        end
    end)
    coroutine.resume(orbitCo)
end
local function stopOrbitLoop()
    orbitLoop = false
    insaneOrbit = false
end

player.CharacterRemoving:Connect(function(char)
    if char then
        local root = char:FindFirstChild("HumanoidRootPart")
        if root then lastPosition = root.CFrame end
    end
    if autospawnEnabled or doRespawnTeleport then
        player:LoadCharacter()
    end
end)
player.CharacterAdded:Connect(function(char)
    if autospawnEnabled and lastPosition then
        wait(0.5)
        local r = char:WaitForChild("HumanoidRootPart")
        r.CFrame = lastPosition
    end
    if doRespawnTeleport then
        wait(0.5)
        tpToTarget()
        doRespawnTeleport = false
    end
end)

local function listCommands()
    local cmds = {
        "-test", "-tpall", "-side", "-stopside", "-orbit [speed]",
        "-low", "-up", "-stoporbit", "-orbitsane", "-re", "-as", "-leave", "-listcommands", "-whitelist [username]",
        -- extra fun commands:
        "-dance", "-jump", "-wave", "-sit", "-spin", "-freeze", "-unfreeze", "-flash", "-follow", "-bring"
    }
    if isAlt then
        for _, c in ipairs(cmds) do
            player:Chat(c)
        end
    end
end

local danceAnim = Instance.new("Animation"); danceAnim.AnimationId = "rbxassetid://241286613"
local waveAnim  = Instance.new("Animation"); waveAnim.AnimationId  = "rbxassetid://495327236"

local function onChatted(playerObj, msg)
    local speakerId = playerObj.UserId
    local cmd, arg = parse(msg)
    if not cmd or not canControl(speakerId) then return end

    currentTarget = isWhitelisted(speakerId) and speakerId or ownerId

    if cmd == "listcommands" then
        listCommands()

    elseif cmd == "whitelist" and speakerId == ownerId then
        local success, id = pcall(Players.GetUserIdFromNameAsync, Players, arg)
        if success and id then whitelist[id] = true; print("Whitelisted:", arg, id) end

    elseif cmd == "test" then
        if isOwner then print("himain") elseif isAlt then print("hialt") end

    elseif cmd == "tpall" then
        if isAlt then tpToTarget() end

    elseif cmd == "side" then
        if isAlt then
            local idx = table.find(altList, player.UserId)
            local offset = CFrame.new((idx == 1 and -5 or 5), 0, 0)
            tpToTarget(offset)
        end

    elseif cmd == "stopside" then
        if isAlt then tpToTarget() end

    elseif cmd == "orbit" then
        local s = tonumber(arg)
        if s then orbitSpeed = s end
        if isAlt then startOrbitLoop() end

    elseif cmd == "stoporbit" then
        if isAlt then stopOrbitLoop() end

    elseif cmd == "low" then
        orbitHeight = orbitHeight - 2; print("Orbit height:", orbitHeight)

    elseif cmd == "up" then
        orbitHeight = orbitHeight + 2; print("Orbit height:", orbitHeight)

    elseif cmd == "orbitsane" then
        if isAlt then insaneOrbit = true; startOrbitLoop() end

    elseif cmd == "re" then
        if isOwner or isAlt then doRespawnTeleport = true end

    elseif cmd == "as" and isOwner then
        autospawnEnabled = not autospawnEnabled; print("Autospawn:", autospawnEnabled)

    elseif cmd == "leave" then
        if isAlt then player:Kick("Left by owner command") end

    -- extra commands
    elseif cmd == "dance" and isAlt then
        local track = player.Character.Humanoid:LoadAnimation(danceAnim); track:Play()
    elseif cmd == "jump" and isAlt then player.Character.Humanoid.Jump = true
    elseif cmd == "wave" and isAlt then local track = player.Character.Humanoid:LoadAnimation(waveAnim); track:Play()
    elseif cmd == "sit" and isAlt then player.Character.Humanoid.Sit = true
    elseif cmd == "spin" and isAlt then
        spawn(function()
            local root = player.Character.HumanoidRootPart
            for i=1,360 do root.CFrame = root.CFrame * CFrame.Angles(0,math.rad(1),0); wait(0.01) end
        end)
    elseif cmd == "freeze" and isAlt then player.Character.Humanoid.WalkSpeed = 0
    elseif cmd == "unfreeze" and isAlt then player.Character.Humanoid.WalkSpeed = 16
    elseif cmd == "flash" and isAlt then
        spawn(function()
            local parts = player.Character:GetDescendants()
            for i=1,3 do for _,p in ipairs(parts) do if p:IsA("BasePart") then p.Transparency = 0.5; wait(0.05); p.Transparency = 0 end end end
        end)
    elseif cmd == "follow" and isAlt then
        spawn(function()
            while isAlt do tpToTarget(CFrame.new()); wait(0.5) end
        end)
    elseif cmd == "bring" and (isAlt or isOwner) then
        -- bring all players to target
        for _,pl in ipairs(Players:GetPlayers()) do
            if pl.Character and pl.Character:FindFirstChild("HumanoidRootPart") then
                pl.Character.HumanoidRootPart.CFrame = Players:GetPlayerByUserId(currentTarget).Character.HumanoidRootPart.CFrame
            end
        end
    end
end

for _, pl in ipairs(Players:GetPlayers()) do pl.Chatted:Connect(function(m) onChatted(pl, m) end) end
Players.PlayerAdded:Connect(function(pl) pl.Chatted:Connect(function(m) onChatted(pl, m) end) end)

Features & Information

u can control alt accounts with chat commands WARNING SOME COMMMANDS DONT WORK LET ME KNOW WHICH ONES THAT DONT WORK SO I CAN FIX THEM JOIN THE DISCORD FOR EARLY ACCESS TO UPDATED SCRIPTS https://discord.gg/xVHEHjFv over 28 commands works best with xeno this includes whitelisting so others can do commands aswell just type their username and it will whitelist them thru their userid make sure to run this script on all accounts
#alt#account#manager

Community Comments (7)

v1nnzv1nnzJun 20, 2025

ok vro I'll skid ts

100OTD100OTDJun 20, 2025

@moonxzp go ahead bru its only v1 rn

v1nnzv1nnzJun 21, 2025

I'm being sarcastic cro

100OTD100OTDJun 21, 2025(edited)

@moonxzp my dihh like you

MARV_CNC3TWMARV_CNC3TWDec 2, 2025

Nothing shows up does it work with solara? i've already tried it with xeno but the same thing

Replying to @MARV_CNC3TW
100OTD100OTDJan 27, 2026

@MARV_CNC3TW its an old script some code is probably deprecated.

lmaoh2lmaoh2Dec 4, 2025

@Scripter_God666 skids ts lol 😭

More Scripts for Universal Scripts