
Key RequiredUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Debris = game:GetService("Debris")
local UserInputService = game:GetService("UserInputService")
local TextChatService = game:GetService("TextChatService")
local function SendChatMessage(message)
if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
local textChannel = TextChatService.TextChannels:FindFirstChild("RBXGeneral")
if textChannel then
textChannel:SendAsync(message)
end
else
game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(message, "All")
end
end
local player = Players.LocalPlayer
local function GetNearestPlayerInFront(targetPlayer, maxAngle)
maxAngle = maxAngle or 60
if not targetPlayer.Character then return nil end
local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if not targetHRP then return nil end
local targetLook = targetHRP.CFrame.LookVector
local closest = nil
local closestDist = math.huge
for _, p in pairs(Players:GetPlayers()) do
if p ~= player and p ~= targetPlayer and p.Character then
local hrp = p.Character:FindFirstChild("HumanoidRootPart")
if hrp then
local difference = hrp.Position - targetHRP.Position
if difference.Magnitude > 0 then
local vec = difference.Unit
local dot = math.clamp(targetLook:Dot(vec), -1, 1)
local angle = math.deg(math.acos(dot))
if angle <= maxAngle then
local dist = difference.Magnitude
if dist < closestDist then
closestDist = dist
closest = hrp
end
end
end
end
end
end
return closest
end
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:FindFirstChildOfClass("Humanoid") or character:WaitForChild("Humanoid")
local standDistance = 3
local sideOffset = 2
local heightOffset = 2
local followSpeed = 0.35
local flingDuration = 1
local followDuration = 0.6
local punchSoundId = "rbxassetid://6186250072"
local heavyPunchSoundId = "rbxassetid://6164853733"
local summonSoundIds = {
"rbxassetid://2102274452",
"rbxassetid://2554017604"
}
--JOJO STAND CONTROLLER GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "StandControllerGUI"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = player:WaitForChild("PlayerGui")
-- Star Platinum themed colors
local JOJO_BLACK = Color3.fromRGB(8, 5, 15)
local JOJO_PURPLE = Color3.fromRGB(91, 35, 145)
local JOJO_DARK_PURPLE = Color3.fromRGB(28, 12, 48)
local JOJO_PURPLE_BLUE = Color3.fromRGB(65, 50, 135)
local JOJO_GOLD = Color3.fromRGB(255, 205, 75)
local JOJO_WHITE = Color3.fromRGB(245, 240, 255)
local JOJO_RED = Color3.fromRGB(190, 35, 55)
-- Image assets supplied for the GUI
local MENACING_IMAGE = "rbxassetid://6252277153"
local STAR_PLATINUM_IMAGE = "rbxassetid://5471971645"
-- Main frame
local mainFrame = Instance.new("Frame")
mainFrame.Name = "StarPlatinumController"
mainFrame.Size = UDim2.new(0, 220, 0, 310)
mainFrame.Position = UDim2.new(0.05, 0, 0.5, -155)
mainFrame.BackgroundColor3 = JOJO_BLACK
mainFrame.BorderSizePixel = 0
-- IMPORTANT: false lets the decorative images extend outside the GUI.
mainFrame.ClipsDescendants = false
mainFrame.ZIndex = 5
mainFrame.Parent = screenGui
local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 14)
mainCorner.Parent = mainFrame
local border = Instance.new("UIStroke")
border.Color = JOJO_PURPLE
border.Thickness = 3
border.Parent = mainFrame
-- Gold inner outline
local innerBorder = Instance.new("UIStroke")
innerBorder.Color = JOJO_GOLD
innerBorder.Thickness = 1
innerBorder.Transparency = 0.2
innerBorder.Parent = mainFrame
--STAR PLATINUM STAND DISPLAY
--This is attached to the GUI, so it follows the GUI when dragged.
local standImage = Instance.new("ImageLabel")
standImage.Name = "StarPlatinum"
standImage.Size = UDim2.new(0, 245, 0, 300)
standImage.Position = UDim2.new(0, -155, 0, 5)
standImage.BackgroundTransparency = 1
standImage.Image = STAR_PLATINUM_IMAGE
standImage.ScaleType = Enum.ScaleType.Fit
standImage.ImageTransparency = 0
standImage.Active = false
standImage.ZIndex = 1
standImage.Parent = mainFrame
-- Soft purple glow behind Star Platinum
local standGlow = Instance.new("ImageLabel")
standGlow.Name = "StandGlow"
standGlow.Size = UDim2.new(0, 270, 0, 320)
standGlow.Position = UDim2.new(0, -170, 0, -10)
standGlow.BackgroundTransparency = 1
standGlow.Image = STAR_PLATINUM_IMAGE
standGlow.ImageColor3 = JOJO_PURPLE
standGlow.ImageTransparency = 0.82
standGlow.ScaleType = Enum.ScaleType.Fit
standGlow.Active = false
standGlow.ZIndex = 0
standGlow.Parent = mainFrame
--MENACING DECORATIONS
--Multiple copies are placed around the controller
local function addMenacing(name, size, position, rotation, transparency)
local img = Instance.new("ImageLabel")
img.Name = name
img.Size = size
img.Position = position
img.BackgroundTransparency = 1
img.Image = MENACING_IMAGE
img.ImageTransparency = transparency or 0
img.Rotation = rotation or 0
img.ScaleType = Enum.ScaleType.Fit
img.Active = false
img.ZIndex = 0
img.Parent = mainFrame
return img
end
addMenacing(
"MenacingTopLeft",
UDim2.new(0, 105, 0, 75),
UDim2.new(0, -78, 0, -48),
-12,
0.05
)
addMenacing(
"MenacingTop",
UDim2.new(0, 100, 0, 70),
UDim2.new(0, 58, 0, -58),
8,
0.05
)
addMenacing(
"MenacingTopRight",
UDim2.new(0, 100, 0, 70),
UDim2.new(1, 5, 0, -45),
15,
0.05
)
addMenacing(
"MenacingLeft",
UDim2.new(0, 90, 0, 65),
UDim2.new(0, -72, 0, 125),
-10,
0.1
)
addMenacing(
"MenacingBottomLeft",
UDim2.new(0, 105, 0, 75),
UDim2.new(0, -65, 1, -25),
12,
0.05
)
addMenacing(
"MenacingBottom",
UDim2.new(0, 95, 0, 68),
UDim2.new(0, 70, 1, -18),
-8,
0.05
)
addMenacing(
"MenacingRight",
UDim2.new(0, 100, 0, 70),
UDim2.new(1, 5, 1, -70),
10,
0.08
)
--GUI PANEL DETAILS
-- Top bar
local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1, 0, 0, 6)
topBar.Position = UDim2.new(0, 0, 0, 0)
topBar.BackgroundColor3 = JOJO_PURPLE
topBar.BorderSizePixel = 0
topBar.ZIndex = 6
topBar.Parent = mainFrame
-- Gold accent line
local goldBar = Instance.new("Frame")
goldBar.Size = UDim2.new(1, -18, 0, 2)
goldBar.Position = UDim2.new(0, 9, 0, 57)
goldBar.BackgroundColor3 = JOJO_GOLD
goldBar.BackgroundTransparency = 0.25
goldBar.BorderSizePixel = 0
goldBar.ZIndex = 7
goldBar.Parent = mainFrame
-- Side bar
local sideBar = Instance.new("Frame")
sideBar.Size = UDim2.new(0, 4, 1, -6)
sideBar.Position = UDim2.new(0, 0, 0, 6)
sideBar.BackgroundColor3 = JOJO_GOLD
sideBar.BorderSizePixel = 0
sideBar.ZIndex = 6
sideBar.Parent = mainFrame
-- Title
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -55, 0, 30)
title.Position = UDim2.new(0, 15, 0, 9)
title.BackgroundTransparency = 1
title.Text = "「 STAR PLATINUM 」"
title.TextColor3 = JOJO_GOLD
title.Font = Enum.Font.GothamBlack
title.TextSize = 17
title.TextXAlignment = Enum.TextXAlignment.Left
title.ZIndex = 7
title.Parent = mainFrame
-- Subtitle
local subtitle = Instance.new("TextLabel")
subtitle.Size = UDim2.new(1, -20, 0, 18)
subtitle.Position = UDim2.new(0, 15, 0, 35)
subtitle.BackgroundTransparency = 1
subtitle.Text = "ORA ORA • STAND CONTROL"
subtitle.TextColor3 = JOJO_WHITE
subtitle.TextTransparency = 0.08
subtitle.Font = Enum.Font.GothamBold
subtitle.TextSize = 9
subtitle.TextXAlignment = Enum.TextXAlignment.Left
subtitle.ZIndex = 7
subtitle.Parent = mainFrame
-- Close button
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 27)
closeBtn.Position = UDim2.new(1, -39, 0, 10)
closeBtn.Text = "X"
closeBtn.Font = Enum.Font.GothamBlack
closeBtn.TextSize = 14
closeBtn.TextColor3 = JOJO_WHITE
closeBtn.BackgroundColor3 = JOJO_DARK_PURPLE
closeBtn.BorderSizePixel = 0
closeBtn.ZIndex = 10
closeBtn.Parent = mainFrame
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 7)
closeCorner.Parent = closeBtn
local closeStroke = Instance.new("UIStroke")
closeStroke.Color = JOJO_RED
closeStroke.Thickness = 1.5
closeStroke.Parent = closeBtn
-- Divider
local divider = Instance.new("Frame")
divider.Size = UDim2.new(1, -28, 0, 2)
divider.Position = UDim2.new(0, 14, 0, 59)
divider.BackgroundColor3 = JOJO_PURPLE
divider.BorderSizePixel = 0
divider.ZIndex = 7
divider.Parent = mainFrame
-- GUI toggle
local guiToggle = Instance.new("TextButton")
guiToggle.Size = UDim2.new(0, 68, 0, 30)
guiToggle.Position = UDim2.new(0.5, -34, 1, -42)
guiToggle.Text = "「 GUI 」"
guiToggle.Font = Enum.Font.GothamBlack
guiToggle.TextSize = 12
guiToggle.TextColor3 = JOJO_GOLD
guiToggle.BackgroundColor3 = JOJO_BLACK
guiToggle.BorderSizePixel = 0
guiToggle.ZIndex = 20
guiToggle.Parent = screenGui
local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 8)
toggleCorner.Parent = guiToggle
local toggleStroke = Instance.new("UIStroke")
toggleStroke.Color = JOJO_PURPLE
toggleStroke.Thickness = 2
toggleStroke.Parent = guiToggle
local guiVisible = true
guiToggle.MouseButton1Click:Connect(function()
guiVisible = not guiVisible
mainFrame.Visible = guiVisible
end)
closeBtn.MouseButton1Click:Connect(function()
mainFrame.Visible = false
guiVisible = false
end)
-- Button creator
local function makeButton(text, y)
local b = Instance.new("TextButton")
b.Size = UDim2.new(0.78, 0, 0, 36)
b.Position = UDim2.new(0.11, 0, 0, y)
b.Text = "「 " .. text .. " 」"
b.Font = Enum.Font.GothamBlack
b.TextSize = 13
b.TextColor3 = JOJO_WHITE
b.BackgroundColor3 = JOJO_DARK_PURPLE
b.BorderSizePixel = 0
b.AutoButtonColor = false
b.ZIndex = 10
b.Parent = mainFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 9)
corner.Parent = b
local stroke = Instance.new("UIStroke")
stroke.Color = JOJO_PURPLE
stroke.Thickness = 2
stroke.Parent = b
b.MouseEnter:Connect(function()
b.BackgroundColor3 = JOJO_PURPLE
b.TextColor3 = JOJO_GOLD
stroke.Color = JOJO_GOLD
end)
b.MouseLeave:Connect(function()
b.BackgroundColor3 = JOJO_DARK_PURPLE
b.TextColor3 = JOJO_WHITE
stroke.Color = JOJO_PURPLE
end)
return b
end
local standBtn = makeButton("STAND: OFF", 68)
local targetBox = Instance.new("TextBox")
targetBox.Size = UDim2.new(0.78, 0, 0, 36)
targetBox.Position = UDim2.new(0.11, 0, 0, 112)
targetBox.PlaceholderText = "ENTER TARGET NAME"
targetBox.ClearTextOnFocus = false
targetBox.Font = Enum.Font.GothamBold
targetBox.TextSize = 13
targetBox.BackgroundColor3 = JOJO_DARK_PURPLE
targetBox.TextColor3 = JOJO_WHITE
targetBox.PlaceholderColor3 = Color3.fromRGB(150, 130, 170)
targetBox.BorderSizePixel = 0
targetBox.ZIndex = 10
targetBox.Parent = mainFrame
local targetCorner = Instance.new("UICorner")
targetCorner.CornerRadius = UDim.new(0, 9)
targetCorner.Parent = targetBox
local targetStroke = Instance.new("UIStroke")
targetStroke.Color = JOJO_PURPLE
targetStroke.Thickness = 2
targetStroke.Parent = targetBox
targetBox.Focused:Connect(function()
targetStroke.Color = JOJO_GOLD
end)
targetBox.FocusLost:Connect(function()
targetStroke.Color = JOJO_PURPLE
end)
local punchBtn = makeButton("ORA ORA!", 154)
local function makeSlider(labelText, y, default, min, max, callback)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0.72, 0, 0, 16)
lbl.Position = UDim2.new(0.14, 0, 0, y)
lbl.BackgroundTransparency = 1
lbl.Text = labelText .. ": " .. tostring(default)
lbl.TextColor3 = JOJO_GOLD
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 11
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.ZIndex = 10
lbl.Parent = mainFrame
local box = Instance.new("TextBox")
box.Size = UDim2.new(0.72, 0, 0, 20)
box.Position = UDim2.new(0.14, 0, 0, y + 16)
box.Text = tostring(default)
box.ClearTextOnFocus = false
box.BackgroundColor3 = JOJO_DARK_PURPLE
box.TextColor3 = JOJO_WHITE
box.Font = Enum.Font.GothamBold
box.TextSize = 13
box.BorderSizePixel = 0
box.ZIndex = 10
box.Parent = mainFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 6)
corner.Parent = box
local stroke = Instance.new("UIStroke")
stroke.Color = JOJO_PURPLE
stroke.Thickness = 1
stroke.Parent = box
box.Focused:Connect(function()
stroke.Color = JOJO_GOLD
end)
box.FocusLost:Connect(function()
stroke.Color = JOJO_PURPLE
local num = tonumber(box.Text)
if num then
num = math.clamp(num, min, max)
box.Text = tostring(num)
lbl.Text = labelText .. ": " .. tostring(num)
callback(num)
else
box.Text = tostring(default)
end
end)
return box, lbl
end
local posBox, posLabel = makeSlider(
"POSITION",
192,
standDistance,
0,
20,
function(v)
standDistance = v
end
)
local offBox, offLabel = makeSlider(
"OFFSET",
220,
sideOffset,
-10,
10,
function(v)
sideOffset = v
end
)
local heightBox, heightLabel = makeSlider(
"FLOAT HEIGHT",
248,
heightOffset,
0,
10,
function(v)
heightOffset = v
end
)
-- Dragging
-- The decorative Star Platinum and menacing images are children of mainFrame,
-- so they automatically move with the controller.
do
local dragging = false
local dragStart = Vector2.new()
local startPos = mainFrame.Position
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
-- Don't drag when clicking controls or decorative images.
if input.Target == closeBtn
or input.Target == guiToggle
or input.Target == targetBox
or input.Target == standBtn
or input.Target == punchBtn
or input.Target == posBox
or input.Target == offBox
or input.Target == heightBox then
return
end
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
RunService.RenderStepped:Connect(function()
if dragging then
local mousePos = UserInputService:GetMouseLocation()
local delta = mousePos - dragStart
local newX = math.clamp(
startPos.X.Offset + delta.X,
0,
workspace.CurrentCamera.ViewportSize.X - mainFrame.Size.X.Offset
)
local newY = math.clamp(
startPos.Y.Offset + delta.Y,
0,
workspace.CurrentCamera.ViewportSize.Y - mainFrame.Size.Y.Offset
)
mainFrame.Position = UDim2.new(0, newX, 0, newY)
end
end)
end
local function findTargetByName(namePart)
if not namePart or namePart == "" then
return nil
end
namePart = namePart:lower()
for _, p in pairs(Players:GetPlayers()) do
if p ~= player and p.Name:lower():find(namePart) then
return p
end
end
return nil
end
local standOn = false
local bp, gyro = nil, nil
local floatTime = 0
local vanished = false
local savedCharacterCFrame = nil
local savedCameraSubject = nil
local VANISH_HEIGHT = 1000
local BLOCK_DISTANCE = 3
local blocking = false
local function enableStand()
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
if not bp then
bp = Instance.new("BodyPosition")
bp.MaxForce = Vector3.new(4e5, 4e5, 4e5)
bp.P = 2000
bp.D = 50
bp.Position = humanoidRootPart.Position
bp.Parent = humanoidRootPart
end
if not gyro then
gyro = Instance.new("BodyGyro")
gyro.P = 2000
gyro.D = 50
gyro.MaxTorque = Vector3.new(4e5, 4e5, 4e5)
gyro.CFrame = humanoidRootPart.CFrame
gyro.Parent = humanoidRootPart
end
end
local function disableStand()
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
if bp then
bp:Destroy()
bp = nil
end
if gyro then
gyro:Destroy()
gyro = nil
end
end
standBtn.MouseButton1Click:Connect(function()
standOn = not standOn
standBtn.Text = standOn
and "「 STAND: ON 」"
or "「 STAND: OFF 」"
if standOn then
enableStand()
local t = findTargetByName(targetBox.Text)
if t and t.Character and t.Character:FindFirstChild("HumanoidRootPart") then
for _, id in ipairs(summonSoundIds) do
local summon = Instance.new("Sound", humanoidRootPart)
summon.SoundId = id
summon.Volume = 1
summon:Play()
Debris:AddItem(summon, 3)
end
end
SendChatMessage(
"I am now your stand, type these in chat to control me, VANISH, SUMMON, BARRAGE, BLOCK, UNBLOCK"
)
else
blocking = false
disableStand()
end
end)
RunService.RenderStepped:Connect(function(dt)
if standOn and bp and gyro and targetBox.Text ~= "" then
if vanished and savedCharacterCFrame then
bp.Position = Vector3.new(
savedCharacterCFrame.Position.X,
VANISH_HEIGHT,
savedCharacterCFrame.Position.Z
)
gyro.CFrame = CFrame.new(
bp.Position,
bp.Position + savedCharacterCFrame.LookVector
)
return
end
floatTime += dt * 2
local floatOffset = math.sin(floatTime) * 0.5
local t = findTargetByName(targetBox.Text)
if t and t.Character and t.Character:FindFirstChild("HumanoidRootPart") then
local targetHRP = t.Character.HumanoidRootPart
local tcf = targetHRP.CFrame
local desiredPos
if blocking then
desiredPos =
tcf.Position
+ tcf.LookVector * BLOCK_DISTANCE
+ Vector3.new(0, heightOffset, 0)
else
desiredPos =
tcf.Position
- tcf.LookVector * standDistance
+ tcf.RightVector * sideOffset
+ Vector3.new(0, heightOffset + floatOffset, 0)
end
bp.Position = bp.Position:Lerp(
desiredPos,
math.clamp(followSpeed, 0.01, 1)
)
gyro.CFrame = CFrame.new(
humanoidRootPart.Position,
humanoidRootPart.Position + tcf.LookVector
)
end
end
end)
local function runPastebinStyleFling(duration)
local start = tick()
local movel = 0.1
while tick() - start < duration do
RunService.Heartbeat:Wait()
local c = player.Character
local hrp = c and c:FindFirstChild("HumanoidRootPart")
if hrp then
local vel = hrp.Velocity
hrp.Velocity =
vel * 10000
+ Vector3.new(0, 10000, 0)
RunService.RenderStepped:Wait()
hrp.Velocity = vel
RunService.Stepped:Wait()
hrp.Velocity =
vel
+ Vector3.new(0, movel, 0)
movel = -movel
end
end
end
local function punchTarget()
local punchAnim = Instance.new("Animation")
punchAnim.AnimationId = "rbxassetid://86464152593138"
local punchTrack = humanoid:LoadAnimation(punchAnim)
punchTrack.Priority = Enum.AnimationPriority.Action
punchTrack:Play()
task.delay(1, function()
if punchTrack then
punchTrack:Stop()
punchTrack:Destroy()
end
end)
local targetPlayer = findTargetByName(targetBox.Text)
if not targetPlayer or not targetPlayer.Character then
return
end
local targetHRP =
targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if not targetHRP then
return
end
SendChatMessage("ORA! ORA! ORA! ORA!")
local nearest = GetNearestPlayerInFront(targetPlayer)
if not nearest then
return
end
local wasStandOn = standOn
if wasStandOn then
standOn = false
standBtn.Text = "「 STAND: OFF 」"
disableStand()
end
humanoidRootPart.CFrame =
CFrame.new(nearest.Position + Vector3.new(0, 3, 0))
local tempBP = Instance.new("BodyPosition")
tempBP.MaxForce = Vector3.new(1e6, 1e6, 1e6)
tempBP.P = 4000
tempBP.D = 100
tempBP.Position = nearest.Position
tempBP.Parent = humanoidRootPart
local tempGyro = Instance.new("BodyGyro")
tempGyro.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
tempGyro.P = 4000
tempGyro.D = 100
tempGyro.CFrame = humanoidRootPart.CFrame
tempGyro.Parent = humanoidRootPart
local followConnection
followConnection = RunService.RenderStepped:Connect(function()
if not (
tempBP
and tempGyro
and nearest
and nearest.Parent
) then
return
end
tempBP.Position = nearest.Position
local lookVec = nearest.CFrame.LookVector
tempGyro.CFrame =
CFrame.new(
humanoidRootPart.Position,
humanoidRootPart.Position + lookVec
)
end)
task.delay(followDuration, function()
if followConnection then
followConnection:Disconnect()
followConnection = nil
end
if tempBP then
tempBP:Destroy()
tempBP = nil
end
if tempGyro then
tempGyro:Destroy()
tempGyro = nil
end
end)
local effect = Instance.new("ColorCorrectionEffect")
effect.Saturation = -1
effect.Parent = game.Lighting
local s = Instance.new("Sound", humanoidRootPart)
s.SoundId = punchSoundId
s.Volume = 1
s:Play()
Debris:AddItem(s, 3)
task.delay(0.2, function()
local s2 = Instance.new("Sound", humanoidRootPart)
s2.SoundId = heavyPunchSoundId
s2.Volume = 1
s2:Play()
Debris:AddItem(s2, 3)
end)
task.spawn(function()
runPastebinStyleFling(flingDuration)
end)
task.delay(flingDuration + 0.25, function()
if followConnection then
followConnection:Disconnect()
followConnection = nil
end
if tempBP then
tempBP:Destroy()
tempBP = nil
end
if tempGyro then
tempGyro:Destroy()
tempGyro = nil
end
if effect and effect.Parent then
effect:Destroy()
end
if wasStandOn then
standOn = true
standBtn.Text = "「 STAND: ON 」"
enableStand()
if bp then
bp.Position = humanoidRootPart.Position
end
end
end)
end
punchBtn.MouseButton1Click:Connect(punchTarget)
local function onPlayerChatted(otherPlayer, message)
local targetName = targetBox.Text
if not targetName or targetName == "" then
return
end
local lowerMessage = message:lower()
local targetMatches =
otherPlayer.Name:lower():find(targetName:lower())
if not targetMatches then
return
end
if standOn and lowerMessage:find("barrage") then
punchTarget()
return
end
if lowerMessage:find("block")
and standOn
and not vanished
and not blocking then
blocking = true
SendChatMessage("BLOCK")
return
end
if lowerMessage:find("unblock")
and standOn
and blocking then
blocking = false
SendChatMessage("UNBLOCK")
return
end
if lowerMessage:find("vanish")
and standOn
and not vanished then
vanished = true
savedCharacterCFrame =
humanoidRootPart.CFrame
local camera = workspace.CurrentCamera
savedCameraSubject = camera.CameraSubject
humanoidRootPart.CFrame =
CFrame.new(
humanoidRootPart.Position.X,
VANISH_HEIGHT,
humanoidRootPart.Position.Z
)
local target =
findTargetByName(targetBox.Text)
if target and target.Character then
local targetHumanoid =
target.Character:FindFirstChildOfClass("Humanoid")
if targetHumanoid then
camera.CameraSubject = targetHumanoid
end
end
SendChatMessage("Yare Yare Daze")
return
end
if lowerMessage:find("summon") then
if blocking then
blocking = false
end
if vanished then
vanished = false
if savedCharacterCFrame
and humanoidRootPart
and humanoidRootPart.Parent then
humanoidRootPart.CFrame =
savedCharacterCFrame
end
local camera = workspace.CurrentCamera
if humanoid then
camera.CameraSubject = humanoid
elseif savedCameraSubject then
camera.CameraSubject = savedCameraSubject
end
savedCharacterCFrame = nil
savedCameraSubject = nil
SendChatMessage("Star Platinum, Toki wo Tomare")
return
end
standOn = not standOn
standBtn.Text =
standOn
and "「 STAND: ON 」"
or "「 STAND: OFF 」"
if standOn then
enableStand()
local t =
findTargetByName(targetBox.Text)
if t
and t.Character
and t.Character:FindFirstChild("HumanoidRootPart") then
for _, id in ipairs(summonSoundIds) do
local summon =
Instance.new("Sound", humanoidRootPart)
summon.SoundId = id
summon.Volume = 1
summon:Play()
Debris:AddItem(summon, 3)
end
end
SendChatMessage("Star Platinum, Toki wo Tomare")
else
disableStand()
end
end
end
for _, p in pairs(Players:GetPlayers()) do
if p ~= player then
p.Chatted:Connect(function(msg)
onPlayerChatted(p, msg)
end)
end
end
Players.PlayerAdded:Connect(function(p)
if p ~= player then
p.Chatted:Connect(function(msg)
onPlayerChatted(p, msg)
end)
end
end)
player.CharacterAdded:Connect(function(char)
character = char
humanoidRootPart =
character:WaitForChild("HumanoidRootPart")
humanoid =
character:FindFirstChildOfClass("Humanoid")
or character:WaitForChild("Humanoid")
if vanished then
vanished = false
savedCharacterCFrame = nil
savedCameraSubject = nil
local camera = workspace.CurrentCamera
camera.CameraSubject = humanoid
end
disableStand()
standOn = false
blocking = false
standBtn.Text = "「 STAND: OFF 」"
end)
local levitateIdle = Instance.new("Animation")
levitateIdle.AnimationId = "rbxassetid://122746752555782"
local moveAnim = Instance.new("Animation")
moveAnim.AnimationId = "rbxassetid://10921135644"
local levitateTrack
local moveTrack
local function playLevitateIdle()
if humanoid and not levitateTrack then
levitateTrack =
humanoid:LoadAnimation(levitateIdle)
levitateTrack.Priority =
Enum.AnimationPriority.Idle
levitateTrack.Looped = true
levitateTrack:Play()
end
end
local function stopLevitateIdle()
if levitateTrack then
levitateTrack:Stop()
levitateTrack:Destroy()
levitateTrack = nil
end
end
local function playMoveAnim()
if humanoid and not moveTrack then
moveTrack =
humanoid:LoadAnimation(moveAnim)
moveTrack.Priority =
Enum.AnimationPriority.Movement
moveTrack.Looped = true
moveTrack:Play()
end
end
local function stopMoveAnim()
if moveTrack then
moveTrack:Stop()
moveTrack:Destroy()
moveTrack = nil
end
end
RunService.RenderStepped:Connect(function(dt)
if standOn then
local target =
findTargetByName(targetBox.Text)
if target
and target.Character
and target.Character:FindFirstChild("HumanoidRootPart") then
local targetHumanoid =
target.Character:FindFirstChildOfClass("Humanoid")
if targetHumanoid then
if targetHumanoid.MoveDirection.Magnitude > 0 then
stopLevitateIdle()
playMoveAnim()
else
stopMoveAnim()
playLevitateIdle()
end
end
else
stopMoveAnim()
playLevitateIdle()
end
else
stopLevitateIdle()
stopMoveAnim()
end
end)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local noclip = false
local function setNoclip(enabled)
noclip = enabled
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.N then
setNoclip(not noclip)
print("Noclip:", noclip and "ON" or "OFF")
end
end)
RunService.Stepped:Connect(function()
if not noclip then return end
local character = player.Character
if not character then return end
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end)



Ill frequently update this so just tell me what i need to add or any bugs to fix:)
@StaticAmour what game is this for?
@alidabestjr its universal
@StaticAmour add a option to remove the text perhaps?
@guynamedsky I will but in the meanwhile you can look through the script and change it
im working on a THE WORLD script right might be up an a couple weeks
This script is pretty bizarre. One might even say it's a golden experience to use.
I used an old script before, and it was good! But THIS ONE IS THE BOMB!!! MAKE EVEN MORE SCRIPTS!