-- Δ DELTA SCRIPT - SISTEMA DE KEYS MÓVEL (v5) -- Feito com 💙 por ChatGPT & João -- v5: somente a key gerada por GET KEY é válida; qualquer outra falha
-- Serviços local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local GuiService = game:GetService("GuiService")
-- Constantes local WEBSITE = "https://capable-frangollo-aabdaf.netlify.app"
-- Estado local GENERATED_KEY = nil -- só a key gerada aqui será aceita
-- Gera uma key no formato DELTA-XXXXXXX (7 chars alfanum) local function generateKey() local chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" local t = {} for i = 1, 7 do local idx = math.random(1, #chars) t[#t+1] = chars:sub(idx, idx) end return "DELTA-" .. table.concat(t) end
-- Cria GUI principal local gui = Instance.new("ScreenGui") gui.Name = "DeltaKeySystem" gui.ResetOnSpawn = false gui.Parent = Players.LocalPlayer:WaitForChild("PlayerGui")
-- Frame principal local main = Instance.new("Frame") main.Size = UDim2.new(0, 420, 0, 270) main.Position = UDim2.new(0.5, -210, 0.5, -135) main.BackgroundColor3 = Color3.fromRGB(10, 18, 30) main.BorderSizePixel = 0 main.Active = true main.Draggable = true main.Parent = gui
-- Arredondar local mainCorner = Instance.new("UICorner", main) mainCorner.CornerRadius = UDim.new(0, 14)
-- Borda neon pulsante local glow = Instance.new("UIStroke", main) glow.Color = Color3.fromRGB(0, 170, 255) glow.Thickness = 2 glow.Transparency = 0
-- Título com gradiente local title = Instance.new("Frame", main) title.Size = UDim2.new(1, 0, 0, 60) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundColor3 = Color3.fromRGB(25, 70, 160) title.BorderSizePixel = 0
local titleCorner = Instance.new("UICorner", title) titleCorner.CornerRadius = UDim.new(0, 10)
local titleLabel = Instance.new("TextLabel", title) titleLabel.Size = UDim2.new(1, -16, 1, 0) titleLabel.Position = UDim2.new(0, 8, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Δ DELTA SCRIPT" titleLabel.TextColor3 = Color3.new(1,1,1) titleLabel.Font = Enum.Font.GothamBlack titleLabel.TextScaled = true titleLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Gradient decorativo no título local titleGradient = Instance.new("UIGradient", title) titleGradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 180, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(80, 120, 240)) } titleGradient.Rotation = 45
-- Caixa de key local keyBox = Instance.new("TextBox", main) keyBox.Size = UDim2.new(0.82, 0, 0, 44) keyBox.Position = UDim2.new(0.09, 0, 0.27, 0) keyBox.BackgroundColor3 = Color3.fromRGB(20, 36, 62) keyBox.TextColor3 = Color3.fromRGB(240, 250, 255) keyBox.PlaceholderText = "Digite ou cole sua key aqui..." keyBox.PlaceholderColor3 = Color3.fromRGB(170, 190, 220) keyBox.Font = Enum.Font.Gotham keyBox.TextScaled = true
local keyCorner = Instance.new("UICorner", keyBox) keyCorner.CornerRadius = UDim.new(0, 10)
-- Botões (container) local btnFrame = Instance.new("Frame", main) btnFrame.Size = UDim2.new(0.82, 0, 0, 46) btnFrame.Position = UDim2.new(0.09, 0, 0.5, 0) btnFrame.BackgroundTransparency = 1
-- Get Key button (esquerda) local getKeyBtn = Instance.new("TextButton", btnFrame) getKeyBtn.Size = UDim2.new(0.5, -6, 1, 0) getKeyBtn.Position = UDim2.new(0, 0, 0, 0) getKeyBtn.BackgroundColor3 = Color3.fromRGB(0, 160, 255) getKeyBtn.Text = "🔑 GET KEY" getKeyBtn.Font = Enum.Font.GothamBold getKeyBtn.TextScaled = true getKeyBtn.TextColor3 = Color3.new(1,1,1)
local getCorner = Instance.new("UICorner", getKeyBtn) getCorner.CornerRadius = UDim.new(0, 10)
-- Confirm button (direita) local confirmBtn = Instance.new("TextButton", btnFrame) confirmBtn.Size = UDim2.new(0.5, -6, 1, 0) confirmBtn.Position = UDim2.new(0.5, 12, 0, 0) confirmBtn.BackgroundColor3 = Color3.fromRGB(40, 200, 120) confirmBtn.Text = "✅ CONFIRMAR" confirmBtn.Font = Enum.Font.GothamBold confirmBtn.TextScaled = true confirmBtn.TextColor3 = Color3.new(1,1,1)
local confirmCorner = Instance.new("UICorner", confirmBtn) confirmCorner.CornerRadius = UDim.new(0, 10)
-- Label de status local status = Instance.new("TextLabel", main) status.Size = UDim2.new(1, 0, 0, 30) status.Position = UDim2.new(0, 0, 0.78, 0) status.BackgroundTransparency = 1 status.Text = "" status.Font = Enum.Font.Gotham status.TextScaled = true status.TextColor3 = Color3.fromRGB(200, 230, 255)
-- Brainrots decorativos (esquerda e direita) local star = Instance.new("ImageLabel", main) star.Size = UDim2.new(0, 28, 0, 28) star.Position = UDim2.new(0.03, 0, 0.12, 0) star.BackgroundTransparency = 1 star.Image = "rbxassetid://7733960981" star.ImageColor3 = Color3.fromRGB(120, 210, 255) star.ImageTransparency = 0
local bolt = Instance.new("ImageLabel", main) bolt.Size = UDim2.new(0, 30, 0, 30) bolt.Position = UDim2.new(0.89, 0, 0.12, 0) bolt.BackgroundTransparency = 1 bolt.Image = "rbxassetid://7733960981" bolt.ImageColor3 = Color3.fromRGB(120, 210, 255) bolt.Rotation = 45 bolt.ImageTransparency = 0
-- Pequenas bolhas (decor) for i = 1, 6 do local dot = Instance.new("Frame", main) dot.Size = UDim2.new(0, 8, 0, 8) dot.Position = UDim2.new(math.random() * 0.85 + 0.05, 0, math.random() * 0.5 + 0.1, 0) dot.BackgroundColor3 = Color3.fromRGB(20, 40, 70) dot.BorderSizePixel = 0 local dcorner = Instance.new("UICorner", dot) dcorner.CornerRadius = UDim.new(0, 4) -- anima leve spawn(function() while true do local up = TweenService:Create(dot, TweenInfo.new(1.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {Position = UDim2.new(dot.Position.X.Scale, 0, dot.Position.Y.Scale - 0.02, 0)}) up:Play() wait(1.2) end end) end
-- Função de animação de clique simples local function animateClick(btn, normalColor, pressColor) local down = TweenService:Create(btn, TweenInfo.new(0.09), { BackgroundColor3 = pressColor, Size = btn.Size - UDim2.new(0, 6, 0, 3) }) local up = TweenService:Create(btn, TweenInfo.new(0.09), { BackgroundColor3 = normalColor, Size = btn.Size }) down:Play() down.Completed:Wait() up:Play() end
-- Função: abrir site e gerar key (GET KEY) local function onGetKey() animateClick(getKeyBtn, Color3.fromRGB(0,160,255), Color3.fromRGB(100,220,255)) status.Text = "🔄 Abrindo site e gerando sua key..." status.TextColor3 = Color3.fromRGB(140,200,255)
-- gera key e guarda
GENERATED_KEY = generateKey()
-- abre o site (apenas tentativa)
pcall(function()
GuiService:OpenBrowserWindow(WEBSITE)
end)
-- copia link + key para o clipboard caso setclipboard exista
local full = WEBSITE .. "?key=" .. GENERATED_KEY
if setclipboard then
pcall(function()
setclipboard(full)
end)
status.Text = "✅ Link e key copiados! Cole no navegador e gere sua key."
status.TextColor3 = Color3.fromRGB(120,255,140)
else
-- se não puder copiar, coloca só o param key no campo para o usuário ver (padrão de segurança)
keyBox.Text = GENERATED_KEY
status.Text = "📋 Cole o link no navegador e gere sua key."
status.TextColor3 = Color3.fromRGB(255, 240, 160)
end
-- anima brainrots leves ao abrir
TweenService:Create(star, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {ImageTransparency = 0.2}):Play()
TweenService:Create(bolt, TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Rotation = bolt.Rotation + 180}):Play()
task.delay(2.6, function()
-- limpa a caixa apenas se o clipboard já continha o link (para não apagar caso usuario queira copiar manualmente)
if setclipboard then
keyBox.Text = ""
end
status.Text = ""
end)
end
-- Função: confirmar key (agora valida contra GENERATED_KEY) local function onConfirm() animateClick(confirmBtn, Color3.fromRGB(40,200,120), Color3.fromRGB(120,240,180)) local text = tostring(keyBox.Text or "") text = text:gsub("^%s*(.-)%s*$", "%1") -- trim
-- Se não foi gerada nenhuma key ainda, automaticamente falha
if not GENERATED_KEY then
status.Text = "❌ Nenhuma key foi gerada. Use GET KEY primeiro."
status.TextColor3 = Color3.fromRGB(255,120,120)
-- shake
local orig = keyBox.Position
for i = 1, 6 do
TweenService:Create(keyBox, TweenInfo.new(0.04, Enum.EasingStyle.Linear), {Position = UDim2.new(orig.X.Scale, orig.X.Offset + (i%2==0 and 6 or -6), orig.Y.Scale, orig.Y.Offset)}):Play()
wait(0.04)
end
TweenService:Create(keyBox, TweenInfo.new(0.06), {Position = orig}):Play()
task.delay(2.2, function() status.Text = "" end)
return
end
-- Se campo vazio => erro
if text == "" then
status.Text = "❌ Insira a key (exatamente a gerada) antes de confirmar."
status.TextColor3 = Color3.fromRGB(255,120,120)
-- shake
local orig = keyBox.Position
for i = 1, 6 do
TweenService:Create(keyBox, TweenInfo.new(0.04, Enum.EasingStyle.Linear), {Position = UDim2.new(orig.X.Scale, orig.X.Offset + (i%2==0 and 6 or -6), orig.Y.Scale, orig.Y.Offset)}):Play()
wait(0.04)
end
TweenService:Create(keyBox, TweenInfo.new(0.06), {Position = orig}):Play()
task.delay(2.2, function() status.Text = "" end)
return
end
-- Agora valida: somente a GENERATED_KEY é aceita
if text == GENERATED_KEY then
status.Text = "✅ Key confirmada com sucesso!"
status.TextColor3 = Color3.fromRGB(120,255,160)
-- animações positivas
TweenService:Create(star, TweenInfo.new(0.45, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {ImageTransparency = 0}):Play()
TweenService:Create(bolt, TweenInfo.new(0.8, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Rotation = bolt.Rotation + 360}):Play()
-- opcional: "consome" a key (torna inválida depois de usada)
GENERATED_KEY = nil
else
-- falha — qualquer outra key dá erro
status.Text = "❌ Key inválida. Use a key gerada pelo botão GET KEY."
status.TextColor3 = Color3.fromRGB(255,120,120)
-- shake
local orig = keyBox.Position
for i = 1, 6 do
TweenService:Create(keyBox, TweenInfo.new(0.04, Enum.EasingStyle.Linear), {Position = UDim2.new(orig.X.Scale, orig.X.Offset + (i%2==0 and 6 or -6), orig.Y.Scale, orig.Y.Offset)}):Play()
wait(0.04)
end
TweenService:Create(keyBox, TweenInfo.new(0.06), {Position = orig}):Play()
end
task.delay(2.2, function()
status.Text = ""
-- limpa campo após tentativa (para forçar nova geração)
keyBox.Text = ""
end)
end
-- Eventos getKeyBtn.MouseButton1Click:Connect(onGetKey) confirmBtn.MouseButton1Click:Connect(onConfirm)
-- Hover effects getKeyBtn.MouseEnter:Connect(function() TweenService:Create(getKeyBtn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(50,190,255)}):Play() end) getKeyBtn.MouseLeave:Connect(function() TweenService:Create(getKeyBtn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(0,160,255)}):Play() end) confirmBtn.MouseEnter:Connect(function() TweenService:Create(confirmBtn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(80,230,150)}):Play() end) confirmBtn.MouseLeave:Connect(function() TweenService:Create(confirmBtn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(40,200,120)}):Play() end)
-- Animações contínuas decorativas spawn(function() while true do -- glow thickness pulse TweenService:Create(glow, TweenInfo.new(1.2), {Thickness = 3}):Play() wait(0.8) TweenService:Create(glow, TweenInfo.new(1.2), {Thickness = 2}):Play()
-- star blink
TweenService:Create(star, TweenInfo.new(1.6), {ImageTransparency = 0.4}):Play()
wait(0.9)
TweenService:Create(star, TweenInfo.new(1.6), {ImageTransparency = 0}):Play()
-- bolt slow rotate
TweenService:Create(bolt, TweenInfo.new(3.5), {Rotation = bolt.Rotation + 90}):Play()
wait(1.2)
end
end)
print("✅ Delta Script v5 carregado com sucesso!")