Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
player = Players.LocalPlayer
character = player.Character player.CharacterAdded:()
humanoidRootPart = character:()
spinSpeed =
spinButtonText =
guiTitle =
smallButtonText =
defaultDirection =
defaultAxis =
spinning =
spinConnection
spinDirection = defaultDirection
spinAxis = defaultAxis
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = player:()
mainFrame = .()
mainFrame.Size = .(, , , )
mainFrame.Position = .(, -, , -)
mainFrame.BackgroundColor3 = .(, , )
mainFrame.BorderSizePixel =
mainFrame.Active =
mainFrame.Parent = screenGui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = mainFrame
titleBar = .()
titleBar.Size = .(, , , )
titleBar.BackgroundColor3 = .(, , )
titleBar.BorderSizePixel =
titleBar.Text = guiTitle
titleBar.TextColor3 = .(, , )
titleBar.TextScaled =
titleBar.Font = .Font.GothamBold
titleBar.Parent = mainFrame
titleCorner = .()
titleCorner.CornerRadius = .(, )
titleCorner.Parent = titleBar
hideButton = .()
hideButton.Size = .(, , , )
hideButton.Position = .(, -, , )
hideButton.BackgroundColor3 = .(, , )
hideButton.Text =
hideButton.TextColor3 = .(, , )
hideButton.TextScaled =
hideButton.Font = .Font.Gotham
hideButton.BorderSizePixel =
hideButton.Parent = mainFrame
hideCorner = .()
hideCorner.CornerRadius = .(, )
hideCorner.Parent = hideButton
closeButton = .()
closeButton.Size = .(, , , )
closeButton.Position = .(, -, , )
closeButton.BackgroundColor3 = .(, , )
closeButton.Text =
closeButton.TextColor3 = .(, , )
closeButton.TextScaled =
closeButton.Font = .Font.GothamBold
closeButton.BorderSizePixel =
closeButton.Parent = mainFrame
closeCorner = .()
closeCorner.CornerRadius = .(, )
closeCorner.Parent = closeButton
speedLabel = .()
speedLabel.Size = .(, , , )
speedLabel.Position = .(, , , )
speedLabel.BackgroundTransparency =
speedLabel.Text =
speedLabel.TextColor3 = .(, , )
speedLabel.TextScaled =
speedLabel.Font = .Font.Gotham
speedLabel.Parent = mainFrame
speedBox = .()
speedBox.Size = .(, , , )
speedBox.Position = .(, , , )
speedBox.BackgroundColor3 = .(, , )
speedBox.Text = (spinSpeed)
speedBox.TextColor3 = .(, , )
speedBox.TextScaled =
speedBox.Font = .Font.Gotham
speedBox.BorderSizePixel =
speedBox.ClearTextOnFocus =
speedBox.Parent = mainFrame
speedCorner = .()
speedCorner.CornerRadius = .(, )
speedCorner.Parent = speedBox
nameLabel = .()
nameLabel.Size = .(, , , )
nameLabel.Position = .(, , , )
nameLabel.BackgroundTransparency =
nameLabel.Text =
nameLabel.TextColor3 = .(, , )
nameLabel.TextScaled =
nameLabel.Font = .Font.Gotham
nameLabel.Parent = mainFrame
nameBox = .()
nameBox.Size = .(, , , )
nameBox.Position = .(, , , )
nameBox.BackgroundColor3 = .(, , )
nameBox.Text = spinButtonText
nameBox.TextColor3 = .(, , )
nameBox.TextScaled =
nameBox.Font = .Font.Gotham
nameBox.BorderSizePixel =
nameBox.ClearTextOnFocus =
nameBox.Parent = mainFrame
nameCorner = .()
nameCorner.CornerRadius = .(, )
nameCorner.Parent = nameBox
directionButton = .()
directionButton.Size = .(, , , )
directionButton.Position = .(, , , )
directionButton.BackgroundColor3 = .(, , )
directionButton.Text =
directionButton.TextColor3 = .(, , )
directionButton.TextScaled =
directionButton.Font = .Font.GothamBold
directionButton.BorderSizePixel =
directionButton.Parent = mainFrame
directionCorner = .()
directionCorner.CornerRadius = .(, )
directionCorner.Parent = directionButton
axisButton = .()
axisButton.Size = .(, , , )
axisButton.Position = .(, , , )
axisButton.BackgroundColor3 = .(, , )
axisButton.Text =
axisButton.TextColor3 = .(, , )
axisButton.TextScaled =
axisButton.Font = .Font.GothamBold
axisButton.BorderSizePixel =
axisButton.Parent = mainFrame
axisCorner = .()
axisCorner.CornerRadius = .(, )
axisCorner.Parent = axisButton
applyButton = .()
applyButton.Size = .(, , , )
applyButton.Position = .(, , , )
applyButton.BackgroundColor3 = .(, , )
applyButton.Text =
applyButton.TextColor3 = .(, , )
applyButton.TextScaled =
applyButton.Font = .Font.GothamBold
applyButton.BorderSizePixel =
applyButton.Parent = mainFrame
applyCorner = .()
applyCorner.CornerRadius = .(, )
applyCorner.Parent = applyButton
spinButton = .()
spinButton.Size = .(, , , )
spinButton.Position = .(, , , )
spinButton.BackgroundColor3 = .(, , )
spinButton.Text = spinButtonText
spinButton.TextColor3 = .(, , )
spinButton.TextScaled =
spinButton.Font = .Font.GothamBold
spinButton.BorderSizePixel =
spinButton.Parent = mainFrame
spinCorner = .()
spinCorner.CornerRadius = .(, )
spinCorner.Parent = spinButton
smallButton = .()
smallButton.Size = .(, , , )
smallButton.Position = .(, , , -)
smallButton.BackgroundColor3 = .(, , )
smallButton.Text = smallButtonText
smallButton.TextColor3 = .(, , )
smallButton.TextScaled =
smallButton.Font = .Font.GothamBold
smallButton.BorderSizePixel =
smallButton.Visible =
smallButton.Active =
smallButton.Parent = screenGui
smallCorner = .()
smallCorner.CornerRadius = .(, )
smallCorner.Parent = smallButton
()
character = player.Character player.CharacterAdded:()
humanoidRootPart = character:()
player.CharacterAdded:(()
.()
()
)
(speed)
amount = .(speed) * spinDirection
spinAxis ==
.(amount, , )
spinAxis ==
.(, , amount)
.(, amount, )
()
spinning
spinning =
spinConnection = RunService.RenderStepped:(()
spinning
humanoidRootPart humanoidRootPart.Parent
speed = (speedBox.Text) spinSpeed
humanoidRootPart.CFrame = humanoidRootPart.CFrame * (speed)
)
()
spinning =
spinConnection
spinConnection:()
spinConnection =
directionButton.MouseButton1Click:(()
spinDirection = (spinDirection == ) -
spinDirection ==
directionButton.Text =
directionButton.Text =
)
axisButton.MouseButton1Click:(()
spinAxis ==
spinAxis =
axisButton.Text =
spinAxis ==
spinAxis =
axisButton.Text =
spinAxis =
axisButton.Text =
)
applyButton.MouseButton1Click:(()
nameBox.Text ~=
spinButton.Text = nameBox.Text
spinButton.Text = spinButtonText
)
spinButton.MouseButton1Click:(()
spinning
()
spinButton.Text = nameBox.Text ~= nameBox.Text spinButtonText
spinButton.BackgroundColor3 = .(, , )
spinButton.Text =
spinButton.BackgroundColor3 = .(, , )
()
)
hideButton.MouseButton1Click:(()
mainFrame.Visible =
smallButton.Visible =
)
smallButton.MouseButton1Click:(()
mainFrame.Visible =
smallButton.Visible =
)
closeButton.MouseButton1Click:(()
()
screenGui:()
)
(guiObject)
dragging =
dragInput
dragStart
startPos
guiObject.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = guiObject.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
guiObject.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch
dragInput = input
)
UserInputService.InputChanged:((input)
input == dragInput dragging
delta = input.Position - dragStart
guiObject.Position = .(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
)
(mainFrame)
(smallButton)-- Simple Mobile-Friendly Spin GUI -- Open Source | Credit: Me -- Features: -- • Spin your character on X, Y, or Z axis -- • Adjustable speed & direction -- • Mobile & PC draggable GUI -- • Toggle spin on/off -- • Minimal & user-friendly design -- Usage: Place this LocalScript in StarterPlayerScripts or StarterGui

Universal