Touch football keyless hub
Key RequiredUniversal

Touch football keyless hub

Universal ScriptKalzKalz 829 views 12.2K executesUpdated Aug 19, 2026
Unrated
00
Lua Script•312 lines (10808 chars)
-- Space Duels Key System UI
-- Features: Title, Redeem Key button, Copy Link button
-- Color scheme: Black and Greyish

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local guiService = game:GetService("GuiService")

-- Create the main ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "SpaceDuelsKeySystem"
screenGui.Parent = player:WaitForChild("PlayerGui")
screenGui.ResetOnSpawn = false

-- Create the main frame (Black/Greyish theme)
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 400, 0, 250)
mainFrame.Position = UDim2.new(0.5, -200, 0.5, -125)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) -- Dark grey
mainFrame.BorderSizePixel = 0
mainFrame.BackgroundTransparency = 0
mainFrame.Parent = screenGui

-- Drop shadow effect (a slightly larger frame behind)
local shadowFrame = Instance.new("Frame")
shadowFrame.Name = "ShadowFrame"
shadowFrame.Size = UDim2.new(0, 404, 0, 254)
shadowFrame.Position = UDim2.new(0.5, -202, 0.5, -127)
shadowFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) -- Black
shadowFrame.BorderSizePixel = 0
shadowFrame.BackgroundTransparency = 0.3
shadowFrame.Parent = screenGui

-- Title label
local titleLabel = Instance.new("TextLabel")
titleLabel.Name = "TitleLabel"
titleLabel.Size = UDim2.new(1, -20, 0, 50)
titleLabel.Position = UDim2.new(0, 10, 0, 15)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "🚀 SPACE DUELS KEY SYSTEM"
titleLabel.TextColor3 = Color3.fromRGB(200, 200, 200) -- Light grey
titleLabel.TextScaled = true
titleLabel.TextSize = 20
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Center
titleLabel.TextYAlignment = Enum.TextYAlignment.Center
titleLabel.Parent = mainFrame

-- Separator line
local separator = Instance.new("Frame")
separator.Name = "Separator"
separator.Size = UDim2.new(0.9, 0, 0, 2)
separator.Position = UDim2.new(0.05, 0, 0, 75)
separator.BackgroundColor3 = Color3.fromRGB(80, 80, 80) -- Greyish
separator.BorderSizePixel = 0
separator.Parent = mainFrame

-- Subtitle / Description
local descLabel = Instance.new("TextLabel")
descLabel.Name = "DescLabel"
descLabel.Size = UDim2.new(1, -20, 0, 30)
descLabel.Position = UDim2.new(0, 10, 0, 85)
descLabel.BackgroundTransparency = 1
descLabel.Text = "Enter your key or join our community!"
descLabel.TextColor3 = Color3.fromRGB(150, 150, 150) -- Medium grey
descLabel.TextScaled = true
descLabel.TextSize = 15
descLabel.Font = Enum.Font.Gotham
descLabel.TextXAlignment = Enum.TextXAlignment.Center
descLabel.TextYAlignment = Enum.TextYAlignment.Center
descLabel.Parent = mainFrame

-- Redeem Key Button
local redeemButton = Instance.new("TextButton")
redeemButton.Name = "RedeemButton"
redeemButton.Size = UDim2.new(0.8, 0, 0, 45)
redeemButton.Position = UDim2.new(0.1, 0, 0, 130)
redeemButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20) -- Almost black
redeemButton.TextColor3 = Color3.fromRGB(220, 220, 220) -- Light grey
redeemButton.Text = "🔑 REDEEM KEY"
redeemButton.TextScaled = true
redeemButton.TextSize = 18
redeemButton.Font = Enum.Font.GothamBold
redeemButton.BorderSizePixel = 1
redeemButton.BorderColor3 = Color3.fromRGB(70, 70, 70) -- Greyish border

-- Hover effect
local function onRedeemButtonEnter()
	redeemButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
	redeemButton.TextColor3 = Color3.fromRGB(255, 255, 255)
end

local function onRedeemButtonLeave()
	redeemButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
	redeemButton.TextColor3 = Color3.fromRGB(220, 220, 220)
end

redeemButton.MouseEnter:Connect(onRedeemButtonEnter)
redeemButton.MouseLeave:Connect(onRedeemButtonLeave)

-- Redeem button click function
redeemButton.MouseButton1Click:Connect(function()
	-- Simulate key redemption (You can replace this with actual key system logic)
	local keyInput = game:GetService("UserInputService"):GetStringFromUser("Enter your key:", "Redeem Key", "", Enum.InfoType.Information, Enum.KeyboardType.Default, false)
	if keyInput ~= nil and keyInput ~= "" then
		print("Key entered: " .. keyInput)
		-- Here you would implement your key validation
		-- For demonstration, we show a success message
		local successFrame = Instance.new("Frame")
		successFrame.Size = UDim2.new(0, 300, 0, 50)
		successFrame.Position = UDim2.new(0.5, -150, 0.5, -25)
		successFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
		successFrame.BorderSizePixel = 1
		successFrame.BorderColor3 = Color3.fromRGB(80, 80, 80)
		successFrame.BackgroundTransparency = 0
		successFrame.Parent = screenGui
		
		local successLabel = Instance.new("TextLabel")
		successLabel.Size = UDim2.new(1, 0, 1, 0)
		successLabel.BackgroundTransparency = 1
		successLabel.Text = "✅ Key redeemed successfully!"
		successLabel.TextColor3 = Color3.fromRGB(180, 255, 180)
		successLabel.TextScaled = true
		successLabel.Font = Enum.Font.GothamBold
		successLabel.Parent = successFrame
		
		-- Auto-dismiss after 2 seconds
		task.wait(2)
		successFrame:Destroy()
	else
		-- Show cancel/error message
		local errorFrame = Instance.new("Frame")
		errorFrame.Size = UDim2.new(0, 300, 0, 50)
		errorFrame.Position = UDim2.new(0.5, -150, 0.5, -25)
		errorFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
		errorFrame.BorderSizePixel = 1
		errorFrame.BorderColor3 = Color3.fromRGB(80, 80, 80)
		errorFrame.BackgroundTransparency = 0
		errorFrame.Parent = screenGui
		
		local errorLabel = Instance.new("TextLabel")
		errorLabel.Size = UDim2.new(1, 0, 1, 0)
		errorLabel.BackgroundTransparency = 1
		errorLabel.Text = "❌ Key redemption cancelled"
		errorLabel.TextColor3 = Color3.fromRGB(255, 150, 150)
		errorLabel.TextScaled = true
		errorLabel.Font = Enum.Font.GothamBold
		errorLabel.Parent = errorFrame
		
		task.wait(2)
		errorFrame:Destroy()
	end
end)

redeemButton.Parent = mainFrame

-- Copy Link Button
local copyButton = Instance.new("TextButton")
copyButton.Name = "CopyButton"
copyButton.Size = UDim2.new(0.8, 0, 0, 45)
copyButton.Position = UDim2.new(0.1, 0, 0, 190)
copyButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20) -- Almost black
copyButton.TextColor3 = Color3.fromRGB(220, 220, 220) -- Light grey
copyButton.Text = "📋 COPY LINK"
copyButton.TextScaled = true
copyButton.TextSize = 18
copyButton.Font = Enum.Font.GothamBold
copyButton.BorderSizePixel = 1
copyButton.BorderColor3 = Color3.fromRGB(70, 70, 70) -- Greyish border

-- Hover effect for copy button
local function onCopyButtonEnter()
	copyButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
	copyButton.TextColor3 = Color3.fromRGB(255, 255, 255)
end

local function onCopyButtonLeave()
	copyButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
	copyButton.TextColor3 = Color3.fromRGB(220, 220, 220)
end

copyButton.MouseEnter:Connect(onCopyButtonEnter)
copyButton.MouseLeave:Connect(onCopyButtonLeave)

-- Copy link function
copyButton.MouseButton1Click:Connect(function()
	-- The link to copy
	local discordLink = "https://discord.gg/47NakygzgF"
	
	-- Copy to clipboard using setclipboard (works in most executors)
	if setclipboard then
		setclipboard(discordLink)
		print("Link copied: " .. discordLink)
		
		-- Show confirmation message
		local confirmFrame = Instance.new("Frame")
		confirmFrame.Size = UDim2.new(0, 300, 0, 40)
		confirmFrame.Position = UDim2.new(0.5, -150, 0.5, -20)
		confirmFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
		confirmFrame.BorderSizePixel = 1
		confirmFrame.BorderColor3 = Color3.fromRGB(80, 80, 80)
		confirmFrame.BackgroundTransparency = 0
		confirmFrame.Parent = screenGui
		
		local confirmLabel = Instance.new("TextLabel")
		confirmLabel.Size = UDim2.new(1, 0, 1, 0)
		confirmLabel.BackgroundTransparency = 1
		confirmLabel.Text = "✅ Link copied to clipboard!"
		confirmLabel.TextColor3 = Color3.fromRGB(180, 255, 180)
		confirmLabel.TextScaled = true
		confirmLabel.Font = Enum.Font.GothamBold
		confirmLabel.Parent = confirmFrame
		
		-- Auto-dismiss after 2 seconds
		task.wait(2)
		confirmFrame:Destroy()
	else
		-- Fallback for environments without setclipboard
		local errorFrame = Instance.new("Frame")
		errorFrame.Size = UDim2.new(0, 300, 0, 40)
		errorFrame.Position = UDim2.new(0.5, -150, 0.5, -20)
		errorFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
		errorFrame.BorderSizePixel = 1
		errorFrame.BorderColor3 = Color3.fromRGB(80, 80, 80)
		errorFrame.BackgroundTransparency = 0
		errorFrame.Parent = screenGui
		
		local errorLabel = Instance.new("TextLabel")
		errorLabel.Size = UDim2.new(1, 0, 1, 0)
		errorLabel.BackgroundTransparency = 1
		errorLabel.Text = "⚠️ Clipboard not supported"
		errorLabel.TextColor3 = Color3.fromRGB(255, 200, 150)
		errorLabel.TextScaled = true
		errorLabel.Font = Enum.Font.GothamBold
		errorLabel.Parent = errorFrame
		
		task.wait(2)
		errorFrame:Destroy()
		
		-- Output to console as fallback
		print("Link to copy: " .. discordLink)
	end
end)

copyButton.Parent = mainFrame

-- Close button (small X in corner)
local closeButton = Instance.new("TextButton")
closeButton.Name = "CloseButton"
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Position = UDim2.new(1, -35, 0, 5)
closeButton.BackgroundTransparency = 1
closeButton.Text = "✕"
closeButton.TextColor3 = Color3.fromRGB(150, 150, 150)
closeButton.TextSize = 20
closeButton.Font = Enum.Font.GothamBold
closeButton.TextXAlignment = Enum.TextXAlignment.Center
closeButton.TextYAlignment = Enum.TextYAlignment.Center
closeButton.BorderSizePixel = 0

-- Hover effect for close button
local function onCloseEnter()
	closeButton.TextColor3 = Color3.fromRGB(255, 100, 100)
end

local function onCloseLeave()
	closeButton.TextColor3 = Color3.fromRGB(150, 150, 150)
end

closeButton.MouseEnter:Connect(onCloseEnter)
closeButton.MouseLeave:Connect(onCloseLeave)

-- Close function
closeButton.MouseButton1Click:Connect(function()
	screenGui:Destroy()
end)

closeButton.Parent = mainFrame

-- Make the UI draggable
local function makeDraggable(frame)
	local dragging = false
	local dragStart, startPos
	
	frame.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			dragging = true
			dragStart = input.Position
			startPos = frame.Position
		end
	end)
	
	frame.InputChanged:Connect(function(input)
		if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
			local delta = input.Position - dragStart
			frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, 
									  startPos.Y.Scale, startPos.Y.Offset + delta.Y)
		end
	end)
	
	frame.InputEnded:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			dragging = false
		end
	end)
end

-- Make only the title bar draggable (using the main frame and title)
makeDraggable(mainFrame)

print("Space Duels Key System UI loaded successfully!")

Features & Information

Touch football auto goal sneaky tp ball aimbot power shot juggle and more!!

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts