Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ╔══════════════════════════════════════════╗
- -- ║ DELTA Key System — UI Blanca v2 ║
- -- ║ Coloca en StarterPlayerScripts ║
- -- ╚══════════════════════════════════════════╝
- local Players = game:GetService("Players")
- local TweenService = game:GetService("TweenService")
- local RunService = game:GetService("RunService")
- local player = Players.LocalPlayer
- local playerGui = player:WaitForChild("PlayerGui")
- local SERVER_URL = "https://delta-server-gs8s.onrender.com"
- -- ══════════════════════════════════════════
- -- COLORES
- -- ══════════════════════════════════════════
- local C = {
- white = Color3.fromRGB(255, 255, 255),
- off = Color3.fromRGB(245, 244, 240),
- gray = Color3.fromRGB(232, 230, 224),
- mid = Color3.fromRGB(154, 151, 144),
- dark = Color3.fromRGB(26, 25, 22),
- accent = Color3.fromRGB(255, 61, 0),
- accent2 = Color3.fromRGB(255, 149, 0),
- green = Color3.fromRGB(0, 200, 83),
- red = Color3.fromRGB(220, 50, 50),
- }
- -- ══════════════════════════════════════════
- -- TWEEN HELPERS
- -- ══════════════════════════════════════════
- local function tween(obj, props, t, style, dir)
- local info = TweenInfo.new(t or 0.25, style or Enum.EasingStyle.Quart, dir or Enum.EasingDirection.Out)
- TweenService:Create(obj, info, props):Play()
- end
- local function fadeIn(obj, duration)
- obj.BackgroundTransparency = 1
- tween(obj, {BackgroundTransparency = 0}, duration or 0.3)
- end
- -- ══════════════════════════════════════════
- -- VERIFICACIÓN
- -- ══════════════════════════════════════════
- local function verifyKey(key)
- local ok, result = pcall(function()
- local url = SERVER_URL .. "/verify?key=" .. key
- local res = game:HttpGet(url, true)
- return game:GetService("HttpService"):JSONDecode(res)
- end)
- if not ok then
- return { status = "ERROR", message = "Sin conexión" }
- end
- return result
- end
- -- ══════════════════════════════════════════
- -- GUI ROOT
- -- ══════════════════════════════════════════
- local ScreenGui = Instance.new("ScreenGui")
- ScreenGui.Name = "DeltaKeyUI"
- ScreenGui.ResetOnSpawn = false
- ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
- ScreenGui.IgnoreGuiInset = true
- ScreenGui.Parent = playerGui
- -- Overlay oscuro de fondo
- local Overlay = Instance.new("Frame")
- Overlay.Size = UDim2.new(1, 0, 1, 0)
- Overlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- Overlay.BackgroundTransparency = 0.5
- Overlay.BorderSizePixel = 0
- Overlay.ZIndex = 1
- Overlay.Parent = ScreenGui
- -- Partículas flotantes de fondo
- for i = 1, 6 do
- local dot = Instance.new("Frame")
- dot.Size = UDim2.new(0, math.random(4, 10), 0, math.random(4, 10))
- dot.Position = UDim2.new(math.random(0, 90)/100, 0, math.random(0, 90)/100, 0)
- dot.BackgroundColor3 = i % 2 == 0 and C.accent or C.accent2
- dot.BackgroundTransparency = 0.7
- dot.BorderSizePixel = 0
- dot.ZIndex = 2
- dot.Parent = ScreenGui
- Instance.new("UICorner", dot).CornerRadius = UDim.new(1, 0)
- -- Animación flotante
- local startY = dot.Position.Y.Scale
- local speed = math.random(2, 5)
- local offset = math.random(0, 100) / 100 * math.pi * 2
- RunService.Heartbeat:Connect(function(dt)
- local t = tick() * speed * 0.3 + offset
- dot.Position = UDim2.new(dot.Position.X.Scale, 0, startY + math.sin(t) * 0.03, 0)
- end)
- end
- -- ══════════════════════════════════════════
- -- CARD PRINCIPAL
- -- ══════════════════════════════════════════
- local Card = Instance.new("Frame")
- Card.Name = "Card"
- Card.Size = UDim2.new(0, 420, 0, 340)
- Card.Position = UDim2.new(0.5, -210, 0.5, -170)
- Card.BackgroundColor3 = C.white
- Card.BorderSizePixel = 0
- Card.ZIndex = 10
- Card.Parent = ScreenGui
- Instance.new("UICorner", Card).CornerRadius = UDim.new(0, 16)
- -- Sombra
- local Shadow = Instance.new("Frame")
- Shadow.Size = UDim2.new(1, 20, 1, 20)
- Shadow.Position = UDim2.new(0, -10, 0, 10)
- Shadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- Shadow.BackgroundTransparency = 0.75
- Shadow.BorderSizePixel = 0
- Shadow.ZIndex = 9
- Shadow.Parent = ScreenGui
- Instance.new("UICorner", Shadow).CornerRadius = UDim.new(0, 20)
- -- Línea superior degradé (accent)
- local TopBar = Instance.new("Frame")
- TopBar.Size = UDim2.new(1, 0, 0, 3)
- TopBar.BackgroundColor3 = C.accent
- TopBar.BorderSizePixel = 0
- TopBar.ZIndex = 11
- TopBar.Parent = Card
- Instance.new("UICorner", TopBar).CornerRadius = UDim.new(0, 16)
- local TopGrad = Instance.new("UIGradient", TopBar)
- TopGrad.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, C.accent),
- ColorSequenceKeypoint.new(1, C.accent2)
- }
- -- ══════════════════════════════════════════
- -- HEADER
- -- ══════════════════════════════════════════
- local Header = Instance.new("Frame")
- Header.Size = UDim2.new(1, 0, 0, 56)
- Header.Position = UDim2.new(0, 0, 0, 3)
- Header.BackgroundColor3 = C.off
- Header.BorderSizePixel = 0
- Header.ZIndex = 11
- Header.Parent = Card
- local Logo = Instance.new("TextLabel")
- Logo.Size = UDim2.new(0, 120, 1, 0)
- Logo.Position = UDim2.new(0, 20, 0, 0)
- Logo.BackgroundTransparency = 1
- Logo.Text = "DELTA"
- Logo.TextColor3 = C.dark
- Logo.Font = Enum.Font.GothamBold
- Logo.TextSize = 18
- Logo.TextXAlignment = Enum.TextXAlignment.Left
- Logo.ZIndex = 12
- Logo.Parent = Header
- local HeaderTag = Instance.new("TextLabel")
- HeaderTag.Size = UDim2.new(0, 160, 1, 0)
- HeaderTag.Position = UDim2.new(1, -180, 0, 0)
- HeaderTag.BackgroundTransparency = 1
- HeaderTag.Text = "KEY SYSTEM v2"
- HeaderTag.TextColor3 = C.mid
- HeaderTag.Font = Enum.Font.Code
- HeaderTag.TextSize = 10
- HeaderTag.TextXAlignment = Enum.TextXAlignment.Right
- HeaderTag.ZIndex = 12
- HeaderTag.Parent = Header
- local HeaderLine = Instance.new("Frame")
- HeaderLine.Size = UDim2.new(1, 0, 0, 1)
- HeaderLine.Position = UDim2.new(0, 0, 1, -1)
- HeaderLine.BackgroundColor3 = C.gray
- HeaderLine.BorderSizePixel = 0
- HeaderLine.ZIndex = 12
- HeaderLine.Parent = Header
- -- Botón cerrar
- local CloseBtn = Instance.new("TextButton")
- CloseBtn.Size = UDim2.new(0, 28, 0, 28)
- CloseBtn.Position = UDim2.new(1, -44, 0.5, -14)
- CloseBtn.BackgroundColor3 = C.gray
- CloseBtn.BorderSizePixel = 0
- CloseBtn.Text = "✕"
- CloseBtn.TextColor3 = C.mid
- CloseBtn.Font = Enum.Font.GothamBold
- CloseBtn.TextSize = 11
- CloseBtn.ZIndex = 13
- CloseBtn.Parent = Header
- Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 6)
- CloseBtn.MouseButton1Click:Connect(function()
- tween(Card, {Size = UDim2.new(0, 420, 0, 0), Position = UDim2.new(0.5, -210, 0.5, 0)}, 0.4, Enum.EasingStyle.Back, Enum.EasingDirection.In)
- tween(Overlay, {BackgroundTransparency = 1}, 0.3)
- task.delay(0.4, function() ScreenGui:Destroy() end)
- end)
- -- ══════════════════════════════════════════
- -- BODY
- -- ══════════════════════════════════════════
- local Body = Instance.new("Frame")
- Body.Size = UDim2.new(1, -48, 1, -80)
- Body.Position = UDim2.new(0, 24, 0, 68)
- Body.BackgroundTransparency = 1
- Body.ZIndex = 11
- Body.Parent = Card
- -- Eyebrow
- local Eyebrow = Instance.new("TextLabel")
- Eyebrow.Size = UDim2.new(1, 0, 0, 16)
- Eyebrow.BackgroundTransparency = 1
- Eyebrow.Text = "— ACCESO AL SCRIPT"
- Eyebrow.TextColor3 = C.mid
- Eyebrow.Font = Enum.Font.Code
- Eyebrow.TextSize = 9
- Eyebrow.TextXAlignment = Enum.TextXAlignment.Left
- Eyebrow.ZIndex = 12
- Eyebrow.Parent = Body
- -- Título
- local Title = Instance.new("TextLabel")
- Title.Size = UDim2.new(1, 0, 0, 36)
- Title.Position = UDim2.new(0, 0, 0, 18)
- Title.BackgroundTransparency = 1
- Title.Text = "Ingresa tu Key"
- Title.TextColor3 = C.dark
- Title.Font = Enum.Font.GothamBold
- Title.TextSize = 28
- Title.TextXAlignment = Enum.TextXAlignment.Left
- Title.ZIndex = 12
- Title.Parent = Body
- -- Input container
- local InputWrap = Instance.new("Frame")
- InputWrap.Size = UDim2.new(1, 0, 0, 44)
- InputWrap.Position = UDim2.new(0, 0, 0, 62)
- InputWrap.BackgroundColor3 = C.off
- InputWrap.BorderSizePixel = 1
- InputWrap.BorderColor3 = C.gray
- InputWrap.ZIndex = 12
- InputWrap.Parent = Body
- Instance.new("UICorner", InputWrap).CornerRadius = UDim.new(0, 10)
- local InputBox = Instance.new("TextBox")
- InputBox.Size = UDim2.new(1, -24, 1, 0)
- InputBox.Position = UDim2.new(0, 12, 0, 0)
- InputBox.BackgroundTransparency = 1
- InputBox.Text = ""
- InputBox.PlaceholderText = "DELTA-XXXX-XXXX-XXXX-XXXX"
- InputBox.PlaceholderColor3 = C.mid
- InputBox.TextColor3 = C.dark
- InputBox.Font = Enum.Font.Code
- InputBox.TextSize = 13
- InputBox.ClearTextOnFocus = false
- InputBox.ZIndex = 13
- InputBox.Parent = InputWrap
- InputBox:GetPropertyChangedSignal("Text"):Connect(function()
- local up = InputBox.Text:upper()
- if InputBox.Text ~= up then InputBox.Text = up end
- end)
- InputBox.Focused:Connect(function()
- tween(InputWrap, {BorderColor3 = C.accent}, 0.2)
- end)
- InputBox.FocusLost:Connect(function()
- tween(InputWrap, {BorderColor3 = C.gray}, 0.2)
- end)
- -- Botón verificar
- local VerifyBtn = Instance.new("TextButton")
- VerifyBtn.Size = UDim2.new(1, 0, 0, 44)
- VerifyBtn.Position = UDim2.new(0, 0, 0, 116)
- VerifyBtn.BackgroundColor3 = C.dark
- VerifyBtn.BorderSizePixel = 0
- VerifyBtn.Text = "VERIFICAR KEY"
- VerifyBtn.TextColor3 = C.white
- VerifyBtn.Font = Enum.Font.GothamBold
- VerifyBtn.TextSize = 12
- VerifyBtn.ZIndex = 12
- VerifyBtn.Parent = Body
- Instance.new("UICorner", VerifyBtn).CornerRadius = UDim.new(0, 10)
- local BtnGrad = Instance.new("UIGradient", VerifyBtn)
- BtnGrad.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, C.dark),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(40, 38, 34))
- }
- VerifyBtn.MouseEnter:Connect(function()
- tween(VerifyBtn, {BackgroundColor3 = C.accent}, 0.2)
- end)
- VerifyBtn.MouseLeave:Connect(function()
- tween(VerifyBtn, {BackgroundColor3 = C.dark}, 0.2)
- end)
- -- Resultado
- local ResultWrap = Instance.new("Frame")
- ResultWrap.Size = UDim2.new(1, 0, 0, 44)
- ResultWrap.Position = UDim2.new(0, 0, 0, 172)
- ResultWrap.BackgroundColor3 = C.off
- ResultWrap.BorderSizePixel = 0
- ResultWrap.Visible = false
- ResultWrap.ZIndex = 12
- ResultWrap.Parent = Body
- Instance.new("UICorner", ResultWrap).CornerRadius = UDim.new(0, 10)
- local ResultIcon = Instance.new("TextLabel")
- ResultIcon.Size = UDim2.new(0, 44, 1, 0)
- ResultIcon.BackgroundTransparency = 1
- ResultIcon.Text = "⊘"
- ResultIcon.TextColor3 = C.mid
- ResultIcon.Font = Enum.Font.GothamBold
- ResultIcon.TextSize = 20
- ResultIcon.ZIndex = 13
- ResultIcon.Parent = ResultWrap
- local ResultText = Instance.new("TextLabel")
- ResultText.Size = UDim2.new(1, -52, 0, 18)
- ResultText.Position = UDim2.new(0, 44, 0, 6)
- ResultText.BackgroundTransparency = 1
- ResultText.Text = "—"
- ResultText.TextColor3 = C.dark
- ResultText.Font = Enum.Font.GothamBold
- ResultText.TextSize = 13
- ResultText.TextXAlignment = Enum.TextXAlignment.Left
- ResultText.ZIndex = 13
- ResultText.Parent = ResultWrap
- local ResultSub = Instance.new("TextLabel")
- ResultSub.Size = UDim2.new(1, -52, 0, 14)
- ResultSub.Position = UDim2.new(0, 44, 0, 24)
- ResultSub.BackgroundTransparency = 1
- ResultSub.Text = "—"
- ResultSub.TextColor3 = C.mid
- ResultSub.Font = Enum.Font.Code
- ResultSub.TextSize = 10
- ResultSub.TextXAlignment = Enum.TextXAlignment.Left
- ResultSub.ZIndex = 13
- ResultSub.Parent = ResultWrap
- -- Loading bar
- local LoadBar = Instance.new("Frame")
- LoadBar.Size = UDim2.new(0, 0, 0, 2)
- LoadBar.Position = UDim2.new(0, 0, 0, 110)
- LoadBar.BackgroundColor3 = C.accent
- LoadBar.BorderSizePixel = 0
- LoadBar.Visible = false
- LoadBar.ZIndex = 12
- LoadBar.Parent = Body
- Instance.new("UICorner", LoadBar).CornerRadius = UDim.new(0, 1)
- -- ══════════════════════════════════════════
- -- ANIMACIÓN DE ENTRADA
- -- ══════════════════════════════════════════
- Card.Size = UDim2.new(0, 420, 0, 0)
- Card.Position = UDim2.new(0.5, -210, 0.5, 0)
- Overlay.BackgroundTransparency = 1
- tween(Overlay, {BackgroundTransparency = 0.5}, 0.4)
- tween(Card, {
- Size = UDim2.new(0, 420, 0, 340),
- Position = UDim2.new(0.5, -210, 0.5, -170)
- }, 0.6, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
- -- ══════════════════════════════════════════
- -- LÓGICA PRINCIPAL
- -- ══════════════════════════════════════════
- local function setResult(icon, text, sub, color, bgColor)
- ResultWrap.Visible = true
- ResultWrap.BackgroundColor3 = bgColor or C.off
- ResultIcon.Text = icon
- ResultIcon.TextColor3 = color
- ResultText.Text = text
- ResultText.TextColor3 = color
- ResultSub.Text = sub
- -- Animación pop
- ResultWrap.Size = UDim2.new(1, 0, 0, 0)
- tween(ResultWrap, {Size = UDim2.new(1, 0, 0, 44)}, 0.35, Enum.EasingStyle.Back)
- end
- local function runVerify()
- local raw = InputBox.Text:upper():gsub("%s+", "")
- if raw == "" then
- setResult("!", "Campo vacío", "Escribe tu key primero", C.mid, C.off)
- return
- end
- -- Loading bar animada
- VerifyBtn.Active = false
- VerifyBtn.Text = "Verificando..."
- ResultWrap.Visible = false
- LoadBar.Visible = true
- LoadBar.Size = UDim2.new(0, 0, 0, 2)
- tween(LoadBar, {Size = UDim2.new(0.7, 0, 0, 2)}, 1.5, Enum.EasingStyle.Quart)
- task.spawn(function()
- local data = verifyKey(raw)
- task.defer(function()
- LoadBar.Visible = false
- VerifyBtn.Active = true
- VerifyBtn.Text = "VERIFICAR KEY"
- if data.status == "VALID" then
- setResult(
- "✓",
- "Key válida — Cargando script...",
- (data.type or "USER") .. " · " .. (data.expiry == "Lifetime" and "∞ Lifetime" or "Expira: " .. (data.expiry or "—")),
- C.green,
- Color3.fromRGB(240, 252, 245)
- )
- InputWrap.BorderColor3 = C.green
- task.delay(1.5, function()
- -- Animación de salida
- tween(Card, {
- Size = UDim2.new(0, 420, 0, 0),
- Position = UDim2.new(0.5, -210, 0.5, 0)
- }, 0.5, Enum.EasingStyle.Back, Enum.EasingDirection.In)
- tween(Overlay, {BackgroundTransparency = 1}, 0.4)
- task.delay(0.5, function()
- ScreenGui:Destroy()
- loadstring(game:HttpGet("https://obfucatorhub.onrender.com/api/s0dp4u2d", true))()
- end)
- end)
- elseif data.status == "EXPIRED" then
- setResult(
- "⏳",
- "Key expirada",
- "Obtén una nueva key en el sitio",
- C.accent2,
- Color3.fromRGB(255, 252, 240)
- )
- InputWrap.BorderColor3 = C.accent2
- task.delay(1, function() InputWrap.BorderColor3 = C.gray end)
- elseif data.status == "NOT_FOUND" then
- setResult(
- "✕",
- "Key incorrecta",
- "Esa key no existe en el servidor",
- C.red,
- Color3.fromRGB(255, 242, 242)
- )
- InputWrap.BorderColor3 = C.red
- -- Shake del input
- for i = 1, 4 do
- task.wait(0.05)
- tween(InputWrap, {Position = UDim2.new(0, i%2==0 and 6 or -6, 0, 62)}, 0.05)
- end
- task.wait(0.05)
- tween(InputWrap, {Position = UDim2.new(0, 0, 0, 62)}, 0.1)
- task.delay(1, function() InputWrap.BorderColor3 = C.gray end)
- else
- setResult("⚠", "Sin conexión", "No se pudo conectar al servidor", C.mid, C.off)
- end
- end)
- end)
- end
- VerifyBtn.MouseButton1Click:Connect(runVerify)
- InputBox.FocusLost:Connect(function(enter) if enter then runVerify() end end)
- print("[DELTA] Key System v2 cargado ✓")
Advertisement
Add Comment
Please, Sign In to add comment