
Key RequiredUniversal

-- LocalScript (put in StarterPlayerScripts or StarterGui)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create the main GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AxionGUI"
screenGui.Parent = playerGui
-- Main frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 400, 0, 250)
mainFrame.Position = UDim2.new(0.5, -200, 0.5, -125)
mainFrame.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
local mainUICorner = Instance.new("UICorner")
mainUICorner.CornerRadius = UDim.new(0, 15)
mainUICorner.Parent = mainFrame
-- Replace the UIListLayout with this UIGridLayout
-- Title bar
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 30)
titleBar.Position = UDim2.new(0, 0, 0, 0)
titleBar.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
titleBar.Parent = mainFrame
local titleUICorner = Instance.new("UICorner")
titleUICorner.CornerRadius = UDim.new(0, 15)
titleUICorner.Parent = titleBar
-- Make sure buttonContainer exists
-- Make buttonContainer a ScrollingFrame
local buttonContainer = Instance.new("ScrollingFrame")
buttonContainer.Size = UDim2.new(1, 0, 1, -35) -- below title bar
buttonContainer.Position = UDim2.new(0, 0, 0, 35)
buttonContainer.BackgroundTransparency = 1
buttonContainer.BorderSizePixel = 0
buttonContainer.ScrollBarThickness = 6 -- thin scrollbar
buttonContainer.CanvasSize = UDim2.new(0, 0, 0, 0) -- auto updated later
buttonContainer.AutomaticCanvasSize = Enum.AutomaticSize.Y -- auto expand height
buttonContainer.ScrollingDirection = Enum.ScrollingDirection.Y -- vertical only
buttonContainer.Parent = mainFrame
-- Optional padding inside the container
local padding = Instance.new("UIPadding")
padding.PaddingTop = UDim.new(0, 10)
padding.PaddingLeft = UDim.new(0, 10)
padding.PaddingRight = UDim.new(0, 10)
padding.PaddingBottom = UDim.new(0, 10)
padding.Parent = buttonContainer
-- UIGridLayout
local gridLayout = Instance.new("UIGridLayout")
gridLayout.Parent = buttonContainer
gridLayout.SortOrder = Enum.SortOrder.LayoutOrder
gridLayout.CellSize = UDim2.new(0, 80, 0, 40) -- width x height of each cell
gridLayout.CellPadding = UDim2.new(0, 10, 0, 10) -- spacing between cells
gridLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
gridLayout.VerticalAlignment = Enum.VerticalAlignment.Top
-- Axion IDs
local AXION_IMAGE = "rbxassetid://107051971970339"
local AXION_MUSIC = "rbxassetid://1847662003" -- plays at speed 1, volume 1
-- Button creator (reuse)
local function createButton(text, callback)
local button = Instance.new("TextButton")
button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.Font = Enum.Font.SourceSansBold
button.TextSize = 18
button.Text = text
button.TextWrapped = true -- ensures long text fits
button.TextXAlignment = Enum.TextXAlignment.Center
button.TextYAlignment = Enum.TextYAlignment.Center
button.Parent = buttonContainer -- make sure buttonContainer exists
-- Rounded corners
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = button
-- Hover effect
button.MouseEnter:Connect(function()
button.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
end)
button.MouseLeave:Connect(function()
button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
end)
-- Action callback
button.MouseButton1Click:Connect(callback)
return button
end
-- 1. Sky Button
createButton("Sky", function()
local sky = Instance.new("Sky")
sky.SkyboxBk = AXION_IMAGE
sky.SkyboxDn = AXION_IMAGE
sky.SkyboxFt = AXION_IMAGE
sky.SkyboxLf = AXION_IMAGE
sky.SkyboxRt = AXION_IMAGE
sky.SkyboxUp = AXION_IMAGE
sky.Parent = game.Lighting
end)
-- 2. Spam Button
-- Spam button (Axion image, all 6 faces)
createButton("Spam", function()
local textureId = "rbxassetid://107051971970339" -- Axion image
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
-- remove old decals/textures
for _, child in ipairs(part:GetChildren()) do
if child:IsA("Decal") or child:IsA("Texture") then
child:Destroy()
end
end
-- add decal on all 6 faces
for _, face in ipairs(Enum.NormalId:GetEnumItems()) do
local decal = Instance.new("Decal")
decal.Texture = textureId
decal.Face = face
decal.Parent = part
end
end
end
end)
-- 3. Music Button
createButton("Music", function()
local sound = Instance.new("Sound")
sound.SoundId = AXION_MUSIC
sound.Looped = true
sound.Volume = 1
sound.PlaybackSpeed = 1
sound.Parent = game:GetService("SoundService")
sound:Play()
end)
-- 4. Particles Button
createButton("Particles", function()
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
local particle = Instance.new("ParticleEmitter")
particle.Texture = AXION_IMAGE
particle.Rate = 10
particle.Lifetime = NumberRange.new(2)
particle.Parent = part
end
end
end)
-- 5. Cool Dance Button (toggle one dance)
local dancing = false
local danceAnimId = "rbxassetid://507771019" -- Dance 1 animation
createButton("Cool Dance", function()
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
dancing = not dancing
if dancing then
local danceAnim = Instance.new("Animation")
danceAnim.AnimationId = danceAnimId
local track = humanoid:LoadAnimation(danceAnim)
track.Looped = true
track:Play()
humanoid:SetAttribute("DanceTrack", track) -- store reference
else
local track = humanoid:GetAttribute("DanceTrack")
if track then
track:Stop()
end
end
end
end)
-- 6. Hint Button
createButton("Hint", function()
local hint = Instance.new("Hint")
hint.Text = "team A_xionXploit join right now!!!!"
hint.Parent = workspace
end)
-- 7. Bright Parts Button
createButton("Bright Parts", function()
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
part.Color = Color3.new(1, 1, 1)
part.Material = Enum.Material.Neon
end
end
local cc = game.Lighting:FindFirstChildOfClass("ColorCorrectionEffect")
if not cc then
cc = Instance.new("ColorCorrectionEffect")
cc.Parent = game.Lighting
end
cc.TintColor = Color3.new(1, 1, 1)
cc.Contrast = 5
cc.Saturation = 5
end)
-- 8. Hint 2 Button
createButton("Hint 2", function()
local hint = workspace:FindFirstChildOfClass("Hint")
if hint then
hint.Text = "A_xion is currently haxxing le game"
else
local newHint = Instance.new("Hint")
newHint.Text = "A_xion is currently haxxing le game"
newHint.Parent = workspace
end
end)
-- 9. Message Button
createButton("Message", function()
local message = Instance.new("Message")
message.Text = "A_xion is the best playah evahhh!!!!"
message.Parent = workspace
game:GetService("Debris"):AddItem(message, math.random(2,4)) -- auto-remove after 2–4s
end)
-- 10. Message 2 Button
createButton("Message 2", function()
local message = Instance.new("Message")
message.Text = "team A_xionXploit join right now!!!!"
message.Parent = workspace
game:GetService("Debris"):AddItem(message, math.random(2,4)) -- auto-remove
end)
-- Shit Lagger Button
createButton("Shit lagger", function()
local character = player.Character or player.CharacterAdded:Wait()
local root = character:FindFirstChild("HumanoidRootPart")
local humanoid = character:FindFirstChildOfClass("Humanoid")
if root and humanoid then
-- Make player invincible
humanoid.MaxHealth = math.huge
humanoid.Health = math.huge
-- Launch player upwards
local bv = Instance.new("BodyVelocity")
bv.Velocity = Vector3.new(0, 500, 0)
bv.MaxForce = Vector3.new(0, math.huge, 0)
bv.Parent = root
game:GetService("Debris"):AddItem(bv, 0.5)
-- Funny message
local message = Instance.new("Message")
message.Text = "guess who had the WHOLE taco bell menu as their lunch"
message.Parent = workspace
game:GetService("Debris"):AddItem(message, 4)
-- Start pooping after 1s
task.delay(1, function()
for i = 1, 1000 do
task.delay(i * math.random(0.1, 0.3), function() -- stagger spawns
local part = Instance.new("Part")
part.Size = Vector3.new(
math.random(1, 10),
math.random(1, 10),
math.random(1, 10)
)
part.Color = Color3.fromRGB(101, 67, 33) -- brown
part.Anchored = false
part.CanCollide = true
part.Position = root.Position - root.CFrame.LookVector * (5 + i * 0.2)
part.Parent = workspace
-- Fire particles
local fire = Instance.new("ParticleEmitter")
fire.Texture = "rbxassetid://241594419"
fire.Rate = 50
fire.Lifetime = NumberRange.new(1, 3)
fire.Speed = NumberRange.new(2, 6)
fire.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, math.random(4, 10)),
NumberSequenceKeypoint.new(1, 0)
})
fire.Parent = part
-- Random explosions
if math.random(1, 5) == 1 then -- 20% chance
local explosion = Instance.new("Explosion")
explosion.Position = part.Position
explosion.BlastRadius = 15
explosion.BlastPressure = 500000
explosion.Parent = workspace
part:Destroy()
end
end)
end
end)
end
end)
createButton("Nuke", function()
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local RunService = game:GetService("RunService")
-- Use existing hint or make one
local hint = workspace:FindFirstChildOfClass("Hint")
if not hint then
hint = Instance.new("Hint")
hint.Parent = workspace
end
-- Countdown (15 → 0)
local countdown = 15
local conn
conn = RunService.Heartbeat:Connect(function(dt)
countdown -= dt
if countdown > 0 then
hint.Text = "A_xion is now launching a nuke here! lands in " .. string.format("%.2f", countdown)
else
conn:Disconnect()
-- NUKE DETONATED
hint.Text = "Nuke has arrived"
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
-- Force material + unanchor
part.Material = Enum.Material.CorrodedMetal
part.Anchored = false
-- Explosion
local explosion = Instance.new("Explosion")
explosion.Position = part.Position
explosion.BlastRadius = 10
explosion.BlastPressure = 500000
explosion.Parent = workspace
-- Fling force
local bv = Instance.new("BodyVelocity")
bv.Velocity = Vector3.new(
math.random(-200, 200),
math.random(100, 300),
math.random(-200, 200)
)
bv.MaxForce = Vector3.new(1e6, 1e6, 1e6)
bv.Parent = part
game:GetService("Debris"):AddItem(bv, 0.2)
end
end
-- CHAOS: chain explosions for 15s
task.spawn(function()
local endTime = tick() + 15
while tick() < endTime do
task.wait(math.random(0.05, 0.2))
local parts = {}
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
table.insert(parts, part)
end
end
if #parts > 0 then
local part = parts[math.random(1, #parts)]
-- Extra explosion
local explosion = Instance.new("Explosion")
explosion.Position = part.Position
explosion.BlastRadius = math.random(8, 20)
explosion.BlastPressure = math.random(300000, 700000)
explosion.Parent = workspace
-- Extra fling
local bv = Instance.new("BodyVelocity")
bv.Velocity = Vector3.new(
math.random(-300, 300),
math.random(200, 500),
math.random(-300, 300)
)
bv.MaxForce = Vector3.new(1e6, 1e6, 1e6)
bv.Parent = part
game:GetService("Debris"):AddItem(bv, 0.2)
end
end
end)
-- Kick player after 15s
task.delay(15, function()
player:Kick("A_xion has nuked dis place!!! get owned!!")
end)
end
end)
end)
-- Foggy Disco Button (classic fog only)
createButton("Foggy Disco", function()
local Lighting = game:GetService("Lighting")
-- Remove any Atmosphere that overrides Fog
for _, atm in ipairs(Lighting:GetChildren()) do
if atm:IsA("Atmosphere") then
atm:Destroy()
end
end
-- Very dense fog
Lighting.FogStart = 0
Lighting.FogEnd = 50 -- so you can't see far at all
local colors = {
Color3.fromRGB(255, 0, 0), -- Red
Color3.fromRGB(0, 255, 0), -- Green
Color3.fromRGB(0, 0, 255), -- Blue
Color3.fromRGB(255, 255, 0), -- Yellow
Color3.fromRGB(255, 0, 255), -- Magenta
Color3.fromRGB(0, 255, 255), -- Cyan
Color3.fromRGB(255, 255, 255) -- White
}
-- Cycle through fog colors forever
task.spawn(function()
while Lighting do
for _, col in ipairs(colors) do
Lighting.FogColor = col
task.wait(0.5)
end
end
end)
end)
-- Spam 2 button
-- Spam 2 button (alternate image, all 6 faces)
createButton("Spam 2", function()
local textureId = "rbxassetid://75305362296132"
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
-- remove old decals/textures
for _, child in ipairs(part:GetChildren()) do
if child:IsA("Decal") or child:IsA("Texture") then
child:Destroy()
end
end
-- add decal on all 6 faces
for _, face in ipairs(Enum.NormalId:GetEnumItems()) do
local decal = Instance.new("Decal")
decal.Texture = textureId
decal.Face = face
decal.Parent = part
end
end
end
end)
-- Sky 2 button
createButton("Sky 2", function()
local lighting = game:GetService("Lighting")
local sky = Instance.new("Sky")
sky.SkyboxBk = "rbxassetid://75305362296132"
sky.SkyboxDn = "rbxassetid://75305362296132"
sky.SkyboxFt = "rbxassetid://75305362296132"
sky.SkyboxLf = "rbxassetid://75305362296132"
sky.SkyboxRt = "rbxassetid://75305362296132"
sky.SkyboxUp = "rbxassetid://75305362296132"
sky.Parent = lighting
end)
-- Particle 2 button
createButton("Particle 2", function()
local character = game.Players.LocalPlayer.Character
if character then
local emitter = Instance.new("ParticleEmitter")
emitter.Texture = "rbxassetid://75305362296132"
emitter.Rate = 100
emitter.Lifetime = NumberRange.new(2, 5)
emitter.Speed = NumberRange.new(5, 10)
emitter.Parent = character:FindFirstChild("HumanoidRootPart")
end
end)
-- helper: try sending global chat, fallback to bubble/local
local function trySendGlobalChat(msg)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local ChatService = game:GetService("Chat")
-- 1) Try DefaultChatSystemChatEvents.SayMessageRequest (common)
local ok, defaultChatRoot = pcall(function()
return ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") or ReplicatedStorage:WaitForChild("DefaultChatSystemChatEvents", 1)
end)
if ok and defaultChatRoot then
local say = defaultChatRoot:FindFirstChild("SayMessageRequest")
if say and typeof(say.FireServer) == "function" then
local fired, err = pcall(function() say:FireServer(msg, "All") end)
if fired then
return true, "DefaultChatSystemChatEvents.SayMessageRequest"
end
end
end
-- 2) Try any SayMessageRequest found anywhere under ReplicatedStorage (some maps)
local anySay = ReplicatedStorage:FindFirstChild("SayMessageRequest", true)
if anySay and typeof(anySay.FireServer) == "function" then
local fired = pcall(function() anySay:FireServer(msg, "All") end)
if fired then
return true, "SayMessageRequest (found anywhere)"
end
end
-- 3) Try legacy ReplicatedStorage top-level SayMessageRequest (rare)
local topSay = ReplicatedStorage:FindFirstChild("SayMessageRequest")
if topSay and typeof(topSay.FireServer) == "function" then
local fired = pcall(function() topSay:FireServer(msg, "All") end)
if fired then
return true, "Top-level SayMessageRequest"
end
end
-- 4) Bubble chat fallback (local bubble above your head)
local playerHead
if player.Character then
playerHead = player.Character:FindFirstChild("Head") or player.Character:FindFirstChild("HumanoidRootPart")
end
if not playerHead then
playerHead = player.CharacterAdded:Wait():WaitForChild("Head")
end
local bubbled = pcall(function() ChatService:Chat(playerHead, msg, Enum.ChatColor.Red) end)
if bubbled then
return false, "Chat:Chat (bubble only)"
end
-- 5) Final fallback: local-only system message in chat window
pcall(function()
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = msg;
Color = Color3.fromRGB(200,200,200);
Font = Enum.Font.SourceSansBold;
FontSize = Enum.FontSize.Size18;
})
end)
return false, "ChatMakeSystemMessage (local only)"
end
-- Chat button (global attempt)
createButton("Chat", function()
local success, method = trySendGlobalChat("A_xion was here! Muahahahahaha!!")
-- notify which method ran (useful for debugging)
pcall(function()
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = (success and "Chat sent (global)" or "Chat fallback"),
Text = method,
Duration = 3
})
end)
end)
-- Chat 2 button (also global attempt)
createButton("Chat 2", function()
local success, method = trySendGlobalChat("Team A_xionXploit is the best team evah!!!")
pcall(function()
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = (success and "Chat sent (global)" or "Chat fallback"),
Text = method,
Duration = 3
})
end)
end)
-- Jumpscare Button
createButton("Jumpscare", function()
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- ScreenGui for jumpscare
local jumpscareGui = Instance.new("ScreenGui")
jumpscareGui.Name = "JumpscareGui"
jumpscareGui.ResetOnSpawn = false
jumpscareGui.Parent = playerGui
-- Fullscreen image
local image = Instance.new("ImageLabel")
image.Size = UDim2.new(1, 0, 1, 0) -- full screen
image.Position = UDim2.new(0, 0, 0, 0)
image.BackgroundTransparency = 1
image.Image = "rbxassetid://75305362296132"
image.Parent = jumpscareGui
-- Sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://6963061822"
sound.Volume = 10
sound.Parent = workspace
sound:Play()
-- When sound ends, remove jumpscare
sound.Ended:Connect(function()
jumpscareGui:Destroy()
sound:Destroy()
end)
end)
-- Ungrav Button
local gravityOn = true
createButton("Ungrav", function()
if gravityOn then
workspace.Gravity = 0
gravityOn = false
else
workspace.Gravity = 196.2 -- default Roblox gravity
gravityOn = true
end
-- Notification
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "Notification",
Text = "A_xion has flipped the Gravity switch!",
Duration = 5
})
end)
createButton("Shedletsky", function()
local Lighting = game:GetService("Lighting")
local Players = game:GetService("Players")
local ShedImage = "rbxassetid://86744311203053"
local LaughId = "rbxassetid://134736863806216"
-- Skybox
local sky = Instance.new("Sky")
sky.SkyboxBk = ShedImage
sky.SkyboxDn = ShedImage
sky.SkyboxFt = ShedImage
sky.SkyboxLf = ShedImage
sky.SkyboxRt = ShedImage
sky.SkyboxUp = ShedImage
sky.Parent = Lighting
-- Spam decals & particles
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
for _, child in ipairs(part:GetChildren()) do
if child:IsA("Decal") or child:IsA("Texture") then
child:Destroy()
end
end
for _, face in ipairs(Enum.NormalId:GetEnumItems()) do
local decal = Instance.new("Decal")
decal.Texture = ShedImage
decal.Face = face
decal.Parent = part
end
local particle = Instance.new("ParticleEmitter")
particle.Texture = ShedImage
particle.Rate = 20
particle.Lifetime = NumberRange.new(3)
particle.Speed = NumberRange.new(2, 6)
particle.Parent = part
end
end
-- Function to spawn unstoppable laugh
local function spawnLaugh(parent)
local laugh = Instance.new("Sound")
laugh.Name = "ShedletskyLaugh"
laugh.SoundId = LaughId
laugh.Looped = true
laugh.Volume = 10
laugh.RollOffMode = Enum.RollOffMode.Linear
laugh.MaxDistance = 100000
laugh.Parent = parent
laugh:Play()
-- Anti-mute / Anti-stop
task.spawn(function()
while laugh.Parent do
if laugh.Volume < 10 then
laugh.Volume = 10
end
if not laugh.IsPlaying then
laugh:Play()
end
task.wait(0.1)
end
end)
-- Respawn if deleted
laugh.AncestryChanged:Connect(function(_, parent)
if not parent then
spawnLaugh(workspace)
end
end)
return laugh
end
-- Global laugh (Workspace)
spawnLaugh(workspace)
-- Local laugh for all current players
for _, player in ipairs(Players:GetPlayers()) do
local playerGui = player:FindFirstChildOfClass("PlayerGui")
if playerGui then
spawnLaugh(playerGui)
end
end
-- New players also get the laugh
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
local playerGui = player:WaitForChild("PlayerGui", 5)
if playerGui then
spawnLaugh(playerGui)
end
end)
end)
end)
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "Gui Loaded",
Text = "Gui made by A_xionXploit, do not skid please",
Duration = 5
})
-- Title label
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -80, 1, 0)
titleLabel.Position = UDim2.new(0, 10, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "A_xion Undetectable GUI"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.Font = Enum.Font.SourceSansBold
titleLabel.TextSize = 18
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = titleBar
-- Minimize button
local minimizeButton = Instance.new("TextButton")
minimizeButton.Size = UDim2.new(0, 25, 0, 25)
minimizeButton.AnchorPoint = Vector2.new(1, 0.5)
minimizeButton.Position = UDim2.new(1, -35, 0.5, 0) -- left of close button
minimizeButton.BackgroundColor3 = Color3.fromRGB(255, 170, 0)
minimizeButton.Text = "-"
minimizeButton.Font = Enum.Font.SourceSansBold
minimizeButton.TextSize = 22
minimizeButton.Parent = titleBar
local minimizeUICorner = Instance.new("UICorner")
minimizeUICorner.CornerRadius = UDim.new(0, 5)
minimizeUICorner.Parent = minimizeButton
-- Close button
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 25, 0, 25)
closeButton.AnchorPoint = Vector2.new(1, 0.5)
closeButton.Position = UDim2.new(1, -5, 0.5, 0) -- top-right, inside frame
closeButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
closeButton.Text = "X"
closeButton.Font = Enum.Font.SourceSansBold
closeButton.TextSize = 18
closeButton.Parent = titleBar
local closeUICorner = Instance.new("UICorner")
closeUICorner.CornerRadius = UDim.new(0, 5)
closeUICorner.Parent = closeButton
local TweenService = game:GetService("TweenService")
-- Minimize function
local function minimizeGui(frame, buttonContainer)
local goal = { Size = UDim2.new(frame.Size.X.Scale, frame.Size.X.Offset, 0, 30) }
local tween = TweenService:Create(frame, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), goal)
tween:Play()
-- Hide buttons after tween
tween.Completed:Connect(function()
buttonContainer.Visible = false
end)
end
-- Restore function
local function restoreGui(frame, originalSize, buttonContainer)
local goal = { Size = originalSize }
local tween = TweenService:Create(frame, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), goal)
tween:Play()
-- Show buttons again immediately
buttonContainer.Visible = true
end
-- Toggle minimize / restore
local isMinimized = false
local originalSize = mainFrame.Size
minimizeButton.MouseButton1Click:Connect(function()
if isMinimized then
restoreGui(mainFrame, originalSize, buttonContainer)
else
minimizeGui(mainFrame, buttonContainer)
end
isMinimized = not isMinimized
end)
-- Close functionality
closeButton.MouseButton1Click:Connect(function()
screenGui:Destroy()
end)
-- Draggable GUI (PC + Mobile)
local dragging = false
local dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
titleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
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)
titleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)



It tried it in my game and doesent work
@Woahee i think it fully didn't execute, execute it again
@GlitchyBeHaxxin i executed it 2 times and more and it still didnt work