simple guii
Key RequiredUniversal

simple guii

Universal Scriptc00lscripterc00lscripter 24.8K views 187 executesUpdated Jul 6, 2025
Unrated
00
Lua Script•455 lines (14555 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

if playerGui:FindFirstChild("SimpleGUI") then
    playerGui.SimpleGUI:Destroy()
end

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "SimpleGUI"
screenGui.Parent = playerGui
screenGui.ResetOnSpawn = false

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 300, 0, 400)
frame.Position = UDim2.new(0, 20, 0, 20)
frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
frame.BorderSizePixel = 0
frame.Parent = screenGui

local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 0, 40)
titleLabel.Position = UDim2.new(0, 0, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Simple GUI!"
titleLabel.TextColor3 = Color3.new(1, 1, 1)
titleLabel.Font = Enum.Font.SourceSansBold
titleLabel.TextSize = 24
titleLabel.TextStrokeColor3 = Color3.new(0, 0, 0)
titleLabel.TextStrokeTransparency = 0
titleLabel.TextYAlignment = Enum.TextYAlignment.Center
titleLabel.Parent = frame

local tabsFrame = Instance.new("Frame")
tabsFrame.Size = UDim2.new(1, -20, 0, 35)
tabsFrame.Position = UDim2.new(0, 10, 0, 45)
tabsFrame.BackgroundTransparency = 1
tabsFrame.Parent = frame

local function createTabButton(text, posX)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, 85, 1, 0)
    btn.Position = UDim2.new(0, posX, 0, 0)
    btn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
    btn.BorderColor3 = Color3.fromRGB(255, 0, 0)
    btn.BorderSizePixel = 2
    btn.TextColor3 = Color3.new(1, 1, 1)
    btn.Font = Enum.Font.SourceSansBold
    btn.TextSize = 16
    btn.Text = text
    btn.Parent = tabsFrame
    return btn
end

local mainTabBtn = createTabButton("Main Hacks", 0)
local serverTabBtn = createTabButton("Serversided", 90)
local clientTabBtn = createTabButton("Clientside Scripts", 180)
local aiTabBtn = createTabButton("AI Ultimatum", 270)

local pages = {}

local function createPage()
    local p = Instance.new("Frame")
    p.Size = UDim2.new(1, -20, 1, -130)
    p.Position = UDim2.new(0, 10, 0, 85)
    p.BackgroundTransparency = 1
    p.Visible = false
    p.Parent = frame
    return p
end

pages.Main = createPage()
pages.Serversided = createPage()
pages.Clientside = createPage()
pages.AI = createPage()

pages.Main.Visible = true
mainTabBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)

local function resetTabs()
    mainTabBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
    serverTabBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
    clientTabBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
    aiTabBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
    for _, page in pairs(pages) do
        page.Visible = false
    end
end

mainTabBtn.MouseButton1Click:Connect(function()
    resetTabs()
    pages.Main.Visible = true
    mainTabBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
end)

serverTabBtn.MouseButton1Click:Connect(function()
    resetTabs()
    pages.Serversided.Visible = true
    serverTabBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
end)

clientTabBtn.MouseButton1Click:Connect(function()
    resetTabs()
    pages.Clientside.Visible = true
    clientTabBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
end)

aiTabBtn.MouseButton1Click:Connect(function()
    resetTabs()
    pages.AI.Visible = true
    aiTabBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
end)

local function createPageButton(parent, text, yPos)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1, 0, 0, 40)
    btn.Position = UDim2.new(0, 0, 0, yPos)
    btn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
    btn.BorderColor3 = Color3.fromRGB(255, 0, 0)
    btn.BorderSizePixel = 2
    btn.TextColor3 = Color3.new(1, 1, 1)
    btn.Font = Enum.Font.SourceSansBold
    btn.TextSize = 18
    btn.Text = text
    btn.Parent = parent
    return btn
end

local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

-- ==== Main Hacks Tab ==== --

local infiniteJumpEnabled = false
local infiniteJumpBtn = createPageButton(pages.Main, "Infinite Jump OFF", 0)
infiniteJumpBtn.MouseButton1Click:Connect(function()
    infiniteJumpEnabled = not infiniteJumpEnabled
    infiniteJumpBtn.Text = infiniteJumpEnabled and "Infinite Jump ON" or "Infinite Jump OFF"
end)

UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if infiniteJumpEnabled and input.KeyCode == Enum.KeyCode.Space then
        if humanoid and humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
            humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        end
    end
end)

local flying = false
local speed = 50
local flyVelocity, flyGyro, flyForce

local flyBtn = createPageButton(pages.Main, "Fly OFF", 50)
flyBtn.MouseButton1Click:Connect(function()
    flying = not flying
    flyBtn.Text = flying and "Fly ON" or "Fly OFF"
    
    local root = character:FindFirstChild("HumanoidRootPart")
    if flying and root then
        flyVelocity = Instance.new("BodyVelocity")
        flyVelocity.MaxForce = Vector3.new(1e5, 1e5, 1e5)
        flyVelocity.Velocity = Vector3.new(0,0,0)
        flyVelocity.Parent = root

        flyGyro = Instance.new("BodyGyro")
        flyGyro.MaxTorque = Vector3.new(1e5, 1e5, 1e5)
        flyGyro.CFrame = root.CFrame
        flyGyro.Parent = root

        flyForce = Instance.new("BodyForce")
        flyForce.Force = Vector3.new(0, workspace.Gravity * root:GetMass(), 0)
        flyForce.Parent = root
    elseif flyVelocity then
        flyVelocity:Destroy()
        flyVelocity = nil
        flyGyro:Destroy()
        flyGyro = nil
        flyForce:Destroy()
        flyForce = nil
    end
end)

RunService.Heartbeat:Connect(function()
    local root = character:FindFirstChild("HumanoidRootPart")
    if flying and flyVelocity and root then
        local cam = workspace.CurrentCamera
        local moveDir = Vector3.new(0,0,0)
        if UserInputService:IsKeyDown(Enum.KeyCode.W) then
            moveDir = moveDir + cam.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.S) then
            moveDir = moveDir - cam.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.A) then
            moveDir = moveDir - cam.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.D) then
            moveDir = moveDir + cam.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.E) then
            moveDir = moveDir + Vector3.new(0,1,0)
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.Q) then
            moveDir = moveDir - Vector3.new(0,1,0)
        end

        if moveDir.Magnitude > 0 then
            flyVelocity.Velocity = moveDir.Unit * speed
        else
            flyVelocity.Velocity = Vector3.new(0,0,0)
        end
        flyGyro.CFrame = cam.CFrame
    end
end)

local noclipEnabled = false
local noclipConnections = {}

local function noclipOn()
    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    noclipConnections.DescendantAdded = character.DescendantAdded:Connect(function(part)
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end)

    noclipConnections.Stepped = RunService.Stepped:Connect(function()
        for _, part in pairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = false
            end
        end
    end)
end

local function noclipOff()
    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = true
        end
    end
    for _, conn in pairs(noclipConnections) do
        conn:Disconnect()
    end
    noclipConnections = {}
end

local noclipBtn = createPageButton(pages.Main, "Noclip OFF", 100)
noclipBtn.MouseButton1Click:Connect(function()
    noclipEnabled = not noclipEnabled
    noclipBtn.Text = noclipEnabled and "Noclip ON" or "Noclip OFF"
    if noclipEnabled then
        noclipOn()
    else
        noclipOff()
    end
end)

local hideGuiBtn = createPageButton(pages.Main, "Hide GUI", 150)
hideGuiBtn.MouseButton1Click:Connect(function()
    screenGui.Enabled = false
end)

UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.KeyCode == Enum.KeyCode.L then
        screenGui.Enabled = not screenGui.Enabled
    end
end)

local closeGuiBtn = createPageButton(pages.Main, "Close GUI", 200)
closeGuiBtn.MouseButton1Click:Connect(function()
    screenGui:Destroy()
end)

-- ==== Serversided Tab ==== --

local superGuyActive = false
local superGuyConnection = nil

local function startSuperGuy()
    if superGuyConnection then return end
    superGuyConnection = RunService.Heartbeat:Connect(function()
        if not character or not character.Parent then return end
        for _, part in pairs(character:GetChildren()) do
            if part:IsA("BasePart") then
                part.Color = Color3.fromHSV(tick() % 5 / 5, 1, 1)
            end
        end
    end)
end

local function stopSuperGuy()
    if superGuyConnection then
        superGuyConnection:Disconnect()
        superGuyConnection = nil
    end
    if character and character.Parent then
        for _, part in pairs(character:GetChildren()) do
            if part:IsA("BasePart") then
                part.Color = Color3.new(1, 1, 1)
            end
        end
    end
end

local superGuyBtn = createPageButton(pages.Serversided, "Super Guy OFF", 0)
superGuyBtn.MouseButton1Click:Connect(function()
    superGuyActive = not superGuyActive
    superGuyBtn.Text = superGuyActive and "Super Guy ON" or "Super Guy OFF"
    if superGuyActive then
        startSuperGuy()
    else
        stopSuperGuy()
    end
end)

local function giveLocalBat()
    local existing = player.Backpack:FindFirstChild("Bat") or player.Character:FindFirstChild("Bat")
    if existing then existing:Destroy() end
    
    local tool = Instance.new("Tool")
    tool.Name = "Bat"
    tool.RequiresHandle = true
    tool.CanBeDropped = false
    
    local handle = Instance.new("Part")
    handle.Name = "Handle"
    handle.Size = Vector3.new(1, 4, 1)
    handle.Color = Color3.fromRGB(70, 70, 70)
    handle.Material = Enum.Material.Wood
    handle.Parent = tool
    
    tool.Parent = player.Backpack
    
    humanoid:EquipTool(tool)
    
    delay(0.2, function()
        local charTool = player.Character:FindFirstChild("Bat")
        if charTool then
            charTool.Parent = nil
        end
    end)
end

local function removeLocalBat()
    local tool = player.Backpack:FindFirstChild("Bat")
    if tool then tool:Destroy() end
    local charTool = player.Character:FindFirstChild("Bat")
    if charTool then charTool:Destroy() end
end

local localBatActive = false
local batBtn = createPageButton(pages.Serversided, "Local Bat OFF", 40)
batBtn.MouseButton1Click:Connect(function()
    localBatActive = not localBatActive
    if localBatActive then
        giveLocalBat()
        batBtn.Text = "Local Bat ON"
    else
        removeLocalBat()
        batBtn.Text = "Local Bat OFF"
    end
end)

-- ==== Clientside Scripts Tab ==== --
-- (Empty to avoid issues, can add later)

-- ==== AI Ultimatum Tab ==== --

local conversationBox = Instance.new("ScrollingFrame")
conversationBox.Size = UDim2.new(1, -20, 0, 250)
conversationBox.Position = UDim2.new(0, 10, 0, 10)
conversationBox.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
conversationBox.BorderColor3 = Color3.fromRGB(255, 0, 0)
conversationBox.BorderSizePixel = 2
conversationBox.CanvasSize = UDim2.new(0, 0, 0, 0)
conversationBox.AutomaticCanvasSize = Enum.AutomaticSize.Y
conversationBox.ScrollBarThickness = 6
conversationBox.Parent = pages.AI

local uiLayout = Instance.new("UIListLayout")
uiLayout.SortOrder = Enum.SortOrder.LayoutOrder
uiLayout.Padding = UDim.new(0, 5)
uiLayout.Parent = conversationBox

local inputBox = Instance.new("TextBox")
inputBox.Size = UDim2.new(1, -20, 0, 30)
inputBox.Position = UDim2.new(0, 10, 0, 270)
inputBox.PlaceholderText = "Ask me anything Roblox-related..."
inputBox.TextColor3 = Color3.new(1, 1, 1)
inputBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
inputBox.BorderColor3 = Color3.fromRGB(255, 0, 0)
inputBox.BorderSizePixel = 2
inputBox.Font = Enum.Font.SourceSansBold
inputBox.TextSize = 18
inputBox.Parent = pages.AI

local sendBtn = createPageButton(pages.AI, "Send", 310)

local function addMessage(text, fromUser)
    local msgLabel = Instance.new("TextLabel")
    msgLabel.BackgroundTransparency = 0.7
    msgLabel.BackgroundColor3 = fromUser and Color3.fromRGB(30, 100, 30) or Color3.fromRGB(30, 30, 100)
    msgLabel.TextColor3 = Color3.new(1, 1, 1)
    msgLabel.Size = UDim2.new(1, 0, 0, 30)
    msgLabel.Font = Enum.Font.SourceSansBold
    msgLabel.TextSize = 18
    msgLabel.TextWrapped = true
    msgLabel.Text = text
    msgLabel.LayoutOrder = conversationBox.UIListLayout.AbsoluteContentSize.Y + 1
    msgLabel.Parent = conversationBox

    conversationBox.CanvasSize = UDim2.new(0, 0, 0, uiLayout.AbsoluteContentSize.Y)
    conversationBox.CanvasPosition = Vector2.new(0, conversationBox.CanvasSize.Y.Offset)
end

local function generateReply(input)
    input = input:lower()
    if input:find("hello") or input:find("hi") then
        return "Hey there! How can I help you with Roblox today?"
    elseif input:find("hack") or input:find("script") then
        return "Looking for scripts? Check out the tabs above!"
    elseif input:find("jump") then
        return "Infinite jump lets you jump forever! Toggle it on the Main Hacks tab."
    elseif input:find("fly") then
        return "Fly mode lets you soar through the sky with WASD and EQ keys."
    elseif input:find("noclip") then
        return "Noclip lets you walk through walls and objects."
    elseif input:find("thanks") or input:find("thank you") then
        return "You're welcome! Happy hacking!"
    else
        return "Sorry, I didn't get that. Ask me about hacks or Roblox stuff!"
    end
end

sendBtn.MouseButton1Click:Connect(function()
    local text = inputBox.Text
    if text == "" then return end
    addMessage(text, true)
    inputBox.Text = ""

    local reply = generateReply(text)
    wait(0.7)
    addMessage(reply, false)
end)

Features & Information

There are 4 pages: Main Page: INF Jump (doesnt work) Fly, Noclip, Hide GUI, (it appears again with L, and Close GUI. Serversided: (this depends on the executor) Super Guy (makes you rainbow) Bat (not really a bat, it just simulates youre punching) Clientside Script; Nothing. AI Ultimatum: Speak with a AI! Commands: Hello/Hi/thanks/noclip/fly/jump/hack

Community Comments (6)

c00lscripterc00lscripterJul 6, 2025

Made by Ai, i know bro lol

c00lscripterc00lscripterJul 6, 2025

this is the actually cool one, imma use this alot tho

stevensumpter462stevensumpter462Jul 6, 2025

How I use it

c00lscripterc00lscripterJul 6, 2025

execute it on your executor then use it?? i mean its a simple gui literally

gage7759gage7759Jul 6, 2025

i dont know how to run a script

c00lscripterc00lscripterJul 6, 2025

bruhhhh you need a executor

More Scripts for Universal Scripts