AxionXploits undetectable gui or whatever
Key RequiredUniversal

AxionXploits undetectable gui or whatever

Universal ScriptGlitchyBeHaxxinGlitchyBeHaxxin 3K views 40 executesUpdated Sep 30, 2025
Unrated
00
Lua Script•855 lines (26624 chars)
-- 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)

Features & Information

@vaxtalastus, if you comment on this saying "this is so client" or something like that, your actually wasting ur time and mine because of you it's made by ChatGPT, i wanna point that out because some of y'all would say I skidded, yes I did but it's for entertainment purposes, make ur vids with this and make urself a "hacker"

Community Comments (3)

WoaheeWoaheeSep 30, 2025

It tried it in my game and doesent work

Replying to @Woahee
GlitchyBeHaxxinGlitchyBeHaxxinSep 30, 2025

@Woahee i think it fully didn't execute, execute it again

Replying to @GlitchyBeHaxxin
SQUDLEGAMESSQUDLEGAMESOct 6, 2025

@GlitchyBeHaxxin i executed it 2 times and more and it still didnt work

More Scripts for Universal Scripts