Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ============================================================
- -- DELTA AI v8 — by : zyren
- -- Groq + Claude | Delta Executor | Multi-idioma
- -- ============================================================
- local API_KEY = "PON_TU_API_KEY_AQUI"
- local MODEL = "llama-3.3-70b-versatile"
- local MAX_TOKENS = 800
- local PROVIDER = "groq" -- "groq" o "claude"
- local GROQ_MODELS = {"llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768","gemma2-9b-it"}
- local CLAUDE_MODELS = {"claude-sonnet-4-5","claude-haiku-4-5","claude-opus-4-5"}
- local httpRequest = (http and http.request) or request or (syn and syn.request)
- local Players = game:GetService("Players")
- local TweenService = game:GetService("TweenService")
- local HttpService = game:GetService("HttpService")
- local UserInputService = game:GetService("UserInputService")
- local LP = Players.LocalPlayer
- local PGui = LP:WaitForChild("PlayerGui")
- if PGui:FindFirstChild("DeltaAI") then PGui:FindFirstChild("DeltaAI"):Destroy() end
- local history = {}
- local waiting = false
- local opened = true
- -- ============================================================
- -- IDIOMAS
- -- ============================================================
- local LANGS = {
- {
- code="ES", sys="Eres experto en Lua para Roblox y Delta executor. Si el usuario pide codigo, escribe bloques ```lua ... ```. Codigo compatible con Delta. Responde en espanol corto.",
- chooseTitle="ELIGE TU PROVEEDOR DE IA",
- groqName="GROQ", groqSub="Gratis - Ultra rapido", groqBadge="GRATIS",
- cldName="CLAUDE", cldSub="Mas inteligente - Anthropic", cldBadge="PAGO",
- subtitle_groq="ASISTENTE LUA - GROQ", subtitle_claude="ASISTENTE LUA - CLAUDE",
- keyLbl_groq="CLAVE API DE GROQ", keyLbl_claude="CLAVE API DE CLAUDE",
- keyPH_groq="gsk_...", keyPH_claude="sk-ant-...",
- keyDesc_groq="groq.com - Gratis, sin tarjeta", keyDesc_claude="console.anthropic.com",
- conBtn="CONECTAR", errMsg="Escribe tu API key", helpBtnTxt="Como obtener la API key?",
- statusOn="EN LINEA", statusWait="PENSANDO", clearBtn="CLR", inputPH="Escribe aqui...",
- clearMsg="Chat limpiado.",
- startMsg_groq="Conectado con Groq! Pideme cualquier script Lua.",
- startMsg_claude="Conectado con Claude! Pideme cualquier script Lua.",
- errPfx="Error: ", copyBtn="COPIAR", copiedBtn="OK!", execBtn="EXEC",
- helpTitle_groq="COMO OBTENER LA API KEY DE GROQ",
- helpTitle_claude="COMO OBTENER LA API KEY DE CLAUDE",
- helpSteps_groq={"1) Abre groq.com en tu navegador","2) Crea una cuenta gratis (sin tarjeta)","3) Ve a 'API Keys' en el menu lateral","4) Pulsa 'Create API Key'","5) Copia la clave - empieza con gsk_","6) Pegala en el campo de arriba"},
- helpSteps_claude={"1) Abre console.anthropic.com","2) Crea una cuenta (requiere tarjeta)","3) Ve a 'API Keys' en el menu","4) Pulsa 'Create Key'","5) Copia la clave - empieza con sk-ant-","6) Pegala en el campo de arriba"},
- helpNote_groq="100% gratis. Sin tarjeta de credito.", helpNote_claude="Requiere cuenta de pago en Anthropic.",
- backBtn="VOLVER",
- },
- {
- code="EN", sys="You are a Roblox Lua expert for Delta executor. If the user asks for code, write ```lua ... ``` blocks. Delta-compatible. Reply in short English.",
- chooseTitle="CHOOSE YOUR AI PROVIDER",
- groqName="GROQ", groqSub="Free - Ultra fast", groqBadge="FREE",
- cldName="CLAUDE", cldSub="Smarter - By Anthropic", cldBadge="PAID",
- subtitle_groq="LUA ASSISTANT - GROQ", subtitle_claude="LUA ASSISTANT - CLAUDE",
- keyLbl_groq="GROQ API KEY", keyLbl_claude="CLAUDE API KEY",
- keyPH_groq="gsk_...", keyPH_claude="sk-ant-...",
- keyDesc_groq="groq.com - Free, no card needed", keyDesc_claude="console.anthropic.com",
- conBtn="CONNECT", errMsg="Enter your API key", helpBtnTxt="How to get the API key?",
- statusOn="ONLINE", statusWait="THINKING", clearBtn="CLR", inputPH="Type here...",
- clearMsg="Chat cleared.",
- startMsg_groq="Connected to Groq! Ask me any Lua script.",
- startMsg_claude="Connected to Claude! Ask me any Lua script.",
- errPfx="Error: ", copyBtn="COPY", copiedBtn="OK!", execBtn="EXEC",
- helpTitle_groq="HOW TO GET THE GROQ API KEY",
- helpTitle_claude="HOW TO GET THE CLAUDE API KEY",
- helpSteps_groq={"1) Open groq.com in your browser","2) Create a free account (no card)","3) Go to 'API Keys' in the sidebar","4) Click 'Create API Key'","5) Copy the key - starts with gsk_","6) Paste it in the field above"},
- helpSteps_claude={"1) Open console.anthropic.com","2) Create an account (card required)","3) Go to 'API Keys' in the menu","4) Click 'Create Key'","5) Copy the key - starts with sk-ant-","6) Paste it in the field above"},
- helpNote_groq="100% free. No credit card required.", helpNote_claude="Requires a paid Anthropic account.",
- backBtn="BACK",
- },
- {
- code="PT", sys="Voce e especialista em Lua para Roblox e Delta executor. Se pedir codigo, escreva blocos ```lua ... ```. Codigo compativel com Delta. Responda em portugues curto.",
- chooseTitle="ESCOLHA SEU PROVEDOR DE IA",
- groqName="GROQ", groqSub="Gratis - Ultra rapido", groqBadge="GRATIS",
- cldName="CLAUDE", cldSub="Mais inteligente - Anthropic", cldBadge="PAGO",
- subtitle_groq="ASSISTENTE LUA - GROQ", subtitle_claude="ASSISTENTE LUA - CLAUDE",
- keyLbl_groq="CHAVE API GROQ", keyLbl_claude="CHAVE API CLAUDE",
- keyPH_groq="gsk_...", keyPH_claude="sk-ant-...",
- keyDesc_groq="groq.com - Gratis, sem cartao", keyDesc_claude="console.anthropic.com",
- conBtn="CONECTAR", errMsg="Digite sua API key", helpBtnTxt="Como obter a API key?",
- statusOn="ON-LINE", statusWait="PENSANDO", clearBtn="CLR", inputPH="Digite aqui...",
- clearMsg="Chat limpo.",
- startMsg_groq="Conectado ao Groq! Peca qualquer script Lua.",
- startMsg_claude="Conectado ao Claude! Peca qualquer script Lua.",
- errPfx="Erro: ", copyBtn="COPIAR", copiedBtn="OK!", execBtn="EXEC",
- helpTitle_groq="COMO OBTER A API KEY DO GROQ",
- helpTitle_claude="COMO OBTER A API KEY DO CLAUDE",
- helpSteps_groq={"1) Abra groq.com no navegador","2) Crie uma conta gratuita (sem cartao)","3) Va para 'API Keys' no menu lateral","4) Clique em 'Create API Key'","5) Copie a chave - comeca com gsk_","6) Cole no campo acima"},
- helpSteps_claude={"1) Abra console.anthropic.com","2) Crie uma conta (cartao necessario)","3) Va para 'API Keys' no menu","4) Clique em 'Create Key'","5) Copie a chave - comeca com sk-ant-","6) Cole no campo acima"},
- helpNote_groq="100% gratuito. Sem cartao de credito.", helpNote_claude="Requer conta paga na Anthropic.",
- backBtn="VOLTAR",
- },
- {
- code="FR", sys="Tu es expert Lua pour Roblox et Delta executor. Si code demande, ecris des blocs ```lua ... ```. Code compatible Delta. Reponds en francais court.",
- chooseTitle="CHOISIR TON FOURNISSEUR IA",
- groqName="GROQ", groqSub="Gratuit - Ultra rapide", groqBadge="GRATUIT",
- cldName="CLAUDE", cldSub="Plus intelligent - Anthropic", cldBadge="PAYANT",
- subtitle_groq="ASSISTANT LUA - GROQ", subtitle_claude="ASSISTANT LUA - CLAUDE",
- keyLbl_groq="CLE API GROQ", keyLbl_claude="CLE API CLAUDE",
- keyPH_groq="gsk_...", keyPH_claude="sk-ant-...",
- keyDesc_groq="groq.com - Gratuit, sans carte", keyDesc_claude="console.anthropic.com",
- conBtn="CONNECTER", errMsg="Entre ta cle API", helpBtnTxt="Comment obtenir la cle API?",
- statusOn="EN LIGNE", statusWait="REFLECHI", clearBtn="CLR", inputPH="Ecris ici...",
- clearMsg="Chat efface.",
- startMsg_groq="Connecte a Groq! Demande un script Lua.",
- startMsg_claude="Connecte a Claude! Demande un script Lua.",
- errPfx="Erreur: ", copyBtn="COPIER", copiedBtn="OK!", execBtn="EXEC",
- helpTitle_groq="OBTENIR LA CLE API GROQ",
- helpTitle_claude="OBTENIR LA CLE API CLAUDE",
- helpSteps_groq={"1) Ouvre groq.com dans ton navigateur","2) Cree un compte gratuit (sans carte)","3) Va dans 'API Keys' dans le menu","4) Clique sur 'Create API Key'","5) Copie la cle - commence par gsk_","6) Colle-la dans le champ ci-dessus"},
- helpSteps_claude={"1) Ouvre console.anthropic.com","2) Cree un compte (carte requise)","3) Va dans 'API Keys' dans le menu","4) Clique sur 'Create Key'","5) Copie la cle - commence par sk-ant-","6) Colle-la dans le champ ci-dessus"},
- helpNote_groq="100% gratuit. Sans carte bancaire.", helpNote_claude="Necessite un compte payant Anthropic.",
- backBtn="RETOUR",
- },
- {
- code="DE", sys="Du bist Lua-Experte fuer Roblox und Delta executor. Bei Code-Anfragen schreibe ```lua ... ``` Bloecke. Delta-kompatibler Code. Antworte kurz auf Deutsch.",
- chooseTitle="KI-ANBIETER WAEHLEN",
- groqName="GROQ", groqSub="Kostenlos - Ultra schnell", groqBadge="GRATIS",
- cldName="CLAUDE", cldSub="Intelligenter - Anthropic", cldBadge="BEZAHLT",
- subtitle_groq="LUA ASSISTENT - GROQ", subtitle_claude="LUA ASSISTENT - CLAUDE",
- keyLbl_groq="GROQ API-SCHLUESSEL", keyLbl_claude="CLAUDE API-SCHLUESSEL",
- keyPH_groq="gsk_...", keyPH_claude="sk-ant-...",
- keyDesc_groq="groq.com - Kostenlos, ohne Karte", keyDesc_claude="console.anthropic.com",
- conBtn="VERBINDEN", errMsg="API-Key eingeben", helpBtnTxt="Wie bekomme ich den API-Key?",
- statusOn="ONLINE", statusWait="DENKT", clearBtn="CLR", inputPH="Hier tippen...",
- clearMsg="Chat geleert.",
- startMsg_groq="Mit Groq verbunden! Frage ein Lua-Skript.",
- startMsg_claude="Mit Claude verbunden! Frage ein Lua-Skript.",
- errPfx="Fehler: ", copyBtn="KOPIEREN", copiedBtn="OK!", execBtn="EXEC",
- helpTitle_groq="GROQ API-KEY ERHALTEN",
- helpTitle_claude="CLAUDE API-KEY ERHALTEN",
- helpSteps_groq={"1) Oeffne groq.com im Browser","2) Erstelle ein kostenloses Konto","3) Gehe zu 'API Keys' im Seitenmenue","4) Klicke auf 'Create API Key'","5) Kopiere den Key - beginnt mit gsk_","6) Fuege ihn oben ins Feld ein"},
- helpSteps_claude={"1) Oeffne console.anthropic.com","2) Erstelle ein Konto (Karte erforderlich)","3) Gehe zu 'API Keys' im Menue","4) Klicke auf 'Create Key'","5) Kopiere den Key - beginnt mit sk-ant-","6) Fuege ihn oben ins Feld ein"},
- helpNote_groq="100% kostenlos. Keine Kreditkarte.", helpNote_claude="Erfordert bezahltes Anthropic-Konto.",
- backBtn="ZURUECK",
- },
- }
- local langIdx = 1
- local L = LANGS[langIdx]
- -- Colores
- local C = {
- bg = Color3.fromRGB(8, 10, 14), surf = Color3.fromRGB(13, 17, 22),
- surf2 = Color3.fromRGB(18, 23, 30), bord = Color3.fromRGB(28, 40, 55),
- acc = Color3.fromRGB(0, 200,255), acc2 = Color3.fromRGB(255,100, 40),
- green = Color3.fromRGB(50, 255, 80), red = Color3.fromRGB(255, 60, 60),
- txt = Color3.fromRGB(195,210,228), dim = Color3.fromRGB(80, 100,118),
- usrB = Color3.fromRGB(15, 32, 48), aiB = Color3.fromRGB(18, 23, 30),
- hdr = Color3.fromRGB(10, 18, 28), code = Color3.fromRGB(6, 9, 13),
- cred = Color3.fromRGB(35, 50, 65),
- groq = Color3.fromRGB(0, 200,255),
- cld = Color3.fromRGB(200,150,255),
- }
- local function tw(o,p,t,s,d) TweenService:Create(o,TweenInfo.new(t or .18,s or Enum.EasingStyle.Quad,d or Enum.EasingDirection.Out),p):Play() end
- local function rnd(o,r) local c=Instance.new("UICorner");c.CornerRadius=UDim.new(0,r or 7);c.Parent=o;return c end
- local function strk(o,col,th) local s=Instance.new("UIStroke");s.Color=col or C.bord;s.Thickness=th or 1;s.Parent=o;return s end
- local function pad(o,a) local u=Instance.new("UIPadding");u.PaddingTop=UDim.new(0,a);u.PaddingBottom=UDim.new(0,a);u.PaddingLeft=UDim.new(0,a);u.PaddingRight=UDim.new(0,a);u.Parent=o end
- local function padV(o,t,r,b,l) local u=Instance.new("UIPadding");u.PaddingTop=UDim.new(0,t or 0);u.PaddingRight=UDim.new(0,r or 0);u.PaddingBottom=UDim.new(0,b or 0);u.PaddingLeft=UDim.new(0,l or 0);u.Parent=o end
- local function vlist(o,sp) local l=Instance.new("UIListLayout");l.FillDirection=Enum.FillDirection.Vertical;l.HorizontalAlignment=Enum.HorizontalAlignment.Left;l.VerticalAlignment=Enum.VerticalAlignment.Top;l.Padding=UDim.new(0,sp or 0);l.SortOrder=Enum.SortOrder.LayoutOrder;l.Parent=o;return l end
- local function hlist(o,sp) local l=Instance.new("UIListLayout");l.FillDirection=Enum.FillDirection.Horizontal;l.VerticalAlignment=Enum.VerticalAlignment.Center;l.HorizontalAlignment=Enum.HorizontalAlignment.Left;l.Padding=UDim.new(0,sp or 0);l.SortOrder=Enum.SortOrder.LayoutOrder;l.Parent=o;return l end
- -- ============================================================
- -- SCREENGUI + VENTANA 280x380
- -- ============================================================
- local SG = Instance.new("ScreenGui")
- SG.Name="DeltaAI";SG.ResetOnSpawn=false;SG.ZIndexBehavior=Enum.ZIndexBehavior.Sibling
- SG.DisplayOrder=999;SG.IgnoreGuiInset=true;SG.Parent=PGui
- local Win = Instance.new("Frame")
- Win.Name="Win";Win.Size=UDim2.new(0,280,0,380)
- Win.Position=UDim2.new(0.5,-140,0.5,-190)
- Win.BackgroundColor3=C.bg;Win.BorderSizePixel=0;Win.ClipsDescendants=true;Win.Parent=SG
- rnd(Win,9)
- local WStroke=strk(Win,C.acc,1);WStroke.Transparency=0.55
- task.spawn(function()
- while Win and Win.Parent do
- tw(WStroke,{Transparency=0.15},1.1,Enum.EasingStyle.Sine);task.wait(1.2)
- tw(WStroke,{Transparency=0.65},1.1,Enum.EasingStyle.Sine);task.wait(1.2)
- end
- end)
- -- ============================================================
- -- PANTALLA 1: ELEGIR PROVEEDOR
- -- ============================================================
- local ProvScreen = Instance.new("Frame")
- ProvScreen.Size=UDim2.new(1,0,1,0);ProvScreen.BackgroundColor3=C.bg
- ProvScreen.BorderSizePixel=0;ProvScreen.ZIndex=15;ProvScreen.Parent=Win
- pad(ProvScreen,16);vlist(ProvScreen,10)
- -- Logo
- local PSLogoF=Instance.new("Frame")
- PSLogoF.Size=UDim2.new(1,0,0,36);PSLogoF.BackgroundTransparency=1
- PSLogoF.LayoutOrder=1;PSLogoF.Parent=ProvScreen;hlist(PSLogoF,8)
- local PSIco=Instance.new("ImageLabel")
- PSIco.Size=UDim2.new(0,26,0,26);PSIco.BackgroundColor3=C.acc
- PSIco.Image="rbxassetid://6031068426";PSIco.ImageColor3=Color3.fromRGB(0,0,0)
- PSIco.ScaleType=Enum.ScaleType.Fit;PSIco.LayoutOrder=1;PSIco.Parent=PSLogoF;rnd(PSIco,7)
- local PSTitle=Instance.new("TextLabel")
- PSTitle.Size=UDim2.new(1,-36,0,26);PSTitle.BackgroundTransparency=1
- PSTitle.Text="DELTA AI";PSTitle.TextSize=18;PSTitle.TextColor3=C.acc
- PSTitle.Font=Enum.Font.GothamBold;PSTitle.TextXAlignment=Enum.TextXAlignment.Left
- PSTitle.LayoutOrder=2;PSTitle.Parent=PSLogoF
- -- Selector idioma
- local PSLangRow=Instance.new("Frame")
- PSLangRow.Size=UDim2.new(1,0,0,20);PSLangRow.BackgroundTransparency=1
- PSLangRow.LayoutOrder=2;PSLangRow.Parent=ProvScreen;hlist(PSLangRow,4)
- local PSLangLbl=Instance.new("TextLabel")
- PSLangLbl.Size=UDim2.new(0,34,0,18);PSLangLbl.BackgroundTransparency=1
- PSLangLbl.Text="LANG:";PSLangLbl.TextSize=9;PSLangLbl.TextColor3=C.dim
- PSLangLbl.Font=Enum.Font.GothamBold;PSLangLbl.LayoutOrder=1;PSLangLbl.Parent=PSLangRow
- local PSLangBtns={}
- for i,lang in ipairs(LANGS) do
- local lb=Instance.new("TextButton")
- lb.Size=UDim2.new(0,26,0,18);lb.BackgroundColor3=(i==langIdx) and C.acc2 or C.surf2
- lb.Text=lang.code;lb.TextSize=9;lb.TextColor3=(i==langIdx) and Color3.fromRGB(0,0,0) or C.dim
- lb.Font=Enum.Font.GothamBold;lb.AutoButtonColor=false;lb.LayoutOrder=i+1;lb.ZIndex=16;lb.Parent=PSLangRow;rnd(lb,4)
- strk(lb,(i==langIdx) and C.acc2 or C.bord);PSLangBtns[i]=lb
- end
- -- Titulo elegir
- local ChooseLbl=Instance.new("TextLabel")
- ChooseLbl.Size=UDim2.new(1,0,0,13);ChooseLbl.BackgroundTransparency=1
- ChooseLbl.Text=L.chooseTitle;ChooseLbl.TextSize=10;ChooseLbl.TextColor3=C.dim
- ChooseLbl.Font=Enum.Font.GothamBold;ChooseLbl.TextXAlignment=Enum.TextXAlignment.Left
- ChooseLbl.TextWrapped=true;ChooseLbl.LayoutOrder=3;ChooseLbl.Parent=ProvScreen
- -- Sep
- local PSSep=Instance.new("Frame")
- PSSep.Size=UDim2.new(1,0,0,1);PSSep.BackgroundColor3=C.bord
- PSSep.BorderSizePixel=0;PSSep.LayoutOrder=4;PSSep.Parent=ProvScreen
- -- TARJETA GROQ
- local GroqCard=Instance.new("TextButton")
- GroqCard.Size=UDim2.new(1,0,0,86);GroqCard.BackgroundColor3=C.surf2
- GroqCard.Text="";GroqCard.AutoButtonColor=false
- GroqCard.LayoutOrder=5;GroqCard.ZIndex=16;GroqCard.Parent=ProvScreen;rnd(GroqCard,10)
- local GroqStroke=strk(GroqCard,C.groq,1.5);GroqStroke.Transparency=0.5
- local GIco=Instance.new("Frame")
- GIco.Size=UDim2.new(0,34,0,34);GIco.Position=UDim2.new(0,12,0.5,-17)
- GIco.BackgroundColor3=C.groq;GIco.ZIndex=17;GIco.Parent=GroqCard;rnd(GIco,9)
- local GIcoL=Instance.new("TextLabel")
- GIcoL.Size=UDim2.new(1,0,1,0);GIcoL.BackgroundTransparency=1;GIcoL.Text="G"
- GIcoL.TextSize=19;GIcoL.TextColor3=Color3.fromRGB(0,0,0);GIcoL.Font=Enum.Font.GothamBold;GIcoL.ZIndex=18;GIcoL.Parent=GIco
- local GName=Instance.new("TextLabel")
- GName.Size=UDim2.new(0,140,0,18);GName.Position=UDim2.new(0,56,0,14)
- GName.BackgroundTransparency=1;GName.Text=L.groqName;GName.TextSize=15;GName.TextColor3=C.groq
- GName.Font=Enum.Font.GothamBold;GName.TextXAlignment=Enum.TextXAlignment.Left;GName.ZIndex=17;GName.Parent=GroqCard
- local GSub=Instance.new("TextLabel")
- GSub.Size=UDim2.new(0,170,0,13);GSub.Position=UDim2.new(0,56,0,34)
- GSub.BackgroundTransparency=1;GSub.Text=L.groqSub;GSub.TextSize=10;GSub.TextColor3=C.dim
- GSub.Font=Enum.Font.Gotham;GSub.TextXAlignment=Enum.TextXAlignment.Left;GSub.ZIndex=17;GSub.Parent=GroqCard
- local GBadge=Instance.new("Frame")
- GBadge.Size=UDim2.new(0,52,0,17);GBadge.Position=UDim2.new(0,56,0,52)
- GBadge.BackgroundColor3=Color3.fromRGB(0,50,15);GBadge.ZIndex=17;GBadge.Parent=GroqCard;rnd(GBadge,5);strk(GBadge,C.green)
- local GBadgeL=Instance.new("TextLabel")
- GBadgeL.Size=UDim2.new(1,0,1,0);GBadgeL.BackgroundTransparency=1;GBadgeL.Text=L.groqBadge
- GBadgeL.TextSize=9;GBadgeL.TextColor3=C.green;GBadgeL.Font=Enum.Font.GothamBold;GBadgeL.ZIndex=18;GBadgeL.Parent=GBadge
- local GArrow=Instance.new("TextLabel")
- GArrow.Size=UDim2.new(0,18,0,18);GArrow.Position=UDim2.new(1,-28,0.5,-9)
- GArrow.BackgroundTransparency=1;GArrow.Text=">";GArrow.TextSize=16;GArrow.TextColor3=C.groq
- GArrow.Font=Enum.Font.GothamBold;GArrow.ZIndex=17;GArrow.Parent=GroqCard
- -- TARJETA CLAUDE
- local CldCard=Instance.new("TextButton")
- CldCard.Size=UDim2.new(1,0,0,86);CldCard.BackgroundColor3=C.surf2
- CldCard.Text="";CldCard.AutoButtonColor=false
- CldCard.LayoutOrder=6;CldCard.ZIndex=16;CldCard.Parent=ProvScreen;rnd(CldCard,10)
- local CldStroke=strk(CldCard,C.cld,1.5);CldStroke.Transparency=0.5
- local CIco=Instance.new("Frame")
- CIco.Size=UDim2.new(0,34,0,34);CIco.Position=UDim2.new(0,12,0.5,-17)
- CIco.BackgroundColor3=C.cld;CIco.ZIndex=17;CIco.Parent=CldCard;rnd(CIco,9)
- local CIcoL=Instance.new("TextLabel")
- CIcoL.Size=UDim2.new(1,0,1,0);CIcoL.BackgroundTransparency=1;CIcoL.Text="C"
- CIcoL.TextSize=19;CIcoL.TextColor3=Color3.fromRGB(0,0,0);CIcoL.Font=Enum.Font.GothamBold;CIcoL.ZIndex=18;CIcoL.Parent=CIco
- local CName=Instance.new("TextLabel")
- CName.Size=UDim2.new(0,140,0,18);CName.Position=UDim2.new(0,56,0,14)
- CName.BackgroundTransparency=1;CName.Text=L.cldName;CName.TextSize=15;CName.TextColor3=C.cld
- CName.Font=Enum.Font.GothamBold;CName.TextXAlignment=Enum.TextXAlignment.Left;CName.ZIndex=17;CName.Parent=CldCard
- local CSub=Instance.new("TextLabel")
- CSub.Size=UDim2.new(0,170,0,13);CSub.Position=UDim2.new(0,56,0,34)
- CSub.BackgroundTransparency=1;CSub.Text=L.cldSub;CSub.TextSize=10;CSub.TextColor3=C.dim
- CSub.Font=Enum.Font.Gotham;CSub.TextXAlignment=Enum.TextXAlignment.Left;CSub.ZIndex=17;CSub.Parent=CldCard
- local CBadge=Instance.new("Frame")
- CBadge.Size=UDim2.new(0,52,0,17);CBadge.Position=UDim2.new(0,56,0,52)
- CBadge.BackgroundColor3=Color3.fromRGB(45,15,5);CBadge.ZIndex=17;CBadge.Parent=CldCard;rnd(CBadge,5);strk(CBadge,C.acc2)
- local CBadgeL=Instance.new("TextLabel")
- CBadgeL.Size=UDim2.new(1,0,1,0);CBadgeL.BackgroundTransparency=1;CBadgeL.Text=L.cldBadge
- CBadgeL.TextSize=9;CBadgeL.TextColor3=C.acc2;CBadgeL.Font=Enum.Font.GothamBold;CBadgeL.ZIndex=18;CBadgeL.Parent=CBadge
- local CArrow=Instance.new("TextLabel")
- CArrow.Size=UDim2.new(0,18,0,18);CArrow.Position=UDim2.new(1,-28,0.5,-9)
- CArrow.BackgroundTransparency=1;CArrow.Text=">";CArrow.TextSize=16;CArrow.TextColor3=C.cld
- CArrow.Font=Enum.Font.GothamBold;CArrow.ZIndex=17;CArrow.Parent=CldCard
- -- Credito proveedor
- local PSCred=Instance.new("TextLabel")
- PSCred.Size=UDim2.new(1,0,0,11);PSCred.BackgroundTransparency=1
- PSCred.Text="by : zyren";PSCred.TextSize=8;PSCred.TextColor3=C.cred
- PSCred.Font=Enum.Font.Gotham;PSCred.TextXAlignment=Enum.TextXAlignment.Right
- PSCred.LayoutOrder=7;PSCred.Parent=ProvScreen
- -- Hovers tarjetas
- GroqCard.MouseEnter:Connect(function() tw(GroqCard,{BackgroundColor3=Color3.fromRGB(12,22,32)});tw(GroqStroke,{Transparency=0}) end)
- GroqCard.MouseLeave:Connect(function() tw(GroqCard,{BackgroundColor3=C.surf2});tw(GroqStroke,{Transparency=0.5}) end)
- CldCard.MouseEnter:Connect(function() tw(CldCard,{BackgroundColor3=Color3.fromRGB(18,12,26)});tw(CldStroke,{Transparency=0}) end)
- CldCard.MouseLeave:Connect(function() tw(CldCard,{BackgroundColor3=C.surf2});tw(CldStroke,{Transparency=0.5}) end)
- -- ============================================================
- -- PANTALLA 2: LOGIN (API KEY)
- -- ============================================================
- local Login=Instance.new("Frame")
- Login.Size=UDim2.new(1,0,1,0);Login.BackgroundColor3=C.bg
- Login.BorderSizePixel=0;Login.ZIndex=10;Login.Visible=false;Login.Parent=Win
- pad(Login,16);vlist(Login,9)
- -- Logo login
- local LLogoF=Instance.new("Frame")
- LLogoF.Size=UDim2.new(1,0,0,36);LLogoF.BackgroundTransparency=1
- LLogoF.LayoutOrder=1;LLogoF.Parent=Login;hlist(LLogoF,6)
- local LIco=Instance.new("ImageLabel")
- LIco.Size=UDim2.new(0,24,0,24);LIco.BackgroundColor3=C.acc
- LIco.Image="rbxassetid://6031068426";LIco.ImageColor3=Color3.fromRGB(0,0,0)
- LIco.ScaleType=Enum.ScaleType.Fit;LIco.LayoutOrder=1;LIco.Parent=LLogoF;rnd(LIco,6)
- local LTF=Instance.new("Frame")
- LTF.Size=UDim2.new(1,-94,0,32);LTF.BackgroundTransparency=1;LTF.LayoutOrder=2;LTF.Parent=LLogoF;vlist(LTF,1)
- local LT1=Instance.new("TextLabel")
- LT1.Size=UDim2.new(1,0,0,16);LT1.BackgroundTransparency=1;LT1.Text="DELTA AI"
- LT1.TextSize=14;LT1.TextColor3=C.acc;LT1.Font=Enum.Font.GothamBold;LT1.TextXAlignment=Enum.TextXAlignment.Left;LT1.Parent=LTF
- local LT2=Instance.new("TextLabel")
- LT2.Size=UDim2.new(1,0,0,13);LT2.BackgroundTransparency=1;LT2.Text=L.subtitle_groq
- LT2.TextSize=9;LT2.TextColor3=C.dim;LT2.Font=Enum.Font.GothamBold;LT2.TextXAlignment=Enum.TextXAlignment.Left;LT2.Parent=LTF
- -- Boton volver
- local BackBtn=Instance.new("TextButton")
- BackBtn.Size=UDim2.new(0,50,0,24);BackBtn.LayoutOrder=3
- BackBtn.BackgroundColor3=C.surf2;BackBtn.Text="< "..L.backBtn;BackBtn.TextSize=9
- BackBtn.TextColor3=C.dim;BackBtn.Font=Enum.Font.GothamBold
- BackBtn.AutoButtonColor=false;BackBtn.ZIndex=11;BackBtn.Parent=LLogoF
- rnd(BackBtn,6);strk(BackBtn)
- BackBtn.MouseEnter:Connect(function() tw(BackBtn,{BackgroundColor3=C.bord,TextColor3=C.txt}) end)
- BackBtn.MouseLeave:Connect(function() tw(BackBtn,{BackgroundColor3=C.surf2,TextColor3=C.dim}) end)
- -- Lang row
- local LangRow=Instance.new("Frame")
- LangRow.Size=UDim2.new(1,0,0,20);LangRow.BackgroundTransparency=1
- LangRow.LayoutOrder=2;LangRow.Parent=Login;hlist(LangRow,4)
- local LangLbl=Instance.new("TextLabel")
- LangLbl.Size=UDim2.new(0,34,0,18);LangLbl.BackgroundTransparency=1;LangLbl.Text="LANG:"
- LangLbl.TextSize=9;LangLbl.TextColor3=C.dim;LangLbl.Font=Enum.Font.GothamBold;LangLbl.LayoutOrder=1;LangLbl.Parent=LangRow
- local LoginLangBtns={}
- for i,lang in ipairs(LANGS) do
- local lb=Instance.new("TextButton")
- lb.Size=UDim2.new(0,26,0,18);lb.BackgroundColor3=(i==langIdx) and C.acc2 or C.surf2
- lb.Text=lang.code;lb.TextSize=9;lb.TextColor3=(i==langIdx) and Color3.fromRGB(0,0,0) or C.dim
- lb.Font=Enum.Font.GothamBold;lb.AutoButtonColor=false;lb.LayoutOrder=i+1;lb.ZIndex=11;lb.Parent=LangRow;rnd(lb,4)
- strk(lb,(i==langIdx) and C.acc2 or C.bord);LoginLangBtns[i]=lb
- end
- -- Key label + desc
- local KLblL=Instance.new("TextLabel")
- KLblL.Size=UDim2.new(1,0,0,13);KLblL.BackgroundTransparency=1;KLblL.Text=L.keyLbl_groq
- KLblL.TextSize=9;KLblL.TextColor3=C.dim;KLblL.Font=Enum.Font.GothamBold
- KLblL.TextXAlignment=Enum.TextXAlignment.Left;KLblL.LayoutOrder=3;KLblL.Parent=Login
- local KDescL=Instance.new("TextLabel")
- KDescL.Size=UDim2.new(1,0,0,12);KDescL.BackgroundTransparency=1;KDescL.Text=L.keyDesc_groq
- KDescL.TextSize=9;KDescL.TextColor3=C.dim;KDescL.Font=Enum.Font.Gotham
- KDescL.TextXAlignment=Enum.TextXAlignment.Left;KDescL.TextWrapped=true;KDescL.LayoutOrder=4;KDescL.Parent=Login
- -- Input
- local KF=Instance.new("Frame")
- KF.Size=UDim2.new(1,0,0,32);KF.BackgroundColor3=C.surf2;KF.LayoutOrder=5;KF.Parent=Login;rnd(KF,7)
- local KStroke=strk(KF,C.bord)
- local KInput=Instance.new("TextBox")
- KInput.Size=UDim2.new(1,-16,1,0);KInput.Position=UDim2.new(0,8,0,0)
- KInput.BackgroundTransparency=1;KInput.Text="";KInput.PlaceholderText=L.keyPH_groq
- KInput.TextSize=12;KInput.TextColor3=C.txt;KInput.PlaceholderColor3=C.dim
- KInput.Font=Enum.Font.Code;KInput.TextXAlignment=Enum.TextXAlignment.Left
- KInput.ClearTextOnFocus=false;KInput.ZIndex=11;KInput.Parent=KF
- KInput.Focused:Connect(function() tw(KStroke,{Color=C.acc}) end)
- KInput.FocusLost:Connect(function() tw(KStroke,{Color=C.bord}) end)
- -- Conectar
- local ConBtn=Instance.new("TextButton")
- ConBtn.Size=UDim2.new(1,0,0,32);ConBtn.BackgroundColor3=C.groq
- ConBtn.Text=L.conBtn;ConBtn.TextSize=13;ConBtn.TextColor3=Color3.fromRGB(0,0,0)
- ConBtn.Font=Enum.Font.GothamBold;ConBtn.AutoButtonColor=false
- ConBtn.LayoutOrder=6;ConBtn.ZIndex=11;ConBtn.Parent=Login;rnd(ConBtn,7)
- ConBtn.MouseEnter:Connect(function() tw(ConBtn,{BackgroundTransparency=0.18}) end)
- ConBtn.MouseLeave:Connect(function() tw(ConBtn,{BackgroundTransparency=0}) end)
- -- Error
- local ELbl=Instance.new("TextLabel")
- ELbl.Size=UDim2.new(1,0,0,13);ELbl.BackgroundTransparency=1;ELbl.Text=""
- ELbl.TextSize=10;ELbl.TextColor3=C.red;ELbl.Font=Enum.Font.Gotham
- ELbl.TextXAlignment=Enum.TextXAlignment.Left;ELbl.TextWrapped=true;ELbl.LayoutOrder=7;ELbl.Parent=Login
- -- Help btn
- local HelpBtnL=Instance.new("TextButton")
- HelpBtnL.Size=UDim2.new(1,0,0,26);HelpBtnL.BackgroundColor3=C.surf2
- HelpBtnL.Text=L.helpBtnTxt;HelpBtnL.TextSize=10;HelpBtnL.TextColor3=C.acc2
- HelpBtnL.Font=Enum.Font.GothamBold;HelpBtnL.AutoButtonColor=false
- HelpBtnL.LayoutOrder=8;HelpBtnL.ZIndex=11;HelpBtnL.Parent=Login;rnd(HelpBtnL,7);strk(HelpBtnL,C.acc2)
- HelpBtnL.MouseEnter:Connect(function() tw(HelpBtnL,{BackgroundColor3=Color3.fromRGB(30,16,8)}) end)
- HelpBtnL.MouseLeave:Connect(function() tw(HelpBtnL,{BackgroundColor3=C.surf2}) end)
- -- Credito login
- local CreditLogin=Instance.new("TextLabel")
- CreditLogin.Size=UDim2.new(1,0,0,11);CreditLogin.BackgroundTransparency=1
- CreditLogin.Text="by : zyren";CreditLogin.TextSize=8;CreditLogin.TextColor3=C.cred
- CreditLogin.Font=Enum.Font.Gotham;CreditLogin.TextXAlignment=Enum.TextXAlignment.Right
- CreditLogin.LayoutOrder=9;CreditLogin.Parent=Login
- -- ============================================================
- -- PANEL AYUDA
- -- ============================================================
- local HP=Instance.new("Frame")
- HP.Size=UDim2.new(1,0,1,0);HP.BackgroundColor3=C.bg
- HP.BorderSizePixel=0;HP.ZIndex=20;HP.Visible=false;HP.Parent=Win
- pad(HP,15);vlist(HP,9)
- local HPHdr=Instance.new("Frame")
- HPHdr.Size=UDim2.new(1,0,0,26);HPHdr.BackgroundTransparency=1;HPHdr.LayoutOrder=1;HPHdr.Parent=HP
- local HPTitleL=Instance.new("TextLabel")
- HPTitleL.Size=UDim2.new(1,-30,1,0);HPTitleL.BackgroundTransparency=1;HPTitleL.Text=L.helpTitle_groq
- HPTitleL.TextSize=11;HPTitleL.TextColor3=C.acc2;HPTitleL.Font=Enum.Font.GothamBold
- HPTitleL.TextXAlignment=Enum.TextXAlignment.Left;HPTitleL.TextWrapped=true;HPTitleL.Parent=HPHdr
- local HPClsB=Instance.new("TextButton")
- HPClsB.Size=UDim2.new(0,22,0,22);HPClsB.Position=UDim2.new(1,-22,0,2)
- HPClsB.BackgroundColor3=C.surf2;HPClsB.Text="X";HPClsB.TextSize=11;HPClsB.TextColor3=C.dim
- HPClsB.Font=Enum.Font.GothamBold;HPClsB.AutoButtonColor=false;HPClsB.ZIndex=21;HPClsB.Parent=HPHdr;rnd(HPClsB,5);strk(HPClsB)
- HPClsB.MouseEnter:Connect(function() tw(HPClsB,{BackgroundColor3=C.red,TextColor3=Color3.new(1,1,1)}) end)
- HPClsB.MouseLeave:Connect(function() tw(HPClsB,{BackgroundColor3=C.surf2,TextColor3=C.dim}) end)
- local HPSep=Instance.new("Frame")
- HPSep.Size=UDim2.new(1,0,0,1);HPSep.BackgroundColor3=C.acc2;HPSep.BorderSizePixel=0;HPSep.LayoutOrder=2;HPSep.Parent=HP
- local HPScroll=Instance.new("ScrollingFrame")
- HPScroll.Size=UDim2.new(1,0,0,232);HPScroll.BackgroundTransparency=1;HPScroll.BorderSizePixel=0
- HPScroll.ScrollBarThickness=2;HPScroll.ScrollBarImageColor3=C.bord
- HPScroll.CanvasSize=UDim2.new(0,0,0,0);HPScroll.AutomaticCanvasSize=Enum.AutomaticSize.Y
- HPScroll.ScrollingDirection=Enum.ScrollingDirection.Y;HPScroll.ZIndex=21;HPScroll.LayoutOrder=3;HPScroll.Parent=HP
- vlist(HPScroll,7);padV(HPScroll,2,2,2,0)
- local HPStepLabels={}
- for i=1,6 do
- local sF=Instance.new("Frame")
- sF.Size=UDim2.new(1,0,0,0);sF.AutomaticSize=Enum.AutomaticSize.Y
- sF.BackgroundColor3=C.surf2;sF.BorderSizePixel=0;sF.ZIndex=21;sF.Parent=HPScroll;rnd(sF,6);padV(sF,7,8,7,10)
- local dot=Instance.new("Frame")
- dot.Size=UDim2.new(0,3,0,3);dot.Position=UDim2.new(0,-1,0,8)
- dot.BackgroundColor3=C.acc2;dot.BorderSizePixel=0;dot.ZIndex=22;dot.Parent=sF;rnd(dot,2)
- local stl=Instance.new("TextLabel")
- stl.Size=UDim2.new(1,0,0,0);stl.AutomaticSize=Enum.AutomaticSize.Y;stl.BackgroundTransparency=1
- stl.Text=L.helpSteps_groq[i] or "";stl.TextSize=11;stl.TextColor3=C.txt;stl.Font=Enum.Font.Gotham
- stl.TextXAlignment=Enum.TextXAlignment.Left;stl.TextYAlignment=Enum.TextYAlignment.Top
- stl.TextWrapped=true;stl.ZIndex=22;stl.Parent=sF;HPStepLabels[i]=stl
- end
- local HPNoteL=Instance.new("TextLabel")
- HPNoteL.Size=UDim2.new(1,0,0,0);HPNoteL.AutomaticSize=Enum.AutomaticSize.Y;HPNoteL.BackgroundTransparency=1
- HPNoteL.Text=L.helpNote_groq;HPNoteL.TextSize=10;HPNoteL.TextColor3=C.green;HPNoteL.Font=Enum.Font.GothamBold
- HPNoteL.TextXAlignment=Enum.TextXAlignment.Left;HPNoteL.TextWrapped=true;HPNoteL.ZIndex=21;HPNoteL.LayoutOrder=4;HPNoteL.Parent=HP
- local HPCredit=Instance.new("TextLabel")
- HPCredit.Size=UDim2.new(1,0,0,11);HPCredit.BackgroundTransparency=1;HPCredit.Text="by : zyren"
- HPCredit.TextSize=8;HPCredit.TextColor3=C.cred;HPCredit.Font=Enum.Font.Gotham
- HPCredit.TextXAlignment=Enum.TextXAlignment.Right;HPCredit.ZIndex=21;HPCredit.LayoutOrder=5;HPCredit.Parent=HP
- local function openHelp() HP.BackgroundTransparency=1;HP.Visible=true;tw(HP,{BackgroundTransparency=0},0.15) end
- local function closeHelp() tw(HP,{BackgroundTransparency=1},0.15);task.delay(0.16,function() HP.Visible=false end) end
- HelpBtnL.MouseButton1Click:Connect(openHelp)
- HPClsB.MouseButton1Click:Connect(closeHelp)
- -- ============================================================
- -- CHAT SCREEN
- -- ============================================================
- local Chat=Instance.new("Frame")
- Chat.Size=UDim2.new(1,0,1,0);Chat.BackgroundTransparency=1;Chat.BorderSizePixel=0;Chat.Visible=false;Chat.Parent=Win
- local Hdr=Instance.new("Frame")
- Hdr.Name="Hdr";Hdr.Size=UDim2.new(1,0,0,36);Hdr.BackgroundColor3=C.hdr;Hdr.BorderSizePixel=0;Hdr.ZIndex=5;Hdr.Parent=Chat
- local HGlow=Instance.new("Frame")
- HGlow.Size=UDim2.new(1,0,0,1);HGlow.Position=UDim2.new(0,0,1,-1);HGlow.BackgroundColor3=C.groq;HGlow.BorderSizePixel=0;HGlow.Parent=Hdr
- task.spawn(function()
- while HGlow and HGlow.Parent do
- tw(HGlow,{BackgroundTransparency=0.05},0.9,Enum.EasingStyle.Sine);task.wait(1)
- tw(HGlow,{BackgroundTransparency=0.65},0.9,Enum.EasingStyle.Sine);task.wait(1)
- end
- end)
- local HIco=Instance.new("ImageLabel")
- HIco.Size=UDim2.new(0,20,0,20);HIco.Position=UDim2.new(0,8,0.5,-10);HIco.BackgroundColor3=C.acc
- HIco.Image="rbxassetid://6031068426";HIco.ImageColor3=Color3.fromRGB(0,0,0);HIco.ScaleType=Enum.ScaleType.Fit
- HIco.ZIndex=6;HIco.Parent=Hdr;rnd(HIco,5)
- local HTitle=Instance.new("TextLabel")
- HTitle.Size=UDim2.new(0,80,0,16);HTitle.Position=UDim2.new(0,34,0,8);HTitle.BackgroundTransparency=1
- HTitle.Text="DELTA AI";HTitle.TextSize=13;HTitle.TextColor3=C.acc;HTitle.Font=Enum.Font.GothamBold
- HTitle.TextXAlignment=Enum.TextXAlignment.Left;HTitle.ZIndex=6;HTitle.Parent=Hdr
- local HCred=Instance.new("TextLabel")
- HCred.Size=UDim2.new(0,50,0,10);HCred.Position=UDim2.new(0,34,0,23);HCred.BackgroundTransparency=1
- HCred.Text="by : zyren";HCred.TextSize=8;HCred.TextColor3=C.cred;HCred.Font=Enum.Font.Gotham
- HCred.TextXAlignment=Enum.TextXAlignment.Left;HCred.ZIndex=6;HCred.Parent=Hdr
- local SDot=Instance.new("Frame")
- SDot.Size=UDim2.new(0,6,0,6);SDot.Position=UDim2.new(0,128,0.5,-3);SDot.BackgroundColor3=C.groq
- SDot.BorderSizePixel=0;SDot.ZIndex=6;SDot.Parent=Hdr;rnd(SDot,3)
- task.spawn(function()
- while SDot and SDot.Parent do
- tw(SDot,{BackgroundTransparency=0},0.6,Enum.EasingStyle.Sine);task.wait(0.8)
- tw(SDot,{BackgroundTransparency=0.65},0.6,Enum.EasingStyle.Sine);task.wait(0.8)
- end
- end)
- local SLbl=Instance.new("TextLabel")
- SLbl.Size=UDim2.new(0,55,0,12);SLbl.Position=UDim2.new(0,140,0.5,-6);SLbl.BackgroundTransparency=1
- SLbl.Text=L.statusOn;SLbl.TextSize=8;SLbl.TextColor3=C.groq;SLbl.Font=Enum.Font.GothamBold
- SLbl.TextXAlignment=Enum.TextXAlignment.Left;SLbl.ZIndex=6;SLbl.Parent=Hdr
- local MinB=Instance.new("TextButton")
- MinB.Size=UDim2.new(0,22,0,22);MinB.Position=UDim2.new(1,-50,0.5,-11);MinB.BackgroundColor3=C.surf2
- MinB.Text="-";MinB.TextSize=14;MinB.TextColor3=C.dim;MinB.Font=Enum.Font.GothamBold
- MinB.AutoButtonColor=false;MinB.ZIndex=7;MinB.Parent=Hdr;rnd(MinB,5);strk(MinB)
- local ClsB=Instance.new("TextButton")
- ClsB.Size=UDim2.new(0,22,0,22);ClsB.Position=UDim2.new(1,-24,0.5,-11);ClsB.BackgroundColor3=C.surf2
- ClsB.Text="X";ClsB.TextSize=11;ClsB.TextColor3=C.dim;ClsB.Font=Enum.Font.GothamBold
- ClsB.AutoButtonColor=false;ClsB.ZIndex=7;ClsB.Parent=Hdr;rnd(ClsB,5);strk(ClsB)
- MinB.MouseEnter:Connect(function() tw(MinB,{BackgroundColor3=C.acc,TextColor3=Color3.new(0,0,0)}) end)
- MinB.MouseLeave:Connect(function() tw(MinB,{BackgroundColor3=C.surf2,TextColor3=C.dim}) end)
- ClsB.MouseEnter:Connect(function() tw(ClsB,{BackgroundColor3=C.red,TextColor3=Color3.new(1,1,1)}) end)
- ClsB.MouseLeave:Connect(function() tw(ClsB,{BackgroundColor3=C.surf2,TextColor3=C.dim}) end)
- -- Model bar
- local MBar=Instance.new("Frame")
- MBar.Size=UDim2.new(1,0,0,24);MBar.Position=UDim2.new(0,0,0,36);MBar.BackgroundColor3=C.bg
- MBar.BorderSizePixel=0;MBar.ZIndex=4;MBar.Parent=Chat
- local MBarSep=Instance.new("Frame")
- MBarSep.Size=UDim2.new(1,0,0,1);MBarSep.Position=UDim2.new(0,0,1,-1);MBarSep.BackgroundColor3=C.bord;MBarSep.BorderSizePixel=0;MBarSep.Parent=MBar
- local mIdx=1
- local MBtn=Instance.new("TextButton")
- MBtn.Size=UDim2.new(0,112,0,18);MBtn.Position=UDim2.new(0,6,0.5,-9);MBtn.BackgroundColor3=C.surf2
- MBtn.Text=GROQ_MODELS[1]:sub(1,15);MBtn.TextSize=9;MBtn.TextColor3=C.acc;MBtn.Font=Enum.Font.Code
- MBtn.AutoButtonColor=false;MBtn.TextXAlignment=Enum.TextXAlignment.Left;MBtn.ZIndex=5;MBtn.Parent=MBar
- rnd(MBtn,4);strk(MBtn);padV(MBtn,0,0,0,4)
- MBtn.MouseButton1Click:Connect(function()
- local models=PROVIDER=="groq" and GROQ_MODELS or CLAUDE_MODELS
- mIdx=mIdx%#models+1;MODEL=models[mIdx]
- MBtn.Text=(#MODEL>15) and MODEL:sub(1,14).."~" or MODEL
- end)
- local LangB=Instance.new("TextButton")
- LangB.Size=UDim2.new(0,28,0,18);LangB.Position=UDim2.new(1,-104,0.5,-9);LangB.BackgroundColor3=C.surf2
- LangB.Text=L.code;LangB.TextSize=10;LangB.TextColor3=C.acc2;LangB.Font=Enum.Font.GothamBold
- LangB.AutoButtonColor=false;LangB.ZIndex=5;LangB.Parent=MBar;rnd(LangB,4);strk(LangB,C.acc2)
- LangB.MouseEnter:Connect(function() tw(LangB,{TextColor3=Color3.new(1,1,1)}) end)
- LangB.MouseLeave:Connect(function() tw(LangB,{TextColor3=C.acc2}) end)
- local ChatHelpB=Instance.new("TextButton")
- ChatHelpB.Size=UDim2.new(0,22,0,18);ChatHelpB.Position=UDim2.new(1,-72,0.5,-9);ChatHelpB.BackgroundColor3=C.surf2
- ChatHelpB.Text="?";ChatHelpB.TextSize=12;ChatHelpB.TextColor3=C.acc2;ChatHelpB.Font=Enum.Font.GothamBold
- ChatHelpB.AutoButtonColor=false;ChatHelpB.ZIndex=5;ChatHelpB.Parent=MBar;rnd(ChatHelpB,4);strk(ChatHelpB,C.bord)
- ChatHelpB.MouseEnter:Connect(function() tw(ChatHelpB,{BackgroundColor3=Color3.fromRGB(30,16,8),TextColor3=Color3.new(1,1,1)}) end)
- ChatHelpB.MouseLeave:Connect(function() tw(ChatHelpB,{BackgroundColor3=C.surf2,TextColor3=C.acc2}) end)
- ChatHelpB.MouseButton1Click:Connect(openHelp)
- local ClrB=Instance.new("TextButton")
- ClrB.Size=UDim2.new(0,36,0,18);ClrB.Position=UDim2.new(1,-40,0.5,-9);ClrB.BackgroundColor3=C.surf2
- ClrB.Text=L.clearBtn;ClrB.TextSize=10;ClrB.TextColor3=C.dim;ClrB.Font=Enum.Font.GothamBold
- ClrB.AutoButtonColor=false;ClrB.ZIndex=5;ClrB.Parent=MBar;rnd(ClrB,4);strk(ClrB)
- ClrB.MouseEnter:Connect(function() tw(ClrB,{TextColor3=C.red}) end)
- ClrB.MouseLeave:Connect(function() tw(ClrB,{TextColor3=C.dim}) end)
- local MsgF=Instance.new("Frame")
- MsgF.Size=UDim2.new(1,0,0,276);MsgF.Position=UDim2.new(0,0,0,60);MsgF.BackgroundColor3=C.surf
- MsgF.BorderSizePixel=0;MsgF.ClipsDescendants=true;MsgF.ZIndex=3;MsgF.Parent=Chat
- local SF=Instance.new("ScrollingFrame")
- SF.Size=UDim2.new(1,0,1,0);SF.BackgroundTransparency=1;SF.BorderSizePixel=0
- SF.ScrollBarThickness=2;SF.ScrollBarImageColor3=C.bord;SF.CanvasSize=UDim2.new(0,0,0,0)
- SF.AutomaticCanvasSize=Enum.AutomaticSize.Y;SF.ScrollingDirection=Enum.ScrollingDirection.Y
- SF.ZIndex=3;SF.Parent=MsgF;vlist(SF,6);padV(SF,7,7,7,7)
- local function scrollBot() task.defer(function() SF.CanvasPosition=Vector2.new(0,math.huge) end) end
- local IA=Instance.new("Frame")
- IA.Size=UDim2.new(1,0,0,44);IA.Position=UDim2.new(0,0,1,-44);IA.BackgroundColor3=C.hdr
- IA.BorderSizePixel=0;IA.ZIndex=5;IA.Parent=Chat
- local IASep=Instance.new("Frame")
- IASep.Size=UDim2.new(1,0,0,1);IASep.BackgroundColor3=C.bord;IASep.BorderSizePixel=0;IASep.Parent=IA
- local IAGlow=Instance.new("Frame")
- IAGlow.Size=UDim2.new(1,0,0,1);IAGlow.Position=UDim2.new(0,0,1,-1);IAGlow.BackgroundColor3=C.acc
- IAGlow.BackgroundTransparency=0.5;IAGlow.BorderSizePixel=0;IAGlow.Parent=IA
- local TB=Instance.new("TextBox")
- TB.Size=UDim2.new(1,-50,0,28);TB.Position=UDim2.new(0,7,0.5,-14);TB.BackgroundColor3=C.surf2
- TB.Text="";TB.PlaceholderText=L.inputPH;TB.TextSize=12;TB.TextColor3=C.txt;TB.PlaceholderColor3=C.dim
- TB.Font=Enum.Font.Gotham;TB.TextXAlignment=Enum.TextXAlignment.Left;TB.ClearTextOnFocus=false
- TB.MultiLine=false;TB.TextWrapped=false;TB.ZIndex=8;TB.Parent=IA;rnd(TB,6)
- local TBStr=strk(TB,C.bord);padV(TB,0,6,0,6)
- TB.Focused:Connect(function() tw(TBStr,{Color=C.acc});tw(IAGlow,{BackgroundTransparency=0.05}) end)
- TB.FocusLost:Connect(function() tw(TBStr,{Color=C.bord});tw(IAGlow,{BackgroundTransparency=0.5}) end)
- local SndB=Instance.new("TextButton")
- SndB.Size=UDim2.new(0,36,0,28);SndB.Position=UDim2.new(1,-43,0.5,-14);SndB.BackgroundColor3=C.acc
- SndB.Text=">>";SndB.TextSize=13;SndB.TextColor3=Color3.fromRGB(0,0,0);SndB.Font=Enum.Font.GothamBold
- SndB.AutoButtonColor=false;SndB.ZIndex=8;SndB.Parent=IA;rnd(SndB,6)
- SndB.MouseEnter:Connect(function() tw(SndB,{BackgroundTransparency=0.2}) end)
- SndB.MouseLeave:Connect(function() tw(SndB,{BackgroundTransparency=0}) end)
- -- ============================================================
- -- APLICAR IDIOMA
- -- ============================================================
- local function applyLang()
- L=LANGS[langIdx]
- local isGroq=PROVIDER=="groq"
- local provCol=isGroq and C.groq or C.cld
- -- Proveedor screen
- ChooseLbl.Text=L.chooseTitle
- GName.Text=L.groqName;GSub.Text=L.groqSub;GBadgeL.Text=L.groqBadge
- CName.Text=L.cldName;CSub.Text=L.cldSub;CBadgeL.Text=L.cldBadge
- -- Login
- LT2.Text=isGroq and L.subtitle_groq or L.subtitle_claude
- KLblL.Text=isGroq and L.keyLbl_groq or L.keyLbl_claude
- KDescL.Text=isGroq and L.keyDesc_groq or L.keyDesc_claude
- KInput.PlaceholderText=isGroq and L.keyPH_groq or L.keyPH_claude
- ConBtn.Text=L.conBtn;HelpBtnL.Text=L.helpBtnTxt
- BackBtn.Text="< "..L.backBtn
- -- Chat
- SLbl.Text=L.statusOn;SLbl.TextColor3=provCol
- SDot.BackgroundColor3=provCol;HGlow.BackgroundColor3=provCol
- WStroke.Color=provCol;ClrB.Text=L.clearBtn;TB.PlaceholderText=L.inputPH;LangB.Text=L.code
- -- Panel ayuda
- HPTitleL.Text=isGroq and L.helpTitle_groq or L.helpTitle_claude
- HPNoteL.Text=isGroq and L.helpNote_groq or L.helpNote_claude
- local steps=isGroq and L.helpSteps_groq or L.helpSteps_claude
- for i,stl in ipairs(HPStepLabels) do stl.Text=steps[i] or "" end
- -- Botones idioma highlight
- local function hl(btns)
- for i,lb in ipairs(btns) do
- local a=i==langIdx
- tw(lb,{BackgroundColor3=a and C.acc2 or C.surf2,TextColor3=a and Color3.fromRGB(0,0,0) or C.dim})
- lb:FindFirstChildWhichIsA("UIStroke").Color=a and C.acc2 or C.bord
- end
- end
- hl(PSLangBtns);hl(LoginLangBtns)
- end
- -- ============================================================
- -- NAVEGACION
- -- ============================================================
- local function goToLogin(provider)
- PROVIDER=provider
- mIdx=1
- local models=provider=="groq" and GROQ_MODELS or CLAUDE_MODELS
- MODEL=models[1];MBtn.Text=(#MODEL>15) and MODEL:sub(1,14).."~" or MODEL
- applyLang()
- tw(ConBtn,{BackgroundColor3=provider=="groq" and C.groq or C.cld})
- tw(ProvScreen,{BackgroundTransparency=1},0.18)
- task.delay(0.2,function()
- ProvScreen.Visible=false;Login.Visible=true;Login.BackgroundTransparency=1
- tw(Login,{BackgroundTransparency=0},0.18)
- end)
- end
- local function goToProvider()
- Login.Visible=false;ProvScreen.Visible=true;ProvScreen.BackgroundTransparency=1
- tw(ProvScreen,{BackgroundTransparency=0},0.18);tw(WStroke,{Color=C.acc})
- end
- GroqCard.MouseButton1Click:Connect(function() goToLogin("groq") end)
- CldCard.MouseButton1Click:Connect(function() goToLogin("claude") end)
- BackBtn.MouseButton1Click:Connect(goToProvider)
- for i,lb in ipairs(PSLangBtns) do lb.MouseButton1Click:Connect(function() langIdx=i;applyLang() end) end
- for i,lb in ipairs(LoginLangBtns) do lb.MouseButton1Click:Connect(function() langIdx=i;applyLang() end) end
- LangB.MouseButton1Click:Connect(function()
- langIdx=langIdx%#LANGS+1;applyLang()
- tw(LangB,{BackgroundColor3=C.acc2},0.07)
- task.delay(0.18,function() if LangB and LangB.Parent then tw(LangB,{BackgroundColor3=C.surf2},0.15) end end)
- end)
- applyLang()
- -- ============================================================
- -- BLOQUES CODIGO
- -- ============================================================
- local function mkCode(parent,code)
- local CF=Instance.new("Frame");CF.Size=UDim2.new(1,0,0,0);CF.AutomaticSize=Enum.AutomaticSize.Y
- CF.BackgroundColor3=C.code;CF.BorderSizePixel=0;CF.Parent=parent;rnd(CF,5)
- local CFS=strk(CF,C.bord)
- task.spawn(function()
- while CF and CF.Parent do
- tw(CFS,{Color=C.acc2,Transparency=0.35},0.9,Enum.EasingStyle.Sine);task.wait(1)
- tw(CFS,{Color=C.bord,Transparency=0},0.9,Enum.EasingStyle.Sine);task.wait(1)
- end
- end)
- vlist(CF,0)
- local CH=Instance.new("Frame");CH.Size=UDim2.new(1,0,0,22);CH.BackgroundColor3=C.hdr;CH.BorderSizePixel=0;CH.Parent=CF
- local CHSep=Instance.new("Frame");CHSep.Size=UDim2.new(1,0,0,1);CHSep.Position=UDim2.new(0,0,1,-1);CHSep.BackgroundColor3=C.bord;CHSep.BorderSizePixel=0;CHSep.Parent=CH
- local CLbl=Instance.new("TextLabel");CLbl.Size=UDim2.new(0,40,0,22);CLbl.Position=UDim2.new(0,6,0,0)
- CLbl.BackgroundTransparency=1;CLbl.Text="LUA";CLbl.TextSize=10;CLbl.TextColor3=C.acc2;CLbl.Font=Enum.Font.Code;CLbl.TextXAlignment=Enum.TextXAlignment.Left;CLbl.Parent=CH
- local CpB=Instance.new("TextButton");CpB.Size=UDim2.new(0,46,0,16);CpB.Position=UDim2.new(1,-98,0.5,-8)
- CpB.BackgroundColor3=C.surf2;CpB.Text=L.copyBtn;CpB.TextSize=9;CpB.TextColor3=C.dim;CpB.Font=Enum.Font.GothamBold
- CpB.AutoButtonColor=false;CpB.ZIndex=6;CpB.Parent=CH;rnd(CpB,4);strk(CpB)
- CpB.MouseEnter:Connect(function() tw(CpB,{TextColor3=C.acc}) end)
- CpB.MouseLeave:Connect(function() tw(CpB,{TextColor3=C.dim}) end)
- CpB.MouseButton1Click:Connect(function()
- pcall(function() setclipboard(code) end)
- CpB.Text=L.copiedBtn;tw(CpB,{TextColor3=C.green})
- task.delay(2,function() if CpB and CpB.Parent then CpB.Text=L.copyBtn;tw(CpB,{TextColor3=C.dim}) end end)
- end)
- local ExB=Instance.new("TextButton");ExB.Size=UDim2.new(0,38,0,16);ExB.Position=UDim2.new(1,-48,0.5,-8)
- ExB.BackgroundColor3=Color3.fromRGB(30,14,6);ExB.Text=L.execBtn;ExB.TextSize=9;ExB.TextColor3=C.acc2;ExB.Font=Enum.Font.GothamBold
- ExB.AutoButtonColor=false;ExB.ZIndex=6;ExB.Parent=CH;rnd(ExB,4);strk(ExB,C.acc2)
- ExB.MouseEnter:Connect(function() tw(ExB,{BackgroundColor3=Color3.fromRGB(55,24,8)}) end)
- ExB.MouseLeave:Connect(function() tw(ExB,{BackgroundColor3=Color3.fromRGB(30,14,6)}) end)
- ExB.MouseButton1Click:Connect(function()
- local ok,_=pcall(function() loadstring(code)() end)
- if ok then ExB.Text="OK";tw(ExB,{TextColor3=C.green});task.delay(2,function() if ExB and ExB.Parent then ExB.Text=L.execBtn;tw(ExB,{TextColor3=C.acc2}) end end)
- else ExB.Text="ERR";tw(ExB,{TextColor3=C.red});task.delay(3,function() if ExB and ExB.Parent then ExB.Text=L.execBtn;tw(ExB,{TextColor3=C.acc2}) end end) end
- end)
- local CC=Instance.new("TextLabel");CC.Size=UDim2.new(1,0,0,0);CC.AutomaticSize=Enum.AutomaticSize.Y;CC.BackgroundTransparency=1
- CC.Text=code;CC.TextSize=11;CC.TextColor3=Color3.fromRGB(155,205,235);CC.Font=Enum.Font.Code
- CC.TextXAlignment=Enum.TextXAlignment.Left;CC.TextYAlignment=Enum.TextYAlignment.Top;CC.TextWrapped=true;CC.Parent=CF;padV(CC,6,6,6,6)
- end
- local function render(parent,text)
- local rem=text
- while true do
- local s,e,_,code=rem:find("```([a-zA-Z]*)\n?(.-)\n?```")
- if not s then
- local t=rem:match("^%s*(.-)%s*$")
- if t and #t>0 then
- local l=Instance.new("TextLabel");l.Size=UDim2.new(1,0,0,0);l.AutomaticSize=Enum.AutomaticSize.Y
- l.BackgroundTransparency=1;l.Text=t;l.TextSize=12;l.TextColor3=C.txt;l.Font=Enum.Font.Gotham
- l.TextXAlignment=Enum.TextXAlignment.Left;l.TextYAlignment=Enum.TextYAlignment.Top;l.TextWrapped=true;l.Parent=parent
- end;break
- end
- local bef=rem:sub(1,s-1):match("^%s*(.-)%s*$")
- if bef and #bef>0 then
- local l=Instance.new("TextLabel");l.Size=UDim2.new(1,0,0,0);l.AutomaticSize=Enum.AutomaticSize.Y
- l.BackgroundTransparency=1;l.Text=bef;l.TextSize=12;l.TextColor3=C.txt;l.Font=Enum.Font.Gotham
- l.TextXAlignment=Enum.TextXAlignment.Left;l.TextYAlignment=Enum.TextYAlignment.Top;l.TextWrapped=true;l.Parent=parent
- end
- mkCode(parent,code);rem=rem:sub(e+1)
- end
- end
- local function addMsg(role,text)
- local isU=role=="user"
- local Row=Instance.new("Frame");Row.Size=UDim2.new(1,0,0,0);Row.AutomaticSize=Enum.AutomaticSize.Y;Row.BackgroundTransparency=1;Row.Parent=SF;vlist(Row,3)
- local WL=Instance.new("TextLabel");WL.Size=UDim2.new(1,0,0,11);WL.BackgroundTransparency=1
- WL.Text=isU and "TU" or "AI";WL.TextSize=9;WL.TextColor3=isU and C.acc or C.dim
- WL.Font=Enum.Font.GothamBold;WL.TextXAlignment=isU and Enum.TextXAlignment.Right or Enum.TextXAlignment.Left;WL.Parent=Row
- local Bub=Instance.new("Frame");Bub.Size=UDim2.new(isU and 0.88 or 0.97,0,0,0);Bub.AutomaticSize=Enum.AutomaticSize.Y
- Bub.AnchorPoint=isU and Vector2.new(1,0) or Vector2.new(0,0);Bub.Position=isU and UDim2.new(1,0,0,0) or UDim2.new(0,0,0,0)
- Bub.BackgroundColor3=isU and C.usrB or C.aiB;Bub.BorderSizePixel=0;Bub.Parent=Row
- rnd(Bub,7);strk(Bub,isU and Color3.fromRGB(0,80,115) or C.bord);pad(Bub,7);vlist(Bub,5)
- if isU then
- local l=Instance.new("TextLabel");l.Size=UDim2.new(1,0,0,0);l.AutomaticSize=Enum.AutomaticSize.Y
- l.BackgroundTransparency=1;l.Text=text;l.TextSize=12;l.TextColor3=C.txt;l.Font=Enum.Font.Gotham
- l.TextXAlignment=Enum.TextXAlignment.Left;l.TextYAlignment=Enum.TextYAlignment.Top;l.TextWrapped=true;l.Parent=Bub
- else render(Bub,text) end
- scrollBot()
- end
- local TRow=nil
- local function showTyp()
- TRow=Instance.new("Frame");TRow.Size=UDim2.new(0,52,0,26);TRow.BackgroundColor3=C.aiB
- TRow.BorderSizePixel=0;TRow.ZIndex=3;TRow.Parent=SF;rnd(TRow,7);strk(TRow,C.bord)
- local inner=Instance.new("Frame");inner.Size=UDim2.new(1,0,1,0);inner.BackgroundTransparency=1;inner.Parent=TRow
- local il=Instance.new("UIListLayout");il.FillDirection=Enum.FillDirection.Horizontal
- il.HorizontalAlignment=Enum.HorizontalAlignment.Center;il.VerticalAlignment=Enum.VerticalAlignment.Center;il.Padding=UDim.new(0,4);il.Parent=inner
- for i=1,3 do
- local d=Instance.new("Frame");d.Size=UDim2.new(0,5,0,5);d.BackgroundColor3=C.acc;d.BorderSizePixel=0;d.Parent=inner;rnd(d,3)
- task.spawn(function()
- local dl=(i-1)*0.2
- while TRow and TRow.Parent do
- task.wait(dl);if not(TRow and TRow.Parent) then break end
- tw(d,{BackgroundTransparency=0.05},0.28);task.wait(0.32)
- if not(TRow and TRow.Parent) then break end
- tw(d,{BackgroundTransparency=0.85},0.28);task.wait(0.52)
- end
- end)
- end;scrollBot()
- end
- local function hideTyp() if TRow then TRow:Destroy();TRow=nil end end
- -- ============================================================
- -- API CALL UNIFICADO
- -- ============================================================
- local function callAI(msg)
- table.insert(history,{role="user",content=msg})
- local msgs={{role="system",content=L.sys}}
- for _,m in ipairs(history) do table.insert(msgs,m) end
- local ok,res,dec,reply
- if PROVIDER=="groq" then
- local payload=HttpService:JSONEncode({model=MODEL,messages=msgs,max_tokens=MAX_TOKENS,temperature=0.7})
- ok,res=pcall(function() return httpRequest({Url="https://api.groq.com/openai/v1/chat/completions",Method="POST",Headers={["Content-Type"]="application/json",["Authorization"]="Bearer "..API_KEY},Body=payload}) end)
- if not ok then table.remove(history);return nil,"Red: "..tostring(res) end
- local ok2,e2=pcall(function() dec=HttpService:JSONDecode(res.Body) end)
- if not ok2 then table.remove(history);return nil,"JSON: "..tostring(e2) end
- if dec.error then table.remove(history);return nil,"Groq: "..(dec.error.message or "?") end
- reply=dec.choices and dec.choices[1] and dec.choices[1].message and dec.choices[1].message.content
- else
- local payload=HttpService:JSONEncode({model=MODEL,max_tokens=MAX_TOKENS,system=L.sys,messages=msgs})
- ok,res=pcall(function() return httpRequest({Url="https://api.anthropic.com/v1/messages",Method="POST",Headers={["Content-Type"]="application/json",["x-api-key"]=API_KEY,["anthropic-version"]="2023-06-01"},Body=payload}) end)
- if not ok then table.remove(history);return nil,"Red: "..tostring(res) end
- local ok2,e2=pcall(function() dec=HttpService:JSONDecode(res.Body) end)
- if not ok2 then table.remove(history);return nil,"JSON: "..tostring(e2) end
- if dec.error then table.remove(history);return nil,"Claude: "..(dec.error.message or "?") end
- reply=dec.content and dec.content[1] and dec.content[1].text
- end
- if not reply then table.remove(history);return nil,"Respuesta vacia" end
- table.insert(history,{role="assistant",content=reply})
- if #history>18 then local h={};for i=#history-14,#history do h[#h+1]=history[i] end;history=h end
- return reply,nil
- end
- -- ============================================================
- -- SEND
- -- ============================================================
- local function doSend()
- if waiting then return end
- local t=TB.Text:match("^%s*(.-)%s*$");if #t==0 then return end
- TB.Text="";waiting=true;SndB.Text="..";tw(SndB,{BackgroundColor3=C.surf2})
- tw(SDot,{BackgroundColor3=C.acc2});SLbl.Text=L.statusWait;SLbl.TextColor3=C.acc2
- addMsg("user",t);showTyp()
- task.spawn(function()
- local rep,err=callAI(t);hideTyp()
- addMsg("ai",err and (L.errPfx..err) or rep)
- waiting=false;SndB.Text=">>";tw(SndB,{BackgroundColor3=C.acc})
- local provCol=PROVIDER=="groq" and C.groq or C.cld
- tw(SDot,{BackgroundColor3=provCol});SLbl.Text=L.statusOn;SLbl.TextColor3=provCol
- end)
- end
- SndB.MouseButton1Click:Connect(doSend)
- TB.FocusLost:Connect(function(enter) if enter then doSend() end end)
- ClrB.MouseButton1Click:Connect(function()
- history={};for _,v in pairs(SF:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end
- addMsg("ai",L.clearMsg)
- end)
- -- ============================================================
- -- DRAG
- -- ============================================================
- local drag,dragSt,winSt=false
- Hdr.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=true;dragSt=i.Position;winSt=Win.Position end end)
- Hdr.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=false end end)
- for _,b in pairs({MinB,ClsB,SndB}) do b.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=false end end) end
- UserInputService.InputChanged:Connect(function(i) if drag and i.UserInputType==Enum.UserInputType.MouseMovement and dragSt then local d=i.Position-dragSt;Win.Position=UDim2.new(winSt.X.Scale,winSt.X.Offset+d.X,winSt.Y.Scale,winSt.Y.Offset+d.Y) end end)
- UserInputService.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=false end end)
- -- ============================================================
- -- MIN / CLOSE
- -- ============================================================
- local FBtn=Instance.new("TextButton")
- FBtn.Size=UDim2.new(0,38,0,38);FBtn.Position=UDim2.new(1,-50,1,-50);FBtn.BackgroundColor3=C.acc
- FBtn.Text="AI";FBtn.TextSize=12;FBtn.TextColor3=Color3.fromRGB(0,0,0);FBtn.Font=Enum.Font.GothamBold
- FBtn.AutoButtonColor=false;FBtn.Visible=false;FBtn.ZIndex=100;FBtn.Parent=SG;rnd(FBtn,19);strk(FBtn,C.acc,2)
- task.spawn(function()
- while FBtn and FBtn.Parent do
- if FBtn.Visible then tw(FBtn,{BackgroundTransparency=0.1},0.7,Enum.EasingStyle.Sine);task.wait(0.8);tw(FBtn,{BackgroundTransparency=0.35},0.7,Enum.EasingStyle.Sine);task.wait(0.8) else task.wait(0.4) end
- end
- end)
- FBtn.MouseEnter:Connect(function() tw(FBtn,{BackgroundTransparency=0}) end)
- FBtn.MouseLeave:Connect(function() tw(FBtn,{BackgroundTransparency=0.1}) end)
- local function openWin() opened=true;Win.Visible=true;Win.Size=UDim2.new(0,280,0,0);tw(Win,{Size=UDim2.new(0,280,0,380)},0.22,Enum.EasingStyle.Back,Enum.EasingDirection.Out);FBtn.Visible=false end
- local function closeWin() opened=false;tw(Win,{Size=UDim2.new(0,280,0,0)},0.16);task.delay(0.18,function() Win.Visible=false;FBtn.Visible=true end) end
- MinB.MouseButton1Click:Connect(function() if opened then closeWin() else openWin() end end)
- FBtn.MouseButton1Click:Connect(openWin)
- ClsB.MouseButton1Click:Connect(function() tw(Win,{Size=UDim2.new(0,280,0,0),BackgroundTransparency=1},0.16);task.delay(0.18,function() SG:Destroy() end) end)
- -- ============================================================
- -- INICIO
- -- ============================================================
- local function abrirChat()
- Login.Visible=false;Chat.Visible=true
- addMsg("ai",PROVIDER=="groq" and L.startMsg_groq or L.startMsg_claude)
- end
- ConBtn.MouseButton1Click:Connect(function()
- local k=KInput.Text:match("^%s*(.-)%s*$")
- if #k<10 then ELbl.Text=L.errMsg;return end
- API_KEY=k;ELbl.Text="";tw(Login,{BackgroundTransparency=1},0.18);task.delay(0.2,abrirChat)
- end)
- ProvScreen.Visible=true;Login.Visible=false;Chat.Visible=false
- print("[DeltaAI v8] by:zyren | Groq + Claude")
Advertisement
Add Comment
Please, Sign In to add comment