Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
Debris = :()
UserInputService = :()
TextChatService = :()
(message)
TextChatService.ChatVersion == .ChatVersion.TextChatService
textChannel = TextChatService.TextChannels:()
textChannel
textChannel:(message)
:().DefaultChatSystemChatEvents.SayMessageRequest:(message, )
player = Players.LocalPlayer
(targetPlayer, maxAngle)
maxAngle = maxAngle
targetPlayer.Character
targetHRP = targetPlayer.Character:()
targetHRP
targetLook = targetHRP.CFrame.LookVector
closest =
closestDist = .huge
_, p (Players:())
p ~= player p ~= targetPlayer p.Character
hrp = p.Character:()
hrp
difference = hrp.Position - targetHRP.Position
difference.Magnitude >
vec = difference.Unit
dot = .(targetLook:(vec), -, )
angle = .(.(dot))
angle <= maxAngle
dist = difference.Magnitude
dist < closestDist
closestDist = dist
closest = hrp
closest
character = player.Character player.CharacterAdded:()
humanoidRootPart = character:()
humanoid = character:() character:()
standDistance =
sideOffset =
heightOffset =
followSpeed =
flingDuration =
followDuration =
punchSoundId =
heavyPunchSoundId =
summonSoundIds = {
,
}
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
screenGui.Parent = player:()
JOJO_BLACK = .(, , )
JOJO_PURPLE = .(, , )
JOJO_DARK_PURPLE = .(, , )
JOJO_PURPLE_BLUE = .(, , )
JOJO_GOLD = .(, , )
JOJO_WHITE = .(, , )
JOJO_RED = .(, , )
MENACING_IMAGE =
STAR_PLATINUM_IMAGE =
mainFrame = .()
mainFrame.Name =
mainFrame.Size = .(, , , )
mainFrame.Position = .(, , , -)
mainFrame.BackgroundColor3 = JOJO_BLACK
mainFrame.BorderSizePixel =
mainFrame.ClipsDescendants =
mainFrame.ZIndex =
mainFrame.Parent = screenGui
mainCorner = .()
mainCorner.CornerRadius = .(, )
mainCorner.Parent = mainFrame
border = .()
border.Color = JOJO_PURPLE
border.Thickness =
border.Parent = mainFrame
innerBorder = .()
innerBorder.Color = JOJO_GOLD
innerBorder.Thickness =
innerBorder.Transparency =
innerBorder.Parent = mainFrame
standImage = .()
standImage.Name =
standImage.Size = .(, , , )
standImage.Position = .(, -, , )
standImage.BackgroundTransparency =
standImage.Image = STAR_PLATINUM_IMAGE
standImage.ScaleType = .ScaleType.Fit
standImage.ImageTransparency =
standImage.Active =
standImage.ZIndex =
standImage.Parent = mainFrame
standGlow = .()
standGlow.Name =
standGlow.Size = .(, , , )
standGlow.Position = .(, -, , -)
standGlow.BackgroundTransparency =
standGlow.Image = STAR_PLATINUM_IMAGE
standGlow.ImageColor3 = JOJO_PURPLE
standGlow.ImageTransparency =
standGlow.ScaleType = .ScaleType.Fit
standGlow.Active =
standGlow.ZIndex =
standGlow.Parent = mainFrame
(name, size, position, rotation, transparency)
img = .()
img.Name = name
img.Size = size
img.Position = position
img.BackgroundTransparency =
img.Image = MENACING_IMAGE
img.ImageTransparency = transparency
img.Rotation = rotation
img.ScaleType = .ScaleType.Fit
img.Active =
img.ZIndex =
img.Parent = mainFrame
img
(
,
.(, , , ),
.(, -, , -),
-,
)
(
,
.(, , , ),
.(, , , -),
,
)
(
,
.(, , , ),
.(, , , -),
,
)
(
,
.(, , , ),
.(, -, , ),
-,
)
(
,
.(, , , ),
.(, -, , -),
,
)
(
,
.(, , , ),
.(, , , -),
-,
)
(
,
.(, , , ),
.(, , , -),
,
)
topBar = .()
topBar.Size = .(, , , )
topBar.Position = .(, , , )
topBar.BackgroundColor3 = JOJO_PURPLE
topBar.BorderSizePixel =
topBar.ZIndex =
topBar.Parent = mainFrame
goldBar = .()
goldBar.Size = .(, -, , )
goldBar.Position = .(, , , )
goldBar.BackgroundColor3 = JOJO_GOLD
goldBar.BackgroundTransparency =
goldBar.BorderSizePixel =
goldBar.ZIndex =
goldBar.Parent = mainFrame
sideBar = .()
sideBar.Size = .(, , , -)
sideBar.Position = .(, , , )
sideBar.BackgroundColor3 = JOJO_GOLD
sideBar.BorderSizePixel =
sideBar.ZIndex =
sideBar.Parent = mainFrame
title = .()
title.Size = .(, -, , )
title.Position = .(, , , )
title.BackgroundTransparency =
title.Text =
title.TextColor3 = JOJO_GOLD
title.Font = .Font.GothamBlack
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
title.ZIndex =
title.Parent = mainFrame
subtitle = .()
subtitle.Size = .(, -, , )
subtitle.Position = .(, , , )
subtitle.BackgroundTransparency =
subtitle.Text =
subtitle.TextColor3 = JOJO_WHITE
subtitle.TextTransparency =
subtitle.Font = .Font.GothamBold
subtitle.TextSize =
subtitle.TextXAlignment = .TextXAlignment.Left
subtitle.ZIndex =
subtitle.Parent = mainFrame
closeBtn = .()
closeBtn.Size = .(, , , )
closeBtn.Position = .(, -, , )
closeBtn.Text =
closeBtn.Font = .Font.GothamBlack
closeBtn.TextSize =
closeBtn.TextColor3 = JOJO_WHITE
closeBtn.BackgroundColor3 = JOJO_DARK_PURPLE
closeBtn.BorderSizePixel =
closeBtn.ZIndex =
closeBtn.Parent = mainFrame
closeCorner = .()
closeCorner.CornerRadius = .(, )
closeCorner.Parent = closeBtn
closeStroke = .()
closeStroke.Color = JOJO_RED
closeStroke.Thickness =
closeStroke.Parent = closeBtn
divider = .()
divider.Size = .(, -, , )
divider.Position = .(, , , )
divider.BackgroundColor3 = JOJO_PURPLE
divider.BorderSizePixel =
divider.ZIndex =
divider.Parent = mainFrame
guiToggle = .()
guiToggle.Size = .(, , , )
guiToggle.Position = .(, -, , -)
guiToggle.Text =
guiToggle.Font = .Font.GothamBlack
guiToggle.TextSize =
guiToggle.TextColor3 = JOJO_GOLD
guiToggle.BackgroundColor3 = JOJO_BLACK
guiToggle.BorderSizePixel =
guiToggle.ZIndex =
guiToggle.Parent = screenGui
toggleCorner = .()
toggleCorner.CornerRadius = .(, )
toggleCorner.Parent = guiToggle
toggleStroke = .()
toggleStroke.Color = JOJO_PURPLE
toggleStroke.Thickness =
toggleStroke.Parent = guiToggle
guiVisible =
guiToggle.MouseButton1Click:(()
guiVisible = guiVisible
mainFrame.Visible = guiVisible
)
closeBtn.MouseButton1Click:(()
mainFrame.Visible =
guiVisible =
)
(text, y)
b = .()
b.Size = .(, , , )
b.Position = .(, , , y)
b.Text = .. text ..
b.Font = .Font.GothamBlack
b.TextSize =
b.TextColor3 = JOJO_WHITE
b.BackgroundColor3 = JOJO_DARK_PURPLE
b.BorderSizePixel =
b.AutoButtonColor =
b.ZIndex =
b.Parent = mainFrame
corner = .()
corner.CornerRadius = .(, )
corner.Parent = b
stroke = .()
stroke.Color = JOJO_PURPLE
stroke.Thickness =
stroke.Parent = b
b.MouseEnter:(()
b.BackgroundColor3 = JOJO_PURPLE
b.TextColor3 = JOJO_GOLD
stroke.Color = JOJO_GOLD
)
b.MouseLeave:(()
b.BackgroundColor3 = JOJO_DARK_PURPLE
b.TextColor3 = JOJO_WHITE
stroke.Color = JOJO_PURPLE
)
b
standBtn = (, )
targetBox = .()
targetBox.Size = .(, , , )
targetBox.Position = .(, , , )
targetBox.PlaceholderText =
targetBox.ClearTextOnFocus =
targetBox.Font = .Font.GothamBold
targetBox.TextSize =
targetBox.BackgroundColor3 = JOJO_DARK_PURPLE
targetBox.TextColor3 = JOJO_WHITE
targetBox.PlaceholderColor3 = .(, , )
targetBox.BorderSizePixel =
targetBox.ZIndex =
targetBox.Parent = mainFrame
targetCorner = .()
targetCorner.CornerRadius = .(, )
targetCorner.Parent = targetBox
targetStroke = .()
targetStroke.Color = JOJO_PURPLE
targetStroke.Thickness =
targetStroke.Parent = targetBox
targetBox.Focused:(()
targetStroke.Color = JOJO_GOLD
)
targetBox.FocusLost:(()
targetStroke.Color = JOJO_PURPLE
)
punchBtn = (, )
(labelText, y, default, min, max, callback)
lbl = .()
lbl.Size = .(, , , )
lbl.Position = .(, , , y)
lbl.BackgroundTransparency =
lbl.Text = labelText .. .. (default)
lbl.TextColor3 = JOJO_GOLD
lbl.Font = .Font.GothamBold
lbl.TextSize =
lbl.TextXAlignment = .TextXAlignment.Left
lbl.ZIndex =
lbl.Parent = mainFrame
box = .()
box.Size = .(, , , )
box.Position = .(, , , y + )
box.Text = (default)
box.ClearTextOnFocus =
box.BackgroundColor3 = JOJO_DARK_PURPLE
box.TextColor3 = JOJO_WHITE
box.Font = .Font.GothamBold
box.TextSize =
box.BorderSizePixel =
box.ZIndex =
box.Parent = mainFrame
corner = .()
corner.CornerRadius = .(, )
corner.Parent = box
stroke = .()
stroke.Color = JOJO_PURPLE
stroke.Thickness =
stroke.Parent = box
box.Focused:(()
stroke.Color = JOJO_GOLD
)
box.FocusLost:(()
stroke.Color = JOJO_PURPLE
num = (box.Text)
num
num = .(num, min, max)
box.Text = (num)
lbl.Text = labelText .. .. (num)
(num)
box.Text = (default)
)
box, lbl
posBox, posLabel = (
,
,
standDistance,
,
,
(v)
standDistance = v
)
offBox, offLabel = (
,
,
sideOffset,
-,
,
(v)
sideOffset = v
)
heightBox, heightLabel = (
,
,
heightOffset,
,
,
(v)
heightOffset = v
)
dragging =
dragStart = .()
startPos = mainFrame.Position
mainFrame.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
input.Target == closeBtn
input.Target == guiToggle
input.Target == targetBox
input.Target == standBtn
input.Target == punchBtn
input.Target == posBox
input.Target == offBox
input.Target == heightBox
dragging =
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
RunService.RenderStepped:(()
dragging
mousePos = UserInputService:()
delta = mousePos - dragStart
newX = .(
startPos.X.Offset + delta.X,
,
.CurrentCamera.ViewportSize.X - mainFrame.Size.X.Offset
)
newY = .(
startPos.Y.Offset + delta.Y,
,
.CurrentCamera.ViewportSize.Y - mainFrame.Size.Y.Offset
)
mainFrame.Position = .(, newX, , newY)
)
(namePart)
namePart namePart ==
namePart = namePart:()
_, p (Players:())
p ~= player p.Name:():(namePart)
p
standOn =
bp, gyro = ,
floatTime =
vanished =
savedCharacterCFrame =
savedCameraSubject =
VANISH_HEIGHT =
BLOCK_DISTANCE =
blocking =
()
_, part (character:())
part:()
part.CanCollide =
bp
bp = .()
bp.MaxForce = .(, , )
bp.P =
bp.D =
bp.Position = humanoidRootPart.Position
bp.Parent = humanoidRootPart
gyro
gyro = .()
gyro.P =
gyro.D =
gyro.MaxTorque = .(, , )
gyro.CFrame = humanoidRootPart.CFrame
gyro.Parent = humanoidRootPart
()
_, part (character:())
part:()
part.CanCollide =
bp
bp:()
bp =
gyro
gyro:()
gyro =
standBtn.MouseButton1Click:(()
standOn = standOn
standBtn.Text = standOn
standOn
()
t = (targetBox.Text)
t t.Character t.Character:()
_, id (summonSoundIds)
summon = .(, humanoidRootPart)
summon.SoundId = id
summon.Volume =
summon:()
Debris:(summon, )
(
)
blocking =
()
)
RunService.RenderStepped:((dt)
standOn bp gyro targetBox.Text ~=
vanished savedCharacterCFrame
bp.Position = .(
savedCharacterCFrame.Position.X,
VANISH_HEIGHT,
savedCharacterCFrame.Position.Z
)
gyro.CFrame = .(
bp.Position,
bp.Position + savedCharacterCFrame.LookVector
)
floatTime += dt *
floatOffset = .(floatTime) *
t = (targetBox.Text)
t t.Character t.Character:()
targetHRP = t.Character.HumanoidRootPart
tcf = targetHRP.CFrame
desiredPos
blocking
desiredPos =
tcf.Position
+ tcf.LookVector * BLOCK_DISTANCE
+ .(, heightOffset, )
desiredPos =
tcf.Position
- tcf.LookVector * standDistance
+ tcf.RightVector * sideOffset
+ .(, heightOffset + floatOffset, )
bp.Position = bp.Position:(
desiredPos,
.(followSpeed, , )
)
gyro.CFrame = .(
humanoidRootPart.Position,
humanoidRootPart.Position + tcf.LookVector
)
)
(duration)
start = ()
movel =
() - start < duration
RunService.Heartbeat:()
c = player.Character
hrp = c c:()
hrp
vel = hrp.Velocity
hrp.Velocity =
vel *
+ .(, , )
RunService.RenderStepped:()
hrp.Velocity = vel
RunService.Stepped:()
hrp.Velocity =
vel
+ .(, movel, )
movel = -movel
()
punchAnim = .()
punchAnim.AnimationId =
punchTrack = humanoid:(punchAnim)
punchTrack.Priority = .AnimationPriority.Action
punchTrack:()
.(, ()
punchTrack
punchTrack:()
punchTrack:()
)
targetPlayer = (targetBox.Text)
targetPlayer targetPlayer.Character
targetHRP =
targetPlayer.Character:()
targetHRP
()
nearest = (targetPlayer)
nearest
wasStandOn = standOn
wasStandOn
standOn =
standBtn.Text =
()
humanoidRootPart.CFrame =
.(nearest.Position + .(, , ))
tempBP = .()
tempBP.MaxForce = .(, , )
tempBP.P =
tempBP.D =
tempBP.Position = nearest.Position
tempBP.Parent = humanoidRootPart
tempGyro = .()
tempGyro.MaxTorque = .(, , )
tempGyro.P =
tempGyro.D =
tempGyro.CFrame = humanoidRootPart.CFrame
tempGyro.Parent = humanoidRootPart
followConnection
followConnection = RunService.RenderStepped:(()
(
tempBP
tempGyro
nearest
nearest.Parent
)
tempBP.Position = nearest.Position
lookVec = nearest.CFrame.LookVector
tempGyro.CFrame =
.(
humanoidRootPart.Position,
humanoidRootPart.Position + lookVec
)
)
.(followDuration, ()
followConnection
followConnection:()
followConnection =
tempBP
tempBP:()
tempBP =
tempGyro
tempGyro:()
tempGyro =
)
effect = .()
effect.Saturation = -
effect.Parent = .Lighting
s = .(, humanoidRootPart)
s.SoundId = punchSoundId
s.Volume =
s:()
Debris:(s, )
.(, ()
s2 = .(, humanoidRootPart)
s2.SoundId = heavyPunchSoundId
s2.Volume =
s2:()
Debris:(s2, )
)
.(()
(flingDuration)
)
.(flingDuration + , ()
followConnection
followConnection:()
followConnection =
tempBP
tempBP:()
tempBP =
tempGyro
tempGyro:()
tempGyro =
effect effect.Parent
effect:()
wasStandOn
standOn =
standBtn.Text =
()
bp
bp.Position = humanoidRootPart.Position
)
punchBtn.MouseButton1Click:(punchTarget)
(otherPlayer, message)
targetName = targetBox.Text
targetName targetName ==
lowerMessage = message:()
targetMatches =
otherPlayer.Name:():(targetName:())
targetMatches
standOn lowerMessage:()
()
lowerMessage:()
standOn
vanished
blocking
blocking =
()
lowerMessage:()
standOn
blocking
blocking =
()
lowerMessage:()
standOn
vanished
vanished =
savedCharacterCFrame =
humanoidRootPart.CFrame
camera = .CurrentCamera
savedCameraSubject = camera.CameraSubject
humanoidRootPart.CFrame =
.(
humanoidRootPart.Position.X,
VANISH_HEIGHT,
humanoidRootPart.Position.Z
)
target =
(targetBox.Text)
target target.Character
targetHumanoid =
target.Character:()
targetHumanoid
camera.CameraSubject = targetHumanoid
()
lowerMessage:()
blocking
blocking =
vanished
vanished =
savedCharacterCFrame
humanoidRootPart
humanoidRootPart.Parent
humanoidRootPart.CFrame =
savedCharacterCFrame
camera = .CurrentCamera
humanoid
camera.CameraSubject = humanoid
savedCameraSubject
camera.CameraSubject = savedCameraSubject
savedCharacterCFrame =
savedCameraSubject =
()
standOn = standOn
standBtn.Text =
standOn
standOn
()
t =
(targetBox.Text)
t
t.Character
t.Character:()
_, id (summonSoundIds)
summon =
.(, humanoidRootPart)
summon.SoundId = id
summon.Volume =
summon:()
Debris:(summon, )
()
()
_, p (Players:())
p ~= player
p.Chatted:((msg)
(p, msg)
)
Players.PlayerAdded:((p)
p ~= player
p.Chatted:((msg)
(p, msg)
)
)
player.CharacterAdded:((char)
character = char
humanoidRootPart =
character:()
humanoid =
character:()
character:()
vanished
vanished =
savedCharacterCFrame =
savedCameraSubject =
camera = .CurrentCamera
camera.CameraSubject = humanoid
()
standOn =
blocking =
standBtn.Text =
)
levitateIdle = .()
levitateIdle.AnimationId =
moveAnim = .()
moveAnim.AnimationId =
levitateTrack
moveTrack
()
humanoid levitateTrack
levitateTrack =
humanoid:(levitateIdle)
levitateTrack.Priority =
.AnimationPriority.Idle
levitateTrack.Looped =
levitateTrack:()
()
levitateTrack
levitateTrack:()
levitateTrack:()
levitateTrack =
()
humanoid moveTrack
moveTrack =
humanoid:(moveAnim)
moveTrack.Priority =
.AnimationPriority.Movement
moveTrack.Looped =
moveTrack:()
()
moveTrack
moveTrack:()
moveTrack:()
moveTrack =
RunService.RenderStepped:((dt)
standOn
target =
(targetBox.Text)
target
target.Character
target.Character:()
targetHumanoid =
target.Character:()
targetHumanoid
targetHumanoid.MoveDirection.Magnitude >
()
()
()
()
()
()
()
()
)
Players = :()
UserInputService = :()
RunService = :()
player = Players.LocalPlayer
noclip =
(enabled)
noclip = enabled
UserInputService.InputBegan:((input, gameProcessed)
gameProcessed
input.KeyCode == .KeyCode.N
( noclip)
(, noclip )
)
RunService.Stepped:(()
noclip
character = player.Character
character
_, part (character:())
part:()
part.CanCollide =
)⭐ JoJo Stand Controller — Star Platinum -pls give me your honest opinion on this script so i know what to add or fix- ALSO [THE WORLD] VERSION IS OUT ON MY PROFILE Original script by [GuestEZQ](https://scriptblox.com/u/GuestEZQ) This version has been tweaked and modified by me. All credit for the original script goes to GuestEZQ. A JoJo-inspired Stand Controller with target following, blocking, vanish/summon, barrage, animations, sounds, and a [REDACTED] GUI. 🎮 How to Use 1. Execute the script. 2. Enter the **target player's name** in the Target Name box. 3. Press **Stand: OFF** to activate the Stand. 4. The Stand will automatically follow the selected player. 💬 Chat Commands Type these commands in chat: `SUMMON` — Summons/activates the Stand. `VANISH` — Sends your character high into the sky while your camera follows the target. `SUMMON` — Returns your character after VANISH. `BARRAGE` — Performs the Skull Crusher/Barrage attack. `BLOCK` — Moves the Stand in front of the target. `UNBLOCK` — Stops blocking. 👊 Skull Crusher Use the **ORA! ORA!** button in the GUI to perform the attack. Includes: Punch animation ORA! ORA! ORA! voice line Punch sound effects Fling ef

Universal