
Key Required VerifiedUniversal

-- WorldCupGUI v2 (Draggable Version)
-- Place in StarterGui (LocalScript)
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local StarterGui = game:GetService("StarterGui")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Helper to make instances
local function new(class, props)
local obj = Instance.new(class)
for k, v in pairs(props or {}) do
if k == "Parent" then
obj.Parent = v
else
obj[k] = v
end
end
return obj
end
-- Root GUI
local gui = new("ScreenGui", {
Name = "WorldCupGUI",
Parent = playerGui,
ResetOnSpawn = false
})
-- Main frame
local main = new("Frame", {
Parent = gui,
Size = UDim2.new(0, 280, 0, 200),
Position = UDim2.new(0.5, -140, 0.4, -100),
BackgroundColor3 = Color3.fromRGB(140, 10, 10),
BorderSizePixel = 0
})
new("UICorner", {Parent = main, CornerRadius = UDim.new(0, 14)})
new("UIStroke", {Parent = main, Color = Color3.fromRGB(255, 70, 70), Thickness = 1.4})
local grad = new("UIGradient", {Parent = main, Rotation = 90})
grad.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(200, 30, 30)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 5, 5))
}
-- ✅ DRAGGABLE SYSTEM (Smooth + Works on All Frames)
local dragging = false
local dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
main.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = main.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then
update(input)
end
end)
-- Title
local title = new("TextLabel", {
Parent = main,
Size = UDim2.new(1, 0, 0, 32),
BackgroundTransparency = 1,
Text = "🌍 WORLD CUP",
Font = Enum.Font.GothamBlack,
TextSize = 20,
TextColor3 = Color3.fromRGB(255, 245, 240)
})
-- Open button
local openBtn = new("TextButton", {
Parent = gui,
Size = UDim2.new(0, 120, 0, 40),
Position = UDim2.new(0.5, -60, 0.25, 0),
Text = "Open",
Font = Enum.Font.GothamBold,
TextSize = 18,
TextColor3 = Color3.new(1, 1, 1),
BackgroundColor3 = Color3.fromRGB(60, 10, 10)
})
new("UICorner", {Parent = openBtn, CornerRadius = UDim.new(0, 10)})
new("UIStroke", {Parent = openBtn, Color = Color3.fromRGB(255, 80, 80), Thickness = 1.5})
main.Visible = false
openBtn.MouseButton1Click:Connect(function()
main.Visible = not main.Visible
if main.Visible then
StarterGui:SetCore("SendNotification", {
Title = "World Cup",
Text = "Good luck bro!",
Duration = 4
})
end
end)
-- Buttons layout
local layout = new("UIListLayout", {
Parent = main,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
Padding = UDim.new(0, 6)
})
layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
main.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y)
end)
-- Function to make styled buttons
local function createButton(name, color)
local b = new("TextButton", {
Parent = main,
Size = UDim2.new(0, 180, 0, 34),
BackgroundColor3 = color or Color3.fromRGB(170, 20, 20),
Text = name,
Font = Enum.Font.GothamBold,
TextSize = 16,
TextColor3 = Color3.new(1, 1, 1)
})
new("UICorner", {Parent = b, CornerRadius = UDim.new(0, 8)})
new("UIStroke", {Parent = b, Color = Color3.fromRGB(255, 100, 100), Thickness = 1})
return b
end
-- Water Teleport
local waterBtn = createButton("💧 Water Teleport", Color3.fromRGB(0, 90, 200))
waterBtn.MouseButton1Click:Connect(function()
local char = player.Character
if char and char:FindFirstChild("HumanoidRootPart") then
char:FindFirstChild("HumanoidRootPart").CFrame += Vector3.new(0, 50, 0)
end
end)
-- Set position
local customPos = nil
local setPosBtn = createButton("📍 Set Teleport Position", Color3.fromRGB(180, 50, 20))
setPosBtn.MouseButton1Click:Connect(function()
local char = player.Character
if char and char:FindFirstChild("HumanoidRootPart") then
customPos = char:FindFirstChild("HumanoidRootPart").Position
StarterGui:SetCore("SendNotification", {
Title = "Teleport Position Saved!",
Text = string.format("X: %d Y: %d Z: %d", customPos.X, customPos.Y, customPos.Z),
Duration = 3
})
end
end)
-- Teleport once
local tpOnceBtn = createButton("⚡ Teleport Once", Color3.fromRGB(200, 40, 40))
tpOnceBtn.MouseButton1Click:Connect(function()
if customPos then
local char = player.Character
if char and char:FindFirstChild("HumanoidRootPart") then
char:FindFirstChild("HumanoidRootPart").CFrame = CFrame.new(customPos)
end
end
end)
-- Auto spam teleport
local spamBtn = createButton("🔁 Auto Spam Teleport: OFF", Color3.fromRGB(160, 20, 20))
local spamming = false
spamBtn.MouseButton1Click:Connect(function()
spamming = not spamming
spamBtn.Text = spamming and "🔁 Auto Spam Teleport: ON" or "🔁 Auto Spam Teleport: OFF"
if spamming then
task.spawn(function()
while spamming do
local char = player.Character
if char and char:FindFirstChild("HumanoidRootPart") and customPos then
char:FindFirstChild("HumanoidRootPart").CFrame = CFrame.new(customPos)
end
task.wait(0.25)
end
end)
end
end)



Owner dm - x86h (on discord) I have a request for which I can pay you money