COOL GUI TRY IT
Key RequiredUniversal

COOL GUI TRY IT

Universal ScriptHelloboyHelloboy 881 views 3.4K executesUpdated Dec 28, 2025
Unrated
00
Lua Script•229 lines (7475 chars)
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")

local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera

-- 1. UI CREATION
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CoolGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")

-- Toggle Button (Draggable preference handled below)
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 60, 0, 40)
toggleBtn.Position = UDim2.new(0, 20, 0.5, -20)
toggleBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
toggleBtn.Text = "Cool"
toggleBtn.TextColor3 = Color3.fromRGB(0, 255, 150)
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 14
toggleBtn.Parent = screenGui
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8)

-- Main Menu Frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 320, 0, 380)
mainFrame.Position = UDim2.new(0.5, -160, 0.5, -190)
mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
mainFrame.Visible = false
mainFrame.Parent = screenGui
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 12)

-- Header
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 50)
title.BackgroundTransparency = 1
title.Text = "COOL GUI"
title.TextColor3 = Color3.fromRGB(0, 255, 150)
title.Font = Enum.Font.GothamBlack
title.TextSize = 20
title.Parent = mainFrame

-- Tab System
local tabContainer = Instance.new("Frame")
tabContainer.Size = UDim2.new(1, 0, 0, 35)
tabContainer.Position = UDim2.new(0, 0, 0, 50)
tabContainer.BackgroundTransparency = 1
tabContainer.Parent = mainFrame

local tabLayout = Instance.new("UIListLayout")
tabLayout.FillDirection = Enum.FillDirection.Horizontal
tabLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
tabLayout.Padding = UDim.new(0, 10)
tabLayout.Parent = tabContainer

local contentContainer = Instance.new("Frame")
contentContainer.Size = UDim2.new(1, -20, 1, -100)
contentContainer.Position = UDim2.new(0, 10, 0, 95)
contentContainer.BackgroundTransparency = 1
contentContainer.Parent = mainFrame

local currentTab = nil
local function createTab(name)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0, 85, 1, 0)
	btn.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
	btn.Text = name
	btn.TextColor3 = Color3.new(1, 1, 1)
	btn.Font = Enum.Font.GothamBold
	btn.Parent = tabContainer
	Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
	
	local scroll = Instance.new("ScrollingFrame")
	scroll.Size = UDim2.new(1, 0, 1, 0)
	scroll.BackgroundTransparency = 1
	scroll.ScrollBarThickness = 3
	scroll.Visible = false
	scroll.Parent = contentContainer
	
	Instance.new("UIListLayout", scroll).Padding = UDim.new(0, 8)
	
	btn.MouseButton1Click:Connect(function()
		if currentTab then currentTab.Visible = false end
		scroll.Visible = true
		currentTab = scroll
	end)
	return scroll
end

local mainTab = createTab("Features")
local visTab = createTab("Visuals")
local tpTab = createTab("Players")
mainTab.Visible = true
currentTab = mainTab

-- 2. CORE LOGIC (Toggle & Drag)
toggleBtn.MouseButton1Click:Connect(function()
	mainFrame.Visible = not mainFrame.Visible
end)

local function makeDraggable(obj)
	local dragging, dragInput, dragStart, startPos
	obj.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true; dragStart = input.Position; startPos = obj.Position
			input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end)
		end
	end)
	obj.InputChanged:Connect(function(input)
		if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
			local delta = input.Position - dragStart
			obj.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
		end
	end)
end
makeDraggable(mainFrame)

local function createButton(tab, text, callback)
	local b = Instance.new("TextButton")
	b.Size = UDim2.new(1, -10, 0, 40)
	b.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
	b.Text = text
	b.TextColor3 = Color3.new(1, 1, 1)
	b.Font = Enum.Font.Gotham
	b.Parent = tab
	Instance.new("UICorner", b)
	b.MouseButton1Click:Connect(function() callback(b) end)
	return b
end

-- 3. FEATURES
-- Flight
local flying = false
local flySpeed = 50
local bv, bg
createButton(mainTab, "Fly: OFF", function(btn)
	flying = not flying
	btn.Text = "Fly: " .. (flying and "ON" or "OFF")
	btn.TextColor3 = flying and Color3.fromRGB(0, 255, 150) or Color3.new(1,1,1)
	local char = player.Character
	if flying and char and char:FindFirstChild("HumanoidRootPart") then
		bv = Instance.new("BodyVelocity", char.HumanoidRootPart)
		bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
		bg = Instance.new("BodyGyro", char.HumanoidRootPart)
		bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
		task.spawn(function()
			while flying and char:FindFirstChild("Humanoid") do
				bv.Velocity = camera.CFrame.LookVector * flySpeed
				bg.CFrame = camera.CFrame
				task.wait()
			end
			if bv then bv:Destroy() end; if bg then bg:Destroy() end
		end)
	elseif bv then
		bv:Destroy(); bg:Destroy()
	end
end)

-- Rainbow Skin (With Color Reset)
local rainbowOn = false
local originalColors = {}
createButton(visTab, "Rainbow Skin: OFF", function(btn)
	rainbowOn = not rainbowOn
	btn.Text = "Rainbow Skin: " .. (rainbowOn and "ON" or "OFF")
	btn.TextColor3 = rainbowOn and Color3.fromRGB(0, 255, 255) or Color3.new(1,1,1)
	local char = player.Character
	if not char then return end
	if rainbowOn then
		for _, part in pairs(char:GetChildren()) do
			if part:IsA("BasePart") then originalColors[part] = part.Color end
		end
	else
		for part, color in pairs(originalColors) do
			if part and part.Parent then part.Color = color end
		end
		originalColors = {}
	end
end)

RunService.RenderStepped:Connect(function()
	if rainbowOn and player.Character then
		local color = Color3.fromHSV(tick() % 5 / 5, 0.8, 1)
		for _, part in pairs(player.Character:GetChildren()) do
			if part:IsA("BasePart") then part.Color = color end
		end
	end
end)

-- ESP
local espOn = false
createButton(visTab, "Player ESP: OFF", function(btn)
	espOn = not espOn
	btn.Text = "Player ESP: " .. (espOn and "ON" or "OFF")
	if not espOn then
		for _, p in pairs(Players:GetPlayers()) do
			if p.Character and p.Character:FindFirstChild("Highlight") then p.Character.Highlight:Destroy() end
		end
	end
end)

RunService.Heartbeat:Connect(function()
	if espOn then
		for _, p in pairs(Players:GetPlayers()) do
			if p ~= player and p.Character and not p.Character:FindFirstChild("Highlight") then
				local h = Instance.new("Highlight", p.Character)
				h.FillColor = Color3.fromRGB(0, 255, 150)
			end
		end
	end
end)

-- Teleport Player List
local function updateTP()
	for _, child in pairs(tpTab:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end
	createButton(tpTab, "🔄 Refresh List", updateTP)
	for _, p in pairs(Players:GetPlayers()) do
		if p ~= player then
			createButton(tpTab, p.DisplayName, function()
				if p.Character and player.Character then
					player.Character.HumanoidRootPart.CFrame = p.Character.HumanoidRootPart.CFrame
				end
			end)
		end
	end
end
updateTP()

Features & Information

Soooo I saw someone that made a cool gui where you can take the script and add things to it and I thought of why don't I make a cool gui also but you guys in the amazing script blox community tell me what to add or improve to the gui and for you guys to do that yall just gotta say it in the comments anyone at all
#Gui#For community#Cool

Community Comments (2)

TheBuilderScriptTheBuilderScriptDec 28, 2025

real or fake :v

Replying to @TheBuilderScript
HelloboyHelloboyDec 28, 2025

@TheBuilderScript what do you mean real or fake?

More Scripts for Universal Scripts