
Key RequiredUniversal

local RunService = game:GetService("RunService")
local function hsvRainbow()
local t = tick() % 5
local hue = t / 5
return Color3.fromHSV(hue, 1, 1)
end
local function createGUI()
local gui = Instance.new("ScreenGui", game.Players.LocalPlayer:WaitForChild("PlayerGui"))
gui.Name = "MelonHub"
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 250, 0, 480)
frame.Position = UDim2.new(0, 100, 0, 100)
frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1, 0, 0, 40)
title.BackgroundTransparency = 1
title.Text = "MelonHub"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 22
-- Minimize Button
local minimizeBtn = Instance.new("TextButton", frame)
minimizeBtn.Size = UDim2.new(0, 30, 0, 30)
minimizeBtn.Position = UDim2.new(1, -35, 0, 5)
minimizeBtn.Text = "-"
minimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
minimizeBtn.TextColor3 = Color3.new(1, 1, 1)
local isMinimized = false
local children = {}
for _, child in pairs(frame:GetChildren()) do
if child:IsA("TextButton") or child:IsA("TextBox") or (child:IsA("TextLabel") and child ~= title) then
table.insert(children, child)
end
end
minimizeBtn.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
for _, child in pairs(children) do
child.Visible = not isMinimized
end
minimizeBtn.Text = isMinimized and "+" or "-"
end)
local settingsBtn = Instance.new("TextButton", frame)
settingsBtn.Size = UDim2.new(0, 30, 0, 30)
settingsBtn.Position = UDim2.new(1, -70, 0, 5)
settingsBtn.Text = "⚙️"
settingsBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
settingsBtn.TextColor3 = Color3.new(1, 1, 1)
local settingsPanel = Instance.new("Frame", frame)
settingsPanel.Size = UDim2.new(1, 0, 0, 120)
settingsPanel.Position = UDim2.new(0, 0, 0, 40)
settingsPanel.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
settingsPanel.Visible = false
settingsPanel.BorderSizePixel = 0
-- Close Button inside settings panel
local closeBtn = Instance.new("TextButton", settingsPanel)
closeBtn.Size = UDim2.new(1, -20, 0, 40)
closeBtn.Position = UDim2.new(0, 10, 0, 10)
closeBtn.Text = "Close Settings"
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.MouseButton1Click:Connect(function()
settingsPanel.Visible = false
end)
local colorBtn = Instance.new("TextButton", settingsPanel)
colorBtn.Size = UDim2.new(1, -20, 0, 40)
colorBtn.Position = UDim2.new(0, 10, 0, 60)
colorBtn.Text = "Change GUI Color"
colorBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
colorBtn.TextColor3 = Color3.new(1, 1, 1)
colorBtn.MouseButton1Click:Connect(function()
frame.BackgroundColor3 = Color3.fromRGB(math.random(0,255), math.random(0,255), math.random(0,255))
end)
settingsBtn.MouseButton1Click:Connect(function()
settingsPanel.Visible = not settingsPanel.Visible
end)
local btn1 = Instance.new("TextButton", frame)
btn1.Size = UDim2.new(1, -20, 0, 40)
btn1.Position = UDim2.new(0, 10, 0, 50)
btn1.Text = "Speed Boost"
btn1.BackgroundColor3 = Color3.fromRGB(0, 100, 255)
btn1.TextColor3 = Color3.new(1, 1, 1)
btn1.MouseButton1Click:Connect(function()
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 100
end)
local btn2 = Instance.new("TextButton", frame)
btn2.Size = UDim2.new(1, -20, 0, 40)
btn2.Position = UDim2.new(0, 10, 0, 100)
btn2.Text = "Auto Jump"
btn2.BackgroundColor3 = Color3.fromRGB(0, 200, 100)
btn2.TextColor3 = Color3.new(1, 1, 1)
btn2.MouseButton1Click:Connect(function()
_G.Jumping = not _G.Jumping
btn2.Text = _G.Jumping and "Stop Jump" or "Auto Jump"
while _G.Jumping do
local hum = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
wait(0.5)
end
end)
local btn3 = Instance.new("TextButton", frame)
btn3.Size = UDim2.new(1, -20, 0, 40)
btn3.Position = UDim2.new(0, 10, 0, 150)
btn3.Text = "Enable Noclip"
btn3.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
btn3.TextColor3 = Color3.new(1, 1, 1)
local noclip = false
local noclipConn
btn3.MouseButton1Click:Connect(function()
noclip = not noclip
btn3.Text = noclip and "Disable Noclip" or "Enable Noclip"
if noclip then
noclipConn = game:GetService("RunService").Stepped:Connect(function()
for _, v in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do
if v:IsA("BasePart") and v.CanCollide == true then
v.CanCollide = false
end
end
end)
else
if noclipConn then
noclipConn:Disconnect()
noclipConn = nil
end
end
end)
-- Godmode Button
local godmodeBtn = Instance.new("TextButton", frame)
godmodeBtn.Size = UDim2.new(1, -20, 0, 40)
godmodeBtn.Position = UDim2.new(0, 10, 0, 200)
godmodeBtn.Text = "Godmode"
godmodeBtn.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
godmodeBtn.TextColor3 = Color3.new(1, 1, 1)
local godmode = false
godmodeBtn.MouseButton1Click:Connect(function()
godmode = not godmode
godmodeBtn.Text = godmode and "Disable Godmode" or "Godmode"
local character = game.Players.LocalPlayer.Character
local humanoid = character:FindFirstChildOfClass("Humanoid")
if godmode then
humanoid.MaxHealth = math.huge
humanoid.Health = math.huge
humanoid.HealthChanged:Connect(function()
humanoid.Health = math.huge
end)
else
if humanoid then
humanoid.MaxHealth = 100
humanoid.Health = 100
end
end
end)
local inputBox = Instance.new("TextBox", frame)
inputBox.Size = UDim2.new(1, -20, 0, 30)
inputBox.Position = UDim2.new(0, 10, 0, 250)
inputBox.PlaceholderText = "Enter player name"
inputBox.Text = ""
inputBox.TextColor3 = Color3.new(1, 1, 1)
inputBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
inputBox.ClearTextOnFocus = false
local tpBtn = Instance.new("TextButton", frame)
tpBtn.Size = UDim2.new(1, -20, 0, 40)
tpBtn.Position = UDim2.new(0, 10, 0, 290)
tpBtn.Text = "Teleport"
tpBtn.BackgroundColor3 = Color3.fromRGB(140, 80, 255)
tpBtn.TextColor3 = Color3.new(1, 1, 1)
tpBtn.MouseButton1Click:Connect(function()
local targetName = inputBox.Text
local target = game.Players:FindFirstChild(targetName)
if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
local hrp = game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = target.Character.HumanoidRootPart.CFrame
end
else
warn("Player not found or no HumanoidRootPart")
end
end)
local followBtn = Instance.new("TextButton", frame)
followBtn.Size = UDim2.new(1, -20, 0, 40)
followBtn.Position = UDim2.new(0, 10, 0, 340)
followBtn.Text = "Follow"
followBtn.BackgroundColor3 = Color3.fromRGB(255, 165, 0)
followBtn.TextColor3 = Color3.new(1, 1, 1)
local followTarget = nil
followBtn.MouseButton1Click:Connect(function()
local targetName = inputBox.Text
followTarget = game.Players:FindFirstChild(targetName)
if followTarget and followTarget.Character and followTarget.Character:FindFirstChild("HumanoidRootPart") then
followBtn.Text = "Unfollow"
else
followTarget = nil
followBtn.Text = "Follow"
end
end)
RunService.Heartbeat:Connect(function() if followTarget and followTarget.Character then
local hrp = followTarget.Character:FindFirstChild("HumanoidRootPart")
local playerHRP = game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp and playerHRP then
playerHRP.CFrame = hrp.CFrame * CFrame.new(0, 0, 2)
end
end
-- Rainbow background
frame.BackgroundColor3 = hsvRainbow()
end)
end
game.Players.LocalPlayer.CharacterAdded:Connect(function(character)
repeat wait() until character:FindFirstChild("HumanoidRootPart")
local oldGui = game.Players.LocalPlayer:FindFirstChild("MelonHub")
if oldGui then oldGui:Destroy() end
createGUI()
end)
createGUI()



my favourite script ever