
KeylessUniversal

-- 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!")No comments yet for this script.



