blahgui fe created by me
Key RequiredUniversal

blahgui fe created by me

Universal Scriptblah20180blah20180 948 views 46 executesUpdated Oct 11, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•438 lines (15149 chars)
-- LocalScript: StarterPlayerScripts
-- Modern polished GUI (wide) with working logic, minimize hides controls, credits popup
-- All features are client-side & safe.

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer

-- ensure we track character correctly
local char = player.Character
player.CharacterAdded:Connect(function(c) char = c end)

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

local frame = Instance.new("Frame")
frame.Name = "MainFrame"
frame.Size = UDim2.new(0, 520, 0, 480)
frame.Position = UDim2.new(0, 40, 0, 60)
frame.BackgroundColor3 = Color3.fromRGB(40, 180, 40)
frame.Active = true
frame.Draggable = true
frame.Parent = screenGui
local frameCorner = Instance.new("UICorner", frame)
frameCorner.CornerRadius = UDim.new(0, 12)

-- Top bar (keeps visible when minimized)
local topBar = Instance.new("Frame")
topBar.Name = "TopBar"
topBar.Size = UDim2.new(1, 0, 0, 36)
topBar.Position = UDim2.new(0,0,0,0)
topBar.BackgroundTransparency = 1
topBar.Parent = frame

-- Credits button (top-right, left of close)
local creditsBtn = Instance.new("TextButton")
creditsBtn.Name = "CreditsBtn"
creditsBtn.Size = UDim2.new(0, 90, 0, 28)
creditsBtn.Position = UDim2.new(1, -180, 0, 4)
creditsBtn.Text = "Credits"
creditsBtn.Font = Enum.Font.GothamBold
creditsBtn.TextSize = 18
creditsBtn.BackgroundColor3 = Color3.fromRGB(60,60,60)
creditsBtn.TextColor3 = Color3.fromRGB(255,255,255)
creditsBtn.Parent = topBar
local creditsCorner = Instance.new("UICorner", creditsBtn)
creditsCorner.CornerRadius = UDim.new(0,6)

-- Minimize and Close buttons
local minBtn = Instance.new("TextButton")
minBtn.Name = "MinimizeBtn"
minBtn.Size = UDim2.new(0, 36, 0, 28)
minBtn.Position = UDim2.new(1, -128, 0, 4)
minBtn.Text = "_"
minBtn.Font = Enum.Font.GothamBold
minBtn.TextSize = 20
minBtn.BackgroundColor3 = Color3.fromRGB(100,100,100)
minBtn.TextColor3 = Color3.fromRGB(255,255,255)
minBtn.Parent = topBar
local minCorner = Instance.new("UICorner", minBtn)
minCorner.CornerRadius = UDim.new(0,6)

local closeBtn = Instance.new("TextButton")
closeBtn.Name = "CloseBtn"
closeBtn.Size = UDim2.new(0, 36, 0, 28)
closeBtn.Position = UDim2.new(1, -80, 0, 4)
closeBtn.Text = "X"
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 20
closeBtn.BackgroundColor3 = Color3.fromRGB(200,50,50)
closeBtn.TextColor3 = Color3.fromRGB(255,255,255)
closeBtn.Parent = topBar
local closeCorner = Instance.new("UICorner", closeBtn)
closeCorner.CornerRadius = UDim.new(0,6)

closeBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end)

-- Content container (hidden when minimized)
local content = Instance.new("Frame")
content.Name = "Content"
content.Size = UDim2.new(1, 0, 1, -36) -- below top bar
content.Position = UDim2.new(0,0,0,36)
content.BackgroundTransparency = 1
content.Parent = frame

local contentPadding = Instance.new("UIPadding", content)
contentPadding.PaddingTop = UDim.new(0,8)
contentPadding.PaddingLeft = UDim.new(0,12)

-- Helpers for building elements
local y = 0
local function makeToggle(name)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, 480, 0, 44)
    btn.Position = UDim2.new(0, 12, 0, 8 + y)
    btn.BackgroundColor3 = Color3.fromRGB(20,150,20)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 18
    btn.TextColor3 = Color3.fromRGB(255,255,255)
    btn.Text = name.." [OFF]"
    local corner = Instance.new("UICorner", btn)
    corner.CornerRadius = UDim.new(0,8)
    btn.Parent = content

    btn.MouseEnter:Connect(function()
        TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(30,180,30)}):Play()
    end)
    btn.MouseLeave:Connect(function()
        TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(20,150,20)}):Play()
    end)

    y = y + 56
    return btn
end

local function makeButton(name)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, 480, 0, 44)
    btn.Position = UDim2.new(0, 12, 0, 8 + y)
    btn.BackgroundColor3 = Color3.fromRGB(20,150,20)
    btn.Font = Enum.Font.Gotham
    btn.TextSize = 18
    btn.TextColor3 = Color3.fromRGB(255,255,255)
    btn.Text = name
    local corner = Instance.new("UICorner", btn)
    corner.CornerRadius = UDim.new(0,8)
    btn.Parent = content

    btn.MouseEnter:Connect(function()
        TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(30,180,30)}):Play()
    end)
    btn.MouseLeave:Connect(function()
        TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(20,150,20)}):Play()
    end)

    y = y + 56
    return btn
end

local function makeTextbox(placeholder)
    local tb = Instance.new("TextBox")
    tb.Size = UDim2.new(0, 480, 0, 38)
    tb.Position = UDim2.new(0, 12, 0, 8 + y)
    tb.PlaceholderText = placeholder
    tb.Font = Enum.Font.Gotham
    tb.TextSize = 18
    tb.BackgroundColor3 = Color3.fromRGB(20,150,20)
    tb.TextColor3 = Color3.fromRGB(255,255,255)
    tb.ClearTextOnFocus = false
    local corner = Instance.new("UICorner", tb)
    corner.CornerRadius = UDim.new(0,6)
    tb.Parent = content
    y = y + 48
    return tb
end

-- Create controls (order/layout)
local flyToggle = makeToggle("Fly")
local spinToggle = makeToggle("Spin")
local orbitToggle = makeToggle("Orbit")

local teleportBox = makeTextbox("Player name to teleport to")
local orbitRadiusBox = makeTextbox("Orbit radius (default 5)")
local orbitSpeedBox = makeTextbox("Orbit speed (default 2)")
local flingBox = makeTextbox("Enter text for Fling effect")
local billboardBox = makeTextbox("Player name for Billboard")

local flingBtn = makeButton("Fling Text")
local bangBtn = makeButton("Bang (Local Teleport Spam)")
local teleportBtn = makeButton("Teleport to Player")
local billboardBtn = makeButton("Add Billboard Above Player")
local swordBtn = makeButton("Swing Sword (Local)")

-- Credits popup (hidden by default)
local creditsPopup = Instance.new("Frame")
creditsPopup.Size = UDim2.new(0, 300, 0, 120)
creditsPopup.Position = UDim2.new(0.5, -150, 0.5, -60)
creditsPopup.AnchorPoint = Vector2.new(0.5,0.5)
creditsPopup.BackgroundColor3 = Color3.fromRGB(35,35,35)
creditsPopup.Visible = false
creditsPopup.Parent = screenGui
local cpCorner = Instance.new("UICorner", creditsPopup)
cpCorner.CornerRadius = UDim.new(0,8)
local cpLabel = Instance.new("TextLabel")
cpLabel.Size = UDim2.new(1, -20, 1, -20)
cpLabel.Position = UDim2.new(0, 10, 0, 10)
cpLabel.BackgroundTransparency = 1
cpLabel.TextColor3 = Color3.fromRGB(255,255,255)
cpLabel.Font = Enum.Font.GothamBold
cpLabel.TextSize = 20
cpLabel.TextWrapped = true
cpLabel.Text = "made by blah20180"
cpLabel.Parent = creditsPopup

local creditsClose = Instance.new("TextButton")
creditsClose.Size = UDim2.new(0, 60, 0, 28)
creditsClose.Position = UDim2.new(1, -70, 0, 8)
creditsClose.Text = "Close"
creditsClose.Font = Enum.Font.Gotham
creditsClose.TextSize = 16
creditsClose.BackgroundColor3 = Color3.fromRGB(100,100,100)
creditsClose.TextColor3 = Color3.fromRGB(255,255,255)
creditsClose.Parent = creditsPopup
local ccCorner = Instance.new("UICorner", creditsClose)
ccCorner.CornerRadius = UDim.new(0,6)

creditsClose.MouseButton1Click:Connect(function()
    creditsPopup.Visible = false
end)

creditsBtn.MouseButton1Click:Connect(function()
    creditsPopup.Visible = true
end)

-- Minimize behavior: hide/show content with tween
local minimized = false
minBtn.MouseButton1Click:Connect(function()
    minimized = not minimized
    if minimized then
        -- hide content and shrink frame
        for _, child in ipairs(content:GetChildren()) do
            child.Visible = false
        end
        TweenService:Create(frame, TweenInfo.new(0.18), {Size = UDim2.new(0, 520, 0, 40)}):Play()
    else
        -- restore
        TweenService:Create(frame, TweenInfo.new(0.18), {Size = UDim2.new(0, 520, 0, 480)}):Play()
        -- small delay then show children so tween looks clean
        task.delay(0.18, function()
            for _, child in ipairs(content:GetChildren()) do
                child.Visible = true
            end
        end)
    end
end)

-- ========== Logic Variables ==========
local flying = false
local flyConn = nil
local spinning = false
local spinConn = nil
local orbiting = false
local orbitParts = {}
local orbitConn = nil
local teleporting = false

-- Ensure char reference
char = char or player.Character or player.CharacterAdded:Wait()

-- ========== Feature Logic ==========

-- Fly toggle
flyToggle.MouseButton1Click:Connect(function()
    -- handled by helper to toggle text & behavior; use toggle text state
    local on = string.find(flyToggle.Text, "%[OFF%]") ~= nil and true or false
    -- flip text first: if it's OFF -> we want ON
    if on then
        flyToggle.Text = "Fly [ON]"
        flying = true
    else
        flyToggle.Text = "Fly [OFF]"
        flying = false
    end

    -- update connection
    if flying then
        if char and char:FindFirstChild("HumanoidRootPart") then
            local hrp = char.HumanoidRootPart
            flyConn = RunService.Heartbeat:Connect(function()
                if flying then
                    hrp.Velocity = Vector3.new(0,20,0)
                else
                    if flyConn then flyConn:Disconnect() end
                end
            end)
        end
    else
        if flyConn then flyConn:Disconnect() flyConn = nil end
    end
end)

-- Spin toggle
spinToggle.MouseButton1Click:Connect(function()
    local on = string.find(spinToggle.Text, "%[OFF%]") ~= nil and true or false
    if on then
        spinToggle.Text = "Spin [ON]"
        spinning = true
    else
        spinToggle.Text = "Spin [OFF]"
        spinning = false
    end

    if spinning then
        if char and char:FindFirstChild("HumanoidRootPart") then
            local hrp = char.HumanoidRootPart
            spinConn = RunService.RenderStepped:Connect(function(dt)
                hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(100*dt), 0)
            end)
        end
    else
        if spinConn then spinConn:Disconnect() spinConn = nil end
    end
end)

-- Orbit toggle
orbitToggle.MouseButton1Click:Connect(function()
    local on = string.find(orbitToggle.Text, "%[OFF%]") ~= nil and true or false
    if on then
        orbitToggle.Text = "Orbit [ON]"
        orbiting = true
    else
        orbitToggle.Text = "Orbit [OFF]"
        orbiting = false
    end

    if orbiting then
        if char and char:FindFirstChild("HumanoidRootPart") then
            local hrp = char.HumanoidRootPart
            local radius = tonumber(orbitRadiusBox.Text) or 5
            local speed = tonumber(orbitSpeedBox.Text) or 2
            if #orbitParts == 0 then
                for i=1,5 do
                    local p = Instance.new("Part")
                    p.Size = Vector3.new(1,1,1)
                    p.Anchored = true
                    p.CanCollide = false
                    p.BrickColor = BrickColor.Random()
                    p.Parent = workspace
                    table.insert(orbitParts, p)
                end
            end
            local t = 0
            orbitConn = RunService.RenderStepped:Connect(function(dt)
                t = t + dt * speed
                for i, p in ipairs(orbitParts) do
                    local angle = t + (i-1)*(2*math.pi/#orbitParts)
                    p.Position = hrp.Position + Vector3.new(math.cos(angle)*radius, 2, math.sin(angle)*radius)
                end
            end)
        end
    else
        if orbitConn then orbitConn:Disconnect() orbitConn = nil end
        for _, p in ipairs(orbitParts) do if p then p:Destroy() end end
        orbitParts = {}
    end
end)

-- Fling button
flingBtn.MouseButton1Click:Connect(function()
    local msg = flingBox.Text
    if char and char:FindFirstChild("HumanoidRootPart") then
        local hrp = char.HumanoidRootPart
        local part = Instance.new("Part")
        part.Size = Vector3.new(2,2,2)
        part.Position = hrp.Position + Vector3.new(0,3,0)
        part.CanCollide = false
        part.Anchored = false
        part.BrickColor = BrickColor.Random()
        part.Parent = workspace

        local bv = Instance.new("BodyVelocity", part)
        bv.MaxForce = Vector3.new(1e5,1e5,1e5)
        bv.Velocity = Vector3.new(math.random(-20,20), math.random(10,30), math.random(-20,20))

        local bb = Instance.new("BillboardGui", part)
        bb.Size = UDim2.new(0,120,0,40)
        bb.Adornee = part
        bb.AlwaysOnTop = true
        local lbl = Instance.new("TextLabel", bb)
        lbl.Size = UDim2.new(1,0,1,0)
        lbl.BackgroundTransparency = 1
        lbl.Text = msg
        lbl.TextColor3 = Color3.fromRGB(255,255,255)
        lbl.TextScaled = true

        task.delay(5, function() if part then part:Destroy() end end)
    end
end)

-- Teleport (single)
teleportBtn.MouseButton1Click:Connect(function()
    if not char then return end
    local target = Players:FindFirstChild(teleportBox.Text)
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") and hrp then
        hrp.CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(0,3,0)
    end
end)

-- Billboard above player
billboardBtn.MouseButton1Click:Connect(function()
    local target = Players:FindFirstChild(billboardBox.Text)
    if target and target.Character and target.Character:FindFirstChild("Head") then
        local head = target.Character.Head
        local bb = Instance.new("BillboardGui", head)
        bb.Size = UDim2.new(0,160,0,44)
        bb.Adornee = head
        bb.AlwaysOnTop = true
        local lbl = Instance.new("TextLabel", bb)
        lbl.Size = UDim2.new(1,0,1,0)
        lbl.BackgroundTransparency = 1
        lbl.Text = "Hello!"
        lbl.TextColor3 = Color3.fromRGB(255,255,255)
        lbl.TextScaled = true
        task.delay(5, function() if bb then bb:Destroy() end end)
    end
end)

-- Sword swing
swordBtn.MouseButton1Click:Connect(function()
    if char and char:FindFirstChild("Humanoid") then
        local anim = Instance.new("Animation")
        anim.AnimationId = "rbxassetid://INSERT_YOUR_SWORD_ANIMATION_ID"
        local track = char.Humanoid:LoadAnimation(anim)
        track:Play()
    end
end)

-- Bang (local teleport spam toggle)
bangBtn.MouseButton1Click:Connect(function()
    teleporting = not teleporting
    bangBtn.Text = teleporting and "Bang [ON]" or "Bang (Local Teleport Spam)"
end)

RunService.RenderStepped:Connect(function()
    if teleporting and char and char:FindFirstChild("HumanoidRootPart") then
        local target = Players:FindFirstChild(teleportBox.Text)
        if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
            char.HumanoidRootPart.CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(0,3,0)
        end
    end
end)

-- finished

Features & Information

fly spin teleport to and more more updates coming soon
#op

Community Comments (6)

omnigabomnigabOct 11, 2025

good bro

Replying to @omnigab
blah20180blah20180Oct 11, 2025

ty i worked hard on it

blah20180blah20180Oct 11, 2025

if you tried it leave a comment saying what you think of my script

Replying to @blah20180
omnigabomnigabOct 14, 2025

@blah20180 noclip and speed

Replying to @omnigab
blah20180blah20180Oct 14, 2025

thank you for your opinion i will try to add those functions on the blahgui but with less buttons bc its better

omnigabomnigabOct 14, 2025

heed more function

More Scripts for Universal Scripts