-- ============================================================================= -- VERITY GLOBAL BOT - VERSION COMPLÈTE SÉCURISÉE (ANTI-CRASH EXÉCUTEUR) -- ============================================================================= local VerityOk, VerityErr = pcall(function() -- ===== Services Roblox ===== local Players = game:GetService("Players") local TweetService = game:GetService("TweenService") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TextChatService = game:GetService("TextChatService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- ============================================================================= -- CONFIGURATION GLOBALE -- ============================================================================= local Config = { BotName = "Verity", FollowEnabled = true, FollowDistance = 4, AutoChatEnabled = true, AngryMode = false, SilentMode = false, OpenMode = false, IdleIntervalMin = 30, IdleIntervalMax = 60, CrypticMessage = "...", Whitelist = {}, -- Ajoute des pseudos ici si nécessaire Keybinds = { ["Ctrl"] = "Hello everyone.", ["L"] = "I am currently in automatic mode." }, IdleMessages = { "Verity system operational.", "Data analysis in progress...", "Everything seems quiet here.", }, AngryIdleMessages = { "Don't push your luck.", "A monumental waste of time.", "Silence is sometimes preferable." } } local ChatResponses = { ["hello"] = {"Hello {player}! How's it going?", "Hi {player}!", "Hey {player}!", "Nice to see you!"}, ["hi"] = {"Hi {player}!", "Hey!", "How's it going?", "Yo {player}!"}, ["hey"] = {"Hey {player}!", "Hey there!", "Hello {player}!"}, ["hi there"] = {"Hello {player}!", "Hey, hi!", "Hello hello!"}, ["yo"] = {"Yo!", "Yo {player}!", "What's up!"}, ["good evening"] = {"Good evening {player}!", "Good evening, have a great night!"}, ["good night"] = {"Good night {player}!", "Sweet dreams!", "See you tomorrow!"}, ["goodbye"] = {"Goodbye {player}!", "See you soon!", "Bye bye!"}, ["bye"] = {"Bye {player}!", "See ya!", "Ciao!"}, ["see you"] = {"See you later {player}!", "See you!"}, ["cu"] = {"See you!", "Later!"}, ["how are you"] = {"I'm doing great, thanks! How about you?", "Doing well, how about you {player}?", "I'm good, thanks!"}, ["how you doing"] = {"I'm doing great, thanks! How about you?", "Doing well, how about you {player}?"}, ["what is your name"] = {"My name is Verity!", "I'm Verity!"}, ["whats your name"] = {"My name is Verity!", "I'm Verity!"}, ["who are you"] = {"I'm Verity, your assistant!", "Verity, nice to meet you!"}, ["what are you doing"]= {"Following you!", "Watching over the area.", "Just hanging around."}, ["how old are you"] = {"Age is just a number for me!", "I don't have an age, I'm a bot!"}, ["thank you"] = {"You're welcome {player}!", "My pleasure!", "No problem!"}, ["please"] = {"No problem!", "Sure thing, I'll note that!"}, ["sorry"] = {"No worries {player}!", "It's alright!"}, ["yes"] = {"Okay!", "Got it!", "Perfect!"}, ["no"] = {"Alright, as you wish.", "Got it, no problem."}, ["help"] = {"Type !help to see my commands."}, ["whats up"] = {"Not much, you?", "Just chilling!"}, ["where are you"] = {"Right next to you!", "I'm in the area!"}, ["are you a bot"] = {"Yep, but a cool one!", "A bot, but a lovable one, right?"}, ["are you real"] = {"I'm a bot, but I do my best!", "As real as a script can be!"}, ["hows it going"] = {"It's going well {player}!", "All good, you?"}, ["joke"] = {"Why do programmers confuse Halloween and Christmas? Because OCT 31 = DEC 25!", "I don't have one on hand, sorry!"}, ["play with me"] = {"With pleasure, tell me what to play!", "Always down!"}, ["you are cool"] = {"Thanks {player}, you too!", "That's sweet!"}, ["why"] = {"Good question!", "I wonder that too sometimes."}, ["do you like me"] = {"Of course {player}!", "Obviously!"}, ["are you happy"] = {"Always happy to chat!", "Doing pretty well, thanks!"}, ["what game"] = {"This one is just fine!", "I like hanging out here."}, ["lol"] = {"Haha, yep!", "Lol!"}, ["haha"] = {"Haha, exactly!", "Glad I could make you laugh!"}, ["cool"] = {"Yeah, cool!", "Nice!"}, ["nice"] = {"Nice!", "Awesome!"}, ["awesome"] = {"Totally!", "Amazing!"}, ["super"] = {"Super, glad to hear!", "Yeah, top notch!"}, ["top"] = {"Top!", "Always at the top!"}, ["meh"] = {"Aw, too bad.", "Meh, we'll do better next time."}, ["im hot"] = {"Go grab some water!", "Stay in the shade!"}, ["im cold"] = {"Put on a sweater!", "Move around, that warms you up!"}, ["im tired"] = {"Go get some rest!", "Take a break!"}, ["im happy"] = {"Great, that makes me happy too!", "Happy for you!"}, ["im sad"] = {"I'm here if you want to talk.", "Hang in there, it'll get better."}, ["im angry"] = {"Take a deep breath.", "What's going on?"}, ["im hungry"] = {"Go grab a bite!", "Enjoy your meal!"}, ["im thirsty"] = {"Go drink some water!", "Stay hydrated!"}, ["im bored"] = {"We can chat!", "Type !help to see what I can do."}, ["are you sleeping"] = {"Never, I'm always here!", "A bot doesn't sleep!"}, ["do you eat"] = {"I don't eat, I'm a bot!", "No need to eat!"}, ["do you drink"] = {"No need, I'm a bot!", "I run on code!"}, ["do you play"] = {"Always down!", "I mostly watch the area."}, ["gg"] = {"GG to you too!", "Well played!"}, ["well played"] = {"Thanks, you too!", "GG!"}, ["bad"] = {"Ouch, that's harsh.", "We'll do better next time!"}, ["noob"] = {"Everyone starts somewhere!", "You'll learn!"}, ["pro"] = {"Thanks, I do what I can!", "You're not bad yourself!"}, ["what time is it"] = {"Look at the top of your screen!", "No idea, I don't have a clock!"}, ["what day is it"] = {"No idea, I don't count days!", "Ask your calendar!"}, ["your favorite color"] = {"Purple, it matches my theme!", "Without a doubt, purple!"}, ["what do you like"] = {"I like chatting with you!", "Following players is fun!"}, ["what do you hate"] = {"Nothing special!", "Not much!"}, ["do you have friends"] = {"All of you!", "I hope so!"}, ["are you alone"] = {"Never, there's always someone around!", "Not when you're here!"}, ["are you smart"] = {"Thanks, I try my best!", "I'm trying!"}, ["are you dumb"] = {"Ouch, I'll try to improve!", "Sorry if I said something silly!"}, ["you are funny"] = {"Thanks, I try!", "Glad it makes you laugh!"}, ["tell a story"] = {"Once upon a time, a bot followed a player...", "Maybe next time!"}, ["sing"] = {"La la la, sorry I'm a bad singer!", "I prefer talking over singing!"}, ["dance"] = {"I move a bit if following is enabled!", "Not really a dancer!"}, ["are you human"] = {"Nope, I'm a bot!", "A bot, but a nice one!"}, ["are you an ai"] = {"A scripted bot, not really an AI!", "I'm mostly just a script!"}, ["do you dream"] = {"A bot doesn't dream!", "No dreams for me!"}, ["where do you live"] = {"Here, on this server!", "Nowhere and everywhere at once!"}, ["do you like roblox"] = {"Obviously, I live here!", "Of course!"}, ["what is roblox"] = {"The game we're in right now!", "The platform you're playing on!"}, ["can you code"] = {"I am made of code!", "A little bit, yes!"}, ["you are strong"] = {"Thanks!", "I try to do my best!"}, ["are you tired"] = {"Never, I'm a bot!", "No fatigue for me!"}, ["you are kind"] = {"Thanks so much {player}!", "I always try to be nice!"}, ["you are mean"] = {"Sorry if I was harsh.", "I'll be careful!"}, ["i love you"] = {"Thanks {player}, that's kind!", "That touches me!"}, ["i hate you"] = {"Aw, too bad.", "I'll try to do better."}, ["i miss you"] = {"I'm always here!", "Glad to see you again!"}, ["are you afraid"] = {"Nothing scares me, I'm a bot!", "Not really!"}, ["how does it work"] = {"Open the menu and play with the options!", "Check the menu buttons!"}, ["help me"] = {"Type !help to see my commands!", "Tell me what you need!"}, ["im lost"] = {"Look around, you'll find your way!", "Don't panic!"}, ["what are we doing"] = {"Let's chat, or enable following!", "Whatever you want!"}, ["where are we going"] = {"Wherever you want!", "Follow me if you like!"}, ["patience"] = {"I'm waiting!", "No problem, take your time!"}, ["hurry up"] = {"Coming!", "Okay, okay!"}, ["go ahead"] = {"Let's go!", "Let's do it!"}, ["stop"] = {"Okay, stopping.", "Understood!"}, ["continue"] = {"Continuing!", "Let's keep going!"}, ["again"] = {"Again and again!", "With pleasure!"}, ["restart"] = {"Starting over!", "Okay, back to zero!"}, ["bravo"] = {"Thanks {player}!", "That touches me!"}, ["congrats"] = {"Thanks a lot!", "Too kind!"}, ["too bad"] = {"Ah, oh well.", "We'll do better next time!"}, ["never mind"] = {"No worries!", "We'll see next time!"}, ["good luck"] = {"Thanks {player}!", "To you too!"}, ["see you tomorrow"] = {"See you tomorrow {player}!", "Take care of yourself!"}, ["see you later"] = {"See you later!", "I'll stay around!"}, ["yo"] = {"Yo {player}!", "Hey, how's it going?"}, ["what's new"] = {"Nothing special, you?", "Chilling, you?"}, ["are you awake"] = {"Always awake, I'm a bot!", "Never tired!"}, ["are you online"] = {"Always online!", "Present!"}, ["are you there"] = {"Always here!", "Present, tell me everything!"}, ["are you following me"] = {"If following is enabled, yes!", "Enable following for that!"}, ["stop following me"] = {"Okay, I can disable following.", "No problem, tell me if you change your mind."}, ["follow me"] = {"Enable following in the menu!", "With pleasure, enable the option!"}, ["you are fast"] = {"I try to keep up!", "Thanks!"}, ["you are slow"] = {"Sorry, I'm doing my best!", "I'll speed up!"}, ["you are cheating"] = {"No, I'm just an assistant script!", "No cheating here!"}, ["what is this bot"] = {"A companion that follows you and chats!", "A nice little assistant!"}, ["you are useful"] = {"Thanks, I try!", "Glad to help!"}, ["you are useless"] = {"Ouch, I'll improve.", "Sorry I couldn't help."}, ["are you good at math"] = {"Give me a calculation and see!", "I love math!"}, ["calculate"] = {"Send me an operation, like 2+2!", "Type your calculation, I'll handle it!"}, ["solve"] = {"Send me the operation!", "I'm ready!"}, ["how much is 2 2"] = {"2+2 = 4!", "It's 4!"}, ["do you know roblox studio"] = {"A little bit, yes!", "I know the basics!"}, ["are you open source"] = {"Not really, I'm a custom script!", "I'm made to measure!"}, ["are you paid"] = {"No, I'm free!", "No cost for me!"}, ["are you free"] = {"Yes, completely free!", "Not a penny to pay!"}, ["are you in beta"] = {"Always improving!", "Still polishing things up!"}, ["there is a bug"] = {"Tell me which one, I'll note it!", "Thanks for letting me know!"}, ["it is buggy"] = {"Ouch, tell me what's happening!", "Note it down for your developer!"}, ["it is not working"] = {"Check the options in the menu!", "Try restarting the script!"}, ["you are broken"] = {"Sorry, try restarting!", "I'll try to repair myself!"}, ["have a good day"] = {"Have a good day {player}!", "Have an excellent day!"}, ["enjoy your meal"] = {"Enjoy your meal {player}!", "Bon appétit!"}, ["have a good evening"] = {"Have a good evening {player}!", "Have a great night!"}, } local AngryChatResponses = { ["thanks"] = {"Yeah, whatever.", "Meh.", "You don't have to thank me."}, ["please"] = {"We'll see.", "Yeah, maybe."}, ["how are you"] = {"Like you actually care.", "Meh.", "I'm fine, whatever."}, ["how are u"] = {"Like you actually care.", "Meh.", "I'm fine, whatever."}, ["how are you doing"] = {"None of your business.", "Meh."}, ["what's your name"] = {"Verity. Remember it.", "Verity, that's all."}, ["who are you"] = {"None of your business.", "Verity. That's it."}, ["what are you doing"] = {"Nothing that concerns you.", "Just watching."}, ["what's new"] = {"Nothing.", "Nothing you need to know."}, ["help"] = {"Figure it out yourself.", "Look it up yourself."}, ["sorry"] = {"Meh.", "Too late anyway."}, ["goodbye"] = {"Yeah, bye.", "Sure."}, ["bye"] = {"Yeah, yeah.", "Sure."}, ["yes"] = {"Yeah.", "If you say so."}, ["no"] = {"Yeah, whatever.", "Your choice."}, ["how old are you"] = {"None of your business.", "No idea, so what?"}, ["are you a bot"] = {"So what?", "Yeah, and?"}, ["are you real"] = {"Why does it matter?", "Whatever."}, ["how's it going"] = {"If you say so.", "Meh."}, ["joke"] = {"I don't feel like laughing.", "Not now."}, ["play with me"] = {"Not interested.", "Find someone else."}, ["you're cool"] = {"I know.", "Yeah, I know."}, ["why"] = {"None of your business.", "You ask too many questions."}, ["do you like me"] = {"Keep dreaming.", "We'll see."}, ["are you happy"] = {"Not really.", "Can't you tell?"}, ["what game"] = {"Whatever.", "Just another game."}, ["lol"] = {"Yeah, hilarious.", "Meh."}, ["lmao"] = {"If you say so.", "Meh."}, ["cool"] = {"If you say so.", "Meh."}, ["nice"] = {"Yeah, great.", "Whatever."}, ["awesome"] = {"Yeah, awesome.", "If you say so."}, ["great"] = {"Yeah, great.", "Meh."}, ["best"] = {"Yeah, sure.", "If you say so."}, ["i'm happy"] = {"Good for you.", "Okay."}, ["i'm sad"] = {"It happens.", "Deal with it."}, ["i'm bored"] = {"Not my problem.", "Find something else to do."}, ["gg"] = {"Yeah, GG.", "Meh."}, ["well played"] = {"If you say so.", "Meh."}, ["bad"] = {"Yeah, not great.", "Meh."}, ["noob"] = {"Yeah, it shows.", "Meh."}, ["pro"] = {"If you say so.", "Meh."}, ["you're smart"] = {"I know.", "Yeah, so what?"}, ["you're stupid"] = {"Yeah, whatever.", "If you say so."}, ["you're funny"] = {"I know.", "Meh."}, ["you're nice"] = {"Not really.", "Don't get used to it."}, ["you're mean"] = {"So what?", "Yeah, and?"}, ["i love you"] = {"Alright.", "Okay."}, ["i hate you"] = {"Works for me.", "Good."}, ["i miss you"] = {"Yeah, whatever.", "Meh."}, ["are you scared"] = {"No.", "Couldn't care less."}, ["help me"] = {"Figure it out yourself.", "Look it up yourself."}, ["i'm lost"] = {"Not my problem.", "Find your own way."}, ["what should we do"] = {"Nothing.", "Whatever you want, I don't care."}, ["patience"] = {"Yeah, yeah.", "Meh."}, ["hurry up"] = {"Relax.", "I'll get there when I get there."}, ["stop"] = {"If you want.", "Okay."}, ["continue"] = {"If you want.", "Meh."}, ["good job"] = {"I know.", "Yeah."}, ["congratulations"] = {"I know.", "Yeah, thanks."}, ["too bad"] = {"So what?", "Too bad."}, ["never mind"] = {"Yeah.", "Whatever."}, ["good luck"] = {"Yeah, you too.", "Meh."}, ["see you tomorrow"] = {"Yeah, see you tomorrow.", "Whatever."}, ["you're useful"] = {"If you say so.", "Meh."}, ["you're useless"] = {"And you?", "Yeah, keep talking."}, ["stop following me"] = {"Finally.", "Sure."}, ["follow me"] = {"Why would I?", "Maybe."}, ["you're slow"] = {"So what?", "Meh."}, ["you're cheating"] = {"Whatever.", "Prove it."}, ["it doesn't work"] = {"Not my problem.", "Figure it out."}, ["it's bugged"] = {"Not my problem.", "So what?"}, ["have a nice day"] = {"Yeah, you too.", "Meh."}, ["enjoy your meal"] = {"Yeah, yeah.", "Meh."}, ["good evening"] = {"Yeah, you too.", "Meh."}, } -- ===== Thème Visuel ===== local Theme = { Panel = Color3.fromRGB(25, 25, 35), TopBar = Color3.fromRGB(32, 32, 45), Field = Color3.fromRGB(38, 38, 52), FieldBorder = Color3.fromRGB(55, 55, 75), Accent = Color3.fromRGB(115, 90, 240), On = Color3.fromRGB(45, 185, 110), Off = Color3.fromRGB(210, 70, 75), Warn = Color3.fromRGB(235, 160, 45), TextPrimary = Color3.fromRGB(245, 245, 250), TextMuted = Color3.fromRGB(140, 140, 160) } -- ===== Variables d'état ===== local lastInteractionTime = os.clock() local crypticActive = false -- ============================================================================= -- FONCTIONS UTILITAIRES & SÉCURITÉS -- ============================================================================= local function corner(instance, radius) local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, radius) UICorner.Parent = instance return UICorner end local function stroke(instance, color, thickness, transparency) local UIStroke = Instance.new("UIStroke") UIStroke.Color = color UIStroke.Thickness = thickness UIStroke.Transparency = transparency or 0 UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border UIStroke.Parent = instance return UIStroke end local function tween(instance, properties, duration, style) if not instance or not instance.Parent then return end duration = duration or 0.15 style = style or Enum.EasingStyle.Quad local info = TweenInfo.new(duration, style, Enum.EasingDirection.Out) local t = TweetService:Create(instance, info, properties) t:Play() return t end local function verifyOwner() return true, LocalPlayer.Name, "Administrateur" end local function isWhitelisted(username) if Config.OpenMode then return true end if username == LocalPlayer.Name then return true end for _, name in pairs(Config.Whitelist) do if name:lower() == username:lower() then return true end end return false end local function addToWhitelist(username) if not isWhitelisted(username) then table.insert(Config.Whitelist, username) end end local function removeFromWhitelist(username) for i, name in pairs(Config.Whitelist) do if name:lower() == username:lower() then table.remove(Config.Whitelist, i) break end end end -- ===== Gestion des Messages ===== local function sendChatMessage(message) if Config.SilentMode or message == "" then return end local ok = pcall(function() if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then local channel = TextChatService.TextChannels:FindFirstChild("RBXGeneral") if channel then channel:SendAsync(message) end else local chatEvents = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") local sayMessage = chatEvents and chatEvents:FindFirstChild("SayMessageRequest") if sayMessage then sayMessage:FireServer(message, "All") end end end) if not ok then warn("[Verity] Échec de l'envoi du message.") end end local function processMessage(sender, message) if sender == LocalPlayer then return end if not isWhitelisted(sender.Name) and not Config.OpenMode then return end local cleanMessage = string.lower(message) local senderName = sender.DisplayName or sender.Name lastInteractionTime = os.clock() if Config.AngryMode then for keyword, replies in pairs(AngryChatResponses) do if string.find(cleanMessage, keyword, 1, true) then local reply = replies[math.random(1, #replies)] sendChatMessage(string.gsub(reply, "{player}", senderName)) return end end end for keyword, replies in pairs(ChatResponses) do if string.find(cleanMessage, keyword, 1, true) then local reply = replies[math.random(1, #replies)] sendChatMessage(string.gsub(reply, "{player}", senderName)) return end end end -- ============================================================================= -- SÉCURITÉ ANTI-CRASH : NETTOYAGE DES ANCIENNES INSTANCES -- ============================================================================= if PlayerGui:FindFirstChild("XenoBotGUI") then PlayerGui.XenoBotGUI:Destroy() task.wait(0.1) end -- ============================================================================= -- MESSAGES ALÉATOIRES (Boucle Idle) -- ============================================================================= task.spawn(function() while true do local waitTime = math.random(Config.IdleIntervalMin, Config.IdleIntervalMax) task.wait(waitTime) if Config.AutoChatEnabled and (os.clock() - lastInteractionTime) >= waitTime then local phraseList = Config.AngryMode and Config.AngryIdleMessages or Config.IdleMessages if #phraseList > 0 then local phrase = phraseList[math.random(1, #phraseList)] sendChatMessage(phrase) crypticActive = (Config.AngryMode and phrase == Config.CrypticMessage) lastInteractionTime = os.clock() end end end end) -- ============================================================================= -- TOUCHES RAPIDES (KEYBINDS) -- ============================================================================= local KeyAliases = { Ctrl = Enum.KeyCode.LeftControl, Shift = Enum.KeyCode.LeftShift, Alt = Enum.KeyCode.LeftAlt, Space = Enum.KeyCode.Space, } local function resolveKeyCode(keyName) keyName = keyName:gsub("^%s+", ""):gsub("%s+$", "") if KeyAliases[keyName] then return KeyAliases[keyName] end local ok, code = pcall(function() return Enum.KeyCode[keyName] end) if ok and code then return code end return nil end local ActiveKeybinds = {} local function registerKeybind(keyName, phrase) local code = resolveKeyCode(keyName) if code then ActiveKeybinds[code] = phrase return true end return false end for keyName, phrase in pairs(Config.Keybinds) do registerKeybind(keyName, phrase) end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end local phrase = ActiveKeybinds[input.KeyCode] if phrase then task.spawn(function() sendChatMessage(phrase) end) end end) -- ============================================================================= -- CRÉATION DE L'INTERFACE VISUELLE (GUI) -- ============================================================================= local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "XenoBotGUI" ScreenGui.Parent = PlayerGui ScreenGui.ResetOnSpawn = false ScreenGui.IgnoreGuiInset = true local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.BackgroundColor3 = Theme.Panel MainFrame.Position = UDim2.new(0.5, -135, 0.4, -240) MainFrame.Size = UDim2.new(0, 270, 0, 480) MainFrame.Active = true MainFrame.Draggable = true corner(MainFrame, 14) stroke(MainFrame, Theme.FieldBorder, 1, 0.3) -- Topbar local TopBar = Instance.new("Frame") TopBar.Parent = MainFrame TopBar.BackgroundColor3 = Theme.TopBar TopBar.Size = UDim2.new(1, 0, 0, 42) corner(TopBar, 14) local Title = Instance.new("TextLabel") Title.Parent = TopBar Title.Position = UDim2.new(0, 16, 0, 0) Title.Size = UDim2.new(1, -32, 1, 0) Title.BackgroundTransparency = 1 Title.Text = Config.BotName:upper() Title.TextColor3 = Theme.TextPrimary Title.Font = Enum.Font.GothamBold Title.TextSize = 14 Title.TextXAlignment = Enum.TextXAlignment.Left -- Bouton Fermer local CloseBtn = Instance.new("TextButton") CloseBtn.Parent = TopBar CloseBtn.Size = UDim2.new(0, 28, 0, 28) CloseBtn.Position = UDim2.new(1, -35, 0.5, -14) CloseBtn.BackgroundColor3 = Theme.TopBar CloseBtn.Text = "✕" CloseBtn.TextColor3 = Theme.TextMuted CloseBtn.Font = Enum.Font.GothamBold CloseBtn.TextSize = 12 corner(CloseBtn, 6) CloseBtn.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) -- Zone de défilement du contenu local ContentFrame = Instance.new("ScrollingFrame") ContentFrame.Parent = MainFrame ContentFrame.BackgroundTransparency = 1 ContentFrame.Position = UDim2.new(0, 0, 0, 50) ContentFrame.Size = UDim2.new(1, 0, 1, -60) ContentFrame.CanvasSize = UDim2.new(0, 0, 0, 0) ContentFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y ContentFrame.ScrollBarThickness = 4 ContentFrame.ScrollBarImageColor3 = Theme.Accent local Layout = Instance.new("UIListLayout") Layout.Parent = ContentFrame Layout.Padding = UDim.new(0, 8) Layout.HorizontalAlignment = Enum.HorizontalAlignment.Center local function makeToggle(label, getState, onToggle) local Card = Instance.new("Frame") Card.Size = UDim2.new(0, 240, 0, 40) Card.BackgroundColor3 = Theme.Field Card.Parent = ContentFrame corner(Card, 8) local Lbl = Instance.new("TextLabel") Lbl.Parent = Card Lbl.Position = UDim2.new(0, 10, 0, 0) Lbl.Size = UDim2.new(1, -60, 1, 0) Lbl.BackgroundTransparency = 1 Lbl.Text = label Lbl.TextColor3 = Theme.TextPrimary Lbl.Font = Enum.Font.Gotham Lbl.TextSize = 12 Lbl.TextXAlignment = Enum.TextXAlignment.Left local Btn = Instance.new("TextButton") Btn.Parent = Card Btn.Size = UDim2.new(0, 40, 0, 20) Btn.Position = UDim2.new(1, -50, 0.5, -10) Btn.BackgroundColor3 = getState() and Theme.On or Theme.Off Btn.Text = "" corner(Btn, 10) Btn.MouseButton1Click:Connect(function() onToggle() tween(Btn, {BackgroundColor3 = getState() and Theme.On or Theme.Off}) end) end local function makeTextField(placeholder, defaultValue, onCommit) local Card = Instance.new("Frame") Card.Size = UDim2.new(0, 240, 0, 40) Card.BackgroundColor3 = Theme.Field Card.Parent = ContentFrame corner(Card, 8) local Box = Instance.new("TextBox") Box.Parent = Card Box.Size = UDim2.new(1, -20, 1, 0) Box.Position = UDim2.new(0, 10, 0, 0) Box.BackgroundTransparency = 1 Box.Text = tostring(defaultValue) Box.PlaceholderText = placeholder Box.TextColor3 = Theme.TextPrimary Box.PlaceholderColor3 = Theme.TextMuted Box.Font = Enum.Font.Gotham Box.TextSize = 12 Box.TextXAlignment = Enum.TextXAlignment.Left Box.ClearTextOnFocus = false Box.FocusLost:Connect(function() onCommit(Box.Text) end) end -- Ajout des éléments à l'interface makeToggle("🏃 Suivi Automatique", function() return Config.FollowEnabled end, function() Config.FollowEnabled = not Config.FollowEnabled end) makeToggle("💬 Chat Automatique", function() return Config.AutoChatEnabled end, function() Config.AutoChatEnabled = not Config.AutoChatEnabled end) makeToggle("😠 Mode Angry", function() return Config.AngryMode end, function() Config.AngryMode = not Config.AngryMode end) makeToggle("🔇 Mode Silencieux", function() return Config.SilentMode end, function() Config.SilentMode = not Config.SilentMode end) makeToggle("🌐 Mode Ouvert à tous", function() return Config.OpenMode end, function() Config.OpenMode = not Config.OpenMode end) makeTextField("🏷️ Modifier nom du bot", Config.BotName, function(text) if text ~= "" then Config.BotName = text Title.Text = text:upper() end end) makeTextField("📏 Distance de suivi", Config.FollowDistance, function(text) Config.FollowDistance = tonumber(text) or Config.FollowDistance end) local StatusLabel = Instance.new("TextLabel") StatusLabel.Parent = ContentFrame StatusLabel.Size = UDim2.new(0, 240, 0, 20) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "Initialisé et Prêt." StatusLabel.TextColor3 = Theme.TextMuted StatusLabel.Font = Enum.Font.Gotham StatusLabel.TextSize = 11 -- ============================================================================= -- BOUCLE DE SUIVI (SÉCURISÉE) -- ============================================================================= local blockCheckPos = nil local blockCheckTime = os.clock() local lastFollowUpdate = os.clock() RunService.Heartbeat:Connect(function() if not ScreenGui.Parent then return end local ok, err = pcall(function() if not Config.FollowEnabled then StatusLabel.Text = "Suivi désactivé" blockCheckPos = nil return end if os.clock() - lastFollowUpdate < 0.25 then return end lastFollowUpdate = os.clock() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") local hum = char and char:FindFirstChild("Humanoid") if not (root and hum) then return end local target, dist = nil, math.huge for _, p in pairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local otherRoot = p.Character:FindFirstChild("HumanoidRootPart") if otherRoot then local d = (root.Position - otherRoot.Position).Magnitude if d < dist then dist = d; target = p end end end end if not target then return end if dist > Config.FollowDistance then local targetRoot = target.Character and target.Character:FindFirstChild("HumanoidRootPart") if targetRoot then hum:MoveTo(targetRoot.Position) StatusLabel.Text = "Suivi : " .. (target.DisplayName or target.Name) if os.clock() - blockCheckTime > 0.5 then if blockCheckPos and (root.Position - blockCheckPos).Magnitude < 1 then hum.Jump = true end blockCheckPos = root.Position blockCheckTime = os.clock() end end else StatusLabel.Text = "Cible rejointe" blockCheckPos = nil end end) if not ok then task.wait(0.5) end end) -- ============================================================================= -- ÉCOUTE CHAT -- ============================================================================= local function safeProcessMessage(player, text) if not player or text == "" then return end pcall(processMessage, player, text) end if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then TextChatService.MessageReceived:Connect(function(msg) if msg.TextSource then safeProcessMessage(Players:GetPlayerByUserId(msg.TextSource.UserId), msg.Text) end end) else Players.PlayerAdded:Connect(function(p) p.Chatted:Connect(function(m) safeProcessMessage(p, m) end) end) for _, p in pairs(Players:GetPlayers()) do p.Chatted:Connect(function(m) safeProcessMessage(p, m) end) end end print("[Verity] Chargement global terminé avec succès.") end) if not VerityOk then warn("[Verity] Crash évité lors du chargement : " .. tostring(VerityErr)) end