-- 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!")