-- Ultra-Premium Client-Sided GUI Script (Roblox Luau) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer -- Create ScreenGui local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "AeroVapor_Utility" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- Protect GUI if executor supports it if syn and syn.protect_gui then syn.protect_gui(ScreenGui) elseif gethui then ScreenGui.Parent = gethui() else ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end -- Main Frame (Sleek Dark Glassmorphism Design) local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 260, 0, 315) MainFrame.Position = UDim2.new(0.5, -130, 0.4, -157) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 16, 22) -- Deep Onyx Black MainFrame.BackgroundTransparency = 0.15 -- Slight glass opacity MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.ClipsDescendants = true MainFrame.Parent = ScreenGui -- UI Corner (Modern Soft Edges) local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 16) UICorner.Parent = MainFrame -- UI Stroke (Electric Vapor Wave Border Gradient Effect) local UIStroke = Instance.new("UIStroke") UIStroke.Color = Color3.fromRGB(0, 212, 255) -- Vivid Electric Cyan UIStroke.Thickness = 2 UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border UIStroke.Parent = MainFrame -- Decorative Top Glow Banner local TopBanner = Instance.new("Frame") TopBanner.Name = "TopBanner" TopBanner.Size = UDim2.new(1, 0, 0, 45) TopBanner.BackgroundColor3 = Color3.fromRGB(24, 25, 35) TopBanner.BorderSizePixel = 0 TopBanner.Parent = MainFrame local TopCorner = Instance.new("UICorner") TopCorner.CornerRadius = UDim.new(0, 16) TopCorner.Parent = TopBanner -- Title Text local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, -70, 1, 0) TitleLabel.Position = UDim2.new(0, 10, 0, 0) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "⚡ VAPOR SYSTEM" TitleLabel.Font = Enum.Font.GothamBold TitleLabel.TextSize = 14 TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.Parent = TopBanner -- Top Control Buttons Container (For "-" and "X") local ControlsContainer = Instance.new("Frame") ControlsContainer.Size = UDim2.new(0, 60, 1, 0) ControlsContainer.Position = UDim2.new(1, -65, 0, 0) ControlsContainer.BackgroundTransparency = 1 ControlsContainer.Parent = TopBanner local ControlsLayout = Instance.new("UIListLayout") ControlsLayout.FillDirection = Enum.FillDirection.Horizontal ControlsLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right ControlsLayout.VerticalAlignment = Enum.VerticalAlignment.Center ControlsLayout.Padding = UDim.new(0, 6) ControlsLayout.Parent = ControlsContainer -- Helper function to style header control buttons local function createHeaderButton(text, color) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 24, 0, 24) btn.BackgroundColor3 = color btn.Font = Enum.Font.GothamBold btn.TextSize = 12 btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Text = text btn.AutoButtonColor = false local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(1, 0) btnCorner.Parent = btn btn.Parent = ControlsContainer return btn end local MinimizeBtn = createHeaderButton("-", Color3.fromRGB(45, 48, 60)) local CloseBtn = createHeaderButton("X", Color3.fromRGB(235, 77, 75)) -- UI List Layout for Clean Container Alignment local Container = Instance.new("Frame") Container.Size = UDim2.new(1, 0, 1, -45) Container.Position = UDim2.new(0, 0, 0, 45) Container.BackgroundTransparency = 1 Container.Parent = MainFrame local UIListLayout = Instance.new("UIListLayout") UIListLayout.Padding = UDim.new(0, 10) UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Parent = Container local UIPadding = Instance.new("UIPadding") UIPadding.PaddingTop = UDim.new(0, 10) UIPadding.Parent = Container -- Palette Configurations local COLOR_OFF = Color3.fromRGB(255, 74, 74) -- Crimson Neon Red local COLOR_ON = Color3.fromRGB(0, 230, 118) -- Mint Neon Green local COLOR_ACTION = Color3.fromRGB(33, 150, 243) -- Cyber Sapphire Blue -- Helper function to build a cleaner button with a toggle switch component next to it local function createToggleRow(nameText, order) local RowFrame = Instance.new("Frame") RowFrame.Size = UDim2.new(0, 230, 0, 38) RowFrame.BackgroundTransparency = 1 RowFrame.LayoutOrder = order RowFrame.Parent = Container local TextLabel = Instance.new("TextLabel") TextLabel.Size = UDim2.new(0, 160, 1, 0) TextLabel.BackgroundTransparency = 1 TextLabel.Font = Enum.Font.GothamBold TextLabel.TextSize = 13 TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255) TextLabel.TextXAlignment = Enum.TextXAlignment.Left TextLabel.Text = nameText TextLabel.Parent = RowFrame -- Toggle Switch Outer Body local ToggleBtn = Instance.new("TextButton") ToggleBtn.Size = UDim2.new(0, 50, 0, 24) ToggleBtn.Position = UDim2.new(1, -50, 0.5, -12) ToggleBtn.BackgroundColor3 = COLOR_OFF ToggleBtn.Text = "" ToggleBtn.AutoButtonColor = false ToggleBtn.Parent = RowFrame local ToggleCorner = Instance.new("UICorner") ToggleCorner.CornerRadius = UDim.new(1, 0) ToggleCorner.Parent = ToggleBtn -- Toggle Switch Sliding Indicator (Slider Knob) local Slider = Instance.new("Frame") Slider.Size = UDim2.new(0, 18, 0, 18) Slider.Position = UDim2.new(0, 3, 0.5, -9) Slider.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Slider.BorderSizePixel = 0 Slider.Parent = ToggleBtn local SliderCorner = Instance.new("UICorner") SliderCorner.CornerRadius = UDim.new(1, 0) SliderCorner.Parent = Slider return ToggleBtn, Slider end -- Helper function to style standard instantaneous action buttons local function styleActionButton(btn, text, order) btn.Size = UDim2.new(0, 230, 0, 38) btn.Font = Enum.Font.GothamBold btn.TextSize = 13 btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Text = text btn.LayoutOrder = order btn.BackgroundColor3 = COLOR_ACTION btn.AutoButtonColor = false local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 10) btnCorner.Parent = btn local btnStroke = Instance.new("UIStroke") btnStroke.Color = Color3.fromRGB(255, 255, 255) btnStroke.Transparency = 0.85 btnStroke.Thickness = 1 btnStroke.Parent = btn btn.MouseEnter:Connect(function() if MainFrame.Size == UDim2.new(0, 260, 0, 315) then TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 234, 0, 40)}):Play() TweenService:Create(btnStroke, TweenInfo.new(0.2), {Transparency = 0.5}):Play() end end) btn.MouseLeave:Connect(function() if MainFrame.Size == UDim2.new(0, 260, 0, 315) then TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0, 230, 0, 38)}):Play() TweenService:Create(btnStroke, TweenInfo.new(0.2), {Transparency = 0.85}):Play() end end) btn.Parent = Container end -- Instantiating Components local SpinBotBtn, SpinSlider = createToggleRow("spinBOT", 1) local TpAwayBtn = Instance.new("TextButton") styleActionButton(TpAwayBtn, "tpAWAY", 2) local TpBtn = Instance.new("TextButton") styleActionButton(TpBtn, "tp", 3) local AngryTpBtn, AngrySlider = createToggleRow("angryTP", 4) local TpUpBtn = Instance.new("TextButton") styleActionButton(TpUpBtn, "tpUP", 5) -- State tracking variables local spinbotOn = false local angryTpOn = false local spinConnection local angryTpConnection local isMinimized = false -- Helper functional loop for toggle animation triggers local function animateToggle(btn, slider, state) local targetPos = state and UDim2.new(1, -21, 0.5, -9) or UDim2.new(0, 3, 0.5, -9) local targetColor = state and COLOR_ON or COLOR_OFF TweenService:Create(slider, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = targetPos}):Play() TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundColor3 = targetColor}):Play() end -- Character Position Logic Extensions local function getBehindCFrame(targetPlayer) if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then local targetRoot = targetPlayer.Character.HumanoidRootPart return targetRoot.CFrame * CFrame.new(0, 0, 3) end return nil end local function getRandomPlayer() local allPlayers = Players:GetPlayers() local available = {} for _, p in ipairs(allPlayers) do if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then table.insert(available, p) end end if #available > 0 then return available[math.random(1, #available)] end return nil end -- MECHANICS: SpinBOT Action Hook SpinBotBtn.MouseButton1Click:Connect(function() spinbotOn = not spinbotOn animateToggle(SpinBotBtn, SpinSlider, spinbotOn) if spinbotOn then spinConnection = RunService.RenderStepped:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(140), 0) end end) else if spinConnection then spinConnection:Disconnect() spinConnection = nil end end end) -- MECHANICS: tpAWAY Action Hook TpAwayBtn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then root.CFrame = root.CFrame + Vector3.new(3000000, 0, 0) end end) -- MECHANICS: tp Action Hook TpBtn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then local target = getRandomPlayer() if target then local targetCFrame = getBehindCFrame(target) if targetCFrame then root.CFrame = targetCFrame end end end end) -- MECHANICS: angryTP Action Hook AngryTpBtn.MouseButton1Click:Connect(function() angryTpOn = not angryTpOn animateToggle(AngryTpBtn, AngrySlider, angryTpOn) if angryTpOn then angryTpConnection = RunService.Heartbeat:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then local target = getRandomPlayer() if target then local targetCFrame = getBehindCFrame(target) if targetCFrame then root.CFrame = targetCFrame end end end end) else if angryTpConnection then angryTpConnection:Disconnect() angryTpConnection = nil end end end) -- MECHANICS: tpUP Action Hook TpUpBtn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then root.CFrame = root.CFrame + Vector3.new(0, 20000, 0) end end) -- MECHANICS: Minimize Button ("-") To Turn Whole GUI Into A Circle MinimizeBtn.MouseButton1Click:Connect(function() isMinimized = not isMinimized if isMinimized then -- Hide content container, shrink to small circle size, round corners to perfect circle Container.Visible = false TitleLabel.Visible = false MinimizeBtn.Text = "+" TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2.new(0, 80, 0, 45) }):Play() TweenService:Create(UICorner, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { CornerRadius = UDim.new(0, 22) }):Play() TweenService:Create(TopCorner, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { CornerRadius = UDim.new(0, 22) }):Play() TweenService:Create(TopBanner, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2.new(1, 0, 1, 0) }):Play() TweenService:Create(ControlsContainer, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2.new(1, 0, 1, 0), Position = UDim2.new(0, 0, 0, 0) }):Play() ControlsLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center else -- Restore original layout parameters MinimizeBtn.Text = "-" ControlsLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right local mainTween = TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2.new(0, 260, 0, 315) }) TweenService:Create(UICorner, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { CornerRadius = UDim.new(0, 16) }):Play() TweenService:Create(TopCorner, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { CornerRadius = UDim.new(0, 16) }):Play() TweenService:Create(TopBanner, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2.new(1, 0, 0, 45) }):Play() TweenService:Create(ControlsContainer, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2.new(0, 60, 1, 0), Position = UDim2.new(1, -65, 0, 0) }):Play() mainTween.Completed:Connect(function() if not isMinimized then Container.Visible = true TitleLabel.Visible = true end end) mainTween:Play() end end) -- MECHANICS: Close Button ("X") To Close Entire GUI CloseBtn.MouseButton1Click:Connect(function() -- Disconnect loops safely before removal if spinConnection then spinConnection:Disconnect() end if angryTpConnection then angryTpConnection:Disconnect() end ScreenGui:Destroy() end) -- Dragging logic framework handles panel updates seamlessly local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart TweenService:Create(MainFrame, TweenInfo.new(0.08, Enum.EasingStyle.Linear), { Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) }):Play() end MainFrame.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) MainFrame.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)