-- 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)