
Key RequiredUniversal

-- BluuGui LocalScript (draggable + four buttons + yappity with typing animation)
-- WARNING: game:HttpGet and loadstring are typically blocked in Roblox normal environment.
-- Use in exploit environment or trusted testing only.
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create ScreenGui
local bluuGui = Instance.new("ScreenGui")
bluuGui.Name = "BluuGui"
bluuGui.ResetOnSpawn = true
bluuGui.Parent = playerGui
-- Main frame (height increased to fit buttons + yappity)
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 360, 0, 420)
frame.Position = UDim2.new(0.5, -180, 0.5, -210)
frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
frame.BorderSizePixel = 0
frame.Active = true -- required for dragging
frame.Parent = bluuGui
local frameOutline = Instance.new("UIStroke")
frameOutline.Color = Color3.fromRGB(0, 255, 255)
frameOutline.Thickness = 3
frameOutline.Parent = frame
-- Title label
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -20, 0, 40)
title.Position = UDim2.new(0, 10, 0, 8)
title.BackgroundTransparency = 1
title.Text = "BluuGui"
title.TextColor3 = Color3.fromRGB(0, 255, 255)
title.Font = Enum.Font.Arcade
title.TextSize = 32
title.Parent = frame
-- Status label
local status = Instance.new("TextLabel")
status.Size = UDim2.new(1, -20, 0, 24)
status.Position = UDim2.new(0, 10, 0, 52)
status.BackgroundTransparency = 1
status.Text = "Status: Idle"
status.TextColor3 = Color3.fromRGB(180, 180, 180)
status.Font = Enum.Font.SourceSans
status.TextSize = 18
status.TextXAlignment = Enum.TextXAlignment.Left
status.Parent = frame
-- Helper to create buttons
local function createButton(yOffset, buttonText)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.9, 0, 0, 48)
btn.Position = UDim2.new(0.05, 0, 0, yOffset)
btn.BackgroundColor3 = Color3.fromRGB(0, 255, 255)
btn.TextColor3 = Color3.fromRGB(0, 0, 0)
btn.Font = Enum.Font.Arcade
btn.TextSize = 20
btn.Text = buttonText
btn.Parent = frame
local btnStroke = Instance.new("UIStroke")
btnStroke.Color = Color3.fromRGB(0, 0, 0)
btnStroke.Thickness = 2
btnStroke.Parent = btn
return btn
end
-- Create buttons (positions chosen to space the four nicely)
local loadExecutorBtn = createButton(88, "load da best executor")
local loadIYBtn = createButton(144, "load iy")
local loadSillyBtn = createButton(200, "load da silly")
local loadBestBtn = createButton(256, "load da best script")
-- Debounces
local loading = {
executor = false,
iy = false,
silly = false,
best = false
}
-- Generic fetch-and-run function
local function fetchAndRun(url, displayName, key)
if loading[key] then return end
loading[key] = true
status.Text = "Status: Loading " .. displayName .. "..."
local success, err = pcall(function()
local content = game:HttpGet(url)
if type(loadstring) ~= "function" then
error("loadstring is not available in this environment.")
end
local f, loadErr = loadstring(content)
if not f then
error("loadstring failed: " .. tostring(loadErr))
end
f()
end)
if success then
status.Text = "Status: Loaded " .. displayName .. " (Success)"
else
status.Text = "Status: Failed to load " .. displayName .. " - " .. tostring(err)
warn("Failed to load", displayName, ":", err)
end
wait(1.0)
loading[key] = false
end
-- Connect buttons
loadExecutorBtn.MouseButton1Click:Connect(function()
fetchAndRun("https://pastebin.com/raw/AximmCmd", "Universal Script (executor)", "executor")
end)
loadIYBtn.MouseButton1Click:Connect(function()
fetchAndRun("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source", "Infinite Yield (IY)", "iy")
end)
loadSillyBtn.MouseButton1Click:Connect(function()
fetchAndRun("https://raw.githubusercontent.com/Rawbr10/Roblox-Scripts/refs/heads/main/0%20Graviy%20Trip%20Universal", "Rizz Trip / Graviy Trip (silly)", "silly")
end)
loadBestBtn.MouseButton1Click:Connect(function()
fetchAndRun("https://pastebin.com/raw/Piw5bqGq", "XVC Hub (best script)", "best")
end)
-- ---------
-- Yappity Info Section with typing animation
-- ---------
local yappityMessages = {
"Bluu.",
"Dud.",
"Did you know the owner of this script hates BRAINROT?",
"Did you know the owner of this script is bisexual?",
"Did you know the owner of this script has 3 best friends named hyru and zharXD and moonie?",
"BLUUDUD'S COMING FOR YOU-",
"UHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
"Brick",
"I eat brick",
"I burped."
}
local yappityIndex = 1
local yappityFrame = Instance.new("Frame")
yappityFrame.Size = UDim2.new(0.9, 0, 0, 90)
yappityFrame.Position = UDim2.new(0.05, 0, 0, 312)
yappityFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
yappityFrame.Parent = frame
local yappityOutline = Instance.new("UIStroke")
yappityOutline.Color = Color3.fromRGB(0, 255, 255)
yappityOutline.Thickness = 3
yappityOutline.Parent = yappityFrame
local yappityLabel = Instance.new("TextLabel")
yappityLabel.Size = UDim2.new(1, -20, 1, -20)
yappityLabel.Position = UDim2.new(0, 10, 0, 10)
yappityLabel.BackgroundTransparency = 1
yappityLabel.TextColor3 = Color3.fromRGB(0, 255, 255)
yappityLabel.Font = Enum.Font.Arcade
yappityLabel.TextSize = 22
yappityLabel.TextWrapped = true
yappityLabel.Text = ""
yappityLabel.TextXAlignment = Enum.TextXAlignment.Left
yappityLabel.TextYAlignment = Enum.TextYAlignment.Top
yappityLabel.Parent = yappityFrame
-- Typing animation function
local function typeMessage(text)
yappityLabel.Text = ""
for i = 1, #text do
yappityLabel.Text = text:sub(1, i)
wait(0.05) -- typing speed (adjust if needed)
end
end
spawn(function()
while true do
local message = yappityMessages[yappityIndex]
typeMessage(message)
wait(2) -- hold full message for 2 seconds
yappityIndex = yappityIndex + 1
if yappityIndex > #yappityMessages then
yappityIndex = 1
end
end
end)
-- ---------------------------
-- Draggable frame implementation
-- ---------------------------
local dragging = false
local dragInput = nil
local dragStart = nil
local startPos = nil
local function onInputBegan(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or
input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end
local function onInputChanged(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or
input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end
frame.InputBegan:Connect(onInputBegan)
frame.InputChanged:Connect(onInputChanged)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging and dragStart and startPos then
local delta = input.Position - dragStart
local newX = startPos.X.Offset + delta.X
local newY = startPos.Y.Offset + delta.Y
local screenW = workspace.CurrentCamera.ViewportSize.X
local screenH = workspace.CurrentCamera.ViewportSize.Y
local frameW = frame.AbsoluteSize.X
local frameH = frame.AbsoluteSize.Y
local minX = -frameW + 30
local maxX = screenW - 30
local minY = -frameH + 30
local maxY = screenH - 30
if newX < minX then newX = minX end
if newX > maxX then newX = maxX end
if newY < minY then newY = minY end
if newY > maxY then newY = maxY end
frame.Position = UDim2.new(startPos.X.Scale, newX, startPos.Y.Scale, newY)
end
end)



emhh great?