Requested script accepted
Key RequiredUniversal

Requested script accepted

Universal ScriptSkibidigionSpyMegaSkibidigionSpyMega 323 views 10 executesUpdated Feb 8, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•107 lines (4167 chars)
-- [[ AXIS-SWAPPED POSER FOR REANIMATIONS ]] --
local Player = game:GetService("Players").LocalPlayer
local Mouse = Player:GetMouse()

-- Gizmos
local SelectionBox = Instance.new("SelectionBox", game:GetService("CoreGui"))
SelectionBox.Color3 = Color3.fromRGB(0, 255, 255)

local arcHandles = Instance.new("ArcHandles", game:GetService("CoreGui"))
local moveHandles = Instance.new("Handles", game:GetService("CoreGui"))
arcHandles.Visible, moveHandles.Visible = false, false

local currentJoint = nil
local mode = "Rotate"

-- Mobile Sink
local function setControls(enabled)
    local module = Player.PlayerScripts:FindFirstChild("PlayerModule")
    if module then
        local controls = require(module):GetControls()
        if enabled then controls:Enable() else controls:Disable() end
    end
end

-- Joint Finder
local function getJoint(name)
    if not Player.Character then return nil end
    for _, v in pairs(Player.Character:GetDescendants()) do
        if v:IsA("Motor6D") and (v.Part1 and v.Part1.Name:lower():find(name:lower())) then
            return v
        end
    end
    return nil
end

-- UI Setup
local sg = Instance.new("ScreenGui", game:GetService("CoreGui"))
local main = Instance.new("Frame", sg)
main.Size = UDim2.new(0, 200, 0, 360)
main.Position = UDim2.new(0.75, 0, 0.2, 0)
main.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
main.Active, main.Draggable = true, true

local function createLimb(name, size, pos, color)
    local btn = Instance.new("TextButton", main)
    btn.Size = size; btn.Position = pos; btn.BackgroundColor3 = color; btn.Text = ""
    btn.BorderSizePixel = 0
    btn.MouseButton1Click:Connect(function()
        local joint = getJoint(name)
        if joint then
            currentJoint = joint
            SelectionBox.Adornee = joint.Part1
            arcHandles.Adornee = joint.Part1
            moveHandles.Adornee = joint.Part1
            arcHandles.Visible = (mode == "Rotate")
            moveHandles.Visible = (mode == "Move")
        end
    end)
end

-- Dummy Layout
createLimb("Head", UDim2.new(0, 45, 0, 45), UDim2.new(0.38, 0, 0.05, 0), Color3.fromRGB(255, 235, 50))
createLimb("Torso", UDim2.new(0, 80, 0, 100), UDim2.new(0.3, 0, 0.2, 0), Color3.fromRGB(0, 120, 200))
createLimb("Left Arm", UDim2.new(0, 40, 0, 100), UDim2.new(0.08, 0, 0.2, 0), Color3.fromRGB(255, 235, 50))
createLimb("Right Arm", UDim2.new(0, 40, 0, 100), UDim2.new(0.72, 0, 0.2, 0), Color3.fromRGB(255, 235, 50))
createLimb("Left Leg", UDim2.new(0, 38, 0, 105), UDim2.new(0.3, 0, 0.5, 0), Color3.fromRGB(150, 200, 50))
createLimb("Right Leg", UDim2.new(0, 38, 0, 105), UDim2.new(0.51, 0, 0.5, 0), Color3.fromRGB(150, 200, 50))

-- [[ THE SWAPPED AXIS MATH ]] --

moveHandles.MouseButton1Down:Connect(function() setControls(false) end)
moveHandles.MouseButton1Up:Connect(function() setControls(true) end)
arcHandles.MouseButton1Down:Connect(function() setControls(false) end)
arcHandles.MouseButton1Up:Connect(function() setControls(true) end)

-- SWAPPED MOVE: X and Z are flipped to fix reanimation offsets
moveHandles.MouseDrag:Connect(function(face, distance)
    if currentJoint then
        local normal = Vector3.FromNormalId(face)
        -- Manual Swap Logic:
        local swappedNormal = Vector3.new(normal.Z, normal.Y, normal.X)
        currentJoint.C0 *= CFrame.new(swappedNormal * (distance / 20))
    end
end)

-- SWAPPED ROTATE: X and Z rings are flipped
arcHandles.MouseDrag:Connect(function(axis, angle)
    if currentJoint then
        local axisVec = Vector3.FromAxis(axis)
        -- Manual Swap Logic:
        local swappedAxis = Vector3.new(axisVec.Z, axisVec.Y, axisVec.X)
        currentJoint.C0 *= CFrame.fromAxisAngle(swappedAxis, angle)
    end
end)

-- Mode Button
local modeBtn = Instance.new("TextButton", main)
modeBtn.Size = UDim2.new(1, 0, 0, 40); modeBtn.Position = UDim2.new(0, 0, 0.88, 0)
modeBtn.Text = "MODE: ROTATE"
modeBtn.MouseButton1Click:Connect(function()
    mode = (mode == "Rotate") and "Move" or "Rotate"
    modeBtn.Text = "MODE: " .. mode:upper()
    if currentJoint then
        arcHandles.Visible = (mode == "Rotate")
        moveHandles.Visible = (mode == "Move")
    end
end)

Features & Information

Rotate and Move your limbs

Community Comments (2)

RedPaintSplatRedPaintSplatFeb 11, 2026

what is the point of the script its just client sided?

Replying to @RedPaintSplat
SkibidigionSpyMegaSkibidigionSpyMegaFeb 21, 2026

@RedPaintSplat bruh this script is not serversided because this isn't for trolling this probably like making vids the guy literally asked for it

More Scripts for Universal Scripts